ZGlmZiAtLWdpdCBhL3NyYy9lZGl0LmMgYi9zcmMvZWRpdC5jCmluZGV4IGYzODQyMjkuLmVlNTc0YWQgMTAwNjQ0Ci0tLSBhL3NyYy9lZGl0LmMKKysrIGIvc3JjL2VkaXQuYwpAQCAtODcsNiArODcsMTQgQEAKIHN0YXRpYyBjb21wbF9UICAgICpjb21wbF9jdXJyX21hdGNoID0gTlVMTDsKIHN0YXRpYyBjb21wbF9UICAgICpjb21wbF9zaG93bl9tYXRjaCA9IE5VTEw7CiAKKy8qIFdoZW4gImNvbXBsX2xlYWRlciIgaXMgbm90IE5VTEwgb25seSBtYXRjaGVzIHRoYXQgc3RhcnQgd2l0aCB0aGlzIHN0cmluZworICogYXJlIHVzZWQuICovCitzdGF0aWMgY2hhcl91CSAgKmNvbXBsX2xlYWRlciA9IE5VTEw7CisKK3N0YXRpYyBpbnQJICBjb21wbF91c2VkX21hdGNoOwkvKiBTZWxlY3RlZCBvbmUgb2YgdGhlIG1hdGNoZXMuICBXaGVuCisJCQkJCSAgIEZBTFNFIHRoZSBtYXRjaCB3YXMgZWRpdGVkIG9yIHVzaW5nCisJCQkJCSAgIHRoZSBsb25nZXN0IGNvbW1vbiBzdHJpbmcuICovCisKIC8qIFdoZW4gdGhlIGZpcnN0IGNvbXBsZXRpb24gaXMgZG9uZSAiY29tcGxfc3RhcnRlZCIgaXMgc2V0LiAgV2hlbiBpdCdzCiAgKiBGQUxTRSB0aGUgd29yZCB0byBiZSBjb21wbGV0ZWQgbXVzdCBiZSBsb2NhdGVkLiAqLwogc3RhdGljIGludAkgIGNvbXBsX3N0YXJ0ZWQgPSBGQUxTRTsKQEAgLTExMiw5ICsxMjAsMTIgQEAKIHN0YXRpYyB2b2lkIGluc19jb21wbF91cGRfcHVtIF9fQVJHUygodm9pZCkpOwogc3RhdGljIHZvaWQgaW5zX2NvbXBsX2RlbF9wdW0gX19BUkdTKCh2b2lkKSk7CiBzdGF0aWMgaW50ICBwdW1fd2FudGVkIF9fQVJHUygodm9pZCkpOworc3RhdGljIGludCAgcHVtX3R3b19vcl9tb3JlIF9fQVJHUygodm9pZCkpOwogc3RhdGljIHZvaWQgaW5zX2NvbXBsX2RpY3Rpb25hcmllcyBfX0FSR1MoKGNoYXJfdSAqZGljdCwgY2hhcl91ICpwYXQsIGludCBkaXIsIGludCBmbGFncywgaW50IHRoZXNhdXJ1cykpOwogc3RhdGljIHZvaWQgaW5zX2NvbXBsX2ZyZWUgX19BUkdTKCh2b2lkKSk7CiBzdGF0aWMgdm9pZCBpbnNfY29tcGxfY2xlYXIgX19BUkdTKCh2b2lkKSk7CitzdGF0aWMgaW50ICBpbnNfY29tcGxfYnMgX19BUkdTKCh2b2lkKSk7CitzdGF0aWMgdm9pZCBpbnNfY29tcGxfYWRkbGVhZGVyIF9fQVJHUygoaW50IGMpKTsKIHN0YXRpYyBpbnQgIGluc19jb21wbF9wcmVwIF9fQVJHUygoaW50IGMpKTsKIHN0YXRpYyBidWZfVCAqaW5zX2NvbXBsX25leHRfYnVmIF9fQVJHUygoYnVmX1QgKmJ1ZiwgaW50IGZsYWcpKTsKIHN0YXRpYyBpbnQgIGluc19jb21wbF9nZXRfZXhwIF9fQVJHUygocG9zX1QgKmluaSwgaW50IGRpcikpOwpAQCAtNjczLDEzICs2ODQsMjYgQEAKIAlpZiAoYyA9PSBLX0RPV04gJiYgcHVtX3Zpc2libGUoKSkKIAkgICAgYyA9IEN0cmxfTjsKIAorCS8qIFdoZW4gdXNpbmcgQlMgd2hpbGUgdGhlIHBvcHVwIG1lbnUgaXMgd2FudGVkIGFuZCBzdGlsbCBhZnRlciB0aGUKKwkgKiBjaGFyYWN0ZXIgd2hlcmUgY29tcGxldGlvbiBzdGFydGVkOiBDaGFuZ2UgdGhlIHN1YnNldCBvZiBtYXRjaGVzIHRvCisJICogd2hhdCBtYXRjaGVzICJjb21wbF9sZWFkZXIiLiAqLworCWlmIChjb21wbF9zdGFydGVkICYmIHB1bV93YW50ZWQoKSAmJiBjdXJ3aW4tPndfY3Vyc29yLmNvbCA+IGNvbXBsX2NvbCkKKwl7CisJICAgIGlmICgoYyA9PSBLX0JTIHx8IGMgPT0gQ3RybF9IKSAmJiBpbnNfY29tcGxfYnMoKSkKKwkJY29udGludWU7CisKKwkgICAgLyogRWRpdGluZyB0aGUgd29yZC4gKi8KKwkgICAgaWYgKCFjb21wbF91c2VkX21hdGNoICYmIHZpbV9pc3ByaW50YyhjKSkKKwkgICAgeworCQlpbnNfY29tcGxfYWRkbGVhZGVyKGMpOworCQljb250aW51ZTsKKwkgICAgfQorCX0KKwogCS8qIFByZXBhcmUgZm9yIG9yIHN0b3AgQ1RSTC1YIG1vZGUuICBUaGlzIGRvZXNuJ3QgZG8gY29tcGxldGlvbiwgYnV0CiAJICogaXQgZG9lcyBmaXggdXAgdGhlIHRleHQgd2hlbiBmaW5pc2hpbmcgY29tcGxldGlvbi4gKi8KLQlpZiAoYyAhPSBLX0lHTk9SRSkKLQl7Ci0JICAgIGlmIChpbnNfY29tcGxfcHJlcChjKSkKLQkJY29udGludWU7Ci0JfQorCWlmIChjICE9IEtfSUdOT1JFICYmIGluc19jb21wbF9wcmVwKGMpKQorCSAgICBjb250aW51ZTsKICNlbmRpZgogCiAJLyogQ1RSTC1cIENUUkwtTiBnb2VzIHRvIE5vcm1hbCBtb2RlLApAQCAtMjE1OSw5ICsyMTgzLDYgQEAKICAgICBzdGF0aWMgaW50CiBwdW1fd2FudGVkKCkKIHsKLSAgICBjb21wbF9UICAgICAqY29tcGw7Ci0gICAgaW50CQlpOwotCiAgICAgLyogJ2NvbXBsZXRlb3B0JyBtdXN0IGNvbnRhaW4gIm1lbnUiICovCiAgICAgaWYgKCpwX2NvdCA9PSBOVUwpCiAJcmV0dXJuIEZBTFNFOwpAQCAtMjE3Myw2ICsyMTk0LDE3IEBACiAjZW5kaWYKIAkgICAgKQogCXJldHVybiBGQUxTRTsKKyAgICByZXR1cm4gVFJVRTsKK30KKworLyoKKyAqIFJldHVybiBUUlVFIGlmIHRoZXJlIGFyZSB0d28gb3IgbW9yZSBtYXRjaGVzIHRvIGJlIHNob3duIGluIHRoZSBwb3B1cCBtZW51LgorICovCisgICAgc3RhdGljIGludAorcHVtX3R3b19vcl9tb3JlKCkKK3sKKyAgICBjb21wbF9UICAgICAqY29tcGw7CisgICAgaW50CQlpOwogCiAgICAgLyogRG9uJ3QgZGlzcGxheSB0aGUgcG9wdXAgbWVudSBpZiB0aGVyZSBhcmUgbm8gbWF0Y2hlcyBvciB0aGVyZSBpcyBvbmx5CiAgICAgICogb25lIChpZ25vcmluZyB0aGUgb3JpZ2luYWwgdGV4dCkuICovCkBAIC0yMTk5LDggKzIyMzEsOSBAQAogICAgIGludAkJaTsKICAgICBpbnQJCWN1ciA9IC0xOwogICAgIGNvbG5yX1QJY29sOworICAgIGludAkJbGVhZF9sZW4gPSAwOwogCi0gICAgaWYgKCFwdW1fd2FudGVkKCkpCisgICAgaWYgKCFwdW1fd2FudGVkKCkgfHwgIXB1bV90d29fb3JfbW9yZSgpKQogCXJldHVybjsKIAogICAgIC8qIFVwZGF0ZSB0aGUgc2NyZWVuIGJlZm9yZSBkcmF3aW5nIHRoZSBwb3B1cCBtZW51IG92ZXIgaXQuICovCkBAIC0yMjExLDEyICsyMjQ0LDE4IEBACiAJLyogTmVlZCB0byBidWlsZCB0aGUgcG9wdXAgbWVudSBsaXN0LiAqLwogCWNvbXBsX21hdGNoX2FycmF5c2l6ZSA9IDA7CiAJY29tcGwgPSBjb21wbF9maXJzdF9tYXRjaDsKKwlpZiAoY29tcGxfbGVhZGVyICE9IE5VTEwpCisJICAgIGxlYWRfbGVuID0gU1RSTEVOKGNvbXBsX2xlYWRlcik7CiAJZG8KIAl7Ci0JICAgIGlmICgoY29tcGwtPmNwX2ZsYWdzICYgT1JJR0lOQUxfVEVYVCkgPT0gMCkKKwkgICAgaWYgKChjb21wbC0+Y3BfZmxhZ3MgJiBPUklHSU5BTF9URVhUKSA9PSAwCisJCSAgICAmJiAoY29tcGxfbGVhZGVyID09IE5VTEwKKwkJCXx8IFNUUk5DTVAoY29tcGwtPmNwX3N0ciwgY29tcGxfbGVhZGVyLCBsZWFkX2xlbikgPT0gMCkpCiAJCSsrY29tcGxfbWF0Y2hfYXJyYXlzaXplOwogCSAgICBjb21wbCA9IGNvbXBsLT5jcF9uZXh0OwogCX0gd2hpbGUgKGNvbXBsICE9IE5VTEwgJiYgY29tcGwgIT0gY29tcGxfZmlyc3RfbWF0Y2gpOworCWlmIChjb21wbF9tYXRjaF9hcnJheXNpemUgPT0gMCkKKwkgICAgcmV0dXJuOwogCWNvbXBsX21hdGNoX2FycmF5ID0gKGNoYXJfdSAqKilhbGxvYygodW5zaWduZWQpKHNpemVvZihjaGFyX3UgKiopCiAJCQkJCQkgICAgKiBjb21wbF9tYXRjaF9hcnJheXNpemUpKTsKIAlpZiAoY29tcGxfbWF0Y2hfYXJyYXkgIT0gTlVMTCkKQEAgLTIyMjUsNyArMjI2NCwxMCBAQAogCSAgICBjb21wbCA9IGNvbXBsX2ZpcnN0X21hdGNoOwogCSAgICBkbwogCSAgICB7Ci0JCWlmICgoY29tcGwtPmNwX2ZsYWdzICYgT1JJR0lOQUxfVEVYVCkgPT0gMCkKKwkJaWYgKChjb21wbC0+Y3BfZmxhZ3MgJiBPUklHSU5BTF9URVhUKSA9PSAwCisJCQkmJiAoY29tcGxfbGVhZGVyID09IE5VTEwKKwkJCSAgICB8fCBTVFJOQ01QKGNvbXBsLT5jcF9zdHIsIGNvbXBsX2xlYWRlciwKKwkJCQkJCQkgICAgICBsZWFkX2xlbikgPT0gMCkpCiAJCXsKIAkJICAgIGlmIChjb21wbCA9PSBjb21wbF9zaG93bl9tYXRjaCkKIAkJCWN1ciA9IGk7CkBAIC0yMjM4LDIxICsyMjgwLDEwIEBACiAgICAgZWxzZQogICAgIHsKIAkvKiBwb3B1cCBtZW51IGFscmVhZHkgZXhpc3RzLCBvbmx5IG5lZWQgdG8gZmluZCB0aGUgY3VycmVudCBpdGVtLiovCi0JaSA9IDA7Ci0JY29tcGwgPSBjb21wbF9maXJzdF9tYXRjaDsKLQlkbwotCXsKLQkgICAgaWYgKChjb21wbC0+Y3BfZmxhZ3MgJiBPUklHSU5BTF9URVhUKSA9PSAwKQotCSAgICB7Ci0JCWlmIChjb21wbCA9PSBjb21wbF9zaG93bl9tYXRjaCkKLQkJewotCQkgICAgY3VyID0gaTsKLQkJICAgIGJyZWFrOwotCQl9Ci0JCSsraTsKLQkgICAgfQotCSAgICBjb21wbCA9IGNvbXBsLT5jcF9uZXh0OwotCX0gd2hpbGUgKGNvbXBsICE9IE5VTEwgJiYgY29tcGwgIT0gY29tcGxfZmlyc3RfbWF0Y2gpOworCWZvciAoaSA9IDA7IGkgPCBjb21wbF9tYXRjaF9hcnJheXNpemU7ICsraSkKKwkgICAgaWYgKGNvbXBsX21hdGNoX2FycmF5W2ldID09IGNvbXBsX3Nob3duX21hdGNoLT5jcF9zdHIpCisJCWJyZWFrOworCWN1ciA9IGk7CiAgICAgfQogCiAgICAgaWYgKGNvbXBsX21hdGNoX2FycmF5ICE9IE5VTEwpCkBAIC0yNDcyLDYgKzI1MDMsOCBAQAogCiAgICAgdmltX2ZyZWUoY29tcGxfcGF0dGVybik7CiAgICAgY29tcGxfcGF0dGVybiA9IE5VTEw7CisgICAgdmltX2ZyZWUoY29tcGxfbGVhZGVyKTsKKyAgICBjb21wbF9sZWFkZXIgPSBOVUxMOwogCiAgICAgaWYgKGNvbXBsX2ZpcnN0X21hdGNoID09IE5VTEwpCiAJcmV0dXJuOwpAQCAtMjUwMSwxMSArMjUzNCwxMDIgQEAKICAgICBjb21wbF9tYXRjaGVzID0gMDsKICAgICB2aW1fZnJlZShjb21wbF9wYXR0ZXJuKTsKICAgICBjb21wbF9wYXR0ZXJuID0gTlVMTDsKKyAgICB2aW1fZnJlZShjb21wbF9sZWFkZXIpOworICAgIGNvbXBsX2xlYWRlciA9IE5VTEw7CiAgICAgc2F2ZV9zbSA9IC0xOwogICAgIGVkaXRfc3VibW9kZV9leHRyYSA9IE5VTEw7CiB9CiAKIC8qCisgKiBEZWxldGUgb25lIGNoYXJhY3RlciBiZWZvcmUgdGhlIGN1cnNvciBhbmQgbWFrZSBhIHN1YnNldCBvZiB0aGUgbWF0Y2hlcworICogdGhhdCBtYXRjaCBub3cuCisgKiBSZXR1cm5zIFRSVUUgaWYgdGhlIHdvcmsgaXMgZG9uZSBhbmQgYW5vdGhlciBjaGFyIHRvIGJlIGdvdCBmcm9tIHRoZSB1c2VyLgorICovCisgICAgc3RhdGljIGludAoraW5zX2NvbXBsX2JzKCkKK3sKKyAgICBjaGFyX3UJKmxpbmU7CisgICAgY2hhcl91CSpwOworCisgICAgaWYgKGN1cndpbi0+d19jdXJzb3IuY29sIDw9IGNvbXBsX2NvbCArIGNvbXBsX2xlbmd0aCkKKyAgICB7CisJLyogRGVsZXRlZCBtb3JlIHRoYW4gd2hhdCB3YXMgdXNlZCB0byBmaW5kIG1hdGNoZXMsIG5lZWQgdG8gbG9vayBmb3IKKwkgKiBtYXRjaGVzIGFsbCBvdmVyIGFnYWluLiAqLworCWluc19jb21wbF9mcmVlKCk7CisJY29tcGxfc3RhcnRlZCA9IEZBTFNFOworCWNvbXBsX21hdGNoZXMgPSAwOworICAgIH0KKworICAgIGxpbmUgPSBtbF9nZXRfY3VybGluZSgpOworICAgIHAgPSBsaW5lICsgY3Vyd2luLT53X2N1cnNvci5jb2w7CisgICAgbWJfcHRyX2JhY2sobGluZSwgcCk7CisKKyAgICB2aW1fZnJlZShjb21wbF9sZWFkZXIpOworICAgIGNvbXBsX2xlYWRlciA9IHZpbV9zdHJuc2F2ZShsaW5lICsgY29tcGxfY29sLCAocCAtIGxpbmUpIC0gY29tcGxfY29sKTsKKyAgICBpZiAoY29tcGxfbGVhZGVyICE9IE5VTEwpCisgICAgeworCWluc19jb21wbF9kZWxfcHVtKCk7CisJaW5zX2NvbXBsX2RlbGV0ZSgpOworCWluc19ieXRlcyhjb21wbF9sZWFkZXIgKyBjdXJ3aW4tPndfY3Vyc29yLmNvbCAtIGNvbXBsX2NvbCk7CisKKwlpZiAoIWNvbXBsX3N0YXJ0ZWQpCisJeworCSAgICAvKiBNYXRjaGVzIHdlcmUgY2xlYXJlZCwgbmVlZCB0byBzZWFyY2ggZm9yIHRoZW0gbm93LiAqLworCSAgICBpZiAoaW5zX2NvbXBsZXRlKEN0cmxfTikgPT0gRkFJTCkKKwkJY29tcGxfY29udF9zdGF0dXMgPSAwOworCSAgICBlbHNlCisJICAgIHsKKwkJLyogUmVtb3ZlIHRoZSBjb21wbGV0ZWQgd29yZCBhZ2Fpbi4gKi8KKwkJaW5zX2NvbXBsX2RlbGV0ZSgpOworCQlpbnNfYnl0ZXMoY29tcGxfbGVhZGVyICsgY3Vyd2luLT53X2N1cnNvci5jb2wgLSBjb21wbF9jb2wpOworCSAgICB9CisJfQorCisJLyogU2hvdyB0aGUgcG9wdXAgbWVudSB3aXRoIGEgZGlmZmVyZW50IHNldCBvZiBtYXRjaGVzLiAqLworCWluc19jb21wbF9zaG93X3B1bSgpOworCWNvbXBsX3VzZWRfbWF0Y2ggPSBGQUxTRTsKKworCXJldHVybiBUUlVFOworICAgIH0KKyAgICByZXR1cm4gRkFMU0U7Cit9CisKKy8qCisgKiBBcHBlbmQgb25lIGNoYXJhY3RlciB0byB0aGUgbWF0Y2ggbGVhZGVyLiAgTWF5IHJlZHVjZSB0aGUgbnVtYmVyIG9mCisgKiBtYXRjaGVzLgorICovCisgICAgc3RhdGljIHZvaWQKK2luc19jb21wbF9hZGRsZWFkZXIoYykKKyAgICBpbnQJCWM7Cit7CisjaWZkZWYgRkVBVF9NQllURQorICAgIGludAkJY2M7CisKKyAgICBpZiAoaGFzX21ieXRlICYmIChjYyA9ICgqbWJfY2hhcjJsZW4pKGMpKSA+IDEpCisgICAgeworCWNoYXJfdQlidWZbTUJfTUFYQllURVMgKyAxXTsKKworCSgqbWJfY2hhcjJieXRlcykoYywgYnVmKTsKKwlidWZbY2NdID0gTlVMOworCWluc19jaGFyX2J5dGVzKGJ1ZiwgY2MpOworICAgIH0KKyAgICBlbHNlCisjZW5kaWYKKwlpbnNfY2hhcihjKTsKKworICAgIHZpbV9mcmVlKGNvbXBsX2xlYWRlcik7CisgICAgY29tcGxfbGVhZGVyID0gdmltX3N0cm5zYXZlKG1sX2dldF9jdXJsaW5lKCkgKyBjb21wbF9jb2wsCisJCQkJCSAgICBjdXJ3aW4tPndfY3Vyc29yLmNvbCAtIGNvbXBsX2NvbCk7CisgICAgaWYgKGNvbXBsX2xlYWRlciAhPSBOVUxMKQorICAgIHsKKwkvKiBTaG93IHRoZSBwb3B1cCBtZW51IHdpdGggYSBkaWZmZXJlbnQgc2V0IG9mIG1hdGNoZXMuICovCisJaW5zX2NvbXBsX2RlbF9wdW0oKTsKKwlpbnNfY29tcGxfc2hvd19wdW0oKTsKKwljb21wbF91c2VkX21hdGNoID0gRkFMU0U7CisgICAgfQorfQorCisvKgogICogUHJlcGFyZSBmb3IgSW5zZXJ0IG1vZGUgY29tcGxldGlvbiwgb3Igc3RvcCBpdC4KICAqIENhbGxlZCBqdXN0IGFmdGVyIHR5cGluZyBhIGNoYXJhY3RlciBpbiBJbnNlcnQgbW9kZS4KICAqIFJldHVybnMgVFJVRSB3aGVuIHRoZSBjaGFyYWN0ZXIgaXMgbm90IHRvIGJlIGluc2VydGVkOwpAQCAtMzI5MCw2ICszNDE0LDcgQEAKIGluc19jb21wbF9pbnNlcnQoKQogewogICAgIGluc19ieXRlcyhjb21wbF9zaG93bl9tYXRjaC0+Y3Bfc3RyICsgY3Vyd2luLT53X2N1cnNvci5jb2wgLSBjb21wbF9jb2wpOworICAgIGNvbXBsX3VzZWRfbWF0Y2ggPSBUUlVFOwogfQogCiAvKgpAQCAtMzMxNyw2ICszNDQyLDggQEAKICAgICBpbnQJICAgIG51bV9tYXRjaGVzID0gLTE7CiAgICAgaW50CSAgICBpOwogICAgIGludAkgICAgdG9kbyA9IGNvdW50OworICAgIGNvbXBsX1QgKmZvdW5kX2NvbXBsID0gTlVMTDsKKyAgICBpbnQJICAgIGZvdW5kX2VuZCA9IEZBTFNFOwogCiAgICAgaWYgKGFsbG93X2dldF9leHBhbnNpb24pCiAgICAgewpAQCAtMzMzMiwzMiArMzQ1OSw0NiBAQAogCWlmIChjb21wbF9zaG93c19kaXIgPT0gRk9SV0FSRCAmJiBjb21wbF9zaG93bl9tYXRjaC0+Y3BfbmV4dCAhPSBOVUxMKQogCXsKIAkgICAgY29tcGxfc2hvd25fbWF0Y2ggPSBjb21wbF9zaG93bl9tYXRjaC0+Y3BfbmV4dDsKLQkgICAgaWYgKGNvbXBsX3Nob3duX21hdGNoLT5jcF9uZXh0ICE9IE5VTEwKLQkJCSAgICYmIGNvbXBsX3Nob3duX21hdGNoLT5jcF9uZXh0ID09IGNvbXBsX2ZpcnN0X21hdGNoKQotCQlicmVhazsKKwkgICAgZm91bmRfZW5kID0gKGNvbXBsX2ZpcnN0X21hdGNoICE9IE5VTEwKKwkJCSAgICYmIChjb21wbF9zaG93bl9tYXRjaC0+Y3BfbmV4dCA9PSBjb21wbF9maXJzdF9tYXRjaAorCQkJICAgICAgIHx8IGNvbXBsX3Nob3duX21hdGNoID09IGNvbXBsX2ZpcnN0X21hdGNoKSk7CiAJfQogCWVsc2UgaWYgKGNvbXBsX3Nob3dzX2RpciA9PSBCQUNLV0FSRAogCQkJCQkmJiBjb21wbF9zaG93bl9tYXRjaC0+Y3BfcHJldiAhPSBOVUxMKQogCXsKKwkgICAgZm91bmRfZW5kID0gKGNvbXBsX3Nob3duX21hdGNoID09IGNvbXBsX2ZpcnN0X21hdGNoKTsKIAkgICAgY29tcGxfc2hvd25fbWF0Y2ggPSBjb21wbF9zaG93bl9tYXRjaC0+Y3BfcHJldjsKLQkgICAgaWYgKGNvbXBsX3Nob3duX21hdGNoID09IGNvbXBsX2ZpcnN0X21hdGNoKQotCQlicmVhazsKKwkgICAgZm91bmRfZW5kIHw9IChjb21wbF9zaG93bl9tYXRjaCA9PSBjb21wbF9maXJzdF9tYXRjaCk7CiAJfQogCWVsc2UKIAl7CiAJICAgIGNvbXBsX3BlbmRpbmcgPSBUUlVFOwotCSAgICBpZiAoYWxsb3dfZ2V0X2V4cGFuc2lvbikKLQkgICAgewotCQludW1fbWF0Y2hlcyA9IGluc19jb21wbF9nZXRfZXhwKCZjb21wbF9zdGFydHBvcywKLQkJCQkJCQkgICAgIGNvbXBsX2RpcmVjdGlvbik7Ci0JCWlmIChjb21wbF9wZW5kaW5nKQotCQl7Ci0JCSAgICBpZiAoY29tcGxfZGlyZWN0aW9uID09IGNvbXBsX3Nob3dzX2RpcikKLQkJCWNvbXBsX3Nob3duX21hdGNoID0gY29tcGxfY3Vycl9tYXRjaDsKLQkJfQotCSAgICB9Ci0JICAgIGVsc2UKKwkgICAgaWYgKCFhbGxvd19nZXRfZXhwYW5zaW9uKQogCQlyZXR1cm4gLTE7CisKKwkgICAgbnVtX21hdGNoZXMgPSBpbnNfY29tcGxfZ2V0X2V4cCgmY29tcGxfc3RhcnRwb3MsIGNvbXBsX2RpcmVjdGlvbik7CisJICAgIGlmIChjb21wbF9wZW5kaW5nICYmIGNvbXBsX2RpcmVjdGlvbiA9PSBjb21wbF9zaG93c19kaXIpCisJCWNvbXBsX3Nob3duX21hdGNoID0gY29tcGxfY3Vycl9tYXRjaDsKKwkgICAgZm91bmRfZW5kID0gRkFMU0U7CisJfQorCWlmICgoY29tcGxfc2hvd25fbWF0Y2gtPmNwX2ZsYWdzICYgT1JJR0lOQUxfVEVYVCkgPT0gMAorCQkmJiBjb21wbF9sZWFkZXIgIT0gTlVMTAorCQkmJiBTVFJOQ01QKGNvbXBsX3Nob3duX21hdGNoLT5jcF9zdHIsCisJCQkJICAgICBjb21wbF9sZWFkZXIsIFNUUkxFTihjb21wbF9sZWFkZXIpKSAhPSAwKQorCSAgICArK3RvZG87CisJZWxzZQorCSAgICAvKiBSZW1lbWJlciBhIG1hdGNoaW5nIGl0ZW0uICovCisJICAgIGZvdW5kX2NvbXBsID0gY29tcGxfc2hvd25fbWF0Y2g7CisKKwkvKiBTdG9wIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3Qgd2hlbiB3ZSBmb3VuZCBhIHVzYWJsZSBtYXRjaC4gKi8KKwlpZiAoZm91bmRfZW5kKQorCXsKKwkgICAgaWYgKGZvdW5kX2NvbXBsICE9IE5VTEwpCisJICAgIHsKKwkJY29tcGxfc2hvd25fbWF0Y2ggPSBmb3VuZF9jb21wbDsKKwkJYnJlYWs7CisJICAgIH0KKwkgICAgdG9kbyA9IDE7CSAgICAvKiB1c2UgZmlyc3QgdXNhYmxlIG1hdGNoIGFmdGVyIHdyYXBwaW5nIGFyb3VuZCAqLwogCX0KICAgICB9CiAKZGlmZiAtLWdpdCBhL3NyYy9nbG9iYWxzLmggYi9zcmMvZ2xvYmFscy5oCmluZGV4IDgyYzQyYjIuLjgzYjYyNjcgMTAwNjQ0Ci0tLSBhL3NyYy9nbG9iYWxzLmgKKysrIGIvc3JjL2dsb2JhbHMuaApAQCAtMTA1LDggKzEwNSw4IEBACiAgKiBWYXJpYWJsZXMgZm9yIEluc2VydCBtb2RlIGNvbXBsZXRpb24uCiAgKi8KIAotLyogbGVuZ3RoIG9mIHRoZSB0ZXh0IGJlaW5nIGNvbXBsZXRlZCAodGhpcyBpcyBkZWxldGVkIHRvIGJlIHJlcGxhY2VkIGJ5IHRoZQotICogbWF0Y2gpICovCisvKiBMZW5ndGggaW4gYnl0ZXMgb2YgdGhlIHRleHQgYmVpbmcgY29tcGxldGVkICh0aGlzIGlzIGRlbGV0ZWQgdG8gYmUgcmVwbGFjZWQKKyAqIGJ5IHRoZSBtYXRjaC4pICovCiBFWFRFUk4gaW50CWNvbXBsX2xlbmd0aCBJTklUKD0gMCk7CiAKIC8qIFNldCB3aGVuIGNoYXJhY3RlciB0eXBlZCB3aGlsZSBsb29raW5nIGZvciBtYXRjaGVzIGFuZCBpdCBtZWFucyB3ZSBzaG91bGQKZGlmZiAtLWdpdCBhL3NyYy9wby9qYS5zamlzLnBvIGIvc3JjL3BvL2phLnNqaXMucG8KaW5kZXggZTQ3YWVlOC4uNTZhNGE2MyAxMDA2NDQKLS0tIGEvc3JjL3BvL2phLnNqaXMucG8KKysrIGIvc3JjL3BvL2phLnNqaXMucG8KQEAgLTMsMTQgKzMsMTQgQEAKICMgRG8gIjpoZWxwIHVnYW5kYSIgIGluIFZpbSB0byByZWFkIGNvcHlpbmcgYW5kIHVzYWdlIGNvbmRpdGlvbnMuCiAjIERvICI6aGVscCBjcmVkaXRzIiBpbiBWaW0gdG8gc2VlIGEgbGlzdCBvZiBwZW9wbGUgd2hvIGNvbnRyaWJ1dGVkLgogIwotIyBNVVJBT0tBIFRhcm8gPGtvcm9uQHRrYS5hdHQubmUuanA+LCAyMDAxLTUuCi0jIExhc3QgQ2hhbmdlOiAwNS1NYXItMjAwNS4KKyMgTVVSQU9LQSBUYXJvIDxrb3JvbkB0a2EuYXR0Lm5lLmpwPiwgMjAwMS02LgorIyBMYXN0IENoYW5nZTogMDUtRmViLTIwMDYuCiAjCiBtc2dpZCAiIgogbXNnc3RyICIiCiAiUHJvamVjdC1JZC1WZXJzaW9uOiBWaW0gNy4wXG4iCi0iUE9ULUNyZWF0aW9uLURhdGU6IDIwMDUtMDMtMDQgMTM6MTErMDkwMFxuIgotIlBPLVJldmlzaW9uLURhdGU6IDIwMDQtMDMtMDUgMDA6NTArMDkwMFxuIgorIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDA2LTAyLTA0IDIyOjQ0KzA5MDBcbiIKKyJQTy1SZXZpc2lvbi1EYXRlOiAyMDA2LTAyLTA1IDAwOjEwKzA5MDBcbiIKICJMYXN0LVRyYW5zbGF0b3I6IE1VUkFPS0EgVGFybyA8a29yb25AdGthLmF0dC5uZS5qcD5cbiIKICJMYW5ndWFnZS1UZWFtOiBNVVJBT0tBIFRhcm8gPGtvcm9uQHRrYS5hdHQubmUuanA+XG4iCiAiTUlNRS1WZXJzaW9uOiAxLjBcbiIKQEAgLTE1Miw2ICsxNTIsOSBAQAogIlxuIgogIiMgg2+DYoN0g0CDioNYg2c6XG4iCiAKK21zZ2lkICJbTG9jYXRpb24gTGlzdF0iCittc2dzdHIgIluP6o+Kg4qDWINnXSIKKwogbXNnaWQgIltFcnJvciBMaXN0XSIKIG1zZ3N0ciAiW4NHg4mBW4OKg1iDZ10iCiAKQEAgLTIxNCwxMyArMjE3LDggQEAKIG1zZ3N0ciAiIINMgVuDj4Fbg2iV4oquICheTl5QKSIKIAogIy4gY3RybF94X21vZGUgPT0gMCwgXlAvXk4gY29tcGwuCi1tc2dpZCAiIF5YIG1vZGUgKF5FXlleTF5dXkZeSV5LXkReVV5WXk5eUCkiCi1tc2dzdHIgIiBeWCCDgoFbg2ggKF5FXlleTF5dXkZeSV5LXkReVV5WXk5eUCkiCi0KLSMuIFNjcm9sbCBoYXMgaXQncyBvd24gbXNncywgaW4gaXQncyBwbGFjZSB0aGVyZSBpcyB0aGUgbXNnIGZvciBsb2NhbAotIy4gKiBjdHJsX3hfbW9kZSA9IDAgKGVnIGNvbnRpbnVlX3N0YXR1cyAmIENPTlRfTE9DQUwpICAtLSBBY2V2ZWRvCi1tc2dpZCAiIEtleXdvcmQgTG9jYWwgY29tcGxldGlvbiAoXk5eUCkiCi1tc2dzdHIgIiCLx4+Kg0yBW4OPgVuDaJXiiq4gKF5OXlApIgorbXNnaWQgIiBeWCBtb2RlICheXV5EXkVeRl5JXkteTF5OXk9eUF5TXlVeVl5ZKSIKK21zZ3N0ciAiIF5YIIOCgVuDaCAoXl1eRF5FXkZeSV5LXkxeTl5PXlBeU15VXlZeWSkiCiAKIG1zZ2lkICIgV2hvbGUgbGluZSBjb21wbGV0aW9uICheTF5OXlApIgogbXNnc3RyICIgjXMokVORzCmV4oquICheTF5OXlApIgpAQCAtMjQ5LDE1ICsyNDcsMjQgQEAKIG1zZ2lkICIgVXNlciBkZWZpbmVkIGNvbXBsZXRpb24gKF5VXk5eUCkiCiBtc2dzdHIgIiCDhoFbg1WS6ItgleKKriAoXlVeTl5QKSIKIAorbXNnaWQgIiBPbW5pIGNvbXBsZXRpb24gKF5PXk5eUCkiCittc2dzdHIgIiCDSYOAg2qV4oquICheT15OXlApIgorCittc2dpZCAiIFNwZWxsaW5nIHN1Z2dlc3Rpb24gKF5TXk5eUCkiCittc2dzdHIgIiCS1ILoj0OQs4zzleIgKF5TXk5eUCkiCisKK21zZ2lkICIgS2V5d29yZCBMb2NhbCBjb21wbGV0aW9uICheTl5QKSIKK21zZ3N0ciAiIIvHj4qDTIFbg4+BW4NoleKKriAoXk5eUCkiCisKIG1zZ2lkICJIaXQgZW5kIG9mIHBhcmFncmFwaCIKIG1zZ3N0ciAikmmXjoLMjcWM44LJg3GDYoNnIgogCi1tc2dpZCAiJ3RoZXNhdXJ1cycgb3B0aW9uIGlzIGVtcHR5IgotbXNnc3RyICIndGhlc2F1cnVzJyCDSYN2g1aDh4OTgqqL84LFgrciCi0KIG1zZ2lkICInZGljdGlvbmFyeScgb3B0aW9uIGlzIGVtcHR5IgogbXNnc3RyICInZGljdGlvbmFyeScgg0mDdoNWg4eDk4Kqi/OCxYK3IgogCittc2dpZCAiJ3RoZXNhdXJ1cycgb3B0aW9uIGlzIGVtcHR5IgorbXNnc3RyICIndGhlc2F1cnVzJyCDSYN2g1aDh4OTgqqL84LFgrciCisKICMsIGMtZm9ybWF0CiBtc2dpZCAiU2Nhbm5pbmcgZGljdGlvbmFyeTogJXMiCiBtc2dzdHIgIo6rj5GC8INYg0yDg4OTkoY6ICVzIgpAQCAtMzIxLDcgKzMyOCw3IEBACiBtc2dzdHIgIkU2ODY6ICVzIILMiPiQlILNg4qDWINnjF6CxYLIgq+C6oLOgsiC6ILcgrmC8SIKIAogIywgYy1mb3JtYXQKLW1zZ2lkICJFNzEyOiBBcmd1bWVudCBvZiAlcyBtdXN0IGJlIGEgTGlzdCBvciBEaWN0aW9uYWFyeSIKK21zZ2lkICJFNzEyOiBBcmd1bWVudCBvZiAlcyBtdXN0IGJlIGEgTGlzdCBvciBEaWN0aW9uYXJ5IgogbXNnc3RyICJFNzEyOiAlcyCCzIj4kJSCzYOKg1iDZ4xegtyCvYLNjquPkYxegsWCyIKvguqCzoLIguiC3IK5gvEiCiAKIG1zZ2lkICJFNzEzOiBDYW5ub3QgdXNlIGVtcHR5IGtleSBmb3IgRGljdGlvbmFyeSIKQEAgLTM2Miw2ICszNjksMTAgQEAKIG1zZ2lkICJFMTMwOiBVbmtub3duIGZ1bmN0aW9uOiAlcyIKIG1zZ3N0ciAiRTEzMDoglqKSbYLMitaQlILFgrc6ICVzIgogCisjLCBjLWZvcm1hdAorbXNnaWQgIkU0NjE6IElsbGVnYWwgdmFyaWFibGUgbmFtZTogJXMiCittc2dzdHIgIkU0NjE6IJVzkLOCyJXPkJSWvILFgrc6ICVzIgorCiBtc2dpZCAiRTY4NzogTGVzcyB0YXJnZXRzIHRoYW4gTGlzdCBpdGVtcyIKIG1zZ3N0ciAiRTY4Nzogg16BW4NRg2KDZ4Kqg4qDWINnjF6T4ILMl3aRZoLmguiC4I+tgsiCooLFgrciCiAKQEAgLTQ2MCw4ICs0NzEsOSBAQAogbXNnaWQgIkU3MjA6IE1pc3NpbmcgY29sb24gaW4gRGljdGlvbmFyeTogJXMiCiBtc2dzdHIgIkU3MjA6II6rj5GMXoLJg1KDjYOTgqqCoILogtyCuYLxOiAlcyIKIAotbXNnaWQgIkU3MjE6IER1cGxpY2F0ZSBrZXkgaW4gRGljdGlvbmFyeSIKLW1zZ3N0ciAiRTcyMTogjquPkYxegsmPZJWhg0yBW4KqgruC8YK0gqKCtYLcgrciCisjLCBjLWZvcm1hdAorbXNnaWQgIkU3MjE6IER1cGxpY2F0ZSBrZXkgaW4gRGljdGlvbmFyeTogXCIlc1wiIgorbXNnc3RyICJFNzIxOiCOq4+RjF6CyY9klaGDTIFbgqqCoILogtyCtzogXCIlc1wiIgogCiAjLCBjLWZvcm1hdAogbXNnaWQgIkU3MjI6IE1pc3NpbmcgY29tbWEgaW4gRGljdGlvbmFyeTogJXMiCkBAIC01NzEsMTIgKzU4Myw4IEBACiBtc2dzdHIgIkU3MDQ6IIrWkJSOUY/GjF6Vz5CUlryCzZHllbaOmoLFjm6C3ILngsiCr4Lqgs6CyILogtyCuYLxOiAlcyIKIAogIywgYy1mb3JtYXQKLW1zZ2lkICI3MDU6IFZhcmlhYmxlIG5hbWUgY29uZmxpY3RzIHdpdGggZXhpc3RpbmcgZnVuY3Rpb246ICVzIgotbXNnc3RyICI3MDU6IJXPkJSWvIKqivmRtoLMitaQlJa8gsaP1ZPLgrWC3IK3OiAlcyIKLQotIywgYy1mb3JtYXQKLW1zZ2lkICJFNDYxOiBJbGxlZ2FsIHZhcmlhYmxlIG5hbWU6ICVzIgotbXNnc3RyICJFNDYxOiCVc5CzgsiVz5CUlryCxYK3OiAlcyIKK21zZ2lkICJFNzA1OiBWYXJpYWJsZSBuYW1lIGNvbmZsaWN0cyB3aXRoIGV4aXN0aW5nIGZ1bmN0aW9uOiAlcyIKK21zZ3N0ciAiRTcwNToglc+QlJa8gqqK+ZG2gsyK1pCUlryCxo/Vk8uCtYLcgrc6ICVzIgogCiAjLCBjLWZvcm1hdAogbXNnaWQgIkU3MDY6IFZhcmlhYmxlIHR5cGUgbWlzbWF0Y2ggZm9yOiAlcyIKQEAgLTYyNSw3ICs2MzMsNiBAQAogbXNnaWQgIkUxMzI6IEZ1bmN0aW9uIGNhbGwgZGVwdGggaXMgaGlnaGVyIHRoYW4gJ21heGZ1bmNkZXB0aCciCiBtc2dzdHIgIkUxMzI6IIrWkJSMxI9vgsyT/ILqjnGQlIKqICdtYXhmdW5jZGVwdGgnIILwkrSCpoLcgrWCvSIKIAotIy4gYWx3YXlzIHNjcm9sbCB1cCwgZG9uJ3Qgb3ZlcndyaXRlCiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbGxpbmcgJXMiCiBtc2dzdHIgIiVzIILwjsCNc5KGgsWCtyIKQEAgLTY0Miw3ICs2NDksNiBAQAogbXNnaWQgIiVzIHJldHVybmluZyAlcyIKIG1zZ3N0ciAiJXMggqogJXMggvCV1IK1gtyCtYK9IgogCi0jLiBhbHdheXMgc2Nyb2xsIHVwLCBkb24ndCBvdmVyd3JpdGUKICMsIGMtZm9ybWF0CiBtc2dpZCAiY29udGludWluZyBpbiAlcyIKIG1zZ3N0ciAiJXMggsyOwI1zgvCMcJGxkoaCxYK3IgpAQCAtNjU3LDYgKzY2MywxMyBAQAogIlxuIgogIiMgg0+DjYFbg2+Di5XPkJQ6XG4iCiAKK21zZ2lkICIiCisiXG4iCisiXHRMYXN0IHNldCBmcm9tICIKK21zZ3N0ciAiIgorIlxuIgorIlx0TGFzdCBzZXQgZnJvbSAiCisKICMsIGMtZm9ybWF0CiBtc2dpZCAiPCVzPiVzJXMgICVkLCAgSGV4ICUwMngsICBPY3RhbCAlMDNvIgogbXNnc3RyICI8JXM+JXMlcyAgJWQsICAxNpBpkJQgJTAyeCwgIDiQaZCUICUwM28iCkBAIC03NDIsMTEgKzc1NSw2IEBACiBtc2dpZCAiU2F2ZSBBcyIKIG1zZ3N0ciAilcqWvILFlduRtiIKIAotIy4gT3ZlcndyaXRpbmcgYSBmaWxlIHRoYXQgaXMgbG9hZGVkIGluIGFub3RoZXIgYnVmZmVyIGlzIG5vdCBhCi0jLiAqIGdvb2QgaWRlYS4KLW1zZ2lkICJFMTM5OiBGaWxlIGlzIGxvYWRlZCBpbiBhbm90aGVyIGJ1ZmZlciIKLW1zZ3N0ciAiRTEzOTogk6+Ctpa8kU+CzIN0g0CDQ4OLgqqRvILMg2+DYoN0g0CCxZPHjZ6C3ILqgsSCooLcgrciCi0KIG1zZ2lkICJXcml0ZSBwYXJ0aWFsIGZpbGU/IgogbXNnc3RyICKDdINAg0ODi4LwlZSVqpNJgsmV25G2grWC3IK3gqk/IgogCkBAIC03NTQsOCArNzYyLDE2IEBACiBtc2dzdHIgIkUxNDA6IINvg2KDdINAgvCVlJWqk0mCyZXbkbaCt4LpgsmCzSAhIILwjmeCwYLEgq2CvoKzgqIiCiAKICMsIGMtZm9ybWF0Ci1tc2dpZCAiT3ZlcndyaXRlIGV4aXN0aW5nIGZpbGUgXCIlLipzXCI/IgotbXNnc3RyICKK+ZG2gsyDdINAg0ODiyBcIiUuKnNcIiCC8I/jj5GCq4K1gtyCt4KpPyIKK21zZ2lkICJPdmVyd3JpdGUgZXhpc3RpbmcgZmlsZSBcIiVzXCI/IgorbXNnc3RyICKK+ZG2gsyDdINAg0ODiyBcIiVzXCIggvCP44+RgquCtYLcgreCqT8iCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3dhcCBmaWxlIFwiJXNcIiBleGlzdHMsIG92ZXJ3cml0ZSBhbnl3YXk/IgorbXNnc3RyICKDWIOPg2KDdoN0g0CDQ4OLIFwiJXNcIiCCqpG2jd2CtYLcgrcuII/jj5GCq4Lwi62Qp4K1gtyCt4KpPyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJFNzY4OiBTd2FwIGZpbGUgZXhpc3RzOiAlcyAoOnNpbGVudCEgb3ZlcnJpZGVzKSIKK21zZ3N0ciAiRTc2ODogg1iDj4Nig3aDdINAg0ODi4KqkbaN3YK1gtyCtzogJXMgKDpzaWxlbnQhIILwkseJwYLFj+OPkSkiCiAKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTE0MTogTm8gZmlsZSBuYW1lIGZvciBidWZmZXIgJWxkIgpAQCAtNzY2LDExICs3ODIsMTEgQEAKIAogIywgYy1mb3JtYXQKIG1zZ2lkICIiCi0iJ3JlYWRvbmx5JyBvcHRpb24gaXMgc2V0IGZvciBcIiUuKnNcIi5cbiIKKyIncmVhZG9ubHknIG9wdGlvbiBpcyBzZXQgZm9yIFwiJXNcIi5cbiIKICJEbyB5b3Ugd2lzaCB0byB3cml0ZSBhbnl3YXk/IgogbXNnc3RyICIiCi0iXCIlLipzXCIggsmCzSAncmVhZG9ubHknIINJg3aDVoOHg5OCqpDdkuiCs4LqgsSCooLcgrdcbiIKLSKLrZCnk0mCyY/jj5GCq4K1gtyCt4KpPyIKKyJcIiVzXCIggsmCzSAncmVhZG9ubHknIINJg3aDVoOHg5OCqpDdkuiCs4LqgsSCooLcgrcuXG4iCisij+OPkYKri62Qp4LwgrWC3IK3gqk/IgogCiBtc2dpZCAiRWRpdCBGaWxlIgogbXNnc3RyICKDdINAg0ODi4LwldKPVyIKQEAgLTk0MCw4ICs5NTYsOCBAQAogbXNnc3RyICJFNzUwOiCPiYLfgskgOnByb2ZpbGUgc3RhcnQgPGZuYW1lPiCC8I7AjXOCtYLEgq2CvoKzgqIiCiAKICMsIGMtZm9ybWF0Ci1tc2dpZCAiU2F2ZSBjaGFuZ2VzIHRvIFwiJS4qc1wiPyIKLW1zZ3N0ciAilc+NWILwIFwiJS4qc1wiIILJlduRtoK1gtyCt4KpPyIKK21zZ2lkICJTYXZlIGNoYW5nZXMgdG8gXCIlc1wiPyIKK21zZ3N0ciAilc+NWILwIFwiJXNcIiCCyZXbkbaCtYLcgreCqT8iCiAKIG1zZ2lkICJVbnRpdGxlZCIKIG1zZ3N0ciAilrOR6CIKQEAgLTEwMTUsOTAgKzEwMzEsNiBAQAogbXNnc3RyICJFMTY4OiA6ZmluaXNoIIKqjuaNnoNYg06DioN2g2eIyIpPgsWOZ5dwgrOC6oLcgrWCvSIKIAogIywgYy1mb3JtYXQKLW1zZ2lkICJQYWdlICVkIgotbXNnc3RyICIlZCCDeYFbg1ciCi0KLW1zZ2lkICJObyB0ZXh0IHRvIGJlIHByaW50ZWQiCi1tc2dzdHIgIojzjfyCt4Lpg2WDTINYg2eCqoKgguiC3IK5gvEiCi0KLW1zZ2lkICJQcmludGluZyBwYWdlICVkICglZCUlKSIKLW1zZ3N0ciAiiPON/JKGOiCDeYFbg1cgJWQgKCVkJSUpIgotCi0jLCBjLWZvcm1hdAotbXNnaWQgIiBDb3B5ICVkIG9mICVkIgotbXNnc3RyICIgg1KDc4FbICVkICiRUyAlZCCShikiCi0KLSMsIGMtZm9ybWF0Ci1tc2dpZCAiUHJpbnRlZDogJXMiCi1tc2dzdHIgIojzjfyCtYLcgrWCvTogJXMiCi0KLW1zZ2lkICJQcmludGluZyBhYm9ydGVkIgotbXNnc3RyICKI8438gqqSho5+grOC6oLcgrWCvSIKLQotbXNnaWQgIkU0NTU6IEVycm9yIHdyaXRpbmcgdG8gUG9zdFNjcmlwdCBvdXRwdXQgZmlsZSIKLW1zZ3N0ciAiRTQ1NTogUG9zdFNjcmlwdI9vl82DdINAg0ODi4LMj5GNnoLdg0eDiYFbgsWCtyIKLQotIywgYy1mb3JtYXQKLW1zZ2lkICJFNjI0OiBDYW4ndCBvcGVuIGZpbGUgXCIlc1wiIgotbXNnc3RyICJFNjI0OiCDdINAg0ODiyBcIiVzXCIggvCKSoKvgtyCuYLxIgotCi0jLCBjLWZvcm1hdAotbXNnaWQgIkU0NTc6IENhbid0IHJlYWQgUG9zdFNjcmlwdCByZXNvdXJjZSBmaWxlIFwiJXNcIiIKLW1zZ3N0ciAiRTQ1NzogUG9zdFNjcmlwdILMg4qDXFyBW4NYg3SDQINDg4sgXCIlc1wiIILwk8eNnoLfgtyCuYLxIgotCi0jLCBjLWZvcm1hdAotbXNnaWQgIkU2MTg6IGZpbGUgXCIlc1wiIGlzIG5vdCBhIFBvc3RTY3JpcHQgcmVzb3VyY2UgZmlsZSIKLW1zZ3N0ciAiRTYxODogg3SDQINDg4sgXCIlc1wiIILNIFBvc3RTY3JpcHQgg4qDXFyBW4NYg3SDQINDg4uCxYLNgqCC6ILcgrmC8SIKLQotIywgYy1mb3JtYXQKLW1zZ2lkICJFNjE5OiBmaWxlIFwiJXNcIiBpcyBub3QgYSBzdXBwb3J0ZWQgUG9zdFNjcmlwdCByZXNvdXJjZSBmaWxlIgotbXNnc3RyICJFNjE5OiCDdINAg0ODiyBcIiVzXCIggs2RzomegrWCxIKigsiCoiBQb3N0U2NyaXB0IIOKg1xcgVuDWIN0g0CDQ4OLgsWCtyIKLQotIywgYy1mb3JtYXQKLW1zZ2lkICJFNjIxOiBcIiVzXCIgcmVzb3VyY2UgZmlsZSBoYXMgd3JvbmcgdmVyc2lvbiIKLW1zZ3N0ciAiRTYyMTogg4qDXFyBW4NYg3SDQINDg4sgXCIlc1wiIILNg2+BW4NXg4eDk4KqiNmCyILogtyCtyIKLQotbXNnaWQgIkU2NzM6IEluY29tcGF0aWJsZSBtdWx0aS1ieXRlIGVuY29kaW5nIGFuZCBjaGFyYWN0ZXIgc2V0LiIKLW1zZ3N0ciAiRTY3MzogjN2Kt5CrgsyWs4Kig32Di4Ngg2+DQ4Nng0eDk4NSgVuDZoNCg5ODT4LGlbaOmoNag2KDZ4LFgrciCi0KLW1zZ2lkICJFNjc0OiBwcmludG1iY2hhcnNldCBjYW5ub3QgYmUgZW1wdHkgd2l0aCBtdWx0aS1ieXRlIGVuY29kaW5nLiIKLW1zZ3N0ciAiRTY3NDogg32Di4Ngg2+DQ4Nng0eDk4NSgVuDZoNCg5ODT4LFgs0gcHJpbnRtYmNoYXJzZXQggvCL84LJgsWCq4LcgrmC8SIKLQotbXNnaWQgIkU2NzU6IE5vIGRlZmF1bHQgZm9udCBzcGVjZmlmZWQgZm9yIG11bHRpLWJ5dGUgcHJpbnRpbmcuIgotbXNnc3RyICIiCi0iRTY3NTogg32Di4Ngg2+DQ4NnlbaOmoLwiPON/IK3gumCvYLfgsyDZoN0g0iDi4Nng3SDSIOTg2eCqo53kuiCs4LqgsSCooLcgrmC8SIKLQotbXNnaWQgIkUzMjQ6IENhbid0IG9wZW4gUG9zdFNjcmlwdCBvdXRwdXQgZmlsZSIKLW1zZ3N0ciAiRTMyNDogUG9zdFNjcmlwdI9vl82XcILMg3SDQINDg4uC8IpKgq+C3IK5gvEiCi0KLSMsIGMtZm9ybWF0Ci1tc2dpZCAiRTQ1NjogQ2FuJ3Qgb3BlbiBmaWxlIFwiJXNcIiIKLW1zZ3N0ciAiRTQ1Njogg3SDQINDg4sgXCIlc1wiIILwikqCr4LcgrmC8SIKLQotbXNnaWQgIkU0NTY6IENhbid0IGZpbmQgUG9zdFNjcmlwdCByZXNvdXJjZSBmaWxlIFwicHJvbG9nLnBzXCIiCi1tc2dzdHIgIkU0NTY6IFBvc3RTY3JpcHSCzIOKg1xcgVuDWIN0g0CDQ4OLIFwicHJvbG9nLnBzXCIggqqC3YLCgqmC6ILcgrmC8SIKLQotbXNnaWQgIkU0NTY6IENhbid0IGZpbmQgUG9zdFNjcmlwdCByZXNvdXJjZSBmaWxlIFwiY2lkZm9udC5wc1wiIgotbXNnc3RyICJFNDU2OiBQb3N0U2NyaXB0gsyDioNcXIFbg1iDdINAg0ODiyBcImNpZGZvbnQucHNcIiCCqoLdgsKCqYLogtyCuYLxIgotCi0jLCBjLWZvcm1hdAotbXNnaWQgIkU0NTY6IENhbid0IGZpbmQgUG9zdFNjcmlwdCByZXNvdXJjZSBmaWxlIFwiJXMucHNcIiIKLW1zZ3N0ciAiRTQ1NjogUG9zdFNjcmlwdILMg4qDXFyBW4NYg3SDQINDg4sgXCIlcy5wc1wiIIKqgt2CwoKpguiC3IK5gvEiCi0KLSMsIGMtZm9ybWF0Ci1tc2dpZCAiRTYyMDogVW5hYmxlIHRvIGNvbnZlcnQgdG8gcHJpbnQgZW5jb2RpbmcgXCIlc1wiIgotbXNnc3RyICJFNjIwOiCI8438g0eDk4NSgVuDaCBcIiVzXCIggtaVz4q3gsWCq4LcgrmC8SIKLQotbXNnaWQgIlNlbmRpbmcgdG8gcHJpbnRlci4uLiIKLW1zZ3N0ciAig3aDioOTg16CyZGXkE2Shi4uLiIKLQotbXNnaWQgIkUzNjU6IEZhaWxlZCB0byBwcmludCBQb3N0U2NyaXB0IGZpbGUiCi1tc2dzdHIgIkUzNjU6IFBvc3RTY3JpcHSDdINAg0ODi4LMiPON/ILJjriUc4K1gtyCtYK9IgotCi1tc2dpZCAiUHJpbnQgam9iIHNlbnQuIgotbXNnc3RyICKI8438g1eDh4N1gvCRl5BNgrWC3IK1gr0uIgotCi0jLCBjLWZvcm1hdAogbXNnaWQgIkN1cnJlbnQgJXNsYW5ndWFnZTogXCIlc1wiIgogbXNnc3RyICKMu43dgswgJXOMvozqOiBcIiVzXCIiCiAKQEAgLTExODUsMTggKzExMTcsOCBAQAogbXNnaWQgIkUxNzg6IEludmFsaWQgZGVmYXVsdCB2YWx1ZSBmb3IgY291bnQiCiBtc2dzdHIgIkUxNzg6IINKg0WDk4NngsyPyJeqkmyCqpazjPiCxYK3IgogCi1tc2dpZCAiRTE3OTogYXJndW1lbnQgcmVxdWlyZWQgZm9yIGNvbXBsZXRlIgotbXNnc3RyICJFMTc5OiCV4oqugsyCvYLfgsyI+JCUgqqVS5d2gsWCtyIKLQotIywgYy1mb3JtYXQKLW1zZ2lkICJFMTgwOiBJbnZhbGlkIGNvbXBsZXRlIHZhbHVlOiAlcyIKLW1zZ3N0ciAiRTE4MDoglrOM+ILIleKKro53kuiCxYK3OiAlcyIKLQotbXNnaWQgIkU0Njg6IENvbXBsZXRpb24gYXJndW1lbnQgb25seSBhbGxvd2VkIGZvciBjdXN0b20gY29tcGxldGlvbiIKLW1zZ3N0ciAiRTQ2ODogleKKroj4kJSCzYNKg1iDXoOAleKKroLFgrWCqY5nl3CCxYKrgtyCuYLxIgotCi1tc2dpZCAiRTQ2NzogQ3VzdG9tIGNvbXBsZXRpb24gcmVxdWlyZXMgYSBmdW5jdGlvbiBhcmd1bWVudCIKLW1zZ3N0ciAiRTQ2Nzogg0qDWINeg4CV4oqugsmCzYj4kJSCxoK1gsSK1pCUgqqVS5d2gsWCtyIKK21zZ2lkICJFMTc5OiBhcmd1bWVudCByZXF1aXJlZCBmb3IgLWNvbXBsZXRlIgorbXNnc3RyICJFMTc5OiAtleKKroLMgr2C34LMiPiQlIKqlUuXdoLFgrciCiAKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTE4MTogSW52YWxpZCBhdHRyaWJ1dGU6ICVzIgpAQCAtMTIxMyw2ICsxMTM1LDE2IEBACiBtc2dzdHIgIkUxODQ6IIK7gsyDhoFbg1WS6Itgg1KDfYOTg2iCzYKgguiC3IK5gvE6ICVzIgogCiAjLCBjLWZvcm1hdAorbXNnaWQgIkUxODA6IEludmFsaWQgY29tcGxldGUgdmFsdWU6ICVzIgorbXNnc3RyICJFMTgwOiCWs4z4gsiV4oqujneS6ILFgrc6ICVzIgorCittc2dpZCAiRTQ2ODogQ29tcGxldGlvbiBhcmd1bWVudCBvbmx5IGFsbG93ZWQgZm9yIGN1c3RvbSBjb21wbGV0aW9uIgorbXNnc3RyICJFNDY4OiCV4oquiPiQlILNg0qDWINeg4CV4oqugsWCtYKpjmeXcILFgquC3IK5gvEiCisKK21zZ2lkICJFNDY3OiBDdXN0b20gY29tcGxldGlvbiByZXF1aXJlcyBhIGZ1bmN0aW9uIGFyZ3VtZW50IgorbXNnc3RyICJFNDY3OiCDSoNYg16DgJXiiq6CyYLNiPiQlILGgrWCxIrWkJSCqpVLl3aCxYK3IgorCisjLCBjLWZvcm1hdAogbXNnaWQgIkUxODU6IENhbm5vdCBmaW5kIGNvbG9yIHNjaGVtZSAlcyIKIG1zZ3N0ciAiRTE4NTogg0qDiYFbg1iDTIFbg4AgJXMggqqC3YLCgqmC6ILcgrmC8SIKIApAQCAtMTQ2Nyw2ICsxMzk5LDEyIEBACiBtc2dpZCAiW05ldyBGaWxlXSIKIG1zZ3N0ciAiW5BWg3SDQINDg4tdIgogCittc2dpZCAiW05ldyBESVJFQ1RPUlldIgorbXNnc3RyICJbkFaLS4Nmg0KDjINOg2eDil0iCisKK21zZ2lkICJbRmlsZSB0b28gYmlnXSIKK21zZ3N0ciAiW4N0g0CDQ4OLid+R5V0iCisKIG1zZ2lkICJbUGVybWlzc2lvbiBEZW5pZWRdIgogbXNnc3RyICJblEaJwoKqgqCC6ILcgrmC8V0iCiAKQEAgLTE1MTYsOCArMTQ1NCw5IEBACiBtc2dpZCAiW2NyeXB0ZWRdIgogbXNnc3RyICJbiMONhom7XSIKIAotbXNnaWQgIltDT05WRVJTSU9OIEVSUk9SXSIKLW1zZ3N0ciAiW5XPireDR4OJgVtdIgorIywgYy1mb3JtYXQKK21zZ2lkICJbQ09OVkVSU0lPTiBFUlJPUiBpbiBsaW5lICVsZF0iCittc2dzdHIgIlslbGQgjXOW2oLFlc+Kt4NHg4mBW10iCiAKICMsIGMtZm9ybWF0CiBtc2dpZCAiW0lMTEVHQUwgQllURSBpbiBsaW5lICVsZF0iCkBAIC0xNzAzLDggKzE2NDIsOCBAQAogbXNnc3RyICJFMjQ2OiBhdXRvY29tbWFuZCCCzCBGaWxlQ2hhbmdlZFNoZWxsIIKqg2+DYoN0g0CC8I3tj5yCtYLcgrWCvSIKIAogIywgYy1mb3JtYXQKLW1zZ2lkICJFMjExOiBXYXJuaW5nOiBGaWxlIFwiJXNcIiBubyBsb25nZXIgYXZhaWxhYmxlIgotbXNnc3RyICJFMjExOiCMeI2QOiCDdINAg0ODiyBcIiVzXCIggs2K+YLJkbaN3YK1gtyCuYLxIgorbXNnaWQgIkUyMTE6IEZpbGUgXCIlc1wiIG5vIGxvbmdlciBhdmFpbGFibGUiCittc2dzdHIgIkUyMTE6IIN0g0CDQ4OLIFwiJXNcIiCCzYr5gsmRto3dgrWC3IK5gvEiCiAKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgpAQCAtMTcxMiwyMSArMTY1MSwyNyBAQAogIndlbGwiCiBtc2dzdHIgIlcxMjogjHiNkDogg3SDQINDg4sgXCIlc1wiIIKqlc+NWIKzgupWaW2CzINvg2KDdINAguCVz41YgrOC6oLcgrWCvSIKIAorbXNnaWQgIlNlZSBcIjpoZWxwIFcxMlwiIGZvciBtb3JlIGluZm8uIgorbXNnc3RyICKP2o3Xgs0gXCI6aGVscCBXMTJcIiCC8I5Rj8aCtYLEgq2CvoKzgqIiCisKICMsIGMtZm9ybWF0CiBtc2dpZCAiVzExOiBXYXJuaW5nOiBGaWxlIFwiJXNcIiBoYXMgY2hhbmdlZCBzaW5jZSBlZGl0aW5nIHN0YXJ0ZWQiCiBtc2dzdHIgIlcxMTogjHiNkDogg3SDQINDg4sgXCIlc1wiIILNldKPV4pKjm6M44LJlc+NWIKzguqC3IK1gr0iCiAKK21zZ2lkICJTZWUgXCI6aGVscCBXMTFcIiBmb3IgbW9yZSBpbmZvLiIKK21zZ3N0ciAij9qN14LNIFwiOmhlbHAgVzExXCIggvCOUY/GgrWCxIKtgr6Cs4KiIgorCiAjLCBjLWZvcm1hdAogbXNnaWQgIlcxNjogV2FybmluZzogTW9kZSBvZiBmaWxlIFwiJXNcIiBoYXMgY2hhbmdlZCBzaW5jZSBlZGl0aW5nIHN0YXJ0ZWQiCiBtc2dzdHIgIlcxNjogjHiNkDogg3SDQINDg4sgXCIlc1wiIILMg4KBW4NogqqV0o9XikqObozjgsmVz41YgrOC6oLcgrWCvSIKIAorbXNnaWQgIlNlZSBcIjpoZWxwIFcxNlwiIGZvciBtb3JlIGluZm8uIgorbXNnc3RyICKP2o3Xgs0gXCI6aGVscCBXMTZcIiCC8I5Rj8aCtYLEgq2CvoKzgqIiCisKICMsIGMtZm9ybWF0CiBtc2dpZCAiVzEzOiBXYXJuaW5nOiBGaWxlIFwiJXNcIiBoYXMgYmVlbiBjcmVhdGVkIGFmdGVyIGVkaXRpbmcgc3RhcnRlZCIKIG1zZ3N0ciAiVzEzOiCMeI2QOiCDdINAg0ODiyBcIiVzXCIggs2V0o9XikqObozjgsmN7JCsgrOC6oLcgrWCvSIKIAotbXNnaWQgIlNlZSBcIjpoZWxwIFcxMVwiIGZvciBtb3JlIGluZm8uIgotbXNnc3RyICKP2o3Xgs0gXCI6aGVscCBXMTFcIiCC8I5Rj8aCtYLEgq2CvoKzgqIiCi0KIG1zZ2lkICJXYXJuaW5nIgogbXNnc3RyICKMeI2QIgogCkBAIC0xNzk4LDcgKzE3NDMsNiBAQAogbXNnaWQgIkV4ZWN1dGluZyAlcyIKIG1zZ3N0ciAiJXMggvCOwI1zgrWCxIKigtyCtyIKIAotIy4gYWx3YXlzIHNjcm9sbCB1cCwgZG9uJ3Qgb3ZlcndyaXRlCiAjLCBjLWZvcm1hdAogbXNnaWQgImF1dG9jb21tYW5kICVzIgogbXNnc3RyICJhdXRvY29tbWFuZCAlcyIKQEAgLTIxMzAsNiArMjA3NCw5OSBAQAogbXNnaWQgIkUyNTY6IEhhbmd1bCBhdXRvbWF0YSBFUlJPUiIKIG1zZ3N0ciAiRTI1Njogg26Dk4NPg4uDSYFbg2eDfYNng5ODR4OJgVsiCiAKK21zZ2lkICJFNTUwOiBNaXNzaW5nIGNvbG9uIgorbXNnc3RyICJFNTUwOiCDUoONg5OCqoKgguiC3IK5gvEiCisKK21zZ2lkICJFNTUxOiBJbGxlZ2FsIGNvbXBvbmVudCIKK21zZ3N0ciAiRTU1MToglXOQs4LIjVxclbaXdpFmgsWCtyIKKworbXNnaWQgIkU1NTI6IGRpZ2l0IGV4cGVjdGVkIgorbXNnc3RyICJFNTUyOiCQlJJsgqqVS5d2gsWCtyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJQYWdlICVkIgorbXNnc3RyICIlZCCDeYFbg1ciCisKK21zZ2lkICJObyB0ZXh0IHRvIGJlIHByaW50ZWQiCittc2dzdHIgIojzjfyCt4Lpg2WDTINYg2eCqoKgguiC3IK5gvEiCisKK21zZ2lkICJQcmludGluZyBwYWdlICVkICglZCUlKSIKK21zZ3N0ciAiiPON/JKGOiCDeYFbg1cgJWQgKCVkJSUpIgorCisjLCBjLWZvcm1hdAorbXNnaWQgIiBDb3B5ICVkIG9mICVkIgorbXNnc3RyICIgg1KDc4FbICVkICiRUyAlZCCShikiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiUHJpbnRlZDogJXMiCittc2dzdHIgIojzjfyCtYLcgrWCvTogJXMiCisKK21zZ2lkICJQcmludGluZyBhYm9ydGVkIgorbXNnc3RyICKI8438gqqSho5+grOC6oLcgrWCvSIKKworbXNnaWQgIkU0NTU6IEVycm9yIHdyaXRpbmcgdG8gUG9zdFNjcmlwdCBvdXRwdXQgZmlsZSIKK21zZ3N0ciAiRTQ1NTogUG9zdFNjcmlwdI9vl82DdINAg0ODi4LMj5GNnoLdg0eDiYFbgsWCtyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJFNjI0OiBDYW4ndCBvcGVuIGZpbGUgXCIlc1wiIgorbXNnc3RyICJFNjI0OiCDdINAg0ODiyBcIiVzXCIggvCKSoKvgtyCuYLxIgorCisjLCBjLWZvcm1hdAorbXNnaWQgIkU0NTc6IENhbid0IHJlYWQgUG9zdFNjcmlwdCByZXNvdXJjZSBmaWxlIFwiJXNcIiIKK21zZ3N0ciAiRTQ1NzogUG9zdFNjcmlwdILMg4qDXFyBW4NYg3SDQINDg4sgXCIlc1wiIILwk8eNnoLfgtyCuYLxIgorCisjLCBjLWZvcm1hdAorbXNnaWQgIkU2MTg6IGZpbGUgXCIlc1wiIGlzIG5vdCBhIFBvc3RTY3JpcHQgcmVzb3VyY2UgZmlsZSIKK21zZ3N0ciAiRTYxODogg3SDQINDg4sgXCIlc1wiIILNIFBvc3RTY3JpcHQgg4qDXFyBW4NYg3SDQINDg4uCxYLNgqCC6ILcgrmC8SIKKworIywgYy1mb3JtYXQKK21zZ2lkICJFNjE5OiBmaWxlIFwiJXNcIiBpcyBub3QgYSBzdXBwb3J0ZWQgUG9zdFNjcmlwdCByZXNvdXJjZSBmaWxlIgorbXNnc3RyICJFNjE5OiCDdINAg0ODiyBcIiVzXCIggs2RzomegrWCxIKigsiCoiBQb3N0U2NyaXB0IIOKg1xcgVuDWIN0g0CDQ4OLgsWCtyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJFNjIxOiBcIiVzXCIgcmVzb3VyY2UgZmlsZSBoYXMgd3JvbmcgdmVyc2lvbiIKK21zZ3N0ciAiRTYyMTogg4qDXFyBW4NYg3SDQINDg4sgXCIlc1wiIILNg2+BW4NXg4eDk4KqiNmCyILogtyCtyIKKworbXNnaWQgIkU2NzM6IEluY29tcGF0aWJsZSBtdWx0aS1ieXRlIGVuY29kaW5nIGFuZCBjaGFyYWN0ZXIgc2V0LiIKK21zZ3N0ciAiRTY3MzogjN2Kt5CrgsyWs4Kig32Di4Ngg2+DQ4Nng0eDk4NSgVuDZoNCg5ODT4LGlbaOmoNag2KDZ4LFgrciCisKK21zZ2lkICJFNjc0OiBwcmludG1iY2hhcnNldCBjYW5ub3QgYmUgZW1wdHkgd2l0aCBtdWx0aS1ieXRlIGVuY29kaW5nLiIKK21zZ3N0ciAiRTY3NDogg32Di4Ngg2+DQ4Nng0eDk4NSgVuDZoNCg5ODT4LFgs0gcHJpbnRtYmNoYXJzZXQggvCL84LJgsWCq4LcgrmC8SIKKworbXNnaWQgIkU2NzU6IE5vIGRlZmF1bHQgZm9udCBzcGVjaWZpZWQgZm9yIG11bHRpLWJ5dGUgcHJpbnRpbmcuIgorbXNnc3RyICIiCisiRTY3NTogg32Di4Ngg2+DQ4NnlbaOmoLwiPON/IK3gumCvYLfgsyDZoN0g0iDi4Nng3SDSIOTg2eCqo53kuiCs4LqgsSCooLcgrmC8SIKKworbXNnaWQgIkUzMjQ6IENhbid0IG9wZW4gUG9zdFNjcmlwdCBvdXRwdXQgZmlsZSIKK21zZ3N0ciAiRTMyNDogUG9zdFNjcmlwdI9vl82XcILMg3SDQINDg4uC8IpKgq+C3IK5gvEiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiRTQ1NjogQ2FuJ3Qgb3BlbiBmaWxlIFwiJXNcIiIKK21zZ3N0ciAiRTQ1Njogg3SDQINDg4sgXCIlc1wiIILwikqCr4LcgrmC8SIKKworbXNnaWQgIkU0NTY6IENhbid0IGZpbmQgUG9zdFNjcmlwdCByZXNvdXJjZSBmaWxlIFwicHJvbG9nLnBzXCIiCittc2dzdHIgIkU0NTY6IFBvc3RTY3JpcHSCzIOKg1xcgVuDWIN0g0CDQ4OLIFwicHJvbG9nLnBzXCIggqqC3YLCgqmC6ILcgrmC8SIKKworbXNnaWQgIkU0NTY6IENhbid0IGZpbmQgUG9zdFNjcmlwdCByZXNvdXJjZSBmaWxlIFwiY2lkZm9udC5wc1wiIgorbXNnc3RyICJFNDU2OiBQb3N0U2NyaXB0gsyDioNcXIFbg1iDdINAg0ODiyBcImNpZGZvbnQucHNcIiCCqoLdgsKCqYLogtyCuYLxIgorCisjLCBjLWZvcm1hdAorbXNnaWQgIkU0NTY6IENhbid0IGZpbmQgUG9zdFNjcmlwdCByZXNvdXJjZSBmaWxlIFwiJXMucHNcIiIKK21zZ3N0ciAiRTQ1NjogUG9zdFNjcmlwdILMg4qDXFyBW4NYg3SDQINDg4sgXCIlcy5wc1wiIIKqgt2CwoKpguiC3IK5gvEiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiRTYyMDogVW5hYmxlIHRvIGNvbnZlcnQgdG8gcHJpbnQgZW5jb2RpbmcgXCIlc1wiIgorbXNnc3RyICJFNjIwOiCI8438g0eDk4NSgVuDaCBcIiVzXCIggtaVz4q3gsWCq4LcgrmC8SIKKworbXNnaWQgIlNlbmRpbmcgdG8gcHJpbnRlci4uLiIKK21zZ3N0ciAig3aDioOTg16CyZGXkE2Shi4uLiIKKworbXNnaWQgIkUzNjU6IEZhaWxlZCB0byBwcmludCBQb3N0U2NyaXB0IGZpbGUiCittc2dzdHIgIkUzNjU6IFBvc3RTY3JpcHSDdINAg0ODi4LMiPON/ILJjriUc4K1gtyCtYK9IgorCittc2dpZCAiUHJpbnQgam9iIHNlbnQuIgorbXNnc3RyICKI8438g1eDh4N1gvCRl5BNgrWC3IK1gr0uIgorCiBtc2dpZCAiQWRkIGEgbmV3IGRhdGFiYXNlIgogbXNnc3RyICKQVoNmgVuDXoN4gVuDWILwkseJwSIKIApAQCAtMjMyNiw2ICsyMzYzLDkgQEAKIG1zZ2lkICJsaW5lbnIgb3V0IG9mIHJhbmdlIgogbXNnc3RyICKUzYjNik+CzI1zlNSNhoLFgrciCiAKK21zZ2lkICJub3QgYWxsb3dlZCBpbiB0aGUgVmltIHNhbmRib3giCittc2dzdHIgIoNUg5ODaIN7g2KDToNYgsWCzYuWgrOC6oLcgrmC8SIKKwogIywgYy1mb3JtYXQKIG1zZ2lkICJFMzcwOiBDb3VsZCBub3QgbG9hZCBsaWJyYXJ5ICVzIgogbXNnc3RyICJFMzcwOiCDiYNDg3WDiYOKICVzIILwg42BW4NogsWCq4LcgrmC8YLFgrWCvSIKQEAgLTI1NzAsNiArMjYxMCwxMCBAQAogIkUyODE6IFRDTCCDR4OJgVs6II9Jl7mDUoFbg2iCqpCukJSSbILFgs2CoILogtyCuYLxIT8gdmltLWRldkB2aW0ub3JnICIKICKCyZXxjZCCtYLEgq2CvoKzgqIiCiAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRTU3MjogZXhpdCBjb2RlICVkIgorbXNnc3RyICJFNTcyOiCPSZe5g1KBW4NoICVkIgorCiBtc2dpZCAiY2Fubm90IGdldCBsaW5lIgogbXNnc3RyICKNc4LwjuaTvoLFgquC3IK5gvEiCiAKQEAgLTI1ODYsOCArMjYzMCw4IEBACiBtc2dpZCAiRTI1MTogVklNIGluc3RhbmNlIHJlZ2lzdHJ5IHByb3BlcnR5IGlzIGJhZGx5IGZvcm1lZC4gIERlbGV0ZWQhIgogbXNnc3RyICJFMjUxOiBWSU0gjsCRzILMk2+YXoN2g42DcINlg0KCqpVzkLOCxYK3LiCPwYuOgrWC3IK1gr0hIgogCi1tc2dpZCAiVW5rbm93biBvcHRpb24iCi1tc2dzdHIgIpaikm2CzINJg3aDVoOHg5OCxYK3IgorbXNnaWQgIlVua25vd24gb3B0aW9uIGFyZ3VtZW50IgorbXNnc3RyICKWopJtgsyDSYN2g1aDh4OTiPiQlILFgrciCiAKIG1zZ2lkICJUb28gbWFueSBlZGl0IGFyZ3VtZW50cyIKIG1zZ3N0ciAildKPV4j4kJSCqpG9id+CrILcgrciCkBAIC0yNTk1LDggKzI2MzksOCBAQAogbXNnaWQgIkFyZ3VtZW50IG1pc3NpbmcgYWZ0ZXIiCiBtc2dzdHIgIoj4kJSCqoKgguiC3IK5gvEiCiAKLW1zZ2lkICJHYXJiYWdlIGFmdGVyIG9wdGlvbiIKLW1zZ3N0ciAig0mDdoNWg4eDk4LMjOOCyYNTg36CqoKgguiC3IK3IgorbXNnaWQgIkdhcmJhZ2UgYWZ0ZXIgb3B0aW9uIGFyZ3VtZW50IgorbXNnc3RyICKDSYN2g1aDh4OTiPiQlILMjOOCyYNTg36CqoKgguiC3IK3IgogCiBtc2dpZCAiVG9vIG1hbnkgXCIrY29tbWFuZFwiLCBcIi1jIGNvbW1hbmRcIiBvciBcIi0tY21kIGNvbW1hbmRcIiBhcmd1bWVudHMiCiBtc2dzdHIgIlwiK2NvbW1hbmRcIiwgXCItYyBjb21tYW5kXCIsIFwiLS1jbWQgY29tbWFuZFwiIILMiPiQlIKqkb2J34KsgtyCtyIKQEAgLTI2MDQsNiArMjY0OCwxMCBAQAogbXNnaWQgIkludmFsaWQgYXJndW1lbnQgZm9yIgogbXNnc3RyICKWs4z4gsiI+JCUgsWCtzogIgogCisjLCBjLWZvcm1hdAorbXNnaWQgIiVkIGZpbGVzIHRvIGVkaXRcbiIKK21zZ3N0ciAiJWQgjMKCzIN0g0CDQ4OLgqqV0o9XgvCNVIKmgsSCooLcgrdcbiIKKwogbXNnaWQgIlRoaXMgVmltIHdhcyBub3QgY29tcGlsZWQgd2l0aCB0aGUgZGlmZiBmZWF0dXJlLiIKIG1zZ3N0ciAigrGCzFZpbYLJgs1kaWZmi0CUXFyCqoKgguiC3IK5gvEog1KDk4Nwg0ODi46ekN2S6CkuIgogCkBAIC0yNjI3LDEwICsyNjc1LDYgQEAKIG1zZ2lkICJWaW06IFdhcm5pbmc6IElucHV0IGlzIG5vdCBmcm9tIGEgdGVybWluYWxcbiIKIG1zZ3N0ciAiVmltOiCMeI2QOiCSW5aWgqmC54LMk/yXzYLFgs2CoILogtyCuYLxXG4iCiAKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiJWQgZmlsZXMgdG8gZWRpdFxuIgotbXNnc3RyICIlZCCMwoLMg3SDQINDg4uCqpXSj1eC8I1UgqaCxIKigtyCt1xuIgotCiAjLiBqdXN0IGluIGNhc2UuLgogbXNnaWQgInByZS12aW1yYyBjb21tYW5kIGxpbmUiCiBtc2dzdHIgInZpbXJjkU+CzINSg32Dk4Nog4mDQ4OTIgpAQCAtMjk2NCwyNSArMzAwOCw2IEBACiBtc2dpZCAiLS1zb2NrZXRpZCA8eGlkPlx0T3BlbiBWaW0gaW5zaWRlIGFub3RoZXIgR1RLIHdpZGdldCIKIG1zZ3N0ciAiLS1zb2NrZXRpZCA8eGlkPlx0iNmCyILpR1RLIHdpZGdldILFVmltgvCKSoKtIgogCi1tc2dpZCAiIgotIlxuIgotIkFyZ3VtZW50cyByZWNvZ25pc2VkIGJ5IGt2aW0gKEtERSB2ZXJzaW9uKTpcbiIKLW1zZ3N0ciAiIgotIlxuIgotImt2aW2CyYLmgsGCxInwjt+Cs4LqgumI+JCUKEtERYNvgVuDV4OHg5MpOlxuIgotCi1tc2dpZCAiLWJsYWNrXHRcdFVzZSByZXZlcnNlIHZpZGVvIgotbXNnc3RyICItYmxhY2tcdFx0lL2TXYnmlsqC8I5nl3CCt4LpIgotCi1tc2dpZCAiLXRpcFx0XHRcdERpc3BsYXkgdGhlIHRpcCBkaWFsb2cgb24gc3RhcnR1cCIKLW1zZ3N0ciAiLXRpcFx0XHRcdItOk66OnoLJg2CDYoN2g1+DQ4NBg42DT4LwlVxcjqaCt4LpIgotCi1tc2dpZCAiLW5vdGlwXHRcdERpc2FibGUgdGhlIHRpcCBkaWFsb2ciCi1tc2dzdHIgIi1ub3RpcFx0XHSDYINig3aDX4NDg0GDjYNPgvCWs4z4gsmCt4LpIgotCi1tc2dpZCAiLS1kaXNwbGF5IDxkaXNwbGF5Plx0UnVuIHZpbSBvbiA8ZGlzcGxheT4iCi1tc2dzdHIgIi0tZGlzcGxheSA8ZGlzcGxheT5cdDxkaXNwbGF5PiCCxXZpbYLwjsCNc4K3gukiCi0KIG1zZ2lkICItUCA8cGFyZW50IHRpdGxlPlx0T3BlbiBWaW0gaW5zaWRlIHBhcmVudCBhcHBsaWNhdGlvbiIKIG1zZ3N0ciAiLVAgPJBlgsyDXoNDg2eDiz5cdFZpbYLwkGWDQYN2g4qDUIFbg1aDh4OTgsyShoLFi06TroK3gukiCiAKQEAgLTM0MDQsNiArMzQyOSwxMCBAQAogbXNnaWQgIkUzMTc6IHBvaW50ZXIgYmxvY2sgaWQgd3JvbmcgMiIKIG1zZ3N0ciAiRTMxNzogg3yDQ4OTg16DdYONg2KDToLMSUSCqorUiOGCwYLEgqKC3IK3IDIiCiAKKyMsIGMtZm9ybWF0Cittc2dpZCAiRTc3MzogU3ltbGluayBsb29wIGZvciBcIiVzXCIiCittc2dzdHIgIkU3NzM6IFwiJXNcIiCCzINWg5ODe4OKg2KDToOKg5ODToKqg4uBW4N2gsmCyILBgsSCooLcgrciCisKIG1zZ2lkICJFMzI1OiBBVFRFTlRJT04iCiBtc2dzdHIgIkUzMjU6IJKNiNMiCiAKQEAgLTM0OTIsMTYgKzM1MjEsMTYgQEAKICImT3BlbiBSZWFkLU9ubHlcbiIKICImRWRpdCBhbnl3YXlcbiIKICImUmVjb3ZlclxuIgorIiZEZWxldGUgaXRcbiIKICImUXVpdFxuIgotIiZBYm9ydFxuIgotIiZEZWxldGUgaXQiCisiJkFib3J0IgogbXNnc3RyICIiCiAik8eNnpDql3CCxYpKgq0oJk8pXG4iCiAigsaCyYKpgq2V0o9XgreC6SgmRSlcbiIKICKVnIqIgrOCuYLpKCZSKWVjb3ZlclxuIgorIo3tj5yCt4LpKCZEKVxuIgogIo9Jl7mCt4LpKCZRKVxuIgotIpKGjn6Ct4LpKCZBKVxuIgotIo/Bi46Ct4LpKCZEKSIKKyKSho5+greC6SgmQSkiCiAKIG1zZ2lkICJFMzI2OiBUb28gbWFueSBzd2FwIGZpbGVzIGZvdW5kIgogbXNnc3RyICJFMzI2OiCDWIOPg2KDdoN0g0CDQ4OLgqqRvZCUjKmCwoKpguiC3IK1gr0iCkBAIC0zNTEyLDggKzM1NDEsOSBAQAogbXNnaWQgIkUzMjg6IE1lbnUgb25seSBleGlzdHMgaW4gYW5vdGhlciBtb2RlIgogbXNnc3RyICJFMzI4OiCDgYNqg4WBW4LNkbyCzIOCgVuDaILJgr6Cr4KgguiC3IK3IgogCi1tc2dpZCAiRTMyOTogTm8gbWVudSBvZiB0aGF0IG5hbWUiCi1tc2dzdHIgIkUzMjk6IIK7gsyWvJFPgsyDgYNqg4WBW4LNgqCC6ILcgrmC8SIKKyMsIGMtZm9ybWF0Cittc2dpZCAiRTMyOTogTm8gbWVudSBcIiVzXCIiCittc2dzdHIgIkUzMjk6IFwiJXNcIiCCxoKigqSDgYNqg4WBW4LNgqCC6ILcgrmC8SIKIAogbXNnaWQgIkUzMzA6IE1lbnUgcGF0aCBtdXN0IG5vdCBsZWFkIHRvIGEgc3ViLW1lbnUiCiBtc2dzdHIgIkUzMzA6IIOBg2qDhYFbg3CDWILNg1SDdYOBg2qDhYFbgvCQtoK2gumC14KrgsWCzYKgguiC3IK5gvEiCkBAIC0zNTYxLDkgKzM1OTEsNiBAQAogbXNnaWQgImxpbmUgJTRsZDoiCiBtc2dzdHIgIo1zICU0bGQ6IgogCi1tc2dpZCAiW3N0cmluZyB0b28gbG9uZ10iCi1tc2dzdHIgIluVto6al/GCqpK3id+CrILcgrddIgotCiAjLCBjLWZvcm1hdAogbXNnaWQgIkUzNTQ6IEludmFsaWQgcmVnaXN0ZXIgbmFtZTogJyVzJyIKIG1zZ3N0ciAiRTM1NDoglrOM+ILIg4yDV4NYg16WvDogJyVzJyIKQEAgLTM1NzQsMjAgKzM2MDEsMTggQEAKIG1zZ2lkICJJbnRlcnJ1cHQ6ICIKIG1zZ3N0ciAiioSNnoLdOiAiCiAKLW1zZ2lkICJIaXQgRU5URVIgdG8gY29udGludWUiCi1tc2dzdHIgIpGxgq+C6YLJgs1FTlRFUoLwiZ+CtYLEgq2CvoKzgqIiCi0KLW1zZ2lkICJIaXQgRU5URVIgb3IgdHlwZSBjb21tYW5kIHRvIGNvbnRpbnVlIgorbXNnaWQgIlByZXNzIEVOVEVSIG9yIHR5cGUgY29tbWFuZCB0byBjb250aW51ZSIKIG1zZ3N0ciAikbGCr4LpgsmCzUVOVEVSgvCJn4K3gqmDUoN9g5ODaILwk/yXzYK1gsSCrYK+grOCoiIKIAorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBsaW5lICVsZCIKK21zZ3N0ciAiJXMgjXMgJWxkIgorCiBtc2dpZCAiLS0gTW9yZSAtLSIKIG1zZ3N0ciAiLS0gjHCRsSAtLSIKIAotbXNnaWQgIiAoUkVUL0JTOiBsaW5lLCBTUEFDRS9iOiBwYWdlLCBkL3U6IGhhbGYgcGFnZSwgcTogcXVpdCkiCi1tc2dzdHIgIiAoUkVUL0JTOiCNc5GXgugsIFNQQUNFL2I6IIN5gVuDV5GXgugsIGQvdToglLyDeYFbg1eRl4LoLCBxOiCPSZe5KSIKLQotbXNnaWQgIiAoUkVUOiBsaW5lLCBTUEFDRTogcGFnZSwgZDogaGFsZiBwYWdlLCBxOiBxdWl0KSIKLW1zZ3N0ciAiIChSRVQ6II1zkZeC6CwgU1BBQ0U6IIN5gVuDV5GXgugsIGQ6IJS8g3mBW4NXkZeC6CwgcTogj0mXuSkiCittc2dpZCAiIFNQQUNFL2Qvajogc2NyZWVuL3BhZ2UvbGluZSBkb3duLCBiL3UvazogdXAsIHE6IHF1aXQgIgorbXNnc3RyICIgU1BBQ0UvZC9qOiCJ5pbKL4N5gVuDVy+NcyCJuiwgYi91azogj+MsIHE6II9Jl7kiCiAKIG1zZ2lkICJRdWVzdGlvbiIKIG1zZ3N0ciAijr+W4iIKQEAgLTM2MjUsOSArMzY1MCwyMSBAQAogbXNnaWQgIkUzMzg6IFNvcnJ5LCBubyBmaWxlIGJyb3dzZXIgaW4gY29uc29sZSBtb2RlIgogbXNnc3RyICJFMzM4OiCDUoOTg1xcgVuDi4OCgVuDaILFgs2DdINAg0ODi4N1g4mDRYNVgvCOZ4KmgtyCuYLxLCCCsoLfgvGCyIKzgqIiCiAKK21zZ2lkICJFNzY2OiBJbnN1ZmZpY2llbnQgYXJndW1lbnRzIGZvciBwcmludGYoKSIKK21zZ3N0ciAiRTc2NjogcHJpbnRmKCkggsyI+JCUgqqVc49cXJWqgsWCtyIKKworbXNnaWQgIkU3Njc6IFRvbyBtYW55IGFyZ3VtZW50cyB0byBwcmludGYoKSIKK21zZ3N0ciAiRTc2NzogcGlybnRmKCkggsyI+JCUgqqRvYnfgqyC3IK3IgorCiBtc2dpZCAiVzEwOiBXYXJuaW5nOiBDaGFuZ2luZyBhIHJlYWRvbmx5IGZpbGUiCiBtc2dzdHIgIlcxMDogjHiNkDogk8eNnpDql3CDdINAg0ODi4Lwlc+NWIK1gtyCtyIKIAorbXNnaWQgIlR5cGUgbnVtYmVyIG9yIGNsaWNrIHdpdGggbW91c2UgKDxFbnRlcj4gY2FuY2Vscyk6ICIKK21zZ3N0ciAikJSSbILwk/yXzYK3gumCqYN9g0WDWILwg06DioNig06CtYLEgq2CvoKzgqIgKDxFbnRlcj4ggsWDTIODg5ODWoOLKTogIgorCittc2dpZCAiQ2hvaWNlIG51bWJlciAoPEVudGVyPiBjYW5jZWxzKTogIgorbXNnc3RyICKU1I2GgvCRSZHwgrWCxIKtgr6Cs4KiICg8RW50ZXI+IILFg0yDg4OTg1qDiyk6ICIKKwogbXNnaWQgIjEgbW9yZSBsaW5lIgogbXNnc3RyICIxII1zIJLHicGCtYLcgrWCvSIKIApAQCAtMzczNywxNSArMzc3NCw2IEBACiBtc2dpZCAiRTM0NzogTm8gbW9yZSBmaWxlIFwiJXNcIiBmb3VuZCBpbiBwYXRoIgogbXNnc3RyICJFMzQ3OiCDcINYgsmCzYKxguqIyI/jIFwiJXNcIiCCxoKigqSDdINAg0ODi4KqgqCC6ILcgrmC8SIKIAotbXNnaWQgIkU1NTA6IE1pc3NpbmcgY29sb24iCi1tc2dzdHIgIkU1NTA6IINSg42Dk4KqgqCC6ILcgrmC8SIKLQotbXNnaWQgIkU1NTE6IElsbGVnYWwgY29tcG9uZW50IgotbXNnc3RyICJFNTUxOiCVc5CzgsiNXFyVtpd2kWaCxYK3IgotCi1tc2dpZCAiRTU1MjogZGlnaXQgZXhwZWN0ZWQiCi1tc2dzdHIgIkU1NTI6IJCUkmyCqpVLl3aCxYK3IgotCiAjLiBHZXQgaGVyZSB3aGVuIHRoZSBzZXJ2ZXIgY2FuJ3QgYmUgZm91bmQuCiBtc2dpZCAiQ2Fubm90IGNvbm5lY3QgdG8gTmV0YmVhbnMgIzIiCiBtc2dzdHIgIk5ldGJlYW5zICMyIILJkNqRsYLFgquC3IK5gvEiCkBAIC0zNzY4LDYgKzM3OTYsMTIgQEAKIG1zZ2lkICJFNTA1OiAiCiBtc2dzdHIgIkU1MDU6ICIKIAorbXNnaWQgIkU3NzQ6ICdvcGVyYXRvcmZ1bmMnIGlzIGVtcHR5IgorbXNnc3RyICJFNzc0OiAnb3BlcmF0b3JmdW5jJyCDSYN2g1aDh4OTgqqL84LFgrciCisKK21zZ2lkICJFNzc1OiBFdmFsIGZlYXR1cmUgbm90IGF2YWlsYWJsZSIKK21zZ3N0ciAiRTc3NTogjq6VXYm/i0CUXFyCqpazjPiCyYLIgsGCxIKigtyCtyIKKwogbXNnaWQgIldhcm5pbmc6IHRlcm1pbmFsIGNhbm5vdCBoaWdobGlnaHQiCiBtc2dzdHIgIox4jZA6II5nl3CCtYLEgqKC6ZJblpaCzYNug0ODiYNDg2eCxYKrgtyCuYLxIgogCkBAIC0zODM3LDEwICszODcxLDE3IEBACiBtc2dpZCAiZnJlZWluZyAlbGQgbGluZXMiCiBtc2dzdHIgIiVsZCCNc4LwikqV+pKGIgogCittc2dpZCAiYmxvY2sgb2YgMSBsaW5lIHlhbmtlZCIKK21zZ3N0ciAiMSCNc4LMg3WDjYNig06CqoOEg5ODToKzguqC3IK1gr0iCisKIG1zZ2lkICIxIGxpbmUgeWFua2VkIgogbXNnc3RyICIxII1zgqqDhIOTg06Cs4LqgtyCtYK9IgogCiAjLCBjLWZvcm1hdAorbXNnaWQgImJsb2NrIG9mICVsZCBsaW5lcyB5YW5rZWQiCittc2dzdHIgIiVsZCCNc4LMg3WDjYNig06CqoOEg5ODToKzguqC3IK1gr0iCisKKyMsIGMtZm9ybWF0CiBtc2dpZCAiJWxkIGxpbmVzIHlhbmtlZCIKIG1zZ3N0ciAiJWxkII1zgqqDhIOTg06Cs4LqgtyCtYK9IgogCkBAIC0zOTE0LDEzICszOTU1LDYgQEAKIG1zZ2lkICJFNTIwOiBOb3QgYWxsb3dlZCBpbiBhIG1vZGVsaW5lIgogbXNnc3RyICJFNTIwOiBtb2RlbGluZSCCxYLNi5aJwoKzguqC3IK5gvEiCiAKLW1zZ2lkICIiCi0iXG4iCi0iXHRMYXN0IHNldCBmcm9tICIKLW1zZ3N0ciAiIgotIlxuIgotIlx0TGFzdCBzZXQgZnJvbSAiCi0KIG1zZ2lkICJFNTIxOiBOdW1iZXIgcmVxdWlyZWQgYWZ0ZXIgPSIKIG1zZ3N0ciAiRTUyMTogPSCCzIzjgsmCzZCUjpqCqpVLl3aCxYK3IgogCkBAIC00MTU5LDE0ICs0MTkzLDYgQEAKIG1zZ2lkICJPcGVuaW5nIHRoZSBYIGRpc3BsYXkgdG9vayAlbGQgbXNlYyIKIG1zZ3N0ciAiWINUgVuDb4LWgsyQ2pGxgskgJWxkIIN+g4qVYoKpgqmC6ILcgrWCvSIKIAotIy4gS0RFIHNvbWV0aW1lcyBwcm9kdWNlcyBYIGVycm9yIHRoYXQgd2Ugd2FudCB0byBpZ25vcmUKLW1zZ2lkICIiCi0iXG4iCi0iVmltOiBHb3QgWCBlcnJvciBidXQgd2UgY29udGludWUuLi5cbiIKLW1zZ3N0ciAiIgotIlxuIgotIlZpbTogWCCCzINHg4mBW4LwjJ+Pb4K1gtyCtYK9gqqRsY1zgrWC3IK3Li4uXG4iCi0KIG1zZ2lkICIiCiAiXG4iCiAiVmltOiBHb3QgWCBlcnJvclxuIgpAQCAtNDMzNiwxMCArNDM2Miw2IEBACiBtc2dpZCAiRTM4MjogQ2Fubm90IHdyaXRlLCAnYnVmdHlwZScgb3B0aW9uIGlzIHNldCIKIG1zZ3N0ciAiRTM4MjogJ2J1ZnR5cGUnIINJg3aDVoOHg5OCqpDdkuiCs4LqgsSCooLpgsyCxY+RjZ6C3YLcgrmC8SIKIAotIwotbXNnaWQgIkU2ODI6IEludmFsaWQgc2VhcmNoIHBhdHRlcm4gb3IgZGVsaW1pdGVyIgotbXNnc3RyICJFNjgyOiCMn431g3CDXoFbg5OCqYvmkNiC6ItMjYaCqpVzkLOCxYK3IgotCiBtc2dpZCAiRTY4MzogRmlsZSBuYW1lIG1pc3Npbmcgb3IgaW52YWxpZCBwYXR0ZXJuIgogbXNnc3RyICJFNjgzOiCDdINAg0ODi5a8gqqWs4KigqmWs4z4gsiDcINegVuDk4LFgrciCiAKQEAgLTQzNTAsNiArNDM3Miw5IEBACiBtc2dpZCAiRTY4MTogQnVmZmVyIGlzIG5vdCBsb2FkZWQiCiBtc2dzdHIgIkU2ODE6IINvg2KDdINAgs2Tx4LdjZ6C3ILqgtyCuYLxgsWCtYK9IgogCittc2dpZCAiRTc3NzogU3RyaW5nIG9yIExpc3QgZXhwZWN0ZWQiCittc2dzdHIgIkU3Nzc6IJW2jpqX8YKpg4qDWINngqqVS5d2gsWCtyIKKwogbXNnaWQgIkUzMzk6IFBhdHRlcm4gdG9vIGxvbmciCiBtc2dzdHIgIkUzMzk6IINwg16BW4OTgqqSt4nfgqyC3IK3IgogCkBAIC00NDI5LDYgKzQ0NTQsMTEgQEAKIG1zZ2lkICJFNzE6IEludmFsaWQgY2hhcmFjdGVyIGFmdGVyICVzJSUiCiBtc2dzdHIgIkU3MTogJXMlJSCCzIzjgsmVc5CzgsiVto6agqqCoILogtyCtYK9IgogCisjCisjLCBjLWZvcm1hdAorbXNnaWQgIkU3Njk6IE1pc3NpbmcgXSBhZnRlciAlc1siCittc2dzdHIgIkU3Njk6ICVzWyCCzIzjgskgXSCCqoKgguiC3IK5gvEiCisKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTU1NDogU3ludGF4IGVycm9yIGluICVzey4uLn0iCiBtc2dzdHIgIkU1NTQ6ICVzey4uLn0gk+CCyZW2lkCDR4OJgVuCqoKgguiC3IK3IgpAQCAtNDQ5NCwxMiArNDUyNCw2IEBACiBtc2dpZCAicmVjb3JkaW5nIgogbXNnc3RyICKLTJhekoYiCiAKLW1zZ2lkICJzZWFyY2ggaGl0IFRPUCwgY29udGludWluZyBhdCBCT1RUT00iCi1tc2dzdHIgIo/jgtyCxYyfjfWCtYK9gsyCxYm6gsmW34LogtyCtyIKLQotbXNnaWQgInNlYXJjaCBoaXQgQk9UVE9NLCBjb250aW51aW5nIGF0IFRPUCIKLW1zZ3N0ciAiibqC3ILFjJ+N9YK1gr2CzILFj+OCyZbfguiC3IK3IgotCiAjLCBjLWZvcm1hdAogbXNnaWQgIkUzODM6IEludmFsaWQgc2VhcmNoIHN0cmluZzogJXMiCiBtc2dzdHIgIkUzODM6IJazjPiCyIyfjfWVto6al/GCxYK3OiAlcyIKQEAgLTQ1NTMsNiArNDU3NywzMzkgQEAKIG1zZ2lkICJFMzg5OiBDb3VsZG4ndCBmaW5kIHBhdHRlcm4iCiBtc2dzdHIgIkUzODk6IINwg16BW4OTgvCC3YLCgq+C54LqgtyCuYLxIgogCittc2dpZCAiRTc1OTogRm9ybWF0IGVycm9yIGluIHNwZWxsIGZpbGUiCittc2dzdHIgIkU3NTk6IINYg3mDi4N0g0CDQ4OLgsyPkY6ug0eDiYFbgsWCtyIKKworbXNnaWQgIkU3NTg6IFRydW5jYXRlZCBzcGVsbCBmaWxlIgorbXNnc3RyICJFNzU4OiCDWIN5g4uDdINAg0ODi4KqkNiO5oLnguqCxIKigumC5oKkgsWCtyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJUcmFpbGluZyB0ZXh0IGluICVzIGxpbmUgJWQ6ICVzIgorbXNnc3RyICIlcyAoJWQgjXOW2ikggsmRsYKtg2WDTINYg2c6ICVzIgorCisjLCBjLWZvcm1hdAorbXNnaWQgIkFmZml4IG5hbWUgdG9vIGxvbmcgaW4gJXMgbGluZSAlZDogJXMiCittc2dzdHIgIiVzICglZCCNc5baKSCCzCBhZmZpeCCWvIKqkreJ34KsgtyCtzogJXMiCisKK21zZ2lkICJFNzYxOiBGb3JtYXQgZXJyb3IgaW4gYWZmaXggZmlsZSBGT0wsIExPVyBvciBVUFAiCittc2dzdHIgIiIKKyJFNzYxOiBhZmZpeIN0g0CDQ4OLgswgRk9MLCBMT1cgguCCtYKtgs0gVVBQIILMg3SDSIFbg32DYoNngsmDR4OJgVuCqoKgguiC3IK3IgorCittc2dpZCAiRTc2MjogQ2hhcmFjdGVyIGluIEZPTCwgTE9XIG9yIFVQUCBpcyBvdXQgb2YgcmFuZ2UiCittc2dzdHIgIkU3NjI6IEZPTCwgTE9XIILggrWCrYLNIFVQUCCCzJW2jpqCqpTNiM2KT4LFgrciCisKK21zZ2lkICJDb21wcmVzc2luZyB3b3JkIHRyZWUuLi4iCittc2dzdHIgIpJQjOqDY4OKgVuC8Iizj2uCtYLEgqKC3IK3Li4uIgorCittc2dpZCAiRTc1NjogU3BlbGwgY2hlY2tpbmcgaXMgbm90IGVuYWJsZWQiCittc2dzdHIgIkU3NTY6IIK3gtiCrYNgg0aDYoNOgs2Ws4z4ibuCs4LqgsSCooLcgrciCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiV2FybmluZzogQ2Fubm90IGZpbmQgd29yZCBsaXN0IFwiJXMuJXMuc3BsXCIgb3IgXCIlcy5hc2NpaS5zcGxcIiIKK21zZ3N0ciAiIgorIox4jZA6IJJQjOqDioNYg2cgXCIlcy4lcy5zcGxcIiCCqILmgtEgXCIlcy5hc2NpaS5zcGxcIiCCzYypgsKCqYLogtyCuYLxIgorCisjLCBjLWZvcm1hdAorbXNnaWQgIlJlYWRpbmcgc3BlbGwgZmlsZSBcIiVzXCIiCittc2dzdHIgIoNYg3mDi4N0g0CDQ4OLIFwiJXNcIiCC8JPHjZ6ShiIKKworbXNnaWQgIkU3NTc6IFRoaXMgZG9lcyBub3QgbG9vayBsaWtlIGEgc3BlbGwgZmlsZSIKK21zZ3N0ciAiRTc1Nzogg1iDeYOLg3SDQINDg4uCxYLNgsiCooLmgqSCxYK3IgorCittc2dpZCAiRTc3MTogT2xkIHNwZWxsIGZpbGUsIG5lZWRzIHRvIGJlIHVwZGF0ZWQiCittc2dzdHIgIkU3NzE6IIzDgqKDWIN5g4uDdINAg0ODi4LIgsyCxSwgg0GDYoN2g2aBW4NngrWCxIKtgr6Cs4KiIgorCittc2dpZCAiRTc3MjogU3BlbGwgZmlsZSBpcyBmb3IgbmV3ZXIgdmVyc2lvbiBvZiBWaW0iCittc2dzdHIgIkU3NzI6IILmguiQVoK1gqKDb4Fbg1eDh4OTgswgVmltIJdwgsyDWIN5g4uDdINAg0ODi4LFgrciCisKK21zZ2lkICJFNzcwOiBVbnN1cHBvcnRlZCBzZWN0aW9uIGluIHNwZWxsIGZpbGUiCittc2dzdHIgIkU3NzA6IINYg3mDi4N0g0CDQ4OLgsmDVIN8gVuDZ4K1gsSCooLIgqKDWoNOg1aDh4OTgqqCoILogtyCtyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJXYXJuaW5nOiByZWdpb24gJXMgbm90IHN1cHBvcnRlZCIKK21zZ3N0ciAijHiNkDk6ICVzIILGgqKCpJTNiM2CzYNUg3yBW4NngrOC6oLEgqKC3IK5gvEiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiUmVhZGluZyBhZmZpeCBmaWxlICVzIC4uLiIKK21zZ3N0ciAiYWZmaXggg3SDQINDg4sgJXMggvCTx42ekoYuLi4iCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ29udmVyc2lvbiBmYWlsdXJlIGZvciB3b3JkIGluICVzIGxpbmUgJWQ6ICVzIgorbXNnc3RyICIlcyAoJWQgjXOW2ikggsySUIzqgvCVz4q3gsWCq4LcgrmC8YLFgrWCvTogJXMiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ29udmVyc2lvbiBpbiAlcyBub3Qgc3VwcG9ydGVkOiBmcm9tICVzIHRvICVzIgorbXNnc3RyICIlcyCT4ILMjp+CzJXPireCzYNUg3yBW4NngrOC6oLEgqKC3IK5gvE6ICVzIIKpgucgJXMggtYiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ29udmVyc2lvbiBpbiAlcyBub3Qgc3VwcG9ydGVkIgorbXNnc3RyICIlcyCT4ILMlc+Kt4LNg1SDfIFbg2eCs4LqgsSCooLcgrmC8SIKKworIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHZhbHVlIGZvciBGTEFHIGluICVzIGxpbmUgJWQ6ICVzIgorbXNnc3RyICIlcyCT4ILMICVkII1zltqCzCBGTEFHIILJlrOM+ILIkmyCqoKgguiC3IK3OiAlcyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJGTEFHIGFmdGVyIHVzaW5nIGZsYWdzIGluICVzIGxpbmUgJWQ6ICVzIgorbXNnc3RyICIlcyCT4ILMICVkII1zltqCyYN0g4mDT4LMk/GPZI5nl3CCqoKgguiC3IK3OiAlcyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJXcm9uZyBDT01QT1VORE1BWCB2YWx1ZSBpbiAlcyBsaW5lICVkOiAlcyIKK21zZ3N0ciAiJXMggswgJWQgjXOW2oLMIENPTVBPVU5ETUFYIILMkmyCyYzrguiCqoKgguiC3IK3OiAlcyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJXcm9uZyBDT01QT1VORE1JTiB2YWx1ZSBpbiAlcyBsaW5lICVkOiAlcyIKK21zZ3N0ciAiJXMggswgJWQgjXOW2oLMIENPTVBPVU5ETUlOIILMkmyCyYzrguiCqoKgguiC3IK3OiAlcyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJXcm9uZyBDT01QT1VORFNZTE1BWCB2YWx1ZSBpbiAlcyBsaW5lICVkOiAlcyIKK21zZ3N0ciAiJXMggswgJWQgjXOW2oLMIENPTVBPVU5EU1lMTUFYIILMkmyCyYzrguiCqoKgguiC3IK3OiAlcyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJEaWZmZXJlbnQgY29tYmluaW5nIGZsYWcgaW4gY29udGludWVkIGFmZml4IGJsb2NrIGluICVzIGxpbmUgJWQ6ICVzIgorbXNnc3RyICIiCisiJXMggswgJWQgjXOW2oLMIJhBkbEgYWZmaXggg3WDjYNig06CzIN0g4mDT4LMkWeNh4K5gsmI4YKigqqCoILogtyCtzogJXMiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiRHVwbGljYXRlIGFmZml4IGluICVzIGxpbmUgJWQ6ICVzIgorbXNnc3RyICIlcyCCzCAlZCCNc5bagskgj2SVoYK1gr0gYWZmaXgggvCMn49vgrWC3IK1gr06ICVzIgorCisjLCBjLWZvcm1hdAorbXNnaWQgIiIKKyJBZmZpeCBhbHNvIHVzZWQgZm9yIEJBRC9SQVJFL0tFRVBDQVNFL05FRURBRkZJWC9ORUVEQ09NUE9VTkQgaW4gJXMgbGluZSAlZDogIgorIiVzIgorbXNnc3RyICIiCisiJXMggswgJWQgjXOW2oLMIGFmZml4IILNIEJBRC9SQVJFL0tFRVBDQVNFL05FRURBRkZJWC9ORUVEQ09NUE9VTkQgIgorIoLJjmeXcIK1gsSCrYK+grOCojogJXMiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXhwZWN0ZWQgWSBvciBOIGluICVzIGxpbmUgJWQ6ICVzIgorbXNnc3RyICIlcyCCzCAlZCCNc5bagsWCzSBZIIKpIE4ggqqVS5d2gsWCtzogJXMiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiQnJva2VuIGNvbmRpdGlvbiBpbiAlcyBsaW5lICVkOiAlcyIKK21zZ3N0ciAiJXMggswgJWQgjXOW2oLMII/wjI+CzYnzguqCxIKigtyCtzogJXMiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiRXhwZWN0ZWQgUkVQKFNBTCkgY291bnQgaW4gJXMgbGluZSAlZCIKK21zZ3N0ciAiJXMggswgJWQgjXOW2oLJgs0gUkVQKFNBTCkggsyJ8ZCUgqqVS5d2gsWCtyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJFeHBlY3RlZCBNQVAgY291bnQgaW4gJXMgbGluZSAlZCIKK21zZ3N0ciAiJXMggswgJWQgjXOW2oLJgs0gTUFQIILMifGQlIKqlUuXdoLFgrciCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiRHVwbGljYXRlIGNoYXJhY3RlciBpbiBNQVAgaW4gJXMgbGluZSAlZCIKK21zZ3N0ciAiJXMggswgJWQgjXOW2oLMIE1BUCCCyY9klaGCtYK9lbaOmoKqgqCC6ILcgrciCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiVW5yZWNvZ25pemVkIG9yIGR1cGxpY2F0ZSBpdGVtIGluICVzIGxpbmUgJWQ6ICVzIgorbXNnc3RyICIlcyCCzCAlZCCNc5bagskglEaOr4LFgquCyIKigqmPZJWhgrWCvY2AltqCqoKgguiC3IK3OiAlcyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJNaXNzaW5nIEZPTC9MT1cvVVBQIGxpbmUgaW4gJXMiCittc2dzdHIgIiVkII1zltqCySBGT0wvTE9XL1VQUCCCqoKgguiC3IK5gvEiCisKK21zZ2lkICJDT01QT1VORFNZTE1BWCB1c2VkIHdpdGhvdXQgU1lMTEFCTEUiCittc2dzdHIgIlNZTExBQkxFIIKqjneS6IKzguqCyIKiIENPTVBPVU5EU1lMTUFYIgorCittc2dpZCAiVG9vIG1hbnkgcG9zdHBvbmVkIHByZWZpeGVzIgorbXNnc3RyICKSeImEjOOSdY5xgqqRvYK3gqyC3IK3IgorCittc2dpZCAiVG9vIG1hbnkgY29tcG91bmQgZmxhZ3MiCittc2dzdHIgIpWhjYeDdIOJg0+CqpG9id+CrILcgrciCisKK21zZ2lkICJUb28gbWFueSBwb3Nwb25lZCBwcmVmaXhlcyBhbmQvb3IgY29tcG91bmQgZmxhZ3MiCittc2dzdHIgIpJ4iYSM45J1jnEggsYvguCCtYKtgs0glaGNh4N0g4mDT4Kqkb2Ct4KsgtyCtyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJNaXNzaW5nIFNPRk8lcyBsaW5lIGluICVzIgorbXNnc3RyICJTT0ZPJXMgjXOCqiAlcyCCyYKgguiC3IK5gvEiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiQm90aCBTQUwgYW5kIFNPRk8gbGluZXMgaW4gJXMiCittc2dzdHIgIlNBTI1zIILGIFNPRk+NcyCCqiAlcyCCxZe8lfuOd5LogrOC6oLEgqKC3IK3IgorCisjLCBjLWZvcm1hdAorbXNnaWQgIkZsYWcgaXMgbm90IGEgbnVtYmVyIGluICVzIGxpbmUgJWQ6ICVzIgorbXNnc3RyICIlcyCCzCAlZCCNc4LMIIN0g4mDT4KqkJSSbILFgs2CoILogtyCuYLxOiAlcyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJJbGxlZ2FsIGZsYWcgaW4gJXMgbGluZSAlZDogJXMiCittc2dzdHIgIiVzIILMICVkII1zltqCzCCDdIOJg0+CqpVzkLOCxYK3OiAlcyIKKworIywgYy1mb3JtYXQKK21zZ2lkICIlcyB2YWx1ZSBkaWZmZXJzIGZyb20gd2hhdCBpcyB1c2VkIGluIGFub3RoZXIgLmFmZiBmaWxlIgorbXNnc3RyICKSbCAlcyCCzZG8gswgLmFmZiCDdINAg0ODi4LFjmeXcIKzguqCvYLMgsaI2YLIguiC3IK3IgorCisjLCBjLWZvcm1hdAorbXNnaWQgIlJlYWRpbmcgZGljdGlvbmFyeSBmaWxlICVzIC4uLiIKK21zZ3N0ciAijquPkYN0g0CDQ4OLICVzIILwg1iDTIODg5OShi4uLiIKKworIywgYy1mb3JtYXQKK21zZ2lkICJFNzYwOiBObyB3b3JkIGNvdW50IGluICVzIgorbXNnc3RyICJFNzYwOiAlcyCCyYLNklCM6pCUgqqCoILogtyCuYLxIgorCisjLCBjLWZvcm1hdAorbXNnaWQgImxpbmUgJTZkLCB3b3JkICU2ZCAtICVzIgorbXNnc3RyICKNcyAlNmQsIJJQjOogJTZkIC0gJXMiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiRHVwbGljYXRlIHdvcmQgaW4gJXMgbGluZSAlZDogJXMiCittc2dzdHIgIiVzIILMICVkII1zltqCxSCPZJWhklCM6oKqgt2CwoKpguiC3IK1gr06ICVzIgorCisjLCBjLWZvcm1hdAorbXNnaWQgIkZpcnN0IGR1cGxpY2F0ZSB3b3JkIGluICVzIGxpbmUgJWQ6ICVzIgorbXNnc3RyICKPZJWhgsyCpIK/jcWPiYLMklCM6oLNICVzIILMICVkII1zltqCxYK3OiAlcyIKKworIywgYy1mb3JtYXQKK21zZ2lkICIlZCBkdXBsaWNhdGUgd29yZChzKSBpbiAlcyIKK21zZ3N0ciAiJWQgjMKCzJJQjOqCqoypgsKCqYLogtyCtYK9ICglcyCT4CkiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiSWdub3JlZCAlZCB3b3JkKHMpIHdpdGggbm9uLUFTQ0lJIGNoYXJhY3RlcnMgaW4gJXMiCittc2dzdHIgIpTxQVNDSUmVto6agvCK3ILeICVkIIzCgsySUIzqgvCWs46LgrWC3IK1gr0gKCVzIJPgKSIKKworIywgYy1mb3JtYXQKK21zZ2lkICJSZWFkaW5nIHdvcmQgZmlsZSAlcyAuLi4iCittc2dzdHIgIpVXj4CT/JfNgqmC55PHjZ6C3ZKGLi4uIgorCisjLCBjLWZvcm1hdAorbXNnaWQgIkR1cGxpY2F0ZSAvZW5jb2Rpbmc9IGxpbmUgaWdub3JlZCBpbiAlcyBsaW5lICVkOiAlcyIKK21zZ3N0ciAiJXMggswgJWQgjXOW2oLMII9klaGCtYK9IC9lbmNvZGluZz0gjXOC8JazjouCtYLcgrWCvTogJXMiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiL2VuY29kaW5nPSBsaW5lIGFmdGVyIHdvcmQgaWdub3JlZCBpbiAlcyBsaW5lICVkOiAlcyIKK21zZ3N0ciAigZNzIILMICVkII1zltqCzCCSUIzqgsyM44LMIC9lbmNvZGluZz0gjXOC8JazjouCtYLcgrWCvTogJXMiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiRHVwbGljYXRlIC9yZWdpb25zPSBsaW5lIGlnbm9yZWQgaW4gJXMgbGluZSAlZDogJXMiCittc2dzdHIgIiVzIILMICVkII1zltqCzCCPZJWhgrWCvSAvcmVnaW9ucz0gjXOC8JazjouCtYLcgrWCvTogJXMiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiVG9vIG1hbnkgcmVnaW9ucyBpbiAlcyBsaW5lICVkOiAlcyIKK21zZ3N0ciAiJXMggswgJWQgjXOW2iwglM2IzY53kuiCqpG9greCrILcgrc6ICVzIgorCisjLCBjLWZvcm1hdAorbXNnaWQgIi8gbGluZSBpZ25vcmVkIGluICVzIGxpbmUgJWQ6ICVzIgorbXNnc3RyICIlcyCCzCAlZCCNc5bagswgj2SVoYK1gr0gLyCNc4LwlrOOi4K1gtyCtYK9OiAlcyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJJbnZhbGlkIHJlZ2lvbiBuciBpbiAlcyBsaW5lICVkOiAlcyIKK21zZ3N0ciAiJXMggswgJWQgjXOW2iCWs4z4gsggbnIgl8yI5oLFgrc6ICVzIgorCisjLCBjLWZvcm1hdAorbXNnaWQgIlVucmVjb2duaXplZCBmbGFncyBpbiAlcyBsaW5lICVkOiAlcyIKK21zZ3N0ciAiJXMggswgJWQgjXOW2iCURo6vlXOUXFyCyIN0g4mDT4LFgrc6ICVzIgorCisjLCBjLWZvcm1hdAorbXNnaWQgIklnbm9yZWQgJWQgd29yZHMgd2l0aCBub24tQVNDSUkgY2hhcmFjdGVycyIKK21zZ3N0ciAilPFBU0NJSZW2jpqC8Ircgt4gJWQgjMKCzJJQjOqC8JazjouCtYLcgrWCvSIKKworbXNnaWQgIkNvbXByZXNzZWQgJWQgb2YgJWQgbm9kZXM7ICVkICglZCUlKSByZW1haW5pbmciCittc2dzdHIgIoNtgVuDaCAlZCCMwiiRUyAlZCCMwpKGKSCC8Iizj2uCtYLcgrWCvTsgjmOC6CAlZCAoJWQlJSkiCisKK21zZ2lkICJSZWFkaW5nIGJhY2sgc3BlbGwgZmlsZS4uLiIKK21zZ3N0ciAig1iDeYOLg3SDQINDg4uC8It0k8eNnpKGIgorCisjLgorIy4gKiBHbyB0aHJvdWdoIHRoZSB0cmllIG9mIGdvb2Qgd29yZHMsIHNvdW5kZm9sZCBlYWNoIHdvcmQgYW5kIGFkZCBpdCB0bworIy4gKiB0aGUgc291bmRmb2xkIHRyaWUuCisjLgorbXNnaWQgIlBlcmZvcm1pbmcgc291bmRmb2xkaW5nLi4uIgorbXNnc3RyICKJuZC6j/SNnoLdgvCOwI1zkoYuLi4iCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiTnVtYmVyIG9mIHdvcmRzIGFmdGVyIHNvdW5kZm9sZGluZzogJWxkIgorbXNnc3RyICKJuZC6j/SNnoLdjOOCzJGNklCM6pCUOiAlbGQiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiVG90YWwgbnVtYmVyIG9mIHdvcmRzOiAlZCIKK21zZ3N0ciAikY2SUIzqkJQ6ICVkIgorCisjLCBjLWZvcm1hdAorbXNnaWQgIldyaXRpbmcgc3VnZ2VzdGlvbiBmaWxlICVzIC4uLiIKK21zZ3N0ciAij0OQs4zzleKDdINAg0ODiyBcIiVzXCIggvCPkY2egt2Shi4uLiIKKworIywgYy1mb3JtYXQKK21zZ2lkICJFc3RpbWF0ZWQgcnVudGltZSBtZW1vcnkgdXNlOiAlZCBieXRlcyIKK21zZ3N0ciAikISS6IOBg4KDio5nl3CXyjogJWQgg2+DQ4NnIgorCittc2dpZCAiRTc1MTogT3V0cHV0IGZpbGUgbmFtZSBtdXN0IG5vdCBoYXZlIHJlZ2lvbiBuYW1lIgorbXNnc3RyICJFNzUxOiCPb5fNg3SDQINDg4uWvILJgs2UzYjNlryC8Ircgt+C54LqgtyCuYLxIgorCittc2dpZCAiRTc1NDogT25seSB1cCB0byA4IHJlZ2lvbnMgc3VwcG9ydGVkIgorbXNnc3RyICJFNzU0OiCUzYjNgs0gOCCMwoLcgsWCtYKpg1SDfIFbg2eCs4LqgsSCooLcgrmC8SIKKworIywgYy1mb3JtYXQKK21zZ2lkICJFNzU1OiBJbnZhbGlkIHJlZ2lvbiBpbiAlcyIKK21zZ3N0ciAiRTc1NToglrOM+ILIlM2IzYLFgrc6ICVzIgorCittc2dpZCAiV2FybmluZzogYm90aCBjb21wb3VuZGluZyBhbmQgTk9CUkVBSyBzcGVjaWZpZWQiCittc2dzdHIgIox4jZA6IJWhjYeDdIOJg0+CxiBOT0JSRUFLIIKql7yV+4LGguCOd5LogrOC6oLcgrWCvSIKKworIywgYy1mb3JtYXQKK21zZ2lkICJXcml0aW5nIHNwZWxsIGZpbGUgJXMgLi4uIgorbXNnc3RyICKDWIN5g4uDdINAg0ODiyAlcyCC8I+RjZ6C3ZKGLi4uIgorCittc2dpZCAiRG9uZSEiCittc2dzdHIgIo7AjXOCtYLcgrWCvSEiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiRTc2NTogJ3NwZWxsZmlsZScgZG9lcyBub3QgaGF2ZSAlbGQgZW50cmllcyIKK21zZ3N0ciAiRTc2NTogJ3NwZWxsZmlsZScggsmCzSAlbGQgjMKCzINHg5ODZ4OKgs2CoILogtyCuYLxIgorCittc2dpZCAiRTc2MzogV29yZCBjaGFyYWN0ZXJzIGRpZmZlciBiZXR3ZWVuIHNwZWxsIGZpbGVzIgorbXNnc3RyICJFNzYzOiCSUIzqgsyVto6agqqDWIN5g4uDdINAg0ODi4LGiNmCyILogtyCtyIKKworbXNnaWQgIlNvcnJ5LCBubyBzdWdnZXN0aW9ucyIKK21zZ3N0ciAijmOUT4LFgreCqiwgj0OQs4zzleKCzYKgguiC3IK5gvEiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiU29ycnksIG9ubHkgJWxkIHN1Z2dlc3Rpb25zIgorbXNnc3RyICKOY5RPgsWCt4KqLCCPQ5CzjPOV4oLNICVsZCCMwoK1gqmCoILogtyCuYLxIgorCisjLiBhdm9pZCBtb3JlIHByb21wdAorIywgYy1mb3JtYXQKK21zZ2lkICJDaGFuZ2UgXCIlLipzXCIgdG86IgorbXNnc3RyICJcIiUuKnNcIiCC8I6fgtaVz4q3OiIKKworIywgYy1mb3JtYXQKK21zZ2lkICIgPCBcIiUuKnNcIiIKK21zZ3N0ciAiIDwgXCIlLipzXCIiCisKK21zZ2lkICJFNzUyOiBObyBwcmV2aW91cyBzcGVsbCByZXBsYWNlbWVudCIKK21zZ3N0ciAiRTc1Mjogg1iDeYOLknWKt4KqgtyCvo7AjXOCs4LqgsSCooLcgrmC8SIKKworIywgYy1mb3JtYXQKK21zZ2lkICJFNzUzOiBOb3QgZm91bmQ6ICVzIgorbXNnc3RyICJFNzUzOiCC3YLCgqmC6ILcgrmC8TogJXMiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiRTc3ODogVGhpcyBkb2VzIG5vdCBsb29rIGxpa2UgYSAuc3VnIGZpbGU6ICVzIgorbXNnc3RyICJFNzc4OiAuc3VnIIN0g0CDQ4OLgsWCzYLIgqKC5oKkgsWCtzogJXMiCisKKyMsIGMtZm9ybWF0Cittc2dpZCAiRTc3OTogT2xkIC5zdWcgZmlsZSwgbmVlZHMgdG8gYmUgdXBkYXRlZDogJXMiCittc2dzdHIgIkU3Nzk6IIzDgqIgLnN1ZyCDdINAg0ODi4LIgsyCxSwgg0GDYoN2g2aBW4NngrWCxIKtgr6Cs4KiIgorCisjLCBjLWZvcm1hdAorbXNnaWQgIkU3ODA6IC5zdWcgZmlsZSBpcyBmb3IgbmV3ZXIgdmVyc2lvbiBvZiBWaW06ICVzIgorbXNnc3RyICJFNzgwOiCC5oLokFaCtYKig2+BW4NXg4eDk4LMIFZpbSCXcILMIC5zdWcgg3SDQINDg4uCxYK3OiAlcyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJFNzgxOiAuc3VnIGZpbGUgZG9lc24ndCBtYXRjaCAuc3BsIGZpbGU6ICVzIgorbXNnc3RyICJFNzgxOiAuc3VnIIN0g0CDQ4OLgqogLnNwbCCDdINAg0ODi4LGiOqSdoK1gtyCuYLxOiAlcyIKKworIywgYy1mb3JtYXQKK21zZ2lkICJFNzgyOiBlcnJvciB3aGlsZSByZWFkaW5nIC5zdWcgZmlsZTogJXMiCittc2dzdHIgIkU3ODI6IC5zdWcgg3SDQINDg4uCzJPHjZ6ShoLJg0eDiYFbgqqUrZC2grWC3IK1gr06ICVzIgorCisjLiBUaGlzIHNob3VsZCBoYXZlIGJlZW4gY2hlY2tlZCB3aGVuIGdlbmVyYXRpbmcgdGhlIC5zcGwKKyMuICogZmlsZS4KK21zZ2lkICJFNzgzOiBkdXBsaWNhdGUgY2hhciBpbiBNQVAgZW50cnkiCittc2dzdHIgIkU3ODM6IE1BUCCDR4OTg2eDioLJj2SVoZW2jpqCqpG2jd2CtYLcgrciCisKICMsIGMtZm9ybWF0CiBtc2dpZCAiRTM5MDogSWxsZWdhbCBhcmd1bWVudDogJXMiCiBtc2dzdHIgIkUzOTA6IJVzkLOCyIj4kJSCxYK3OiAlcyIKQEAgLTQ3NjMsMTMgKzUxMjAsNiBAQAogbXNnaWQgImZpbGVcbiIKIG1zZ3N0ciAig3SDQINDg4tcbiIKIAotIy4KLSMuICogQXNrIHRvIHNlbGVjdCBhIHRhZyBmcm9tIHRoZSBsaXN0LgotIy4gKiBXaGVuIHVzaW5nICI6c2lsZW50IiBhc3N1bWUgdGhhdCA8Q1I+IHdhcyBlbnRlcmVkLgotIy4KLW1zZ2lkICJFbnRlciBuciBvZiBjaG9pY2UgKDxDUj4gdG8gYWJvcnQpOiAiCi1tc2dzdHIgIpFJkfCCt4LplNSNhoLwk/yXzYK1gsSCrYK+grOCoiAoPENSPoLFkoaOfik6ICIKLQogbXNnaWQgIkU0Mjc6IFRoZXJlIGlzIG9ubHkgb25lIG1hdGNoaW5nIHRhZyIKIG1zZ3N0ciAiRTQyNzogilmTloNeg0+CqjGCwoK+gq+CtYKpgqCC6ILcgrmC8SIKIApAQCAtNTA2MCw5ICs1NDEwLDYgQEAKIG1zZ2lkICJ3aXRoIChjbGFzc2ljKSBHVUkuIgogbXNnc3RyICJ3aXRoICiDToOJg1aDYoNOKSBHVUkuIgogCi1tc2dpZCAid2l0aCBLREUgR1VJLiIKLW1zZ3N0ciAid2l0aCBLREUgR1VJLiIKLQogbXNnaWQgIiAgRmVhdHVyZXMgaW5jbHVkZWQgKCspIG9yIG5vdCAoLSk6XG4iCiBtc2dzdHIgIiAgi0CUXFyCzIjql5cgl0yM+CgrKS+Ws4z4KC0pXG4iCiAKQEAgLTU0MzksNiArNTc4Niw5IEBACiBtc2dpZCAiRTQyOiBObyBFcnJvcnMiCiBtc2dzdHIgIkU0Mjogg0eDiYFbgs2CoILogtyCuYLxIgogCittc2dpZCAiRTc3NjogTm8gbG9jYXRpb24gbGlzdCIKK21zZ3N0ciAiRTc3Njogj+qPioOKg1iDZ4LNgqCC6ILcgrmC8SIKKwogbXNnaWQgIkU0MzogRGFtYWdlZCBtYXRjaCBzdHJpbmciCiBtc2dzdHIgIkU0MzogilmTlpW2jpqX8YKqlGqRuYK1gsSCooLcgrciCiAKQEAgLTU1MzIsMTEgKzU4ODIsMjUgQEAKIG1zZ2lkICJFNjg1OiBJbnRlcm5hbCBlcnJvcjogJXMiCiBtc2dzdHIgIkU2ODU6IJPglZSDR4OJgVuCxYK3OiAlcyIKIAotbXNnaWQgIkUzNjE6IENyYXNoIGludGVyY2VwdGVkOyByZWdleHAgdG9vIGNvbXBsZXg/IgotbXNnc3RyICJFMzYxOiCDToOJg2KDVoOFgsmC5oLokoaSZjsgkLOLS5VcXIy7gqqVoY5Hid+CrILpgqmC4D8iCi0KLW1zZ2lkICJFMzYzOiBwYXR0ZXJuIGNhdXNlZCBvdXQtb2Ytc3RhY2sgZXJyb3IiCi1tc2dzdHIgIkUzNjM6IINwg16BW4OTgsmC5oLpg1iDXoNig06Vc5Grg0eDiYFbgsWCtyIKK21zZ2lkICJFMzYzOiBwYXR0ZXJuIHVzZXMgbW9yZSBtZW1vcnkgdGhhbiAnbWF4bWVtcGF0dGVybiciCittc2dzdHIgIkUzNjM6IINwg16BW4OTgqogJ21heG1lbXBhdHRlcm4nIIjIj+OCzIOBg4KDioLwjmeXcIK1gtyCtyIKIAogbXNnaWQgIkU3NDk6IGVtcHR5IGJ1ZmZlciIKIG1zZ3N0ciAiRTc0OTogg2+DYoN0g0CCqovzgsWCtyIKKworIworbXNnaWQgIkU2ODI6IEludmFsaWQgc2VhcmNoIHBhdHRlcm4gb3IgZGVsaW1pdGVyIgorbXNnc3RyICJFNjgyOiCMn431g3CDXoFbg5OCqYvmkNiC6ItMjYaCqpVzkLOCxYK3IgorCittc2dpZCAiRTEzOTogRmlsZSBpcyBsb2FkZWQgaW4gYW5vdGhlciBidWZmZXIiCittc2dzdHIgIkUxMzk6IJOvgraWvJFPgsyDdINAg0ODi4KqkbyCzINvg2KDdINAgsWTx42egtyC6oLEgqKC3IK3IgorCisjLCBjLWZvcm1hdAorbXNnaWQgIkU3NjQ6IE9wdGlvbiAnJXMnIGlzIG5vdCBzZXQiCittc2dzdHIgIkU3NjQ6IINJg3aDVoOHg5MgJyVzJyCCzZDdkuiCs4LqgsSCooLcgrmC8SIKKworbXNnaWQgInNlYXJjaCBoaXQgVE9QLCBjb250aW51aW5nIGF0IEJPVFRPTSIKK21zZ3N0ciAij+OC3ILFjJ+N9YK1gr2CzILFibqCyZbfguiC3IK3IgorCittc2dpZCAic2VhcmNoIGhpdCBCT1RUT00sIGNvbnRpbnVpbmcgYXQgVE9QIgorbXNnc3RyICKJuoLcgsWMn431grWCvYLMgsWP44LJlt+C6ILcgrciCmRpZmYgLS1naXQgYS9zcmMvcG9wdXBtZW51LmMgYi9zcmMvcG9wdXBtZW51LmMKaW5kZXggYTEyOWQxNC4uNzAyNGU1NSAxMDA2NDQKLS0tIGEvc3JjL3BvcHVwbWVudS5jCisrKyBiL3NyYy9wb3B1cG1lbnUuYwpAQCAtODQsNyArODQsNyBAQAogICAgIH0KIAogICAgIC8qIGRvbid0IGRpc3BsYXkgd2hlbiB3ZSBvbmx5IGhhdmUgcm9vbSBmb3Igb25lIGxpbmUgKi8KLSAgICBpZiAocHVtX2hlaWdodCA8PSAxKQorICAgIGlmIChwdW1faGVpZ2h0IDwgMSB8fCAocHVtX2hlaWdodCA9PSAxICYmIHNpemUgPiAxKSkKIAlyZXR1cm47CiAKICAgICAvKiBDb21wdXRlIHRoZSB3aWR0aCBvZiB0aGUgd2lkZXN0IG1hdGNoLiAqLwpkaWZmIC0tZ2l0IGEvc3JjL3F1aWNrZml4LmMgYi9zcmMvcXVpY2tmaXguYwppbmRleCBjYTZjYzQwLi43MTM2YjdlIDEwMDY0NAotLS0gYS9zcmMvcXVpY2tmaXguYworKysgYi9zcmMvcXVpY2tmaXguYwpAQCAtMjU2NiwxMyArMjU2NiwxNCBAQAogZ3JlcF9pbnRlcm5hbChjbWRpZHgpCiAgICAgY21kaWR4X1QJY21kaWR4OwogewotICAgIHJldHVybiAoKGNtZGlkeCA9PSBDTURfZ3JlcCB8fCBjbWRpZHggPT0gQ01EX2dyZXBhZGQpCisgICAgcmV0dXJuICgoY21kaWR4ID09IENNRF9ncmVwIHx8IGNtZGlkeCA9PSBDTURfbGdyZXAKKwkgICAgIHx8IGNtZGlkeCA9PSBDTURfZ3JlcGFkZCB8fCBjbWRpZHggPT0gQ01EX2xncmVwYWRkKQogCSAgICAmJiBTVFJDTVAoImludGVybmFsIiwKIAkJCSpjdXJidWYtPmJfcF9ncCA9PSBOVUwgPyBwX2dwIDogY3VyYnVmLT5iX3BfZ3ApID09IDApOwogfQogCiAvKgotICogVXNlZCBmb3IgIjptYWtlIiwgIjpncmVwIiBhbmQgIjpncmVwYWRkIi4KKyAqIFVzZWQgZm9yICI6bWFrZSIsICI6bG1ha2UiLCAiOmdyZXAiLCAiOmxncmVwIiwgIjpncmVwYWRkIiwgYW5kICI6bGdyZXBhZGQiCiAgKi8KICAgICB2b2lkCiBleF9tYWtlKGVhcCkKQEAgLTI1ODEsMTQgKzI1ODIsMTkgQEAKICAgICBjaGFyX3UJKmZuYW1lOwogICAgIGNoYXJfdQkqY21kOwogICAgIHVuc2lnbmVkCWxlbjsKKyAgICB3aW5fVAkqd3AgPSBOVUxMOworICAgIHFmX2luZm9fVAkqcWk7CiAjaWZkZWYgRkVBVF9BVVRPQ01ECiAgICAgY2hhcl91CSphdV9uYW1lID0gTlVMTDsKIAogICAgIHN3aXRjaCAoZWFwLT5jbWRpZHgpCiAgICAgewogCWNhc2UgQ01EX21ha2U6IGF1X25hbWUgPSAoY2hhcl91ICopIm1ha2UiOyBicmVhazsKKwljYXNlIENNRF9sbWFrZTogYXVfbmFtZSA9IChjaGFyX3UgKikibG1ha2UiOyBicmVhazsKIAljYXNlIENNRF9ncmVwOiBhdV9uYW1lID0gKGNoYXJfdSAqKSJncmVwIjsgYnJlYWs7CisJY2FzZSBDTURfbGdyZXA6IGF1X25hbWUgPSAoY2hhcl91ICopImxncmVwIjsgYnJlYWs7CiAJY2FzZSBDTURfZ3JlcGFkZDogYXVfbmFtZSA9IChjaGFyX3UgKikiZ3JlcGFkZCI7IGJyZWFrOworCWNhc2UgQ01EX2xncmVwYWRkOiBhdV9uYW1lID0gKGNoYXJfdSAqKSJsZ3JlcGFkZCI7IGJyZWFrOwogCWRlZmF1bHQ6IGJyZWFrOwogICAgIH0KICAgICBpZiAoYXVfbmFtZSAhPSBOVUxMKQpAQCAtMjYwOSw2ICsyNjE1LDE1IEBACiAJcmV0dXJuOwogICAgIH0KIAorICAgIGlmIChlYXAtPmNtZGlkeCA9PSBDTURfbG1ha2UgfHwgZWFwLT5jbWRpZHggPT0gQ01EX2xncmVwCisJfHwgZWFwLT5jbWRpZHggPT0gQ01EX2xncmVwYWRkKQorICAgIHsKKwlxaSA9IGxsX2dldF9vcl9hbGxvY19saXN0KGN1cndpbik7CisJaWYgKHFpID09IE5VTEwpCisJICAgIHJldHVybjsKKwl3cCA9IGN1cndpbjsKKyAgICB9CisKICAgICBhdXRvd3JpdGVfYWxsKCk7CiAgICAgZm5hbWUgPSBnZXRfbWVmX25hbWUoKTsKICAgICBpZiAoZm5hbWUgPT0gTlVMTCkKQEAgLTI2NDcsMTAgKzI2NjIsMTIgQEAKICAgICAodm9pZCljaGFyX2F2YWlsKCk7CiAjZW5kaWYKIAotICAgIGlmIChxZl9pbml0KE5VTEwsIGZuYW1lLCBlYXAtPmNtZGlkeCAhPSBDTURfbWFrZSA/IHBfZ2VmbSA6IHBfZWZtLAotCQkJCQkgICAgICAgZWFwLT5jbWRpZHggIT0gQ01EX2dyZXBhZGQpID4gMAorICAgIGlmIChxZl9pbml0KHdwLCBmbmFtZSwgKGVhcC0+Y21kaWR4ICE9IENNRF9tYWtlCisJCQkgICAgJiYgZWFwLT5jbWRpZHggIT0gQ01EX2xtYWtlKSA/IHBfZ2VmbSA6IHBfZWZtLAorCQkJCQkgICAoZWFwLT5jbWRpZHggIT0gQ01EX2dyZXBhZGQKKwkJCQkJICAgICYmIGVhcC0+Y21kaWR4ICE9IENNRF9sZ3JlcGFkZCkpID4gMAogCSAgICAmJiAhZWFwLT5mb3JjZWl0KQotCXFmX2p1bXAoTlVMTCwgMCwgMCwgRkFMU0UpOwkJLyogZGlzcGxheSBmaXJzdCBlcnJvciAqLworCXFmX2p1bXAod3AsIDAsIDAsIEZBTFNFKTsJCS8qIGRpc3BsYXkgZmlyc3QgZXJyb3IgKi8KIAogICAgIG1jaF9yZW1vdmUoZm5hbWUpOwogICAgIHZpbV9mcmVlKGZuYW1lKTsKQEAgLTI4MzIsNiArMjg0OSw5IEBACiAKIC8qCiAgKiAiOnZpbWdyZXAge3BhdHRlcm59IGZpbGUocykiCisgKiAiOnZpbWdyZXBhZGQge3BhdHRlcm59IGZpbGUocykiCisgKiAiOmx2aW1ncmVwIHtwYXR0ZXJufSBmaWxlKHMpIgorICogIjpsdmltZ3JlcGFkZCB7cGF0dGVybn0gZmlsZShzKSIKICAqLwogICAgIHZvaWQKIGV4X3ZpbWdyZXAoZWFwKQpAQCAtMjg0Myw3ICsyODYzLDkgQEAKICAgICBjaGFyX3UJKnM7CiAgICAgY2hhcl91CSpwOwogICAgIGludAkJZmk7CisgICAgcWZfaW5mb19UCSpxaSA9ICZxbF9pbmZvOwogICAgIHFmbGluZV9UCSpwcmV2cCA9IE5VTEw7CisgICAgd2luX1QJKndwID0gTlVMTDsKICAgICBsb25nCWxudW07CiAgICAgYnVmX1QJKmJ1ZjsKICAgICBpbnQJCWR1cGxpY2F0ZV9uYW1lID0gRkFMU0U7CkBAIC0yODU5LDEyICsyODgxLDEzIEBACiAgICAgY2hhcl91CSphdV9uYW1lID0gIE5VTEw7CiAgICAgaW50CQlmbGFncyA9IDA7CiAgICAgY29sbnJfVAljb2w7Ci0gICAgcWZfaW5mb19UCSpxaSA9ICZxbF9pbmZvOwogCiAgICAgc3dpdGNoIChlYXAtPmNtZGlkeCkKICAgICB7CiAJY2FzZSBDTURfdmltZ3JlcDogYXVfbmFtZSA9IChjaGFyX3UgKikidmltZ3JlcCI7IGJyZWFrOworCWNhc2UgQ01EX2x2aW1ncmVwOiBhdV9uYW1lID0gKGNoYXJfdSAqKSJsdmltZ3JlcCI7IGJyZWFrOwogCWNhc2UgQ01EX3ZpbWdyZXBhZGQ6IGF1X25hbWUgPSAoY2hhcl91ICopInZpbWdyZXBhZGQiOyBicmVhazsKKwljYXNlIENNRF9sdmltZ3JlcGFkZDogYXVfbmFtZSA9IChjaGFyX3UgKikibHZpbWdyZXBhZGQiOyBicmVhazsKIAlkZWZhdWx0OiBicmVhazsKICAgICB9CiAgICAgaWYgKGF1X25hbWUgIT0gTlVMTCkKQEAgLTI4NzYsNiArMjg5OSwxNSBAQAogICAgIH0KICNlbmRpZgogCisgICAgaWYgKGVhcC0+Y21kaWR4ID09IENNRF9ncmVwIHx8IGVhcC0+Y21kaWR4ID09IENNRF9sdmltZ3JlcAorCXx8IGVhcC0+Y21kaWR4ID09IENNRF9sZ3JlcGFkZCB8fCBlYXAtPmNtZGlkeCA9PSBDTURfbHZpbWdyZXBhZGQpCisgICAgeworCXFpID0gbGxfZ2V0X29yX2FsbG9jX2xpc3QoY3Vyd2luKTsKKwlpZiAocWkgPT0gTlVMTCkKKwkgICAgcmV0dXJuOworCXdwID0gY3Vyd2luOworICAgIH0KKwogICAgIC8qIEdldCB0aGUgc2VhcmNoIHBhdHRlcm46IGVpdGhlciB3aGl0ZS1zZXBhcmF0ZWQgb3IgZW5jbG9zZWQgaW4gLy8gKi8KICAgICByZWdtYXRjaC5yZWdwcm9nID0gTlVMTDsKICAgICBwID0gc2tpcF92aW1ncmVwX3BhdChlYXAtPmFyZywgJnMsICZmbGFncyk7CkBAIC0yODk3LDcgKzI5MjksOCBAQAogCWdvdG8gdGhlZW5kOwogICAgIH0KIAotICAgIGlmICgoZWFwLT5jbWRpZHggIT0gQ01EX2dyZXBhZGQgJiYgZWFwLT5jbWRpZHggIT0gQ01EX3ZpbWdyZXBhZGQpCisgICAgaWYgKChlYXAtPmNtZGlkeCAhPSBDTURfZ3JlcGFkZCAmJiBlYXAtPmNtZGlkeCAhPSBDTURfbGdyZXBhZGQgJiYgCisJIGVhcC0+Y21kaWR4ICE9IENNRF92aW1ncmVwYWRkICYmIGVhcC0+Y21kaWR4ICE9IENNRF9sdmltZ3JlcGFkZCkKIAkJCQkJfHwgcWktPnFmX2N1cmxpc3QgPT0gcWktPnFmX2xpc3Rjb3VudCkKIAkvKiBtYWtlIHBsYWNlIGZvciBhIG5ldyBsaXN0ICovCiAJcWZfbmV3X2xpc3QocWkpOwpAQCAtMzA3Miw3ICszMTA1LDcgQEAKICAgICBpZiAocWktPnFmX2xpc3RzW3FpLT5xZl9jdXJsaXN0XS5xZl9jb3VudCA+IDApCiAgICAgewogCWlmICgoZmxhZ3MgJiBWR1JfTk9KVU1QKSA9PSAwKQotCSAgICBxZl9qdW1wKE5VTEwsIDAsIDAsIGVhcC0+Zm9yY2VpdCk7CisJICAgIHFmX2p1bXAod3AsIDAsIDAsIGVhcC0+Zm9yY2VpdCk7CiAgICAgfQogICAgIGVsc2UKIAlFTVNHMihfKGVfbm9tYXRjaDIpLCBzKTsKQEAgLTMzOTYsNyArMzQyOSw5IEBACiAKIC8qCiAgKiAiOltyYW5nZV1jYnVmZmVyIFtidWZucl0iIGNvbW1hbmQuCisgKiAiOltyYW5nZV1jYWRkYnVmZmVyIFtidWZucl0iIGNvbW1hbmQuCiAgKiAiOltyYW5nZV1sYnVmZmVyIFtidWZucl0iIGNvbW1hbmQuCisgKiAiOltyYW5nZV1sYWRkYnVmZmVyIFtidWZucl0iIGNvbW1hbmQuCiAgKi8KICAgICB2b2lkCiBleF9jYnVmZmVyKGVhcCkKQEAgLTM0MDUsNyArMzQ0MCw3IEBACiAgICAgYnVmX1QJKmJ1ZiA9IE5VTEw7CiAgICAgcWZfaW5mb19UCSpxaSA9ICZxbF9pbmZvOwogCi0gICAgaWYgKGVhcC0+Y21kaWR4ID09IENNRF9sYnVmZmVyKQorICAgIGlmIChlYXAtPmNtZGlkeCA9PSBDTURfbGJ1ZmZlciB8fCBlYXAtPmNtZGlkeCA9PSBDTURfbGFkZGJ1ZmZlcikKICAgICB7CiAJcWkgPSBsbF9nZXRfb3JfYWxsb2NfbGlzdChjdXJ3aW4pOwogCWlmIChxaSA9PSBOVUxMKQpAQCAtMzQzMSw3ICszNDY2LDEwIEBACiAJCXx8IGVhcC0+bGluZTIgPCAxIHx8IGVhcC0+bGluZTIgPiBidWYtPmJfbWwubWxfbGluZV9jb3VudCkKIAkgICAgRU1TRyhfKGVfaW52cmFuZ2UpKTsKIAllbHNlCi0JICAgIHFmX2luaXRfZXh0KHFpLCBOVUxMLCBidWYsIE5VTEwsIHBfZWZtLCBUUlVFLCBlYXAtPmxpbmUxLCBlYXAtPmxpbmUyKTsKKwkgICAgcWZfaW5pdF9leHQocWksIE5VTEwsIGJ1ZiwgTlVMTCwgcF9lZm0sCisJCQkoZWFwLT5jbWRpZHggPT0gQ01EX2NidWZmZXIKKwkJCSB8fCBlYXAtPmNtZGlkeCA9PSBDTURfbGJ1ZmZlciksCisJCQllYXAtPmxpbmUxLCBlYXAtPmxpbmUyKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy92ZXJzaW9uLmggYi9zcmMvdmVyc2lvbi5oCmluZGV4IDQ4YWU0MTIuLjVkNmM3ZjkgMTAwNjQ0Ci0tLSBhL3NyYy92ZXJzaW9uLmgKKysrIGIvc3JjL3ZlcnNpb24uaApAQCAtMzYsNSArMzYsNSBAQAogI2RlZmluZSBWSU1fVkVSU0lPTl9OT0RPVAkidmltNzBhYSIKICNkZWZpbmUgVklNX1ZFUlNJT05fU0hPUlQJIjcuMGFhIgogI2RlZmluZSBWSU1fVkVSU0lPTl9NRURJVU0JIjcuMGFhIEFMUEhBIgotI2RlZmluZSBWSU1fVkVSU0lPTl9MT05HCSJWSU0gLSBWaSBJTXByb3ZlZCA3LjBhYSBBTFBIQSAoMjAwNiBGZWIgMykiCi0jZGVmaW5lIFZJTV9WRVJTSU9OX0xPTkdfREFURQkiVklNIC0gVmkgSU1wcm92ZWQgNy4wYWEgQUxQSEEgKDIwMDYgRmViIDMsIGNvbXBpbGVkICIKKyNkZWZpbmUgVklNX1ZFUlNJT05fTE9ORwkiVklNIC0gVmkgSU1wcm92ZWQgNy4wYWEgQUxQSEEgKDIwMDYgRmViIDQpIgorI2RlZmluZSBWSU1fVkVSU0lPTl9MT05HX0RBVEUJIlZJTSAtIFZpIElNcHJvdmVkIDcuMGFhIEFMUEhBICgyMDA2IEZlYiA0LCBjb21waWxlZCAiCg==