ZGlmZiAtLWdpdCBhL2ZwZGZzZGsvZnBkZl9zdHJ1Y3R0cmVlLmNwcCBiL2ZwZGZzZGsvZnBkZl9zdHJ1Y3R0cmVlLmNwcAppbmRleCAyYzVjNmUzLi41NmQxNzYyIDEwMDY0NAotLS0gYS9mcGRmc2RrL2ZwZGZfc3RydWN0dHJlZS5jcHAKKysrIGIvZnBkZnNkay9mcGRmX3N0cnVjdHRyZWUuY3BwCkBAIC03LDYgKzcsNyBAQAogI2luY2x1ZGUgPG1lbW9yeT4KIAogI2luY2x1ZGUgImNvcmUvZnBkZmFwaS9wYWdlL2NwZGZfcGFnZS5oIgorI2luY2x1ZGUgImNvcmUvZnBkZmFwaS9wYXJzZXIvY3BkZl9hcnJheS5oIgogI2luY2x1ZGUgImNvcmUvZnBkZmFwaS9wYXJzZXIvY3BkZl9kaWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiY29yZS9mcGRmZG9jL2NwZGZfc3RydWN0ZWxlbWVudC5oIgogI2luY2x1ZGUgImNvcmUvZnBkZmRvYy9jcGRmX3N0cnVjdHRyZWUuaCIKQEAgLTc4LDYgKzc5LDI4IEBACiAgIHJldHVybiBlbGVtID8gV2lkZVN0cmluZ1RvQnVmZmVyKGVsZW0tPkdldEFsdFRleHQoKSwgYnVmZmVyLCBidWZsZW4pIDogMDsKIH0KIAorRlBERl9FWFBPUlQgdW5zaWduZWQgbG9uZyBGUERGX0NBTExDT05WCitGUERGX1N0cnVjdEVsZW1lbnRfR2V0U3RyaW5nQXR0cmlidXRlKEZQREZfU1RSVUNURUxFTUVOVCBzdHJ1Y3RfZWxlbWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlBERl9CWVRFU1RSSU5HIGF0dHJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogYnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGJ1ZmxlbikgeworICBDUERGX1N0cnVjdEVsZW1lbnQqIGVsZW0gPQorICAgICAgQ1BERlN0cnVjdEVsZW1lbnRGcm9tRlBERlN0cnVjdEVsZW1lbnQoc3RydWN0X2VsZW1lbnQpOworICBjb25zdCBDUERGX0RpY3Rpb25hcnkqIGRpY3QgPSBlbGVtID8gZWxlbS0+R2V0RGljdCgpIDogbnVsbHB0cjsKKyAgY29uc3QgQ1BERl9BcnJheSogYXJyYXkgPSBkaWN0ID8gZGljdC0+R2V0QXJyYXlGb3IoIkEiKSA6IG51bGxwdHI7CisgIGlmICghYXJyYXkpCisgICAgcmV0dXJuIDA7CisgIENQREZfQXJyYXlMb2NrZXIgbG9ja2VyKGFycmF5KTsKKyAgZm9yIChjb25zdCBSZXRhaW5QdHI8Q1BERl9PYmplY3Q+JiBvYmogOiBsb2NrZXIpIHsKKyAgICBjb25zdCBDUERGX0RpY3Rpb25hcnkqIG9ial9kaWN0ID0gb2JqLT5Bc0RpY3Rpb25hcnkoKTsKKyAgICBpZiAob2JqX2RpY3QgJiYgb2JqX2RpY3QtPktleUV4aXN0KGF0dHJfbmFtZSkpIHsKKyAgICAgIHJldHVybiBXaWRlU3RyaW5nVG9CdWZmZXIob2JqX2RpY3QtPkdldFVuaWNvZGVUZXh0Rm9yKGF0dHJfbmFtZSksIGJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmbGVuKTsKKyAgICB9CisgIH0KKyAgcmV0dXJuIDA7Cit9CisKIEZQREZfRVhQT1JUIGludCBGUERGX0NBTExDT05WCiBGUERGX1N0cnVjdEVsZW1lbnRfR2V0TWFya2VkQ29udGVudElEKEZQREZfU1RSVUNURUxFTUVOVCBzdHJ1Y3RfZWxlbWVudCkgewogICBDUERGX1N0cnVjdEVsZW1lbnQqIGVsZW0gPQpkaWZmIC0tZ2l0IGEvZnBkZnNkay9mcGRmX3N0cnVjdHRyZWVfZW1iZWRkZXJ0ZXN0LmNwcCBiL2ZwZGZzZGsvZnBkZl9zdHJ1Y3R0cmVlX2VtYmVkZGVydGVzdC5jcHAKaW5kZXggOGE4YzY1Zi4uNWEzYmEwYiAxMDA2NDQKLS0tIGEvZnBkZnNkay9mcGRmX3N0cnVjdHRyZWVfZW1iZWRkZXJ0ZXN0LmNwcAorKysgYi9mcGRmc2RrL2ZwZGZfc3RydWN0dHJlZV9lbWJlZGRlcnRlc3QuY3BwCkBAIC01LDYgKzUsNyBAQAogI2luY2x1ZGUgImNvcmUvZnhjcnQvZnhfc3RyaW5nLmgiCiAjaW5jbHVkZSAicHVibGljL2ZwZGZfc3RydWN0dHJlZS5oIgogI2luY2x1ZGUgInRlc3RpbmcvZW1iZWRkZXJfdGVzdC5oIgorI2luY2x1ZGUgInRlc3RpbmcvZnhfc3RyaW5nX3Rlc3RoZWxwZXJzLmgiCiAjaW5jbHVkZSAidGhpcmRfcGFydHkvYmFzZS9vcHRpb25hbC5oIgogI2luY2x1ZGUgInRoaXJkX3BhcnR5L2Jhc2Uvc3RsX3V0aWwuaCIKIApAQCAtNzYsNiArNzcsNjAgQEAKICAgVW5sb2FkUGFnZShwYWdlKTsKIH0KIAorVEVTVF9GKEZQREZTdHJ1Y3RUcmVlRW1iZWRkZXJUZXN0LCBHZXRTdHJpbmdBdHRyaWJ1dGUpIHsKKyAgQVNTRVJUX1RSVUUoT3BlbkRvY3VtZW50KCJ0YWdnZWRfdGFibGUucGRmIikpOworICBGUERGX1BBR0UgcGFnZSA9IExvYWRQYWdlKDApOworICBBU1NFUlRfVFJVRShwYWdlKTsKKworICB7CisgICAgU2NvcGVkRlBERlN0cnVjdFRyZWUgc3RydWN0X3RyZWUoRlBERl9TdHJ1Y3RUcmVlX0dldEZvclBhZ2UocGFnZSkpOworICAgIEFTU0VSVF9UUlVFKHN0cnVjdF90cmVlKTsKKyAgICBBU1NFUlRfRVEoMSwgRlBERl9TdHJ1Y3RUcmVlX0NvdW50Q2hpbGRyZW4oc3RydWN0X3RyZWUuZ2V0KCkpKTsKKworICAgIEZQREZfU1RSVUNURUxFTUVOVCBkb2N1bWVudCA9IGRvY3VtZW50ID0KKyAgICAgICAgRlBERl9TdHJ1Y3RUcmVlX0dldENoaWxkQXRJbmRleChzdHJ1Y3RfdHJlZS5nZXQoKSwgMCk7CisgICAgQVNTRVJUX1RSVUUoZG9jdW1lbnQpOworCisgICAgY29uc3RleHByIGludCBrQnVmTGVuID0gMTAwOworICAgIHVpbnQxNl90IGJ1ZmZlcltrQnVmTGVuXSA9IHswfTsKKyAgICBFWFBFQ1RfRVEoMThVLCBGUERGX1N0cnVjdEVsZW1lbnRfR2V0VHlwZShkb2N1bWVudCwgYnVmZmVyLCBrQnVmTGVuKSk7CisgICAgRVhQRUNUX0VRKCJEb2N1bWVudCIsIEdldFBsYXRmb3JtU3RyaW5nKGJ1ZmZlcikpOworCisgICAgQVNTRVJUX0VRKDEsIEZQREZfU3RydWN0RWxlbWVudF9Db3VudENoaWxkcmVuKGRvY3VtZW50KSk7CisgICAgRlBERl9TVFJVQ1RFTEVNRU5UIHRhYmxlID0gRlBERl9TdHJ1Y3RFbGVtZW50X0dldENoaWxkQXRJbmRleChkb2N1bWVudCwgMCk7CisgICAgQVNTRVJUX1RSVUUodGFibGUpOworCisgICAgRVhQRUNUX0VRKDEyVSwgRlBERl9TdHJ1Y3RFbGVtZW50X0dldFR5cGUodGFibGUsIGJ1ZmZlciwga0J1ZkxlbikpOworICAgIEVYUEVDVF9FUSgiVGFibGUiLCBHZXRQbGF0Zm9ybVN0cmluZyhidWZmZXIpKTsKKworICAgIEFTU0VSVF9FUSgyLCBGUERGX1N0cnVjdEVsZW1lbnRfQ291bnRDaGlsZHJlbih0YWJsZSkpOworICAgIEZQREZfU1RSVUNURUxFTUVOVCByb3cgPSBGUERGX1N0cnVjdEVsZW1lbnRfR2V0Q2hpbGRBdEluZGV4KHRhYmxlLCAwKTsKKyAgICBBU1NFUlRfVFJVRShyb3cpOworCisgICAgQVNTRVJUX0VRKDIsIEZQREZfU3RydWN0RWxlbWVudF9Db3VudENoaWxkcmVuKHJvdykpOworICAgIEZQREZfU1RSVUNURUxFTUVOVCBoZWFkZXJfY2VsbCA9IEZQREZfU3RydWN0RWxlbWVudF9HZXRDaGlsZEF0SW5kZXgocm93LCAwKTsKKyAgICBBU1NFUlRfVFJVRShoZWFkZXJfY2VsbCk7CisKKyAgICBFWFBFQ1RfRVEoNlUsIEZQREZfU3RydWN0RWxlbWVudF9HZXRUeXBlKGhlYWRlcl9jZWxsLCBidWZmZXIsIGtCdWZMZW4pKTsKKyAgICBFWFBFQ1RfRVEoIlRIIiwgR2V0UGxhdGZvcm1TdHJpbmcoYnVmZmVyKSk7CisKKyAgICAvLyBUaGUgaGVhZGVyIHNob3VsZCBoYXZlIGFuIGF0dHJpYnV0ZSAiU2NvcGUiIHdpdGggYSBzY29wZSBvZiAiUm93Ii4KKyAgICBFWFBFQ1RfRVEoOFUsIEZQREZfU3RydWN0RWxlbWVudF9HZXRTdHJpbmdBdHRyaWJ1dGUoaGVhZGVyX2NlbGwsICJTY29wZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlciwga0J1ZkxlbikpOworICAgIEVYUEVDVF9FUSgiUm93IiwgR2V0UGxhdGZvcm1TdHJpbmcoYnVmZmVyKSk7CisKKyAgICAvLyBBbiB1bnN1cHBvcnRlZCBhdHRyaWJ1dGUgc2hvdWxkIHJldHVybiAwLgorICAgIEVYUEVDVF9FUSgwVSwgRlBERl9TdHJ1Y3RFbGVtZW50X0dldFN0cmluZ0F0dHJpYnV0ZShoZWFkZXJfY2VsbCwgIk90aGVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLCBrQnVmTGVuKSk7CisKKyAgICAvLyBBIG51bGwgc3RydWN0IGVsZW1lbnQgc2hvdWxkIG5vdCBjcmFzaC4KKyAgICBFWFBFQ1RfRVEoMFUsIEZQREZfU3RydWN0RWxlbWVudF9HZXRTdHJpbmdBdHRyaWJ1dGUobnVsbHB0ciwgIk90aGVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLCBrQnVmTGVuKSk7CisgIH0KKworICBVbmxvYWRQYWdlKHBhZ2UpOworfQorCiBURVNUX0YoRlBERlN0cnVjdFRyZWVFbWJlZGRlclRlc3QsIEdldE1hcmtlZENvbnRlbnRJRCkgewogICBBU1NFUlRfVFJVRShPcGVuRG9jdW1lbnQoIm1hcmtlZF9jb250ZW50X2lkLnBkZiIpKTsKICAgRlBERl9QQUdFIHBhZ2UgPSBMb2FkUGFnZSgwKTsKZGlmZiAtLWdpdCBhL2ZwZGZzZGsvZnBkZl92aWV3X2NfYXBpX3Rlc3QuYyBiL2ZwZGZzZGsvZnBkZl92aWV3X2NfYXBpX3Rlc3QuYwppbmRleCBiMGU0NjA2Li4yMTRmYjczMyAxMDA2NDQKLS0tIGEvZnBkZnNkay9mcGRmX3ZpZXdfY19hcGlfdGVzdC5jCisrKyBiL2ZwZGZzZGsvZnBkZl92aWV3X2NfYXBpX3Rlc3QuYwpAQCAtMzI0LDYgKzMyNCw3IEBACiAgICAgQ0hLKEZQREZfU3RydWN0RWxlbWVudF9HZXRBbHRUZXh0KTsKICAgICBDSEsoRlBERl9TdHJ1Y3RFbGVtZW50X0dldENoaWxkQXRJbmRleCk7CiAgICAgQ0hLKEZQREZfU3RydWN0RWxlbWVudF9HZXRNYXJrZWRDb250ZW50SUQpOworICAgIENISyhGUERGX1N0cnVjdEVsZW1lbnRfR2V0U3RyaW5nQXR0cmlidXRlKTsKICAgICBDSEsoRlBERl9TdHJ1Y3RFbGVtZW50X0dldFRpdGxlKTsKICAgICBDSEsoRlBERl9TdHJ1Y3RFbGVtZW50X0dldFR5cGUpOwogICAgIENISyhGUERGX1N0cnVjdFRyZWVfQ2xvc2UpOwpkaWZmIC0tZ2l0IGEvcHVibGljL2ZwZGZfc3RydWN0dHJlZS5oIGIvcHVibGljL2ZwZGZfc3RydWN0dHJlZS5oCmluZGV4IGE4MDgzZDUuLjZhMTQwMjMgMTAwNjQ0Ci0tLSBhL3B1YmxpYy9mcGRmX3N0cnVjdHRyZWUuaAorKysgYi9wdWJsaWMvZnBkZl9zdHJ1Y3R0cmVlLmgKQEAgLTc1LDYgKzc1LDI5IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBidWZmZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGJ1Zmxlbik7CiAKKy8vIEZ1bmN0aW9uOiBGUERGX1N0cnVjdEVsZW1lbnRfR2V0U3RyaW5nQXR0cmlidXRlCisvLyAgICAgICAgICBHZXQgYSBzdHJ1Y3QgZWxlbWVudCBhdHRyaWJ1dGUgb2YgdHlwZSAibmFtZSIgb3IgInN0cmluZyIuCisvLyAgICAgICAgICBFeHBlcmltZW50YWwgQVBJLgorLy8gUGFyYW1ldGVyczoKKy8vICAgICAgICAgIHN0cnVjdF9lbGVtZW50IC0gICBIYW5kbGUgdG8gdGhlIHN0cnVjdCBlbGVtZW50LgorLy8gICAgICAgICAgYXR0cl9uYW1lICAgICAgLSAgIFRoZSBuYW1lIG9mIHRoZSBhdHRyaWJ1dGUgdG8gcmV0cmlldmUuCisvLyAgICAgICAgICBidWZmZXIgICAgICAgICAtICAgQSBidWZmZXIgZm9yIG91dHB1dC4gTWF5IGJlIE5VTEwuCisvLyAgICAgICAgICBidWZsZW4gICAgICAgICAtICAgVGhlIGxlbmd0aCBvZiB0aGUgYnVmZmVyLCBpbiBieXRlcy4gTWF5IGJlIDAuCisvLyBSZXR1cm4gdmFsdWU6CisvLyAgICAgICAgICBUaGUgbnVtYmVyIG9mIGJ5dGVzIGluIHRoZSBhdHRyaWJ1dGUgdmFsdWUsIGluY2x1ZGluZyB0aGUKKy8vICAgICAgICAgIHRlcm1pbmF0aW5nIE5VTCBjaGFyYWN0ZXIuIFRoZSBudW1iZXIgb2YgYnl0ZXMgaXMgcmV0dXJuZWQKKy8vICAgICAgICAgIHJlZ2FyZGxlc3Mgb2YgdGhlIHxidWZmZXJ8IGFuZCB8YnVmbGVufCBwYXJhbWV0ZXJzLgorLy8gQ29tbWVudHM6CisvLyAgICAgICAgICBSZWdhcmRsZXNzIG9mIHRoZSBwbGF0Zm9ybSwgdGhlIHxidWZmZXJ8IGlzIGFsd2F5cyBpbiBVVEYtMTZMRQorLy8gICAgICAgICAgZW5jb2RpbmcuIFRoZSBzdHJpbmcgaXMgdGVybWluYXRlZCBieSBhIFVURjE2IE5VTCBjaGFyYWN0ZXIuIElmCisvLyAgICAgICAgICB8YnVmbGVufCBpcyBsZXNzIHRoYW4gdGhlIHJlcXVpcmVkIGxlbmd0aCwgb3IgfGJ1ZmZlcnwgaXMgTlVMTCwKKy8vICAgICAgICAgIHxidWZmZXJ8IHdpbGwgbm90IGJlIG1vZGlmaWVkLgorRlBERl9FWFBPUlQgdW5zaWduZWQgbG9uZyBGUERGX0NBTExDT05WCitGUERGX1N0cnVjdEVsZW1lbnRfR2V0U3RyaW5nQXR0cmlidXRlKEZQREZfU1RSVUNURUxFTUVOVCBzdHJ1Y3RfZWxlbWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlBERl9CWVRFU1RSSU5HIGF0dHJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogYnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGJ1Zmxlbik7CisKIC8vIEZ1bmN0aW9uOiBGUERGX1N0cnVjdEVsZW1lbnRfR2V0TWFya2VkQ29udGVudElECiAvLyAgICAgICAgICBHZXQgdGhlIG1hcmtlZCBjb250ZW50IElEIGZvciBhIGdpdmVuIGVsZW1lbnQuCiAvLyBQYXJhbWV0ZXJzOgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvdGFnZ2VkX3RhYmxlLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvdGFnZ2VkX3RhYmxlLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ1YTk4NzcKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy90YWdnZWRfdGFibGUuaW4KQEAgLTAsMCArMSwxOTYgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorICAvU3RydWN0VHJlZVJvb3QgOCAwIFIKKyAgL0xhbmcgKGVuLVVTKQorICAvTWFya0luZm8gPDwKKyAgICAvTWFya2VkIHRydWUKKyAgPj4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Db250ZW50cyA0IDAgUgorICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQorICAvR3JvdXAgPDwKKyAgICAvQ1MgL0RldmljZVJHQgorICAgIC9JIHRydWUKKyAgICAvUyAvVHJhbnNwYXJlbmN5CisgID4+CisgIC9SZXNvdXJjZXMgPDwKKyAgICAvUHJvY1NldCBbL1BERiAvSW1hZ2VDIC9JbWFnZUkgL0ltYWdlQl0KKyAgICAvWE9iamVjdCA8PAorICAgICAgL1RyOCA1IDAgUgorICAgICAgL0ltNyA2IDAgUgorICAgID4+CisgICAgL0V4dEdTdGF0ZSA8PAorICAgICAgL0VHUzkgNyAwIFIKKyAgICA+PgorICA+PgorICAvU3RydWN0UGFyZW50cyAwCis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCiswLjEgdworL0FydGlmYWN0CitCTUMKK3EKKzAgMCA2MTIgNzkyIHJlCitXKiBuCitFTUMKKy9GaWd1cmU8PC9NQ0lEIDA+PgorQkRDCitRCitxCisyODEgNjg1LjMgNTAgNTAgcmUKK1cqIG4KK3EKKzQ5LjkgMCAwIDUwIDI4MS4xIDY4NS40IGNtCisvSW03IERvCitRCitFTUMKK1EKK3EKK0VHUzkgZ3MgL1RyOCBEbworUQorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDUgMH19IDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9Gb3JtCisgIC9CQm94IFstMTQwIDM5NSA3NTMgMzk1LjFdCisgIC9Hcm91cCA8PAorICAgIC9DUyAvRGV2aWNlUkdCCisgICAgL0sgdHJ1ZQorICAgIC9TIC9UcmFuc3BhcmVuY3kKKyAgPj4KKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDYgMH19IDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9JbWFnZQorICAvV2lkdGggNTAKKyAgL0hlaWdodCA1MAorICAvQml0c1BlckNvbXBvbmVudCA4CisgIC9Db2xvclNwYWNlIC9EZXZpY2VSR0IKKyAgL0ZpbHRlciBbL0FTQ0lJSGV4RGVjb2RlIC9GbGF0ZURlY29kZV0KKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorNzg5Y2VkYzEzMTAxMDAwMDAwYzJhMGY1NGZlZDZmMDZhMDAwMDAwMDAwMDAwMDAwNzgwMzFkNGMwMDAxCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgNyAwfX0gPDwKKyAgL2NhIDAuNQorICAvQ0EgMC41Cis+PgorZW5kb2JqCit7e29iamVjdCA4IDB9fSA8PAorICAvVHlwZSAvU3RydWN0VHJlZVJvb3QKKyAgL1BhcmVudFRyZWUgOSAwIFIKKyAgL0sgWzEwIDAgUl0KKyAgL1JvbGVNYXAgPDwKKyAgICAvRG9jdW1lbnQgL0RvY3VtZW50CisgICAgL1N0YW5kYXJkIC9QCisgICAgL0ZpZ3VyZSAvRmlndXJlCisgID4+Cis+PgorZW5kb2JqCit7e29iamVjdCA5IDB9fSA8PAorICAvTnVtcyBbCisgICAgMAorICAgIFsxMCAwIFIgMTEgMCBSIDEyIDAgUiAxMyAwIFIgMTQgMCBSIDE1IDAgUiAxNiAwIFIgMTcgMCBSXQorICBdCis+PgorZW5kb2JqCit7e29iamVjdCAxMCAwfX0gPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL0RvY3VtZW50CisgIC9LIFsxMSAwIFJdCisgIC9QIDggMCBSCisgIC9UIChUaXRsZVRleHQpCisgIC9QZyAzIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMTEgMH19IDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9UYWJsZQorICAvSyBbMTIgMCBSIDEzIDAgUl0KKyAgL1AgMTAgMCBSCisgIC9QZyAzIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMTIgMH19IDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9UUgorICAvSyBbMTQgMCBSIDE1IDAgUl0KKyAgL1AgMTEgMCBSCisgIC9QZyAzIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMTMgMH19IDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9UUgorICAvSyBbMTYgMCBSIDE3IDAgUl0KKyAgL1AgMTEgMCBSCisgIC9QZyAzIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMTQgMH19IDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9USAorICAvUCAxMiAwIFIKKyAgL1BnIDMgMCBSCisgIC9BIFsKKyAgICA8PAorICAgICAgL08gL1RhYmxlCisgICAgICAvU2NvcGUgL1JvdworICAgID4+CisgIF0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDE1IDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvVEQKKyAgL1AgMTIgMCBSCisgIC9QZyAzIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMTYgMH19IDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9USAorICAvUCAxMyAwIFIKKyAgL1BnIDMgMCBSCisgIC9BIFsKKyAgICA8PAorICAgICAgL08gL1RhYmxlCisgICAgICAvU2NvcGUgL1JvdworICAgID4+CisgIF0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDE3IDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvVEQKKyAgL1AgMTMgMCBSCisgIC9QZyAzIDAgUgorPj4KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvdGFnZ2VkX3RhYmxlLnBkZiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3RhZ2dlZF90YWJsZS5wZGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjQ0NjlmZAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3RhZ2dlZF90YWJsZS5wZGYKQEAgLTAsMCArMSwyMjAgQEAKKyVQREYtMS43CisloPKk9AorMSAwIG9iaiA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKyAgL1N0cnVjdFRyZWVSb290IDggMCBSCisgIC9MYW5nIChlbi1VUykKKyAgL01hcmtJbmZvIDw8CisgICAgL01hcmtlZCB0cnVlCisgID4+Cis+PgorZW5kb2JqCisyIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCiszIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0NvbnRlbnRzIDQgMCBSCisgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCisgIC9Hcm91cCA8PAorICAgIC9DUyAvRGV2aWNlUkdCCisgICAgL0kgdHJ1ZQorICAgIC9TIC9UcmFuc3BhcmVuY3kKKyAgPj4KKyAgL1Jlc291cmNlcyA8PAorICAgIC9Qcm9jU2V0IFsvUERGIC9JbWFnZUMgL0ltYWdlSSAvSW1hZ2VCXQorICAgIC9YT2JqZWN0IDw8CisgICAgICAvVHI4IDUgMCBSCisgICAgICAvSW03IDYgMCBSCisgICAgPj4KKyAgICAvRXh0R1N0YXRlIDw8CisgICAgICAvRUdTOSA3IDAgUgorICAgID4+CisgID4+CisgIC9TdHJ1Y3RQYXJlbnRzIDAKKz4+CitlbmRvYmoKKzQgMCBvYmogPDwKKyAgL0xlbmd0aCAxNjIKKz4+CitzdHJlYW0KKzAuMSB3CisvQXJ0aWZhY3QKK0JNQworcQorMCAwIDYxMiA3OTIgcmUKK1cqIG4KK0VNQworL0ZpZ3VyZTw8L01DSUQgMD4+CitCREMKK1EKK3EKKzI4MSA2ODUuMyA1MCA1MCByZQorVyogbgorcQorNDkuOSAwIDAgNTAgMjgxLjEgNjg1LjQgY20KKy9JbTcgRG8KK1EKK0VNQworUQorcQorRUdTOSBncyAvVHI4IERvCitRCitlbmRzdHJlYW0KK2VuZG9iagorNSAwIG9iaiA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvRm9ybQorICAvQkJveCBbLTE0MCAzOTUgNzUzIDM5NS4xXQorICAvR3JvdXAgPDwKKyAgICAvQ1MgL0RldmljZVJHQgorICAgIC9LIHRydWUKKyAgICAvUyAvVHJhbnNwYXJlbmN5CisgID4+CisgIC9MZW5ndGggMAorPj4KK3N0cmVhbQorZW5kc3RyZWFtCitlbmRvYmoKKzYgMCBvYmogPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0ltYWdlCisgIC9XaWR0aCA1MAorICAvSGVpZ2h0IDUwCisgIC9CaXRzUGVyQ29tcG9uZW50IDgKKyAgL0NvbG9yU3BhY2UgL0RldmljZVJHQgorICAvRmlsdGVyIFsvQVNDSUlIZXhEZWNvZGUgL0ZsYXRlRGVjb2RlXQorICAvTGVuZ3RoIDYxCis+Pgorc3RyZWFtCis3ODljZWRjMTMxMDEwMDAwMDBjMmEwZjU0ZmVkNmYwNmEwMDAwMDAwMDAwMDAwMDA3ODAzMWQ0YzAwMDEKK2VuZHN0cmVhbQorZW5kb2JqCis3IDAgb2JqIDw8CisgIC9jYSAwLjUKKyAgL0NBIDAuNQorPj4KK2VuZG9iagorOCAwIG9iaiA8PAorICAvVHlwZSAvU3RydWN0VHJlZVJvb3QKKyAgL1BhcmVudFRyZWUgOSAwIFIKKyAgL0sgWzEwIDAgUl0KKyAgL1JvbGVNYXAgPDwKKyAgICAvRG9jdW1lbnQgL0RvY3VtZW50CisgICAgL1N0YW5kYXJkIC9QCisgICAgL0ZpZ3VyZSAvRmlndXJlCisgID4+Cis+PgorZW5kb2JqCis5IDAgb2JqIDw8CisgIC9OdW1zIFsKKyAgICAwCisgICAgWzEwIDAgUiAxMSAwIFIgMTIgMCBSIDEzIDAgUiAxNCAwIFIgMTUgMCBSIDE2IDAgUiAxNyAwIFJdCisgIF0KKz4+CitlbmRvYmoKKzEwIDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9Eb2N1bWVudAorICAvSyBbMTEgMCBSXQorICAvUCA4IDAgUgorICAvVCAoVGl0bGVUZXh0KQorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKKzExIDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9UYWJsZQorICAvSyBbMTIgMCBSIDEzIDAgUl0KKyAgL1AgMTAgMCBSCisgIC9QZyAzIDAgUgorPj4KK2VuZG9iagorMTIgMCBvYmogPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1RSCisgIC9LIFsxNCAwIFIgMTUgMCBSXQorICAvUCAxMSAwIFIKKyAgL1BnIDMgMCBSCis+PgorZW5kb2JqCisxMyAwIG9iaiA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvVFIKKyAgL0sgWzE2IDAgUiAxNyAwIFJdCisgIC9QIDExIDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKKzE0IDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9USAorICAvUCAxMiAwIFIKKyAgL1BnIDMgMCBSCisgIC9BIFsKKyAgICA8PAorICAgICAgL08gL1RhYmxlCisgICAgICAvU2NvcGUgL1JvdworICAgID4+CisgIF0KKz4+CitlbmRvYmoKKzE1IDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9URAorICAvUCAxMiAwIFIKKyAgL1BnIDMgMCBSCis+PgorZW5kb2JqCisxNiAwIG9iaiA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvVEgKKyAgL1AgMTMgMCBSCisgIC9QZyAzIDAgUgorICAvQSBbCisgICAgPDwKKyAgICAgIC9PIC9UYWJsZQorICAgICAgL1Njb3BlIC9Sb3cKKyAgICA+PgorICBdCis+PgorZW5kb2JqCisxNyAwIG9iaiA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvVEQKKyAgL1AgMTMgMCBSCisgIC9QZyAzIDAgUgorPj4KK2VuZG9iagoreHJlZgorMCAxOAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAxNSAwMDAwMCBuIAorMDAwMDAwMDE0NSAwMDAwMCBuIAorMDAwMDAwMDIwOCAwMDAwMCBuIAorMDAwMDAwMDU1NiAwMDAwMCBuIAorMDAwMDAwMDc3MCAwMDAwMCBuIAorMDAwMDAwMDk1MiAwMDAwMCBuIAorMDAwMDAwMTIxMiAwMDAwMCBuIAorMDAwMDAwMTI1MyAwMDAwMCBuIAorMDAwMDAwMTQxMiAwMDAwMCBuIAorMDAwMDAwMTUxNSAwMDAwMCBuIAorMDAwMDAwMTYyNiAwMDAwMCBuIAorMDAwMDAwMTcyNSAwMDAwMCBuIAorMDAwMDAwMTgyMSAwMDAwMCBuIAorMDAwMDAwMTkxNyAwMDAwMCBuIAorMDAwMDAwMjA1MSAwMDAwMCBuIAorMDAwMDAwMjEyNiAwMDAwMCBuIAorMDAwMDAwMjI2MCAwMDAwMCBuIAordHJhaWxlciA8PAorICAvUm9vdCAxIDAgUgorICAvU2l6ZSAxOAorPj4KK3N0YXJ0eHJlZgorMjMzNQorJSVFT0YK