ZGlmZiAtLWdpdCBhL2FwL2FwcC9pbmNsdWRlL2ZsYWdzX2FwaS5oIGIvYXAvYXBwL2luY2x1ZGUvZmxhZ3NfYXBpLmgKaW5kZXggNjhjY2RhZC4uYzc3OWVmNCAxMDA3NTUKLS0tIGEvYXAvYXBwL2luY2x1ZGUvZmxhZ3NfYXBpLmgKKysrIGIvYXAvYXBwL2luY2x1ZGUvZmxhZ3NfYXBpLmgKQEAgLTEsNiArMSw2IEBACiAvKioKICAqIEBmaWxlIGZsYWdzX2FwaS5oCi0gKiBAYnJpZWYgZmxhZ3O31sf4vdO/2gorICogQGJyaWVmIGZsYWdz5YiG5Yy65o6l5Y+jCiAgKgogICogQ29weXJpZ2h0IChDKSAyMDIzIFNhbmVjaGlwcyBUZWNobm9sb2d5IENvLiwgTHRkLgogICogQGF1dGhvciAKQEAgLTgsNyArOCw3IEBACiAgKiAKICAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcwotICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uIKOosdjRoaO6R1BMdjIgTGljZW5jZaOpCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4g77yI5b+F6YCJ77yaR1BMdjIgTGljZW5jZe+8iQogICoKICAqLwogCkBAIC00Miw1NyArNDIsNzMgQEAKICAqICAgICAgICAgICAgICAgICAgICAgICBHbG9iYWwgZnVuY3Rpb24gZGVjbGFyYXRpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyoqCi0gKiBAYnJpZWYgILP1yry7r2ZsYWdzt9bH+AotICogQHBhcmFtW291dF0gIHBfZmxhZ3NfaW5mbyAgZmxhZ3Oz9cq8u6/K/b7dCi0gKiBAcmV0dXJuICAwILP1yry7r7PJuaYsIC0xILP1yry7r8qnsNwKKyAqIEBicmllZiAg5Yid5aeL5YyWZmxhZ3PliIbljLoKKyAqIEBwYXJhbVtvdXRdICBwX2ZsYWdzX2luZm8gIGZsYWdz5Yid5aeL5YyW5pWw5o2uCisgKiBAcmV0dXJuICAwIOWIneWni+WMluaIkOWKnywgLTEg5Yid5aeL5YyW5aSx6LSlCiAgKiBAbm90ZQogICovCiBpbnQgZmxhZ3NfaW5pdCgpOwogCiAKIC8qKgotICogQGJyaWVmICC78cihZmxhZ3O31sf4xNrI3QotICogQHBhcmFtW291dF0gIHBfZmxhZ3NfaW5mbyAgZmxhZ3O31sf4xNrI3QotICogQHJldHVybiAgMCC78cihs8m5piwgLTEgu/HIocqnsNwKKyAqIEBicmllZiAg6I635Y+WZmxhZ3PliIbljLrlhoXlrrkKKyAqIEBwYXJhbVtvdXRdICBwX2ZsYWdzX2luZm8gIGZsYWdz5YiG5Yy65YaF5a65CisgKiBAcmV0dXJuICAwIOiOt+WPluaIkOWKnywgLTEg6I635Y+W5aSx6LSlCiAgKiBAbm90ZQogICovCiBpbnQgZmxhZ3NfZ2V0KFRfRkxBR1NfSU5GTyAqcF9mbGFnc19pbmZvKTsKIAogCiAvKioKLSAqIEBicmllZiAgyejWw2ZsYWdzt9bH+MTayN0KLSAqIEBwYXJhbVtvdXRdICBwX2ZsYWdzX2luZm8gIGZsYWdzt9bH+MTayN0KLSAqIEByZXR1cm4gIDAgyejWw7PJuaYsIC0xIMno1sPKp7DcCisgKiBAYnJpZWYgIOiuvue9rmZsYWdz5YiG5Yy65YaF5a65CisgKiBAcGFyYW1bb3V0XSAgcF9mbGFnc19pbmZvICBmbGFnc+WIhuWMuuWGheWuuQorICogQHJldHVybiAgMCDorr7nva7miJDlip8sIC0xIOiuvue9ruWksei0pQogICogQG5vdGUKICAqLwogaW50IGZsYWdzX3NldChUX0ZMQUdTX0lORk8gKnBfZmxhZ3NfaW5mbyk7CiAKIAogLyoqCi0gKiBAYnJpZWYgILvxyKFmbGFnc7fWx/jW0HViaWZz17TMrAotICogQHBhcmFtW291dF0gIHN0YXR1cyAgdWJpZnPXtMysCi0gKiBAcmV0dXJuICAwILvxyKGzybmmLCAtMSC78cihyqew3AorICogQGJyaWVmICDojrflj5ZmbGFnc+WIhuWMuuS4rXViaWZz54q25oCBCisgKiBAcGFyYW1bb3V0XSAgc3RhdHVzICB1Ymlmc+eKtuaAgQorICogQHJldHVybiAgMCDojrflj5bmiJDlip8sIC0xIOiOt+WPluWksei0pQogICogQG5vdGUKICAqLwogaW50IGZsYWdzX2dldF91Ymlmc19zdGF0dXMoVF9VQklGU19TVEFUVVMgKnBfdWJpZnNfc3RhdHVzKTsKIAogCiAvKioKLSAqIEBicmllZiAgyejWw2ZsYWdzt9bH+NbQdWJpZnPXtMysCi0gKiBAcGFyYW1baW5dICBzdGF0dXMgIHViaWZz17TMrAotICogQHJldHVybiAgMCDJ6NbDs8m5piwgLTEgyejWw8qnsNwKKyAqIEBicmllZiAg6K6+572uZmxhZ3PliIbljLrkuK11Ymlmc+eKtuaAgQorICogQHBhcmFtW2luXSAgc3RhdHVzICB1Ymlmc+eKtuaAgQorICogQHJldHVybiAgMCDorr7nva7miJDlip8sIC0xIOiuvue9ruWksei0pQogICogQG5vdGUKICAqLwogaW50IGZsYWdzX3NldF91Ymlmc19zdGF0dXMoVF9VQklGU19TVEFUVVMgKnBfdWJpZnNfc3RhdHVzKTsKIAogCiAvKioKLSAqIEBicmllZiAgu/HIobWxx7DPtc2zCi0gKiBAcmV0dXJuICC1scew1MvQ0M+1zbMKKyAqIEBicmllZiAg6I635Y+W5b2T5YmN57O757ufCisgKiBAcmV0dXJuICDlvZPliY3ov5DooYzns7vnu58KICAqIEBub3RlCiAgKi8KIGludCBmbGFnc19nZXRfY3VycmVudF9zeXN0ZW0oKTsKIAorLyoqCisgKiBAYnJpZWYgIMK7w7HDiMKhZmxhZ3PCt8OWw4fDuMOWw5BudnJvX2ZsYWfDl8K0w4zCrAorICogQHBhcmFtW291dF0gIAorICogQHJldHVybiAgbnZyb19mbGFnCisgKiBAbm90ZQorICovCit1bnNpZ25lZCBpbnQgZmxhZ3NfZ2V0X252cm9mbGFnKHZvaWQpOworCisvKioKKyAqIEBicmllZiAgw4nDqMOWw4NmbGFnc8K3w5bDh8O4w5bDkG52cm9fZmxhZworICogQHBhcmFtW2luXSAgZmxhZyBudnJvw5fCtMOMwqwKKyAqIEByZXR1cm4gIDAgw4nDqMOWw4PCs8OJwrnCpiwgLTEgw4nDqMOWw4PDisKnwrDDnAorICogQG5vdGUKKyAqLworaW50IGZsYWdzX3NldF9udnJvZmxhZyh1bnNpZ25lZCBpbnQgZmxhZyk7CisKIAogI2VuZGlmIC8vIEZMQUdTX0FQSV9ICiAK