From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.smtpout.orange.fr (smtp04.smtpout.orange.fr [80.12.242.126]) by sourceware.org (Postfix) with ESMTPS id 1D8163857B96 for ; Fri, 1 Jul 2022 19:07:27 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 1D8163857B96 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=orange.fr Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=orange.fr Received: from [192.168.1.17] ([86.215.161.154]) by smtp.orange.fr with ESMTPA id 7Lz3o0SByIaWO7LzAovg7c; Fri, 01 Jul 2022 21:07:25 +0200 X-ME-Helo: [192.168.1.17] X-ME-Auth: MDU4MTIxYWM4YWI0ZGE4ZTUwZWZmNTExZmI2ZWZlMThkM2ZhYiE5OWRkOGM= X-ME-Date: Fri, 01 Jul 2022 21:07:25 +0200 X-ME-IP: 86.215.161.154 Content-Type: multipart/mixed; boundary="------------Bcfll3R8TFcBpZ610Kfrz0Y1" Message-ID: Date: Fri, 1 Jul 2022 21:07:16 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.10.0 From: Mikael Morin Subject: [RFC] fortran: restore array indexing for all descriptor arrays [PR102043] To: gfortran , gcc-patches Content-Language: en-US X-Spam-Status: No, score=-9.1 required=5.0 tests=BAYES_00, FREEMAIL_FROM, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_DMARC_STATUS, KAM_SHORT, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: fortran@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Fortran mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Jul 2022 19:07:35 -0000 This is a multi-part message in MIME format. --------------Bcfll3R8TFcBpZ610Kfrz0Y1 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hello, this is a followup to a patch (see the thread at [1]) committed for the gcc-12 release to use pointer arithmetic to index descriptor arrays. This patch restores the previous behavior (array indexing for all non-polymorphic arrays), and for that changes the array element that descriptors’ data pointers point to, to meet the middle-end expectations, that is array indexing never use negative indexes. So descriptors’ data pointers are made to point to the first element in memory order instead of the first element in descriptor indexing order (they can be different with negative strides). This is not a formal request for review yet, I would like to have a confirmation that some benefits make this patch worth pursuing further (and breaking the ABI). Especially, Richi reported in the thread [1] a regression with Spec 2017; if he (or someone else with access to spec) would be kind enough to try again with this patch, it would be appreciated. There are also a number of loop versioning tests which I have xfailed for now, without a better idea of what’s going on. With a couple more testsuite adjustments (included in the patch), these changes pass the fortran regression testsuite. I attach a patch with generated library code and one without. No ChangeLog for now, a gross outline of the changes follows. Feel free to comment, do we need this? Thanks for your time. gcc/fortran/ - revert [1] - change the way data pointer and offset are constructed in new descriptors - adjust data pointer when passing to a CFI descriptor and back - reconstruct data pointer and offset when reconstructing a descriptor from CFI descriptor gcc/testsuite/gfortran.dg/ - adjust original tree dump patterns - xfail loop versioning tests libgfortran/ - rebuild a pointer to the first element from the descriptor at the beginning of library functions - adjust io array walking code. [1] https://gcc.gnu.org/pipermail/fortran/2022-April/057763.html --------------Bcfll3R8TFcBpZ610Kfrz0Y1 Content-Type: text/x-patch; charset=UTF-8; name="fortran_restore_array_indexing_non-generated.diff" Content-Disposition: attachment; filename="fortran_restore_array_indexing_non-generated.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL3RyYW5zLWFycmF5LmNjIGIvZ2NjL2ZvcnRyYW4v dHJhbnMtYXJyYXkuY2MKaW5kZXggMDUxMzQ5NTJkYjQuLmRjNjM4YjVmMGM5IDEwMDY0NAot LS0gYS9nY2MvZm9ydHJhbi90cmFucy1hcnJheS5jYworKysgYi9nY2MvZm9ydHJhbi90cmFu cy1hcnJheS5jYwpAQCAtMTcyLDcgKzE3Miw3IEBAIHN0YXRpYyB0cmVlCiBnZmNfZ2V0X2Nm aV9kaW1faXRlbSAodHJlZSBkZXNjLCB0cmVlIGlkeCwgdW5zaWduZWQgZmllbGRfaWR4KQog ewogICB0cmVlIHRtcCA9IGdmY19nZXRfY2ZpX2Rlc2NyaXB0b3JfZmllbGQgKGRlc2MsIENG SV9GSUVMRF9ESU0pOwotICB0bXAgPSBnZmNfYnVpbGRfYXJyYXlfcmVmICh0bXAsIGlkeCwg TlVMTF9UUkVFLCB0cnVlKTsKKyAgdG1wID0gZ2ZjX2J1aWxkX2FycmF5X3JlZiAodG1wLCBp ZHgsIE5VTEwpOwogICB0cmVlIGZpZWxkID0gZ2ZjX2FkdmFuY2VfY2hhaW4gKFRZUEVfRklF TERTIChUUkVFX1RZUEUgKHRtcCkpLCBmaWVsZF9pZHgpOwogICBnY2NfYXNzZXJ0IChmaWVs ZCAhPSBOVUxMX1RSRUUpOwogICByZXR1cm4gZm9sZF9idWlsZDNfbG9jIChpbnB1dF9sb2Nh dGlvbiwgQ09NUE9ORU5UX1JFRiwgVFJFRV9UWVBFIChmaWVsZCksCkBAIC00MjQsNyArNDI0 LDcgQEAgZ2ZjX2NvbnZfZGVzY3JpcHRvcl9kaW1lbnNpb24gKHRyZWUgZGVzYywgdHJlZSBk aW0pCiAKICAgdG1wID0gZ2ZjX2dldF9kZXNjcmlwdG9yX2RpbWVuc2lvbiAoZGVzYyk7CiAK LSAgcmV0dXJuIGdmY19idWlsZF9hcnJheV9yZWYgKHRtcCwgZGltLCBOVUxMX1RSRUUsIHRy dWUpOworICByZXR1cm4gZ2ZjX2J1aWxkX2FycmF5X3JlZiAodG1wLCBkaW0sIE5VTEwpOwog fQogCiAKQEAgLTMxMzgsMTIgKzMxMzgsMTggQEAgZ2ZjX2FkZF9sb29wX3NzX2NvZGUgKGdm Y19sb29waW5mbyAqIGxvb3AsIGdmY19zcyAqIHNzLCBib29sIHN1YnNjcmlwdCwKIAkgIGJy ZWFrOwogCiAJY2FzZSBHRkNfU1NfVkVDVE9SOgotCSAgLyogR2V0IHRoZSB2ZWN0b3IncyBk ZXNjcmlwdG9yIGFuZCBzdG9yZSBpdCBpbiBTUy4gICovCi0JICBnZmNfaW5pdF9zZSAoJnNl LCBOVUxMKTsKLQkgIGdmY19jb252X2V4cHJfZGVzY3JpcHRvciAoJnNlLCBleHByKTsKLQkg IGdmY19hZGRfYmxvY2tfdG9fYmxvY2sgKCZvdXRlcl9sb29wLT5wcmUsICZzZS5wcmUpOwot CSAgZ2ZjX2FkZF9ibG9ja190b19ibG9jayAoJm91dGVyX2xvb3AtPnBvc3QsICZzZS5wb3N0 KTsKLQkgIGluZm8tPmRlc2NyaXB0b3IgPSBzZS5leHByOworCSAgeworCSAgICAvKiBHZXQg dGhlIHZlY3RvcidzIGRlc2NyaXB0b3IgYW5kIHN0b3JlIGl0IGluIFNTLiAgKi8KKwkgICAg Z2ZjX2luaXRfc2UgKCZzZSwgTlVMTCk7CisJICAgIGdmY19jb252X2V4cHJfZGVzY3JpcHRv ciAoJnNlLCBleHByKTsKKwkgICAgZ2ZjX2FkZF9ibG9ja190b19ibG9jayAoJm91dGVyX2xv b3AtPnByZSwgJnNlLnByZSk7CisJICAgIGdmY19hZGRfYmxvY2tfdG9fYmxvY2sgKCZvdXRl cl9sb29wLT5wb3N0LCAmc2UucG9zdCk7CisJICAgIGluZm8tPmRlc2NyaXB0b3IgPSBzZS5l eHByOworCSAgICB0cmVlIG9mZnNldCA9IGdmY19jb252X2FycmF5X29mZnNldCAoaW5mby0+ ZGVzY3JpcHRvcik7CisJICAgIGluZm8tPm9mZnNldCA9IGdmY19ldmFsdWF0ZV9ub3cgKG9m ZnNldCwgJm91dGVyX2xvb3AtPnByZSk7IAorCSAgICB0cmVlIGxib3VuZCA9IGdmY19jb252 X2FycmF5X2xib3VuZCAoaW5mby0+ZGVzY3JpcHRvciwgMCk7CisJICAgIGluZm8tPnN0YXJ0 WzBdID0gZ2ZjX2V2YWx1YXRlX25vdyAobGJvdW5kLCAmb3V0ZXJfbG9vcC0+cHJlKTsKKwkg IH0KIAkgIGJyZWFrOwogCiAJY2FzZSBHRkNfU1NfSU5UUklOU0lDOgpAQCAtMzUwOSwzMiAr MzUxNSw0NCBAQCBjb252X2FycmF5X2luZGV4X29mZnNldCAoZ2ZjX3NlICogc2UsIGdmY19z cyAqIHNzLCBpbnQgZGltLCBpbnQgaSwKIAkgIGJyZWFrOwogCiAJY2FzZSBESU1FTl9WRUNU T1I6Ci0JICBnY2NfYXNzZXJ0IChpbmZvICYmIHNlLT5sb29wKTsKLQkgIGdjY19hc3NlcnQg KGluZm8tPnN1YnNjcmlwdFtkaW1dCi0JCSAgICAgICYmIGluZm8tPnN1YnNjcmlwdFtkaW1d LT5pbmZvLT50eXBlID09IEdGQ19TU19WRUNUT1IpOwotCSAgZGVzYyA9IGluZm8tPnN1YnNj cmlwdFtkaW1dLT5pbmZvLT5kYXRhLmFycmF5LmRlc2NyaXB0b3I7Ci0KLQkgIC8qIEdldCBh IHplcm8tYmFzZWQgaW5kZXggaW50byB0aGUgdmVjdG9yLiAgKi8KLQkgIGluZGV4ID0gZm9s ZF9idWlsZDJfbG9jIChpbnB1dF9sb2NhdGlvbiwgTUlOVVNfRVhQUiwKLQkJCQkgICBnZmNf YXJyYXlfaW5kZXhfdHlwZSwKLQkJCQkgICBzZS0+bG9vcC0+bG9vcHZhcltpXSwgc2UtPmxv b3AtPmZyb21baV0pOworCSAgeworCSAgICBnY2NfYXNzZXJ0IChpbmZvICYmIHNlLT5sb29w KTsKKwkgICAgZ2NjX2Fzc2VydCAoaW5mby0+c3Vic2NyaXB0W2RpbV0KKwkJCSYmIGluZm8t PnN1YnNjcmlwdFtkaW1dLT5pbmZvLT50eXBlID09IEdGQ19TU19WRUNUT1IpOworCSAgICBn ZmNfYXJyYXlfaW5mbyAqdmVjdG9yX2luZm8gPSAmaW5mby0+c3Vic2NyaXB0W2RpbV0tPmlu Zm8tPmRhdGEuYXJyYXk7CisJICAgIGRlc2MgPSB2ZWN0b3JfaW5mby0+ZGVzY3JpcHRvcjsK KwkgICAgdHJlZSBvZmZzZXQgPSB2ZWN0b3JfaW5mby0+b2Zmc2V0OworCisJICAgIC8qIEdl dCBhIHplcm8tYmFzZWQgaW5kZXggaW50byB0aGUgdmVjdG9yLiAgKi8KKwkgICAgaW5kZXgg PSBmb2xkX2J1aWxkMl9sb2MgKGlucHV0X2xvY2F0aW9uLCBNSU5VU19FWFBSLAorCQkJCSAg ICAgZ2ZjX2FycmF5X2luZGV4X3R5cGUsCisJCQkJICAgICBzZS0+bG9vcC0+bG9vcHZhcltp XSwgc2UtPmxvb3AtPmZyb21baV0pOwogCi0JICAvKiBNdWx0aXBseSB0aGUgaW5kZXggYnkg dGhlIHN0cmlkZS4gICovCi0JICBpbmRleCA9IGZvbGRfYnVpbGQyX2xvYyAoaW5wdXRfbG9j YXRpb24sIE1VTFRfRVhQUiwKLQkJCQkgICBnZmNfYXJyYXlfaW5kZXhfdHlwZSwKLQkJCQkg ICBpbmRleCwgZ2ZjX2NvbnZfYXJyYXlfc3RyaWRlIChkZXNjLCAwKSk7CisJICAgIGluZGV4 ID0gZm9sZF9idWlsZDJfbG9jIChpbnB1dF9sb2NhdGlvbiwgUExVU19FWFBSLAorCQkJCSAg ICAgZ2ZjX2FycmF5X2luZGV4X3R5cGUsCisJCQkJICAgICBpbmRleCwgdmVjdG9yX2luZm8t PnN0YXJ0WzBdKTsKIAotCSAgLyogUmVhZCB0aGUgdmVjdG9yIHRvIGdldCBhbiBpbmRleCBp bnRvIGluZm8tPmRlc2NyaXB0b3IuICAqLwotCSAgZGF0YSA9IGJ1aWxkX2ZvbGRfaW5kaXJl Y3RfcmVmX2xvYyAoaW5wdXRfbG9jYXRpb24sCi0JCQkJCSAgZ2ZjX2NvbnZfYXJyYXlfZGF0 YSAoZGVzYykpOwotCSAgaW5kZXggPSBnZmNfYnVpbGRfYXJyYXlfcmVmIChkYXRhLCBpbmRl eCwgTlVMTCk7Ci0JICBpbmRleCA9IGdmY19ldmFsdWF0ZV9ub3cgKGluZGV4LCAmc2UtPnBy ZSk7Ci0JICBpbmRleCA9IGZvbGRfY29udmVydCAoZ2ZjX2FycmF5X2luZGV4X3R5cGUsIGlu ZGV4KTsKKwkgICAgLyogTXVsdGlwbHkgdGhlIGluZGV4IGJ5IHRoZSBzdHJpZGUuICAqLwor CSAgICBpbmRleCA9IGZvbGRfYnVpbGQyX2xvYyAoaW5wdXRfbG9jYXRpb24sIE1VTFRfRVhQ UiwKKwkJCQkgICAgIGdmY19hcnJheV9pbmRleF90eXBlLAorCQkJCSAgICAgaW5kZXgsIGdm Y19jb252X2FycmF5X3N0cmlkZSAoZGVzYywgMCkpOwogCi0JICAvKiBEbyBhbnkgYm91bmRz IGNoZWNraW5nIG9uIHRoZSBmaW5hbCBpbmZvLT5kZXNjcmlwdG9yIGluZGV4LiAgKi8KLQkg IGluZGV4ID0gdHJhbnNfYXJyYXlfYm91bmRfY2hlY2sgKHNlLCBzcywgaW5kZXgsIGRpbSwg JmFyLT53aGVyZSwKLQkJCQkJICAgYXItPmFzLT50eXBlICE9IEFTX0FTU1VNRURfU0laRQot CQkJCQkgICB8fCBkaW0gPCBhci0+ZGltZW4gLSAxKTsKKwkgICAgaW5kZXggPSBmb2xkX2J1 aWxkMl9sb2MgKGlucHV0X2xvY2F0aW9uLCBQTFVTX0VYUFIsCisJCQkJICAgICBnZmNfYXJy YXlfaW5kZXhfdHlwZSwKKwkJCQkgICAgIGluZGV4LCBvZmZzZXQpOworCisJICAgIC8qIFJl YWQgdGhlIHZlY3RvciB0byBnZXQgYW4gaW5kZXggaW50byBpbmZvLT5kZXNjcmlwdG9yLiAg Ki8KKwkgICAgZGF0YSA9IGJ1aWxkX2ZvbGRfaW5kaXJlY3RfcmVmX2xvYyAoaW5wdXRfbG9j YXRpb24sCisJCQkJCSAgICBnZmNfY29udl9hcnJheV9kYXRhIChkZXNjKSk7CisJICAgIGlu ZGV4ID0gZ2ZjX2J1aWxkX2FycmF5X3JlZiAoZGF0YSwgaW5kZXgsIE5VTEwpOworCSAgICBp bmRleCA9IGdmY19ldmFsdWF0ZV9ub3cgKGluZGV4LCAmc2UtPnByZSk7CisJICAgIGluZGV4 ID0gZm9sZF9jb252ZXJ0IChnZmNfYXJyYXlfaW5kZXhfdHlwZSwgaW5kZXgpOworCisJICAg IC8qIERvIGFueSBib3VuZHMgY2hlY2tpbmcgb24gdGhlIGZpbmFsIGluZm8tPmRlc2NyaXB0 b3IgaW5kZXguICAqLworCSAgICBpbmRleCA9IHRyYW5zX2FycmF5X2JvdW5kX2NoZWNrIChz ZSwgc3MsIGluZGV4LCBkaW0sICZhci0+d2hlcmUsCisJCQkJCSAgICAgYXItPmFzLT50eXBl ICE9IEFTX0FTU1VNRURfU0laRQorCQkJCQkgICAgIHx8IGRpbSA8IGFyLT5kaW1lbiAtIDEp OworCSAgfQogCSAgYnJlYWs7CiAKIAljYXNlIERJTUVOX1JBTkdFOgpAQCAtMzcwOCw4ICsz NzI2LDcgQEAgbm9uX25lZ2F0aXZlX3N0cmlkZXNfYXJyYXlfcCAodHJlZSBleHByKQogLyog QnVpbGQgYSBzY2FsYXJpemVkIHJlZmVyZW5jZSB0byBhbiBhcnJheS4gICovCiAKIHN0YXRp YyB2b2lkCi1nZmNfY29udl9zY2FsYXJpemVkX2FycmF5X3JlZiAoZ2ZjX3NlICogc2UsIGdm Y19hcnJheV9yZWYgKiBhciwKLQkJCSAgICAgICBib29sIHRtcF9hcnJheSA9IGZhbHNlKQor Z2ZjX2NvbnZfc2NhbGFyaXplZF9hcnJheV9yZWYgKGdmY19zZSAqIHNlLCBnZmNfYXJyYXlf cmVmICogYXIpCiB7CiAgIGdmY19hcnJheV9pbmZvICppbmZvOwogICB0cmVlIGRlY2wgPSBO VUxMX1RSRUU7CkBAIC0zNzU5LDEwICszNzc2LDcgQEAgZ2ZjX2NvbnZfc2NhbGFyaXplZF9h cnJheV9yZWYgKGdmY19zZSAqIHNlLCBnZmNfYXJyYXlfcmVmICogYXIsCiAJZGVjbCA9IGlu Zm8tPmRlc2NyaXB0b3I7CiAgICAgfQogCi0gIGJvb2wgbm9uX25lZ2F0aXZlX3N0cmlkZSA9 IHRtcF9hcnJheQotCQkJICAgICB8fCBub25fbmVnYXRpdmVfc3RyaWRlc19hcnJheV9wIChp bmZvLT5kZXNjcmlwdG9yKTsKLSAgc2UtPmV4cHIgPSBnZmNfYnVpbGRfYXJyYXlfcmVmIChi YXNlLCBpbmRleCwgZGVjbCwKLQkJCQkgIG5vbl9uZWdhdGl2ZV9zdHJpZGUpOworICBzZS0+ ZXhwciA9IGdmY19idWlsZF9hcnJheV9yZWYgKGJhc2UsIGluZGV4LCBkZWNsKTsKIH0KIAog CkBAIC0zNzcyLDcgKzM3ODYsNyBAQCB2b2lkCiBnZmNfY29udl90bXBfYXJyYXlfcmVmIChn ZmNfc2UgKiBzZSkKIHsKICAgc2UtPnN0cmluZ19sZW5ndGggPSBzZS0+c3MtPmluZm8tPnN0 cmluZ19sZW5ndGg7Ci0gIGdmY19jb252X3NjYWxhcml6ZWRfYXJyYXlfcmVmIChzZSwgTlVM TCwgdHJ1ZSk7CisgIGdmY19jb252X3NjYWxhcml6ZWRfYXJyYXlfcmVmIChzZSwgTlVMTCk7 CiAgIGdmY19hZHZhbmNlX3NlX3NzX2NoYWluIChzZSk7CiB9CiAKQEAgLTM4MjQsOSArMzgz OCw3IEBAIGJ1aWxkX2FycmF5X3JlZiAodHJlZSBkZXNjLCB0cmVlIG9mZnNldCwgdHJlZSBk ZWNsLCB0cmVlIHZwdHIpCiAKICAgdG1wID0gZ2ZjX2NvbnZfYXJyYXlfZGF0YSAoZGVzYyk7 CiAgIHRtcCA9IGJ1aWxkX2ZvbGRfaW5kaXJlY3RfcmVmX2xvYyAoaW5wdXRfbG9jYXRpb24s IHRtcCk7Ci0gIHRtcCA9IGdmY19idWlsZF9hcnJheV9yZWYgKHRtcCwgb2Zmc2V0LCBkZWNs LAotCQkJICAgICBub25fbmVnYXRpdmVfc3RyaWRlc19hcnJheV9wIChkZXNjKSwKLQkJCSAg ICAgdnB0cik7CisgIHRtcCA9IGdmY19idWlsZF9hcnJheV9yZWYgKHRtcCwgb2Zmc2V0LCBk ZWNsLCB2cHRyKTsKICAgcmV0dXJuIHRtcDsKIH0KIApAQCAtNjkwOSw3ICs2OTIxLDggQEAg Z2ZjX3RyYW5zX2R1bW15X2FycmF5X2JpYXMgKGdmY19zeW1ib2wgKiBzeW0sIHRyZWUgdG1w ZGVzYywKICAgICB0bXAgPSBzdG10X3BhY2tlZCAhPSBOVUxMX1RSRUUgPyBzdG10X3BhY2tl ZCA6IHN0bXRfdW5wYWNrZWQ7CiAgIGdmY19hZGRfbW9kaWZ5ICgmaW5pdCwgdG1wZGVzYywg Zm9sZF9jb252ZXJ0ICh0eXBlLCB0bXApKTsKIAotICBvZmZzZXQgPSBnZmNfaW5kZXhfemVy b19ub2RlOworICBvZmZzZXQgPSBnZmNfY29udl9kZXNjcmlwdG9yX29mZnNldF9nZXQgKGR1 bWRlc2MpOworICBvZmZzZXQgPSBnZmNfZXZhbHVhdGVfbm93IChvZmZzZXQsICZpbml0KTsK ICAgc2l6ZSA9IGdmY19pbmRleF9vbmVfbm9kZTsKIAogICAvKiBFdmFsdWF0ZSB0aGUgYm91 bmRzIG9mIHRoZSBhcnJheS4gICovCkBAIC02OTE5LDEzICs2OTMyLDEyIEBAIGdmY190cmFu c19kdW1teV9hcnJheV9iaWFzIChnZmNfc3ltYm9sICogc3ltLCB0cmVlIHRtcGRlc2MsCiAJ ewogCSAgLyogR2V0IHRoZSBib3VuZHMgb2YgdGhlIGFjdHVhbCBwYXJhbWV0ZXIuICAqLwog CSAgZHVib3VuZCA9IGdmY19jb252X2Rlc2NyaXB0b3JfdWJvdW5kX2dldCAoZHVtZGVzYywg Z2ZjX3JhbmtfY3N0W25dKTsKLQkgIGRsYm91bmQgPSBnZmNfY29udl9kZXNjcmlwdG9yX2xi b3VuZF9nZXQgKGR1bWRlc2MsIGdmY19yYW5rX2NzdFtuXSk7CiAJfQogICAgICAgZWxzZQog CXsKIAkgIGR1Ym91bmQgPSBOVUxMX1RSRUU7Ci0JICBkbGJvdW5kID0gTlVMTF9UUkVFOwog CX0KKyAgICAgIGRsYm91bmQgPSBnZmNfY29udl9kZXNjcmlwdG9yX2xib3VuZF9nZXQgKGR1 bWRlc2MsIGdmY19yYW5rX2NzdFtuXSk7CiAKICAgICAgIGxib3VuZCA9IEdGQ19UWVBFX0FS UkFZX0xCT1VORCAodHlwZSwgbik7CiAgICAgICBpZiAoIUlOVEVHRVJfQ1NUX1AgKGxib3Vu ZCkpCkBAIC02OTkxLDkgKzcwMDMsMTEgQEAgZ2ZjX3RyYW5zX2R1bW15X2FycmF5X2JpYXMg KGdmY19zeW1ib2wgKiBzeW0sIHRyZWUgdG1wZGVzYywKIAkJCQkgZ2ZjX2FycmF5X2luZGV4 X3R5cGUsIHRtcCwgbGJvdW5kKTsKIAkgIGdmY19hZGRfbW9kaWZ5ICgmaW5pdCwgdWJvdW5k LCB0bXApOwogCX0KLSAgICAgIC8qIFRoZSBvZmZzZXQgb2YgdGhpcyBkaW1lbnNpb24uICBv ZmZzZXQgPSBvZmZzZXQgLSBsYm91bmQgKiBzdHJpZGUuICAqLworICAgICAgLyogVGhlIG9m ZnNldCBvZiB0aGlzIGRpbWVuc2lvbi4gIG9mZnNldCA9IG9mZnNldCAtIChsYm91bmQgLSBk bGJvdW5kKSAqIHN0cmlkZS4gICovCisgICAgICB0bXAgPSBmb2xkX2J1aWxkMl9sb2MgKGlu cHV0X2xvY2F0aW9uLCBNSU5VU19FWFBSLCBnZmNfYXJyYXlfaW5kZXhfdHlwZSwKKwkJCSAg ICAgbGJvdW5kLCBkbGJvdW5kKTsKICAgICAgIHRtcCA9IGZvbGRfYnVpbGQyX2xvYyAoaW5w dXRfbG9jYXRpb24sIE1VTFRfRVhQUiwgZ2ZjX2FycmF5X2luZGV4X3R5cGUsCi0JCQkgICAg IGxib3VuZCwgc3RyaWRlKTsKKwkJCSAgICAgdG1wLCBzdHJpZGUpOwogICAgICAgb2Zmc2V0 ID0gZm9sZF9idWlsZDJfbG9jIChpbnB1dF9sb2NhdGlvbiwgTUlOVVNfRVhQUiwKIAkJCQln ZmNfYXJyYXlfaW5kZXhfdHlwZSwgb2Zmc2V0LCB0bXApOwogCkBAIC03ODE5LDYgKzc4MzMs OSBAQCBnZmNfY29udl9leHByX2Rlc2NyaXB0b3IgKGdmY19zZSAqc2UsIGdmY19leHByICpl eHByKQogICAgICAgdHJlZSB0bzsKICAgICAgIHRyZWUgYmFzZTsKICAgICAgIHRyZWUgb2Zm c2V0OworICAgICAgc3RtdGJsb2NrX3QgbG9vcF9wcmU7CisKKyAgICAgIGdmY19pbml0X2Js b2NrICgmbG9vcF9wcmUpOwogCiAgICAgICBuZGltID0gaW5mby0+cmVmID8gaW5mby0+cmVm LT51LmFyLmRpbWVuIDogc3MtPmRpbWVuOwogCkBAIC03ODM2LDEzICs3ODUzLDEzIEBAIGdm Y19jb252X2V4cHJfZGVzY3JpcHRvciAoZ2ZjX3NlICpzZSwgZ2ZjX2V4cHIgKmV4cHIpCiAJ CSBnZW5lcmF0ZSB1bm5lY2Vzc2FyeSBjb2RlIHRvIGNhbGN1bGF0ZSBzdHJpZGUuICAqLwog CSAgICAgIGdjY19hc3NlcnQgKGFyLT5zdHJpZGVbbiArIG5kaW1dID09IE5VTEwpOwogCi0J ICAgICAgZ2ZjX2NvbnZfc2VjdGlvbl9zdGFydHN0cmlkZSAoJmxvb3AucHJlLCBzcywgbiAr IG5kaW0pOworCSAgICAgIGdmY19jb252X3NlY3Rpb25fc3RhcnRzdHJpZGUgKCZsb29wX3By ZSwgc3MsIG4gKyBuZGltKTsKIAkgICAgICBsb29wLmZyb21bbiArIGxvb3AuZGltZW5dID0g aW5mby0+c3RhcnRbbiArIG5kaW1dOwogCSAgICAgIGxvb3AudG9bbiArIGxvb3AuZGltZW5d ICAgPSBpbmZvLT5lbmRbbiArIG5kaW1dOwogCSAgICB9CiAKIAkgIGdjY19hc3NlcnQgKG4g PT0gY29kaW0gLSAxKTsKLQkgIGV2YWx1YXRlX2JvdW5kICgmbG9vcC5wcmUsIGluZm8tPnN0 YXJ0LCBhci0+c3RhcnQsCisJICBldmFsdWF0ZV9ib3VuZCAoJmxvb3BfcHJlLCBpbmZvLT5z dGFydCwgYXItPnN0YXJ0LAogCQkJICBpbmZvLT5kZXNjcmlwdG9yLCBuICsgbmRpbSwgdHJ1 ZSwKIAkJCSAgYXItPmFzLT50eXBlID09IEFTX0RFRkVSUkVEKTsKIAkgIGxvb3AuZnJvbVtu ICsgbG9vcC5kaW1lbl0gPSBpbmZvLT5zdGFydFtuICsgbmRpbV07CkBAIC03OTMyLDcgKzc5 NDksNyBAQCBnZmNfY29udl9leHByX2Rlc2NyaXB0b3IgKGdmY19zZSAqc2UsIGdmY19leHBy ICpleHByKQogICAgICAgLyogU2V0IHRoZSBzcGFuIGZpZWxkLiAgKi8KICAgICAgIHRtcCA9 IGdmY19nZXRfYXJyYXlfc3BhbiAoZGVzYywgZXhwcik7CiAgICAgICBpZiAodG1wKQotCWdm Y19jb252X2Rlc2NyaXB0b3Jfc3Bhbl9zZXQgKCZsb29wLnByZSwgcGFybSwgdG1wKTsKKwln ZmNfY29udl9kZXNjcmlwdG9yX3NwYW5fc2V0ICgmbG9vcF9wcmUsIHBhcm0sIHRtcCk7CiAK ICAgICAgIC8qIFRoZSBmb2xsb3dpbmcgY2FuIGJlIHNvbWV3aGF0IGNvbmZ1c2luZy4gIFdl IGhhdmUgdHdvCiAgICAgICAgICBkZXNjcmlwdG9ycywgYSBuZXcgb25lIGFuZCB0aGUgb3Jp Z2luYWwgYXJyYXkuCkBAIC03OTU4LDE2ICs3OTc1LDIzIEBAIGdmY19jb252X2V4cHJfZGVz Y3JpcHRvciAoZ2ZjX3NlICpzZSwgZ2ZjX2V4cHIgKmV4cHIpCiAJfQogICAgICAgZWxzZQog CWR0eXBlID0gZ2ZjX2dldF9kdHlwZSAocGFybXR5cGUpOwotICAgICAgZ2ZjX2FkZF9tb2Rp ZnkgKCZsb29wLnByZSwgdG1wLCBkdHlwZSk7CisgICAgICBnZmNfYWRkX21vZGlmeSAoJmxv b3BfcHJlLCB0bXAsIGR0eXBlKTsKIAogICAgICAgLyogVGhlIDFzdCBlbGVtZW50IGluIHRo ZSBzZWN0aW9uLiAgKi8KLSAgICAgIGJhc2UgPSBnZmNfaW5kZXhfemVyb19ub2RlOworICAg ICAgaWYgKG5kaW0gPT0gMCkKKwliYXNlID0gZ2ZjX2luZGV4X3plcm9fbm9kZTsKKyAgICAg IGVsc2UKKwliYXNlID0gZ2ZjX2NvbnZfYXJyYXlfb2Zmc2V0IChkZXNjKTsKIAogICAgICAg LyogVGhlIG9mZnNldCBmcm9tIHRoZSAxc3QgZWxlbWVudCBpbiB0aGUgc2VjdGlvbi4gICov CiAgICAgICBvZmZzZXQgPSBnZmNfaW5kZXhfemVyb19ub2RlOwogCiAgICAgICBmb3IgKG4g PSAwOyBuIDwgbmRpbTsgbisrKQogCXsKKwkgIHRyZWUgZW5kID0gTlVMTF9UUkVFOworCSAg dHJlZSBzdGFydF9vZmZzZXQgPSBOVUxMX1RSRUU7CisJICB0cmVlIGJhc2Vfb2Zmc2V0ID0g TlVMTF9UUkVFOworCiAJICBzdHJpZGUgPSBnZmNfY29udl9hcnJheV9zdHJpZGUgKGRlc2Ms IG4pOwogCiAJICAvKiBXb3JrIG91dCB0aGUgMXN0IGVsZW1lbnQgaW4gdGhlIHNlY3Rpb24u ICAqLwpAQCAtNzk3NywyMiArODAwMSw1MCBAQCBnZmNfY29udl9leHByX2Rlc2NyaXB0b3Ig KGdmY19zZSAqc2UsIGdmY19leHByICpleHByKQogCSAgICAgIGdjY19hc3NlcnQgKGluZm8t PnN1YnNjcmlwdFtuXQogCQkJICAmJiBpbmZvLT5zdWJzY3JpcHRbbl0tPmluZm8tPnR5cGUg PT0gR0ZDX1NTX1NDQUxBUik7CiAJICAgICAgc3RhcnQgPSBpbmZvLT5zdWJzY3JpcHRbbl0t PmluZm8tPmRhdGEuc2NhbGFyLnZhbHVlOworCisJICAgICAgc3RhcnRfb2Zmc2V0ID0gZm9s ZF9idWlsZDJfbG9jIChpbnB1dF9sb2NhdGlvbiwgTVVMVF9FWFBSLCBnZmNfYXJyYXlfaW5k ZXhfdHlwZSwKKwkJCQkJICAgICAgc3RhcnQsIHN0cmlkZSk7CisJICAgICAgYmFzZV9vZmZz ZXQgPSBzdGFydF9vZmZzZXQ7CiAJICAgIH0KIAkgIGVsc2UKIAkgICAgewogCSAgICAgIC8q IEV2YWx1YXRlIGFuZCByZW1lbWJlciB0aGUgc3RhcnQgb2YgdGhlIHNlY3Rpb24uICAqLwog CSAgICAgIHN0YXJ0ID0gaW5mby0+c3RhcnRbbl07Ci0JICAgICAgc3RyaWRlID0gZ2ZjX2V2 YWx1YXRlX25vdyAoc3RyaWRlLCAmbG9vcC5wcmUpOworCSAgICAgIGVuZCA9IGluZm8tPmVu ZFtuXTsKKwkgICAgICBzdHJpZGUgPSBnZmNfZXZhbHVhdGVfbm93IChzdHJpZGUsICZsb29w X3ByZSk7CisKKwkgICAgICBzdGFydF9vZmZzZXQgPSBmb2xkX2J1aWxkMl9sb2MgKGlucHV0 X2xvY2F0aW9uLCBNVUxUX0VYUFIsIGdmY19hcnJheV9pbmRleF90eXBlLAorCQkJCQkgICAg ICBzdGFydCwgc3RyaWRlKTsKKwkgICAgICAKKwkgICAgICBpZiAoZW5kID09IE5VTExfVFJF RSkKKwkJYmFzZV9vZmZzZXQgPSBzdGFydF9vZmZzZXQ7CisJICAgICAgZWxzZQorCQl7CisJ CSAgdHJlZSBlbmRfb2Zmc2V0ID0gZm9sZF9idWlsZDJfbG9jIChpbnB1dF9sb2NhdGlvbiwg TVVMVF9FWFBSLCBnZmNfYXJyYXlfaW5kZXhfdHlwZSwKKwkJCQkJCSAgICAgZW5kLCBzdHJp ZGUpOworCQkgIC8qIElmIHRoZSBhcnJheSBpcyB6ZXJvIHNpemUsIHRoZSB1cHBlciBib3Vu ZCBpcyBuZXZlciByZWFjaGVkLAorCQkgICAgIHNvIGp1c3QgdXNlIHRoZSBsb3dlciBib3Vu ZC4gICovCisJCSAgdHJlZSB0bXAgPSBmb2xkX2J1aWxkMl9sb2MgKGlucHV0X2xvY2F0aW9u LCBNSU5VU19FWFBSLCBnZmNfYXJyYXlfaW5kZXhfdHlwZSwKKwkJCQkJICAgICAgZW5kLCBz dGFydCk7CisJCSAgdHJlZSBmaW5hbF9zdHJpZGUgPSBmb2xkX2J1aWxkMl9sb2MgKGlucHV0 X2xvY2F0aW9uLCBNVUxUX0VYUFIsIGdmY19hcnJheV9pbmRleF90eXBlLAorCQkJCQkJICAg ICAgIHN0cmlkZSwgaW5mby0+c3RyaWRlW25dKTsKKwkJICB0cmVlIG5vbm5lZ2F0aXZlX3N0 cmlkZSA9IGZvbGRfYnVpbGQyX2xvYyAoaW5wdXRfbG9jYXRpb24sIEdFX0VYUFIsIGJvb2xl YW5fdHlwZV9ub2RlLAorCQkJCQkJCSAgICAgZmluYWxfc3RyaWRlLCBnZmNfaW5kZXhfemVy b19ub2RlKTsKKwkJICB0bXAgPSBmb2xkX2J1aWxkMl9sb2MgKGlucHV0X2xvY2F0aW9uLCBU UlVOQ19ESVZfRVhQUiwgZ2ZjX2FycmF5X2luZGV4X3R5cGUsCisJCQkJCSB0bXAsIGZpbmFs X3N0cmlkZSk7CisJCSAgdHJlZSBleHRlbnQgPSBmb2xkX2J1aWxkMl9sb2MgKGlucHV0X2xv Y2F0aW9uLCBQTFVTX0VYUFIsIGdmY19hcnJheV9pbmRleF90eXBlLAorCQkJCQkJIHRtcCwg Z2ZjX2luZGV4X29uZV9ub2RlKTsKKwkJICB0cmVlIG5vbnBvc2l0aXZlX2V4dGVudCA9IGZv bGRfYnVpbGQyX2xvYyAoaW5wdXRfbG9jYXRpb24sIExFX0VYUFIsIGJvb2xlYW5fdHlwZV9u b2RlLAorCQkJCQkJCSAgICAgZXh0ZW50LCBnZmNfaW5kZXhfemVyb19ub2RlKTsKKwkJICB0 cmVlIHVzZV9zdGFydF9vZmZzZXQgPSBmb2xkX2J1aWxkMl9sb2MgKGlucHV0X2xvY2F0aW9u LCBUUlVUSF9PUklGX0VYUFIsIGJvb2xlYW5fdHlwZV9ub2RlLAorCQkJCQkJCSAgIG5vbm5l Z2F0aXZlX3N0cmlkZSwgbm9ucG9zaXRpdmVfZXh0ZW50KTsKKwkJICBiYXNlX29mZnNldCA9 IGZvbGRfYnVpbGQzX2xvYyAoaW5wdXRfbG9jYXRpb24sIENPTkRfRVhQUiwgZ2ZjX2FycmF5 X2luZGV4X3R5cGUsIHVzZV9zdGFydF9vZmZzZXQsCisJCQkJCQkgIHN0YXJ0X29mZnNldCwg ZW5kX29mZnNldCk7CisJCX0KIAkgICAgfQogCi0JICB0bXAgPSBnZmNfY29udl9hcnJheV9s Ym91bmQgKGRlc2MsIG4pOwotCSAgdG1wID0gZm9sZF9idWlsZDJfbG9jIChpbnB1dF9sb2Nh dGlvbiwgTUlOVVNfRVhQUiwgVFJFRV9UWVBFICh0bXApLAotCQkJCSBzdGFydCwgdG1wKTsK LQkgIHRtcCA9IGZvbGRfYnVpbGQyX2xvYyAoaW5wdXRfbG9jYXRpb24sIE1VTFRfRVhQUiwg VFJFRV9UWVBFICh0bXApLAotCQkJCSB0bXAsIHN0cmlkZSk7Ci0JICBiYXNlID0gZm9sZF9i dWlsZDJfbG9jIChpbnB1dF9sb2NhdGlvbiwgUExVU19FWFBSLCBUUkVFX1RZUEUgKHRtcCks Ci0JCQkJICAgIGJhc2UsIHRtcCk7Ci0KKwkgIGJhc2UgPSBmb2xkX2J1aWxkMl9sb2MgKGlu cHV0X2xvY2F0aW9uLCBQTFVTX0VYUFIsIFRSRUVfVFlQRSAoYmFzZSksCisJCQkJICBiYXNl LCBiYXNlX29mZnNldCk7CiAJICBpZiAoaW5mby0+cmVmCiAJICAgICAgJiYgaW5mby0+cmVm LT51LmFyLmRpbWVuX3R5cGVbbl0gPT0gRElNRU5fRUxFTUVOVCkKIAkgICAgewpAQCAtODAx NiwxMiArODA2OCwxNCBAQCBnZmNfY29udl9leHByX2Rlc2NyaXB0b3IgKGdmY19zZSAqc2Us IGdmY19leHByICpleHByKQogCSAgLyogU2V0IHRoZSBuZXcgbG93ZXIgYm91bmQuICAqLwog CSAgZnJvbSA9IGxvb3AuZnJvbVtkaW1dOwogCSAgdG8gPSBsb29wLnRvW2RpbV07CisJICBp ZiAodG8gPT0gTlVMTF9UUkVFKQorCSAgICB0byA9IGdmY19pbmRleF96ZXJvX25vZGU7CiAK LQkgIGdmY19jb252X2Rlc2NyaXB0b3JfbGJvdW5kX3NldCAoJmxvb3AucHJlLCBwYXJtLAor CSAgZ2ZjX2NvbnZfZGVzY3JpcHRvcl9sYm91bmRfc2V0ICgmbG9vcF9wcmUsIHBhcm0sCiAJ CQkJCSAgZ2ZjX3JhbmtfY3N0W2RpbV0sIGZyb20pOwogCiAJICAvKiBTZXQgdGhlIG5ldyB1 cHBlciBib3VuZC4gICovCi0JICBnZmNfY29udl9kZXNjcmlwdG9yX3Vib3VuZF9zZXQgKCZs b29wLnByZSwgcGFybSwKKwkgIGdmY19jb252X2Rlc2NyaXB0b3JfdWJvdW5kX3NldCAoJmxv b3BfcHJlLCBwYXJtLAogCQkJCQkgIGdmY19yYW5rX2NzdFtkaW1dLCB0byk7CiAKIAkgIC8q IE11bHRpcGx5IHRoZSBzdHJpZGUgYnkgdGhlIHNlY3Rpb24gc3RyaWRlIHRvIGdldCB0aGUK QEAgLTgwMzUsOCArODA4OSwxMyBAQCBnZmNfY29udl9leHByX2Rlc2NyaXB0b3IgKGdmY19z ZSAqc2UsIGdmY19leHByICpleHByKQogCSAgb2Zmc2V0ID0gZm9sZF9idWlsZDJfbG9jIChp bnB1dF9sb2NhdGlvbiwgTUlOVVNfRVhQUiwKIAkJCQkgICBUUkVFX1RZUEUgKG9mZnNldCks IG9mZnNldCwgdG1wKTsKIAorCSAgdG1wID0gZm9sZF9idWlsZDJfbG9jIChpbnB1dF9sb2Nh dGlvbiwgTUlOVVNfRVhQUiwgVFJFRV9UWVBFIChzdGFydF9vZmZzZXQpLAorCQkJCSBzdGFy dF9vZmZzZXQsIGJhc2Vfb2Zmc2V0KTsKKwkgIG9mZnNldCA9IGZvbGRfYnVpbGQyX2xvYyAo aW5wdXRfbG9jYXRpb24sIFBMVVNfRVhQUiwKKwkJCQkgICAgVFJFRV9UWVBFIChvZmZzZXQp LCBvZmZzZXQsIHRtcCk7CisKIAkgIC8qIFN0b3JlIHRoZSBuZXcgc3RyaWRlLiAgKi8KLQkg IGdmY19jb252X2Rlc2NyaXB0b3Jfc3RyaWRlX3NldCAoJmxvb3AucHJlLCBwYXJtLAorCSAg Z2ZjX2NvbnZfZGVzY3JpcHRvcl9zdHJpZGVfc2V0ICgmbG9vcF9wcmUsIHBhcm0sCiAJCQkJ CSAgZ2ZjX3JhbmtfY3N0W2RpbV0sIHN0cmlkZSk7CiAJfQogCkBAIC04MDQ0LDIyICs4MTAz LDM5IEBAIGdmY19jb252X2V4cHJfZGVzY3JpcHRvciAoZ2ZjX3NlICpzZSwgZ2ZjX2V4cHIg KmV4cHIpCiAJewogCSAgZnJvbSA9IGxvb3AuZnJvbVtuXTsKIAkgIHRvID0gbG9vcC50b1tu XTsKLQkgIGdmY19jb252X2Rlc2NyaXB0b3JfbGJvdW5kX3NldCAoJmxvb3AucHJlLCBwYXJt LAorCSAgZ2ZjX2NvbnZfZGVzY3JpcHRvcl9sYm91bmRfc2V0ICgmbG9vcF9wcmUsIHBhcm0s CiAJCQkJCSAgZ2ZjX3JhbmtfY3N0W25dLCBmcm9tKTsKIAkgIGlmIChuIDwgbG9vcC5kaW1l biArIGNvZGltIC0gMSkKLQkgICAgZ2ZjX2NvbnZfZGVzY3JpcHRvcl91Ym91bmRfc2V0ICgm bG9vcC5wcmUsIHBhcm0sCisJICAgIGdmY19jb252X2Rlc2NyaXB0b3JfdWJvdW5kX3NldCAo Jmxvb3BfcHJlLCBwYXJtLAogCQkJCQkgICAgZ2ZjX3JhbmtfY3N0W25dLCB0byk7CiAJfQog CiAgICAgICBpZiAoc2UtPmRhdGFfbm90X25lZWRlZCkKLQlnZmNfY29udl9kZXNjcmlwdG9y X2RhdGFfc2V0ICgmbG9vcC5wcmUsIHBhcm0sCisJZ2ZjX2NvbnZfZGVzY3JpcHRvcl9kYXRh X3NldCAoJmxvb3BfcHJlLCBwYXJtLAogCQkJCSAgICAgIGdmY19pbmRleF96ZXJvX25vZGUp OwogICAgICAgZWxzZQogCS8qIFBvaW50IHRoZSBkYXRhIHBvaW50ZXIgYXQgdGhlIDFzdCBl bGVtZW50IGluIHRoZSBzZWN0aW9uLiAgKi8KLQlnZmNfZ2V0X2RhdGFwdHJfb2Zmc2V0ICgm bG9vcC5wcmUsIHBhcm0sIGRlc2MsIGJhc2UsCisJZ2ZjX2dldF9kYXRhcHRyX29mZnNldCAo Jmxvb3BfcHJlLCBwYXJtLCBkZXNjLCBiYXNlLAogCQkJCXN1YnJlZl9hcnJheV90YXJnZXQs IGV4cHIpOwogCi0gICAgICBnZmNfY29udl9kZXNjcmlwdG9yX29mZnNldF9zZXQgKCZsb29w LnByZSwgcGFybSwgb2Zmc2V0KTsKKyAgICAgIGdmY19jb252X2Rlc2NyaXB0b3Jfb2Zmc2V0 X3NldCAoJmxvb3BfcHJlLCBwYXJtLCBvZmZzZXQpOworCisgICAgICBpZiAoZXhwci0+ZXhw cl90eXBlID09IEVYUFJfVkFSSUFCTEUKKwkgICYmIGV4cHItPnN5bXRyZWUtPm4uc3ltLT5h dHRyLmR1bW15CisJICAmJiBleHByLT5zeW10cmVlLT5uLnN5bS0+YXR0ci5vcHRpb25hbCkK Kwl7CisJICBzdG10YmxvY2tfdCBhYnNlbnRfYmxvY2s7CisJICBnZmNfaW5pdF9ibG9jayAo JmFic2VudF9ibG9jayk7CisJICBnZmNfY29udl9kZXNjcmlwdG9yX2RhdGFfc2V0ICgmYWJz ZW50X2Jsb2NrLCBwYXJtLCBnZmNfaW5kZXhfemVyb19ub2RlKTsKKworCSAgdHJlZSBwcmVz ZW50ID0gZ2ZjX2NvbnZfZXhwcl9wcmVzZW50IChleHByLT5zeW10cmVlLT5uLnN5bSk7CisJ ICB0cmVlIGNvbmQgPSBmb2xkX2J1aWxkM19sb2MgKGlucHV0X2xvY2F0aW9uLCBDT05EX0VY UFIsIHZvaWRfdHlwZV9ub2RlLAorCQkJCSAgICAgICBwcmVzZW50LCBnZmNfZmluaXNoX2Js b2NrICgmbG9vcF9wcmUpLAorCQkJCSAgICAgICBnZmNfZmluaXNoX2Jsb2NrICgmYWJzZW50 X2Jsb2NrKSk7CisJICBnZmNfYWRkX2V4cHJfdG9fYmxvY2sgKCZsb29wLnByZSwgY29uZCk7 CisJfQorICAgICAgZWxzZQorCWdmY19hZGRfZXhwcl90b19ibG9jayAoJmxvb3AucHJlLCBn ZmNfZmluaXNoX2Jsb2NrICgmbG9vcF9wcmUpKTsKIAogICAgICAgZGVzYyA9IHBhcm07CiAg ICAgfQpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vdHJhbnMtZGVjbC5jYyBiL2djYy9mb3J0 cmFuL3RyYW5zLWRlY2wuY2MKaW5kZXggNjQ5M2NjMmY2YjEuLmVlZWQ1ZTkxMzdjIDEwMDY0 NAotLS0gYS9nY2MvZm9ydHJhbi90cmFucy1kZWNsLmNjCisrKyBiL2djYy9mb3J0cmFuL3Ry YW5zLWRlY2wuY2MKQEAgLTY2NTcsNiArNjY1Nyw4IEBAIGdmY19jb252X2NmaV90b19nZmMg KHN0bXRibG9ja190ICppbml0LCBzdG10YmxvY2tfdCAqZmluYWxseSwKICAgZ2ZjX2luaXRf YmxvY2sgKCZibG9jayk7CiAgIHRyZWUgY2ZpID0gYnVpbGRfZm9sZF9pbmRpcmVjdF9yZWZf bG9jIChpbnB1dF9sb2NhdGlvbiwgY2ZpX2Rlc2MpOwogICB0cmVlIGlkeCwgZXR5cGUsIHRt cCwgdG1wMiwgc2l6ZV92YXIgPSBOVUxMX1RSRUUsIHJhbmsgPSBOVUxMX1RSRUU7CisgIHRy ZWUgb2Zmc2V0ID0gTlVMTF9UUkVFLCBkYXRhX29mZnNldCA9IE5VTExfVFJFRTsKKyAgdHJl ZSBvbGRfZ2ZjX2RhdGEgPSBOVUxMX1RSRUUsIGRvX2NvcHlpbiA9IE5VTExfVFJFRTsKICAg Ym9vbCBkb19jb3B5X2lub3V0ID0gZmFsc2U7CiAKICAgLyogV2hlbiBhbGxvY2F0YWJsZSAr IGludGVudCBvdXQsIGZyZWUgdGhlIGNmaSBkZXNjcmlwdG9yLiAgKi8KQEAgLTY5NTEsNiAr Njk1Myw5IEBAIGdmY19jb252X2NmaV90b19nZmMgKHN0bXRibG9ja190ICppbml0LCBzdG10 YmxvY2tfdCAqZmluYWxseSwKICAgZWxzZQogICAgIHJhbmsgPSBidWlsZF9pbnRfY3N0IChz aWduZWRfY2hhcl90eXBlX25vZGUsIHN5bS0+YXMtPnJhbmspOwogCisgIG9sZF9nZmNfZGF0 YSA9IGdmY19jcmVhdGVfdmFyIChwdm9pZF90eXBlX25vZGUsICJvbGRfZ2ZjX2RhdGEiKTsK KyAgZ2ZjX2FkZF9tb2RpZnkgKCZibG9jaywgb2xkX2dmY19kYXRhLCBudWxsX3BvaW50ZXJf bm9kZSk7CisKICAgLyogV2l0aCBiaW5kKEMpLCB0aGUgc3RhbmRhcmQgcmVxdWlyZXMgdGhh dCBib3RoIEZvcnRyYW4gY2FsbGVycyBhbmQgY2FsbGVlcwogICAgICBoYW5kbGUgbm9uY29u dGlndW91cyBhcnJheXMgcGFzc2VkIHRvIGFuIGR1bW15IHdpdGggJ2NvbnRpZ3VvdXMnIGF0 dHJpYnV0ZQogICAgICBhbmQgd2l0aCBjaGFyYWN0ZXIobGVuPSopICsgYXNzdW1lZC1zaXpl L2V4cGxpY2l0LXNpemUgYXJyYXlzLgpAQCAtNjk3Miw3ICs2OTc3LDcgQEAgZ2ZjX2NvbnZf Y2ZpX3RvX2dmYyAoc3RtdGJsb2NrX3QgKmluaXQsIHN0bXRibG9ja190ICpmaW5hbGx5LAog CiAgICAgICAvKiBJcyBjb3B5LWluL291dCBuZWVkZWQ/ICovCiAgICAgICAvKiBkb19jb3B5 aW4gPSByYW5rICE9IDAgJiYgIWFzc3VtZWQtc2l6ZSAqLwotICAgICAgdHJlZSBjb25kX3Zh ciA9IGdmY19jcmVhdGVfdmFyIChib29sZWFuX3R5cGVfbm9kZSwgImRvX2NvcHlpbiIpOwor ICAgICAgdHJlZSBjb25kX3ZhciA9IGRvX2NvcHlpbiA9IGdmY19jcmVhdGVfdmFyIChib29s ZWFuX3R5cGVfbm9kZSwgImRvX2NvcHlpbiIpOwogICAgICAgdHJlZSBjb25kID0gZm9sZF9i dWlsZDJfbG9jIChpbnB1dF9sb2NhdGlvbiwgTkVfRVhQUiwgYm9vbGVhbl90eXBlX25vZGUs CiAJCQkJICAgcmFuaywgYnVpbGRfemVyb19jc3QgKFRSRUVfVFlQRSAocmFuaykpKTsKICAg ICAgIC8qIGRpbVtyYW5rLTFdLmV4dGVudCAhPSAtMSAtPiBhc3N1bWVkIHNpemUqLwpAQCAt NzEzMSw2ICs3MTM2LDEwIEBAIGdmY19jb252X2NmaV90b19nZmMgKHN0bXRibG9ja190ICpp bml0LCBzdG10YmxvY2tfdCAqZmluYWxseSwKICAgICAgV2UgdXNlIGdmYyBpbnN0ZWFkIG9m IGNmaSBvbiB0aGUgUkhTIGFzIHRoaXMgbWlnaHQgYmUgYSBjb25zdGFudC4gICovCiAgIHRt cCA9IGZvbGRfY29udmVydCAoZ2ZjX2FycmF5X2luZGV4X3R5cGUsCiAJCSAgICAgIGdmY19j b252X2Rlc2NyaXB0b3JfZWxlbV9sZW4gKGdmY19kZXNjKSk7CisKKyAgZGF0YV9vZmZzZXQg PSBnZmNfY3JlYXRlX3ZhciAoc2l6ZV90eXBlX25vZGUsICJkYXRhX29mZnNldCIpOworICBn ZmNfYWRkX21vZGlmeSAoJmJsb2NrMiwgZGF0YV9vZmZzZXQsIGJ1aWxkX2ludF9jc3QgKHNp emVfdHlwZV9ub2RlLCAwKSk7CisKICAgaWYgKCFkb19jb3B5X2lub3V0KQogICAgIHsKICAg ICAgIC8qIGdmYy0+ZHNwYW4gPSAoKGNmaS0+ZGltWzBdLnNtICUgZ2ZjLT5lbGVtX2xlbikK QEAgLTcxNDcsNyArNzE1Niw4IEBAIGdmY19jb252X2NmaV90b19nZmMgKHN0bXRibG9ja190 ICppbml0LCBzdG10YmxvY2tfdCAqZmluYWxseSwKICAgZ2ZjX2NvbnZfZGVzY3JpcHRvcl9z cGFuX3NldCAoJmJsb2NrMiwgZ2ZjX2Rlc2MsIHRtcCk7CiAKICAgLyogQ2FsY3VsYXRlIG9m ZnNldCArIHNldCBsYm91bmQsIHVib3VuZCBhbmQgc3RyaWRlLiAgKi8KLSAgZ2ZjX2NvbnZf ZGVzY3JpcHRvcl9vZmZzZXRfc2V0ICgmYmxvY2syLCBnZmNfZGVzYywgZ2ZjX2luZGV4X3pl cm9fbm9kZSk7CisgIG9mZnNldCA9IGdmY19jcmVhdGVfdmFyIChnZmNfYXJyYXlfaW5kZXhf dHlwZSwgIm9mZnNldCIpOworICBnZmNfYWRkX21vZGlmeSAoJmJsb2NrMiwgb2Zmc2V0LCBn ZmNfaW5kZXhfemVyb19ub2RlKTsKICAgaWYgKHN5bS0+YXMtPnJhbmsgPiAwICYmICFzeW0t PmF0dHIucG9pbnRlciAmJiAhc3ltLT5hdHRyLmFsbG9jYXRhYmxlKQogICAgIGZvciAoaW50 IGkgPSAwOyBpIDwgc3ltLT5hcy0+cmFuazsgKytpKQogICAgICAgewpAQCAtNzIwNyw3ICs3 MjE3LDcgQEAgZ2ZjX2NvbnZfY2ZpX3RvX2dmYyAoc3RtdGJsb2NrX3QgKmluaXQsIHN0bXRi bG9ja190ICpmaW5hbGx5LAogICAgIH0KICAgZWxzZQogICAgIHsKLSAgICAgIC8qIGdmYy0+ ZGltW2ldLnN0cmlkZSA9IGNmaS0+ZGltW2ldLnNtIC8gY2ZpPmVsZW1fbGVuICovCisgICAg ICAvKiBnZmMtPmRpbVtpXS5zdHJpZGUgPSBjZmktPmRpbVtpXS5zbSAvIGNmaS0+ZWxlbV9s ZW4gKi8KICAgICAgIHRtcCA9IGdmY19nZXRfY2ZpX2RpbV9zbSAoY2ZpLCBpZHgpOwogICAg ICAgdG1wID0gZm9sZF9idWlsZDJfbG9jIChpbnB1dF9sb2NhdGlvbiwgVFJVTkNfRElWX0VY UFIsCiAJCQkgICAgIGdmY19hcnJheV9pbmRleF90eXBlLCB0bXAsCkBAIC03MjIwLDEzICs3 MjMwLDYzIEBAIGdmY19jb252X2NmaV90b19nZmMgKHN0bXRibG9ja190ICppbml0LCBzdG10 YmxvY2tfdCAqZmluYWxseSwKIAkJCSAgICAgZ2ZjX2NvbnZfZGVzY3JpcHRvcl9zdHJpZGVf Z2V0IChnZmNfZGVzYywgaWR4KSwKIAkJCSAgICAgZ2ZjX2NvbnZfZGVzY3JpcHRvcl9sYm91 bmRfZ2V0IChnZmNfZGVzYywgaWR4KSk7CiAgIHRtcCA9IGZvbGRfYnVpbGQyX2xvYyAoaW5w dXRfbG9jYXRpb24sIE1JTlVTX0VYUFIsIGdmY19hcnJheV9pbmRleF90eXBlLAotCQkJICAg ICBnZmNfY29udl9kZXNjcmlwdG9yX29mZnNldF9nZXQgKGdmY19kZXNjKSwgdG1wKTsKLSAg Z2ZjX2NvbnZfZGVzY3JpcHRvcl9vZmZzZXRfc2V0ICgmbG9vcF9ib2R5LCBnZmNfZGVzYywg dG1wKTsKKwkJCSAgICAgb2Zmc2V0LCB0bXApOworICBnZmNfYWRkX21vZGlmeSAoJmxvb3Bf Ym9keSwgb2Zmc2V0LCB0bXApOworCisgIGlmICghZG9fY29weV9pbm91dCkKKyAgICB7Cisg ICAgICAvKiBkYXRhX29mZnNldCArPSBjZmktPmRpbVtpXS5zbSA8IDAgPyAoY2ZpLT5kaW1b aV0uZXh0ZW50IC0gMSkgKiBjZmktPmRpbVtpXS5zbSA6IDAgKi8KKyAgICAgIHRyZWUgZXh0 ZW50ID0gZ2ZjX2dldF9jZmlfZGltX2V4dGVudCAoY2ZpLCBpZHgpOworICAgICAgdG1wID0g Zm9sZF9jb252ZXJ0X2xvYyAoaW5wdXRfbG9jYXRpb24sIHNpemVfdHlwZV9ub2RlLCBleHRl bnQpOworICAgICAgdG1wID0gZm9sZF9idWlsZDJfbG9jIChpbnB1dF9sb2NhdGlvbiwgTUlO VVNfRVhQUiwgc2l6ZV90eXBlX25vZGUsCisJCQkgICAgIHRtcCwgYnVpbGRfaW50X2NzdCAo c2l6ZV90eXBlX25vZGUsIDEpKTsKKyAgICAgIHRyZWUgc20gPSBnZmNfZ2V0X2NmaV9kaW1f c20gKGNmaSwgaWR4KTsKKyAgICAgIHRtcDIgPSBmb2xkX2NvbnZlcnQgKHNpemVfdHlwZV9u b2RlLCBzbSk7CisKKyAgICAgIHRtcCA9IGZvbGRfYnVpbGQyX2xvYyAoaW5wdXRfbG9jYXRp b24sIE1VTFRfRVhQUiwgc2l6ZV90eXBlX25vZGUsCisJCQkgICAgIHRtcCwgdG1wMik7CisK KyAgICAgIHRyZWUgc21fbmVnYXRpdmUgPSBmb2xkX2J1aWxkMl9sb2MgKGlucHV0X2xvY2F0 aW9uLCBMVF9FWFBSLCBib29sZWFuX3R5cGVfbm9kZSwKKwkJCQkJICBzbSwgYnVpbGRfaW50 X2NzdCAoVFJFRV9UWVBFIChzbSksIDApKTsKKyAgICAgIHRtcCA9IGZvbGRfYnVpbGQzX2xv YyAoaW5wdXRfbG9jYXRpb24sIENPTkRfRVhQUiwgc2l6ZV90eXBlX25vZGUsCisJCQkgICAg IHNtX25lZ2F0aXZlLCB0bXAsIGJ1aWxkX2ludF9jc3QgKHNpemVfdHlwZV9ub2RlLCAwKSk7 CisKKyAgICAgIHRtcCA9IGZvbGRfYnVpbGQyX2xvYyAoaW5wdXRfbG9jYXRpb24sIFBMVVNf RVhQUiwgc2l6ZV90eXBlX25vZGUsCisJCQkgICAgIGRhdGFfb2Zmc2V0LCB0bXApOworCisg ICAgICBnZmNfYWRkX21vZGlmeSAoJmxvb3BfYm9keSwgZGF0YV9vZmZzZXQsIHRtcCk7Cisg ICAgfQogCiAgIC8qIEdlbmVyYXRlIGxvb3AuICAqLwogICBnZmNfc2ltcGxlX2Zvcl9sb29w ICgmYmxvY2syLCBpZHgsIGJ1aWxkX3plcm9fY3N0IChUUkVFX1RZUEUgKGlkeCkpLAogCQkg ICAgICAgcmFuaywgTFRfRVhQUiwgYnVpbGRfaW50X2NzdCAoVFJFRV9UWVBFIChpZHgpLCAx KSwKIAkJICAgICAgIGdmY19maW5pc2hfYmxvY2sgKCZsb29wX2JvZHkpKTsKKworICBpZiAo R0ZDX0RFU0NSSVBUT1JfVFlQRV9QIChUUkVFX1RZUEUgKGdmY19kZXNjKSkpCisgICAgewor ICAgICAgdHJlZSBnZmNfZGF0YSA9IGdmY19jb252X2Rlc2NyaXB0b3JfZGF0YV9nZXQgKGdm Y19kZXNjKTsKKyAgICAgIHRtcCA9IGZvbGRfYnVpbGQyX2xvYyAoaW5wdXRfbG9jYXRpb24s IFBPSU5URVJfUExVU19FWFBSLAorCQkJICAgICBUUkVFX1RZUEUgKGdmY19kYXRhKSwgZ2Zj X2RhdGEsCisJCQkgICAgIGRhdGFfb2Zmc2V0KTsKKworICAgICAgLyogZ2ZjLT5kYXRhID0g Z2ZjLT5kYXRhIHArIGRhdGFfb2Zmc2V0LiAqLworICAgICAgZ2ZjX2NvbnZfZGVzY3JpcHRv cl9kYXRhX3NldCAoJmJsb2NrMiwgZ2ZjX2Rlc2MsIHRtcCk7CisKKyAgICAgIHRtcCA9IGdm Y19jb252X2Rlc2NyaXB0b3JfZGF0YV9nZXQgKGdmY19kZXNjKTsKKyAgICAgIGdmY19hZGRf bW9kaWZ5ICgmYmxvY2syLCBvbGRfZ2ZjX2RhdGEsIGZvbGRfY29udmVydCAocHZvaWRfdHlw ZV9ub2RlLCB0bXApKTsKKworICAgICAgLyogZ2ZjLT5vZmZzZXQgLT0gZGF0YV9vZmZzZXQg LyBjZmktPmVsZW1fbGVuLiAqLworICAgICAgdHJlZSBkYXRfb2ZmID0gZm9sZF9jb252ZXJ0 IChnZmNfYXJyYXlfaW5kZXhfdHlwZSwgZGF0YV9vZmZzZXQpOworICAgICAgdHJlZSBlbGVt X2xlbiA9IGZvbGRfY29udmVydCAoZ2ZjX2FycmF5X2luZGV4X3R5cGUsIGdmY19nZXRfY2Zp X2Rlc2NfZWxlbV9sZW4gKGNmaSkpOworICAgICAgdG1wID0gZm9sZF9idWlsZDJfbG9jIChp bnB1dF9sb2NhdGlvbiwgVFJVTkNfRElWX0VYUFIsCisJCQkgICAgIGdmY19hcnJheV9pbmRl eF90eXBlLCBkYXRfb2ZmLCBlbGVtX2xlbik7CisgICAgICB0bXAgPSBmb2xkX2J1aWxkMl9s b2MgKGlucHV0X2xvY2F0aW9uLCBNSU5VU19FWFBSLAorCQkJICAgICBnZmNfYXJyYXlfaW5k ZXhfdHlwZSwgb2Zmc2V0LCB0bXApOworICAgICAgZ2ZjX2FkZF9tb2RpZnkgKCZibG9jazIs IG9mZnNldCwgdG1wKTsKKyAgICB9CisKKyAgZ2ZjX2NvbnZfZGVzY3JpcHRvcl9vZmZzZXRf c2V0ICgmYmxvY2syLCBnZmNfZGVzYywgb2Zmc2V0KTsKKwogICBpZiAoc3ltLT5hdHRyLmFs bG9jYXRhYmxlIHx8IHN5bS0+YXR0ci5wb2ludGVyKQogICAgIHsKICAgICAgIHRtcCA9IGdm Y19nZXRfY2ZpX2Rlc2NfYmFzZV9hZGRyIChjZmkpLApAQCAtNzIzOSw2ICs3Mjk5LDcgQEAg Z2ZjX2NvbnZfY2ZpX3RvX2dmYyAoc3RtdGJsb2NrX3QgKmluaXQsIHN0bXRibG9ja190ICpm aW5hbGx5LAogICBlbHNlCiAgICAgZ2ZjX2FkZF9ibG9ja190b19ibG9jayAoJmJsb2NrLCAm YmxvY2syKTsKIAorCiBkb25lOgogICAvKiBJZiBvcHRpb25hbCBhcmc6ICdpZiAoYXJnKSB7 IGJsb2NrIH0gZWxzZSB7IGxvY2FsX2FyZyA9IE5VTEw7IH0nLiAgKi8KICAgaWYgKHN5bS0+ YXR0ci5vcHRpb25hbCkKQEAgLTczNTksMTAgKzc0MjAsNyBAQCBkb25lOgogICAgICAgZ2Zj X2FkZF9leHByX3RvX2Jsb2NrICgmYmxvY2syLCBjYWxsKTsKIAogICAgICAgLyogaWYgKGNm aS0+YmFzZV9hZGRyICE9IGdmYy0+ZGF0YSkgeyBjb3B5IG91dDsgZnJlZSh2YXIpIH07IHJl dHVybiAgKi8KLSAgICAgIHRyZWUgdG1wMiA9IGdmY19nZXRfY2ZpX2Rlc2NfYmFzZV9hZGRy IChjZmkpOwotICAgICAgdG1wMiA9IGZvbGRfYnVpbGQyX2xvYyAoaW5wdXRfbG9jYXRpb24s IE5FX0VYUFIsIGJvb2xlYW5fdHlwZV9ub2RlLAotCQkJICAgICAgdG1wMiwgZm9sZF9jb252 ZXJ0IChUUkVFX1RZUEUgKHRtcDIpLCBkYXRhKSk7Ci0gICAgICB0bXAgPSBidWlsZDNfdiAo Q09ORF9FWFBSLCB0bXAyLCBnZmNfZmluaXNoX2Jsb2NrICgmYmxvY2syKSwKKyAgICAgIHRt cCA9IGJ1aWxkM192IChDT05EX0VYUFIsIGRvX2NvcHlpbiwgZ2ZjX2ZpbmlzaF9ibG9jayAo JmJsb2NrMiksCiAJCSAgICAgIGJ1aWxkX2VtcHR5X3N0bXQgKGlucHV0X2xvY2F0aW9uKSk7 CiAgICAgICBnZmNfYWRkX2V4cHJfdG9fYmxvY2sgKCZibG9jaywgdG1wKTsKICAgICAgIGdv dG8gZG9uZV9maW5hbGx5OwpAQCAtNzM5MSw2ICs3NDQ5LDkgQEAgZG9uZToKIAogICBnZmNf aW5pdF9ibG9jayAoJmJsb2NrMik7CiAKKyAgZGF0YV9vZmZzZXQgPSBnZmNfY3JlYXRlX3Zh ciAoc2l6ZV90eXBlX25vZGUsICJkYXRhX29mZnNldCIpOworICBnZmNfYWRkX21vZGlmeSAo JmJsb2NrMiwgZGF0YV9vZmZzZXQsIGJ1aWxkX3plcm9fY3N0IChzaXplX3R5cGVfbm9kZSkp OworCiAgIC8qIExvb3A6IGZvciAoaSA9IDA7IGkgPCByYW5rOyArK2kpLiAgKi8KICAgaWR4 ID0gZ2ZjX2NyZWF0ZV92YXIgKFRSRUVfVFlQRSAocmFuayksICJpZHgiKTsKIApAQCAtNzQx MiwxMSArNzQ3Myw0MiBAQCBkb25lOgogCQkJICAgICBnZmNfY29udl9kZXNjcmlwdG9yX3Nw YW5fZ2V0IChnZmNfZGVzYykpOwogICBnZmNfYWRkX21vZGlmeSAoJmxvb3BfYm9keSwgZ2Zj X2dldF9jZmlfZGltX3NtIChjZmksIGlkeCksIHRtcCk7CiAKKyAgeworICAgIC8qIGRhdGFf b2Zmc2V0IC09IGNmaS0+ZGltW2ldLnNtIDwgMCA/IChjZmktPmRpbVtpXS5leHRlbnQgLSAx KSAqIGNmaS0+ZGltW2ldLnNtIDogMC4gICovCisgICAgdHJlZSBleHRlbnQgPSBnZmNfZ2V0 X2NmaV9kaW1fZXh0ZW50IChjZmksIGlkeCk7CisgICAgdG1wID0gZm9sZF9idWlsZDJfbG9j IChpbnB1dF9sb2NhdGlvbiwgTUlOVVNfRVhQUiwgc2l6ZV90eXBlX25vZGUsCisJCQkgICBm b2xkX2NvbnZlcnQgKHNpemVfdHlwZV9ub2RlLCBleHRlbnQpLAorCQkJICAgYnVpbGRfb25l X2NzdCAoc2l6ZV90eXBlX25vZGUpKTsKKyAgICB0cmVlIHNtID0gZm9sZF9jb252ZXJ0X2xv YyAoaW5wdXRfbG9jYXRpb24sIHNpemVfdHlwZV9ub2RlLCBnZmNfZ2V0X2NmaV9kaW1fc20g KGNmaSwgaWR4KSk7CisgICAgdHJlZSBkYXRfb2ZmID0gZm9sZF9idWlsZDJfbG9jIChpbnB1 dF9sb2NhdGlvbiwgTVVMVF9FWFBSLCBzaXplX3R5cGVfbm9kZSwKKwkJCQkgICAgdG1wLCBz bSk7CisKKyAgICB0cmVlIG5lZ2F0aXZlX3NtID0gZm9sZF9idWlsZDJfbG9jIChpbnB1dF9s b2NhdGlvbiwgTFRfRVhQUiwgYm9vbGVhbl90eXBlX25vZGUsCisJCQkJCWZvbGRfY29udmVy dCAoZ2ZjX2FycmF5X2luZGV4X3R5cGUsIHNtKSwKKwkJCQkJZ2ZjX2luZGV4X3plcm9fbm9k ZSk7CisgICAgdHJlZSBvZmYgPSBmb2xkX2J1aWxkM19sb2MgKGlucHV0X2xvY2F0aW9uLCBD T05EX0VYUFIsIHNpemVfdHlwZV9ub2RlLAorCQkJCW5lZ2F0aXZlX3NtLCBkYXRfb2ZmLCBi dWlsZF96ZXJvX2NzdCAoc2l6ZV90eXBlX25vZGUpKTsKKworICAgIHRtcCA9IGZvbGRfYnVp bGQyX2xvYyAoaW5wdXRfbG9jYXRpb24sIE1JTlVTX0VYUFIsIHNpemVfdHlwZV9ub2RlLAor CQkJICAgZGF0YV9vZmZzZXQsIG9mZik7CisKKyAgICBnZmNfYWRkX21vZGlmeSAoJmxvb3Bf Ym9keSwgZGF0YV9vZmZzZXQsIHRtcCk7CisgIH0KKwogICAvKiBHZW5lcmF0ZSBsb29wLiAg Ki8KICAgZ2ZjX3NpbXBsZV9mb3JfbG9vcCAoJmJsb2NrMiwgaWR4LCBidWlsZF96ZXJvX2Nz dCAoVFJFRV9UWVBFIChpZHgpKSwKIAkJICAgICAgIHJhbmssIExUX0VYUFIsIGJ1aWxkX2lu dF9jc3QgKFRSRUVfVFlQRSAoaWR4KSwgMSksCiAJCSAgICAgICBnZmNfZmluaXNoX2Jsb2Nr ICgmbG9vcF9ib2R5KSk7Ci0gIC8qIGlmIChnZmMtPmRhdGEgIT0gTlVMTCkgeyBibG9jazIg fS4gICovCisKKyAgeworICAgIC8qIFVwZGF0ZSBwb2ludGVyICsgYXJyYXkgZGF0YSBkYXRh IG9uIGV4aXQuICAqLworICAgIHRyZWUgY2ZpX2Jhc2VfYWRkciA9IGdmY19nZXRfY2ZpX2Rl c2NfYmFzZV9hZGRyIChjZmkpOworICAgIHRtcCA9IGZvbGRfYnVpbGQyX2xvYyAoaW5wdXRf bG9jYXRpb24sIFBPSU5URVJfUExVU19FWFBSLCBUUkVFX1RZUEUgKGNmaV9iYXNlX2FkZHIp LAorCQkJICAgIGNmaV9iYXNlX2FkZHIsIGRhdGFfb2Zmc2V0KTsKKyAgICBnZmNfYWRkX21v ZGlmeSAoJmJsb2NrMiwgY2ZpX2Jhc2VfYWRkciwgdG1wKTsKKyAgfQorCisgIC8qIGlmIChj ZmktPmJhc2VfYWRkciAhPSBOVUxMKSB7IGJsb2NrMiB9LiAgKi8KICAgdG1wID0gZ2ZjX2dl dF9jZmlfZGVzY19iYXNlX2FkZHIgKGNmaSksCiAgIHRtcCA9IGZvbGRfYnVpbGQyX2xvYyAo aW5wdXRfbG9jYXRpb24sIE5FX0VYUFIsIGJvb2xlYW5fdHlwZV9ub2RlLAogCQkJIHRtcCwg bnVsbF9wb2ludGVyX25vZGUpOwpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vdHJhbnMtZXhw ci5jYyBiL2djYy9mb3J0cmFuL3RyYW5zLWV4cHIuY2MKaW5kZXggODUwMDA3ZmQyZTEuLjZj OGZhMTZlNzIzIDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi90cmFucy1leHByLmNjCisrKyBi L2djYy9mb3J0cmFuL3RyYW5zLWV4cHIuY2MKQEAgLTI2MTIsNyArMjYxMiw3IEBAIGdmY19j b252X3N1YnN0cmluZyAoZ2ZjX3NlICogc2UsIGdmY19yZWYgKiByZWYsIGludCBraW5kLAog ICAgICAgLyogRm9yIEJJTkQoQyksIGEgQlRfQ0hBUkFDVEVSIGlzIG5vdCBhbiBBUlJBWV9U WVBFLiAgKi8KICAgICAgIGlmIChUUkVFX0NPREUgKFRSRUVfVFlQRSAodG1wKSkgPT0gQVJS QVlfVFlQRSkKIAl7Ci0JICB0bXAgPSBnZmNfYnVpbGRfYXJyYXlfcmVmICh0bXAsIHN0YXJ0 LmV4cHIsIE5VTExfVFJFRSwgdHJ1ZSk7CisJICB0bXAgPSBnZmNfYnVpbGRfYXJyYXlfcmVm ICh0bXAsIHN0YXJ0LmV4cHIsIE5VTEwpOwogCSAgc2UtPmV4cHIgPSBnZmNfYnVpbGRfYWRk cl9leHByICh0eXBlLCB0bXApOwogCX0KICAgICB9CkBAIC01Njc1LDkgKzU2NzUsMTAgQEAg Z2ZjX2NvbnZfZ2ZjX2Rlc2NfdG9fY2ZpX2Rlc2MgKGdmY19zZSAqcGFybXNlLCBnZmNfZXhw ciAqZSwgZ2ZjX3N5bWJvbCAqZnN5bSkKICAgICB9CiAgIGVsc2UKICAgICB7Ci0gICAgICB0 bXAgPSBnZmNfZ2V0X2NmaV9kZXNjX2Jhc2VfYWRkciAoY2ZpKTsKLSAgICAgIHRtcDIgPSBn ZmNfY29udl9kZXNjcmlwdG9yX2RhdGFfZ2V0IChnZmMpOwotICAgICAgZ2ZjX2FkZF9tb2Rp ZnkgKCZibG9jaywgdG1wLCBmb2xkX2NvbnZlcnQgKFRSRUVfVFlQRSAodG1wKSwgdG1wMikp OworICAgICAgdHJlZSBjZmlfYmFzZV9hZGRyID0gZ2ZjX2dldF9jZmlfZGVzY19iYXNlX2Fk ZHIgKGNmaSk7CisgICAgICB0cmVlIGdmY19kYXRhID0gZ2ZjX2NvbnZfZGVzY3JpcHRvcl9k YXRhX2dldCAoZ2ZjKTsKKyAgICAgIGdmY19hZGRfbW9kaWZ5ICgmYmxvY2ssIGNmaV9iYXNl X2FkZHIsCisJCSAgICAgIGZvbGRfY29udmVydCAoVFJFRV9UWVBFIChjZmlfYmFzZV9hZGRy KSwgZ2ZjX2RhdGEpKTsKICAgICB9CiAKICAgLyogU2V0IGVsZW1fbGVuIGlmIGtub3duIC0g bXVzdCBiZSBiZWZvcmUgdGhlIG5leHQgaWYgYmxvY2suCkBAIC01ODAzLDYgKzU4MDQsMTQg QEAgZ2ZjX2NvbnZfZ2ZjX2Rlc2NfdG9fY2ZpX2Rlc2MgKGdmY19zZSAqcGFybXNlLCBnZmNf ZXhwciAqZSwgZ2ZjX3N5bWJvbCAqZnN5bSkKIAogICBpZiAoZS0+cmFuayAhPSAwKQogICAg IHsKKyAgICAgIHRyZWUgY2ZpX2Jhc2VfYWRkciA9IGdmY19nZXRfY2ZpX2Rlc2NfYmFzZV9h ZGRyIChjZmkpOworICAgICAgdHJlZSBnZmNfZGF0YSA9IGdmY19jb252X2Rlc2NyaXB0b3Jf ZGF0YV9nZXQgKGdmYyk7CisKKyAgICAgIHRyZWUgZGF0YV9pZHggPSBnZmNfY3JlYXRlX3Zh ciAoZ2ZjX2FycmF5X2luZGV4X3R5cGUsICJkYXRhX2lkeCIpOworICAgICAgdHJlZSBvZmZz ZXQgPSBnZmNfY29udl9kZXNjcmlwdG9yX29mZnNldF9nZXQgKGdmYyk7CisKKyAgICAgIGdm Y19hZGRfbW9kaWZ5ICgmYmxvY2ssIGRhdGFfaWR4LCBvZmZzZXQpOworCiAgICAgICAvKiBM b29wOiBmb3IgKGkgPSAwOyBpIDwgcmFuazsgKytpKS4gICovCiAgICAgICB0cmVlIGlkeCA9 IGdmY19jcmVhdGVfdmFyIChUUkVFX1RZUEUgKHJhbmspLCAiaWR4Iik7CiAgICAgICAvKiBM b29wIGJvZHkuICAqLwpAQCAtNTgyOCwxMSArNTgzNywyOSBAQCBnZmNfY29udl9nZmNfZGVz Y190b19jZmlfZGVzYyAoZ2ZjX3NlICpwYXJtc2UsIGdmY19leHByICplLCBnZmNfc3ltYm9s ICpmc3ltKQogCQkJICAgICBnZmNfY29udl9kZXNjcmlwdG9yX3NwYW5fZ2V0IChnZmMpKTsK ICAgICAgIGdmY19hZGRfbW9kaWZ5ICgmbG9vcF9ib2R5LCBnZmNfZ2V0X2NmaV9kaW1fc20g KGNmaSwgaWR4KSwgdG1wKTsKIAorICAgICAgLyogZGF0YV9pZHggKz0gZ2ZjLT5kaW1baV0u bGJvdW5kICogZ2ZjLT5kaW1baV0uc3RyaWRlLiAgKi8KKyAgICAgIHRyZWUgbGJvdW5kID0g Z2ZjX2NvbnZfZGVzY3JpcHRvcl9sYm91bmRfZ2V0IChnZmMsIGlkeCk7CisgICAgICB0cmVl IHN0cmlkZSA9IGdmY19jb252X2Rlc2NyaXB0b3Jfc3RyaWRlX2dldCAoZ2ZjLCBpZHgpOwor CisgICAgICB0bXAgPSBmb2xkX2J1aWxkMl9sb2MgKGlucHV0X2xvY2F0aW9uLCBNVUxUX0VY UFIsIGdmY19hcnJheV9pbmRleF90eXBlLAorCQkJCSAgbGJvdW5kLCBzdHJpZGUpOworICAg ICAgdG1wID0gZm9sZF9idWlsZDJfbG9jIChpbnB1dF9sb2NhdGlvbiwgUExVU19FWFBSLCBn ZmNfYXJyYXlfaW5kZXhfdHlwZSwKKwkJCSAgICAgZGF0YV9pZHgsIHRtcCk7CisgICAgICBn ZmNfYWRkX21vZGlmeSAoJmxvb3BfYm9keSwgZGF0YV9pZHgsIHRtcCk7CisKICAgICAgIC8q IEdlbmVyYXRlIGxvb3AuICAqLwogICAgICAgZ2ZjX3NpbXBsZV9mb3JfbG9vcCAoJmJsb2Nr MiwgaWR4LCBidWlsZF9pbnRfY3N0IChUUkVFX1RZUEUgKGlkeCksIDApLAogCQkJICAgcmFu aywgTFRfRVhQUiwgYnVpbGRfaW50X2NzdCAoVFJFRV9UWVBFIChpZHgpLCAxKSwKIAkJCSAg IGdmY19maW5pc2hfYmxvY2sgKCZsb29wX2JvZHkpKTsKIAorICAgICAgdHJlZSB0bXAgPSBi dWlsZF9mb2xkX2luZGlyZWN0X3JlZl9sb2MgKGlucHV0X2xvY2F0aW9uLCBnZmNfZGF0YSk7 CisgICAgICB0cmVlIGZpcnN0X2VsZW1lbnQgPSBnZmNfYnVpbGRfYXJyYXlfcmVmICh0bXAs IGRhdGFfaWR4LCBnZmMpOworICAgICAgdHJlZSBhZGRyX2ZpcnN0X2VsZW0gPSBnZmNfYnVp bGRfYWRkcl9leHByIChOVUxMX1RSRUUsIGZpcnN0X2VsZW1lbnQpOworCisgICAgICB0cmVl IGFkZHIgPSBmb2xkX2NvbnZlcnQgKFRSRUVfVFlQRSAoY2ZpX2Jhc2VfYWRkciksIGFkZHJf Zmlyc3RfZWxlbSk7CisKKyAgICAgIGdmY19hZGRfbW9kaWZ5ICgmYmxvY2syLCBjZmlfYmFz ZV9hZGRyLCBhZGRyKTsKKwogICAgICAgaWYgKGUtPmV4cHJfdHlwZSA9PSBFWFBSX1ZBUklB QkxFCiAJICAmJiBlLT5yZWYKIAkgICYmIGUtPnJlZi0+dS5hci50eXBlID09IEFSX0ZVTEwK QEAgLTU4ODgsNiArNTkxNSwxMSBAQCBkb25lOgogICAgICAgdG1wID0gZ2ZjX2dldF9jZmlf ZGVzY19iYXNlX2FkZHIgKGNmaSk7CiAgICAgICBnZmNfY29udl9kZXNjcmlwdG9yX2RhdGFf c2V0ICgmYmxvY2ssIGdmYywgdG1wKTsKIAorICAgICAgLyogSWYgYXQgbGVhc3Qgb25lIHN0 cmlkZSBpcyBuZWdhdGl2ZSBnZmMtPmRhdGEgIT0gY2ZpLT5iYXNlX2FkZHIsCisgICAgICAg ICBhbmQgZGF0YV9vZmZzZXQgY29udGFpbnMgdGhlIG9mZnNldCBiZXR3ZWVuIHRoZSB0d28g cG9pbnRlcnMgaW4gdGhhdCBjYXNlLiAgKi8KKyAgICAgIHRyZWUgZGF0YV9vZmZzZXQgPSBn ZmNfY3JlYXRlX3ZhciAoc2l6ZV90eXBlX25vZGUsICJkYXRhX29mZnNldCIpOworICAgICAg Z2ZjX2FkZF9tb2RpZnkgKCZibG9jazIsIGRhdGFfb2Zmc2V0LCBidWlsZF9pbnRfY3N0IChz aXplX3R5cGVfbm9kZSwgMCkpOworCiAgICAgICBpZiAoZnN5bS0+YXR0ci5hbGxvY2F0YWJs ZSkKIAl7CiAJICAvKiBnZmMtPnNwYW4gPSBjZmktPmVsZW1fbGVuLiAgKi8KQEAgLTU5MTEs NyArNTk0Myw4IEBAIGRvbmU6CiAgICAgICBnZmNfY29udl9kZXNjcmlwdG9yX3NwYW5fc2V0 ICgmYmxvY2syLCBnZmMsIHRtcCk7CiAKICAgICAgIC8qIENhbGN1bGF0ZSBvZmZzZXQgKyBz ZXQgbGJvdW5kLCB1Ym91bmQgYW5kIHN0cmlkZS4gICovCi0gICAgICBnZmNfY29udl9kZXNj cmlwdG9yX29mZnNldF9zZXQgKCZibG9jazIsIGdmYywgZ2ZjX2luZGV4X3plcm9fbm9kZSk7 CisgICAgICB0cmVlIG9mZnNldCA9IGdmY19jcmVhdGVfdmFyIChnZmNfYXJyYXlfaW5kZXhf dHlwZSwgIm9mZnNldCIpOworICAgICAgZ2ZjX2FkZF9tb2RpZnkgKCZibG9jazIsIG9mZnNl dCwgZ2ZjX2luZGV4X3plcm9fbm9kZSk7CiAgICAgICAvKiBMb29wOiBmb3IgKGkgPSAwOyBp IDwgcmFuazsgKytpKS4gICovCiAgICAgICB0cmVlIGlkeCA9IGdmY19jcmVhdGVfdmFyIChU UkVFX1RZUEUgKHJhbmspLCAiaWR4Iik7CiAgICAgICAvKiBMb29wIGJvZHkuICAqLwpAQCAt NTkyOSw3ICs1OTYyLDcgQEAgZG9uZToKIAkJCSAgICAgZ2ZjX2dldF9jZmlfZGltX2V4dGVu dCAoY2ZpLCBpZHgpLCB0bXApOwogICAgICAgZ2ZjX2NvbnZfZGVzY3JpcHRvcl91Ym91bmRf c2V0ICgmbG9vcF9ib2R5LCBnZmMsIGlkeCwgdG1wKTsKIAotICAgICAgLyogZ2ZjLT5kaW1b aV0uc3RyaWRlID0gY2ZpLT5kaW1baV0uc20gLyBjZmk+ZWxlbV9sZW4gKi8KKyAgICAgIC8q IGdmYy0+ZGltW2ldLnN0cmlkZSA9IGNmaS0+ZGltW2ldLnNtIC8gY2ZpLT5lbGVtX2xlbiAq LwogICAgICAgdG1wID0gZ2ZjX2dldF9jZmlfZGltX3NtIChjZmksIGlkeCk7CiAgICAgICB0 bXAgPSBmb2xkX2J1aWxkMl9sb2MgKGlucHV0X2xvY2F0aW9uLCBUUlVOQ19ESVZfRVhQUiwK IAkJCSAgICAgZ2ZjX2FycmF5X2luZGV4X3R5cGUsIHRtcCwKQEAgLTU5MzcsMTcgKzU5NzAs NTUgQEAgZG9uZToKIAkJCQkJICAgZ2ZjX2dldF9jZmlfZGVzY19lbGVtX2xlbiAoY2ZpKSkp OwogICAgICAgZ2ZjX2NvbnZfZGVzY3JpcHRvcl9zdHJpZGVfc2V0ICgmbG9vcF9ib2R5LCBn ZmMsIGlkeCwgdG1wKTsKIAotICAgICAgLyogZ2ZjLT5vZmZzZXQgLT0gZ2ZjLT5kaW1baV0u c3RyaWRlICogZ2ZjLT5kaW1baV0ubGJvdW5kLiAqLworICAgICAgLyogb2Zmc2V0IC09IGdm Yy0+ZGltW2ldLnN0cmlkZSAqIGdmYy0+ZGltW2ldLmxib3VuZC4gKi8KICAgICAgIHRtcCA9 IGZvbGRfYnVpbGQyX2xvYyAoaW5wdXRfbG9jYXRpb24sIE1VTFRfRVhQUiwgZ2ZjX2FycmF5 X2luZGV4X3R5cGUsCiAJCQkgICAgIGdmY19jb252X2Rlc2NyaXB0b3Jfc3RyaWRlX2dldCAo Z2ZjLCBpZHgpLAogCQkJICAgICBnZmNfY29udl9kZXNjcmlwdG9yX2xib3VuZF9nZXQgKGdm YywgaWR4KSk7CiAgICAgICB0bXAgPSBmb2xkX2J1aWxkMl9sb2MgKGlucHV0X2xvY2F0aW9u LCBNSU5VU19FWFBSLCBnZmNfYXJyYXlfaW5kZXhfdHlwZSwKLQkJCSAgICAgZ2ZjX2NvbnZf ZGVzY3JpcHRvcl9vZmZzZXRfZ2V0IChnZmMpLCB0bXApOwotICAgICAgZ2ZjX2NvbnZfZGVz Y3JpcHRvcl9vZmZzZXRfc2V0ICgmbG9vcF9ib2R5LCBnZmMsIHRtcCk7CisJCQkgICAgIG9m ZnNldCwgdG1wKTsKKyAgICAgIGdmY19hZGRfbW9kaWZ5ICgmbG9vcF9ib2R5LCBvZmZzZXQs IHRtcCk7CisKKyAgICAgIC8qIGRhdGFfb2Zmc2V0ICs9IGNmaS0+ZGltW2ldLnNtIDwgMCA/ IChjZmktPmRpbVtpXS5leHRlbnQgLSAxKSAqIGNmaS0+ZGltW2ldLnNtIDogMCAgKi8KKyAg ICAgIHRyZWUgZXh0ZW50ID0gZ2ZjX2dldF9jZmlfZGltX2V4dGVudCAoY2ZpLCBpZHgpOwor ICAgICAgdG1wID0gZm9sZF9jb252ZXJ0X2xvYyAoaW5wdXRfbG9jYXRpb24sIHNpemVfdHlw ZV9ub2RlLCBleHRlbnQpOworICAgICAgdG1wID0gZm9sZF9idWlsZDJfbG9jIChpbnB1dF9s b2NhdGlvbiwgTUlOVVNfRVhQUiwgc2l6ZV90eXBlX25vZGUsCisJCQkgICAgIHRtcCwgYnVp bGRfaW50X2NzdCAoc2l6ZV90eXBlX25vZGUsIDEpKTsKKyAgICAgIHRyZWUgc20gPSBnZmNf Z2V0X2NmaV9kaW1fc20gKGNmaSwgaWR4KTsKKyAgICAgIHRtcDIgPSBmb2xkX2NvbnZlcnQg KHNpemVfdHlwZV9ub2RlLCBzbSk7CisKKyAgICAgIHRtcCA9IGZvbGRfYnVpbGQyX2xvYyAo aW5wdXRfbG9jYXRpb24sIE1VTFRfRVhQUiwgc2l6ZV90eXBlX25vZGUsCisJCQkgICAgIHRt cCwgdG1wMik7CisKKyAgICAgIHRyZWUgc21fbmVnYXRpdmUgPSBmb2xkX2J1aWxkMl9sb2Mg KGlucHV0X2xvY2F0aW9uLCBMVF9FWFBSLCBib29sZWFuX3R5cGVfbm9kZSwKKwkJCQkJICBz bSwgYnVpbGRfaW50X2NzdCAoVFJFRV9UWVBFIChzbSksIDApKTsKKyAgICAgIHRtcCA9IGZv bGRfYnVpbGQzX2xvYyAoaW5wdXRfbG9jYXRpb24sIENPTkRfRVhQUiwgc2l6ZV90eXBlX25v ZGUsCisJCQkgICAgIHNtX25lZ2F0aXZlLCB0bXAsIGJ1aWxkX2ludF9jc3QgKHNpemVfdHlw ZV9ub2RlLCAwKSk7CisKKyAgICAgIHRtcCA9IGZvbGRfYnVpbGQyX2xvYyAoaW5wdXRfbG9j YXRpb24sIFBMVVNfRVhQUiwgc2l6ZV90eXBlX25vZGUsCisJCQkgICAgIGRhdGFfb2Zmc2V0 LCB0bXApOworCisgICAgICBnZmNfYWRkX21vZGlmeSAoJmxvb3BfYm9keSwgZGF0YV9vZmZz ZXQsIHRtcCk7CisKICAgICAgIC8qIEdlbmVyYXRlIGxvb3AuICAqLwogICAgICAgZ2ZjX3Np bXBsZV9mb3JfbG9vcCAoJmJsb2NrMiwgaWR4LCBidWlsZF9pbnRfY3N0IChUUkVFX1RZUEUg KGlkeCksIDApLAogCQkJICAgcmFuaywgTFRfRVhQUiwgYnVpbGRfaW50X2NzdCAoVFJFRV9U WVBFIChpZHgpLCAxKSwKIAkJCSAgIGdmY19maW5pc2hfYmxvY2sgKCZsb29wX2JvZHkpKTsK KworICAgICAgdHJlZSBkYXRfb2ZmID0gZm9sZF9jb252ZXJ0IChnZmNfYXJyYXlfaW5kZXhf dHlwZSwgZGF0YV9vZmZzZXQpOworICAgICAgdHJlZSBlbGVtX2xlbiA9IGZvbGRfY29udmVy dCAoZ2ZjX2FycmF5X2luZGV4X3R5cGUsIGdmY19nZXRfY2ZpX2Rlc2NfZWxlbV9sZW4gKGNm aSkpOworICAgICAgdG1wID0gZm9sZF9idWlsZDJfbG9jIChpbnB1dF9sb2NhdGlvbiwgVFJV TkNfRElWX0VYUFIsCisJCQkgICAgIGdmY19hcnJheV9pbmRleF90eXBlLCBkYXRfb2ZmLCBl bGVtX2xlbik7CisgICAgICB0bXAgPSBmb2xkX2J1aWxkMl9sb2MgKGlucHV0X2xvY2F0aW9u LCBNSU5VU19FWFBSLAorCQkJICAgICBnZmNfYXJyYXlfaW5kZXhfdHlwZSwgb2Zmc2V0LCB0 bXApOworICAgICAgZ2ZjX2FkZF9tb2RpZnkgKCZibG9jazIsIG9mZnNldCwgdG1wKTsKKwor ICAgICAgZ2ZjX2NvbnZfZGVzY3JpcHRvcl9vZmZzZXRfc2V0ICgmYmxvY2syLCBnZmMsIG9m ZnNldCk7CisKKyAgICAgIHRyZWUgY2ZpX2Jhc2VfYWRkciA9IGdmY19nZXRfY2ZpX2Rlc2Nf YmFzZV9hZGRyIChjZmkpOworICAgICAgdG1wID0gZm9sZF9idWlsZDJfbG9jIChpbnB1dF9s b2NhdGlvbiwgUE9JTlRFUl9QTFVTX0VYUFIsCisJCQkgICAgIFRSRUVfVFlQRSAoY2ZpX2Jh c2VfYWRkciksIGNmaV9iYXNlX2FkZHIsCisJCQkgICAgIGRhdGFfb2Zmc2V0KTsKKyAgICAg IGdmY19jb252X2Rlc2NyaXB0b3JfZGF0YV9zZXQgKCZibG9jazIsIGdmYywgdG1wKTsKICAg ICB9CiAKICAgaWYgKGUtPnRzLnR5cGUgPT0gQlRfQ0hBUkFDVEVSICYmICFlLT50cy51LmNs LT5sZW5ndGgpCmRpZmYgLS1naXQgYS9nY2MvZm9ydHJhbi90cmFucy1zdG10LmNjIGIvZ2Nj L2ZvcnRyYW4vdHJhbnMtc3RtdC5jYwppbmRleCBmZDZkMjk0MTQ3ZS4uNGQwNzM3YTQ3NTYg MTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL3RyYW5zLXN0bXQuY2MKKysrIGIvZ2NjL2ZvcnRy YW4vdHJhbnMtc3RtdC5jYwpAQCAtMTY3OSwxNiArMTY3OSwxMSBAQCBjbGFzc19oYXNfbGVu X2NvbXBvbmVudCAoZ2ZjX3N5bWJvbCAqc3ltKQogCiAKIHN0YXRpYyB2b2lkCi1jb3B5X2Rl c2NyaXB0b3IgKHN0bXRibG9ja190ICpibG9jaywgdHJlZSBkc3QsIHRyZWUgc3JjLCBpbnQg cmFuaykKK2NvcHlfZGVzY3JpcHRvciAoc3RtdGJsb2NrX3QgKmJsb2NrLCB0cmVlIGRzdCwg dHJlZSBzcmMpCiB7Ci0gIGludCBuOwotICB0cmVlIGRpbTsKICAgdHJlZSB0bXA7CiAgIHRy ZWUgdG1wMjsKICAgdHJlZSBzaXplOwotICB0cmVlIG9mZnNldDsKLQotICBvZmZzZXQgPSBn ZmNfaW5kZXhfemVyb19ub2RlOwogCiAgIC8qIFVzZSBtZW1jcHkgdG8gY29weSB0aGUgZGVz Y3JpcHRvci4gVGhlIHNpemUgaXMgdGhlIG1pbmltdW0gb2YKICAgICAgdGhlIHNpemVzIG9m ICdzcmMnIGFuZCAnZHN0Jy4gVGhpcyBhdm9pZHMgYSBub24tdHJpdmlhbCBjb252ZXJzaW9u LiAgKi8KQEAgLTE3MDIsMjEgKzE2OTcsNiBAQCBjb3B5X2Rlc2NyaXB0b3IgKHN0bXRibG9j a190ICpibG9jaywgdHJlZSBkc3QsIHRyZWUgc3JjLCBpbnQgcmFuaykKIAkJCSAgICAgZ2Zj X2J1aWxkX2FkZHJfZXhwciAoTlVMTF9UUkVFLCBzcmMpLAogCQkJICAgICBmb2xkX2NvbnZl cnQgKHNpemVfdHlwZV9ub2RlLCBzaXplKSk7CiAgIGdmY19hZGRfZXhwcl90b19ibG9jayAo YmxvY2ssIHRtcCk7Ci0KLSAgLyogU2V0IHRoZSBvZmZzZXQgY29ycmVjdGx5LiAgKi8KLSAg Zm9yIChuID0gMDsgbiA8IHJhbms7IG4rKykKLSAgICB7Ci0gICAgICBkaW0gPSBnZmNfcmFu a19jc3Rbbl07Ci0gICAgICB0bXAgPSBnZmNfY29udl9kZXNjcmlwdG9yX2xib3VuZF9nZXQg KHNyYywgZGltKTsKLSAgICAgIHRtcDIgPSBnZmNfY29udl9kZXNjcmlwdG9yX3N0cmlkZV9n ZXQgKHNyYywgZGltKTsKLSAgICAgIHRtcCA9IGZvbGRfYnVpbGQyX2xvYyAoaW5wdXRfbG9j YXRpb24sIE1VTFRfRVhQUiwgVFJFRV9UWVBFICh0bXApLAotCQkJICAgICB0bXAsIHRtcDIp OwotICAgICAgb2Zmc2V0ID0gZm9sZF9idWlsZDJfbG9jIChpbnB1dF9sb2NhdGlvbiwgTUlO VVNfRVhQUiwKLQkJCVRSRUVfVFlQRSAob2Zmc2V0KSwgb2Zmc2V0LCB0bXApOwotICAgICAg b2Zmc2V0ID0gZ2ZjX2V2YWx1YXRlX25vdyAob2Zmc2V0LCBibG9jayk7Ci0gICAgfQotCi0g IGdmY19jb252X2Rlc2NyaXB0b3Jfb2Zmc2V0X3NldCAoYmxvY2ssIGRzdCwgb2Zmc2V0KTsK IH0KIAogCkBAIC0xNzMwLDkgKzE3MTAsNiBAQCB0cmFuc19hc3NvY2lhdGVfdmFyIChnZmNf c3ltYm9sICpzeW0sIGdmY193cmFwcGVkX2Jsb2NrICpibG9jaykKICAgYm9vbCBjbGFzc190 YXJnZXQ7CiAgIGJvb2wgdW5saW1pdGVkOwogICB0cmVlIGRlc2M7Ci0gIHRyZWUgb2Zmc2V0 OwotICB0cmVlIGRpbTsKLSAgaW50IG47CiAgIHRyZWUgY2hhcmxlbjsKICAgYm9vbCBuZWVk X2xlbl9hc3NpZ247CiAgIGJvb2wgd2hvbGVfYXJyYXkgPSB0cnVlOwpAQCAtMTg0OCw3ICsx ODI1LDcgQEAgdHJhbnNfYXNzb2NpYXRlX3ZhciAoZ2ZjX3N5bWJvbCAqc3ltLCBnZmNfd3Jh cHBlZF9ibG9jayAqYmxvY2spCiAJIGF0dHJpYnV0ZXMgc28gdGhlIHNlbGVjdG9yIGRlc2Ny aXB0b3IgbXVzdCBiZSBjb3BpZWQgaW4gYW5kCiAJIGNvcGllZCBvdXQuICAqLwogICAgICAg aWYgKHJhbmsgPiAwKQotCWNvcHlfZGVzY3JpcHRvciAoJnNlLnByZSwgZGVzYywgc2UuZXhw ciwgcmFuayk7CisJY29weV9kZXNjcmlwdG9yICgmc2UucHJlLCBkZXNjLCBzZS5leHByKTsK ICAgICAgIGVsc2UKIAl7CiAJICB0bXAgPSBnZmNfY29udl9kZXNjcmlwdG9yX2RhdGFfZ2V0 IChzZS5leHByKTsKQEAgLTE4NzcsNyArMTg1NCw3IEBAIHRyYW5zX2Fzc29jaWF0ZV92YXIg KGdmY19zeW1ib2wgKnN5bSwgZ2ZjX3dyYXBwZWRfYmxvY2sgKmJsb2NrKQogCQkgIHx8IENM QVNTX0RBVEEgKHN5bSktPmF0dHIucG9pbnRlcikpKQogCXsKIAkgIGlmIChyYW5rID4gMCkK LQkgICAgY29weV9kZXNjcmlwdG9yICgmc2UucG9zdCwgc2UuZXhwciwgZGVzYywgcmFuayk7 CisJICAgIGNvcHlfZGVzY3JpcHRvciAoJnNlLnBvc3QsIHNlLmV4cHIsIGRlc2MpOwogCSAg ZWxzZQogCSAgICBnZmNfY29udl9kZXNjcmlwdG9yX2RhdGFfc2V0ICgmc2UucG9zdCwgc2Uu ZXhwciwgZGVzYyk7CiAKQEAgLTIwNTAsMTggKzIwMjcsNiBAQCB0cmFuc19hc3NvY2lhdGVf dmFyIChnZmNfc3ltYm9sICpzeW0sIGdmY193cmFwcGVkX2Jsb2NrICpibG9jaykKIAogCSAg LyogU2V0IHRoZSBvZmZzZXQuICAqLwogCSAgZGVzYyA9IGdmY19jbGFzc19kYXRhX2dldCAo c2UuZXhwcik7Ci0JICBvZmZzZXQgPSBnZmNfaW5kZXhfemVyb19ub2RlOwotCSAgZm9yIChu ID0gMDsgbiA8IGUtPnJhbms7IG4rKykKLQkgICAgewotCSAgICAgIGRpbSA9IGdmY19yYW5r X2NzdFtuXTsKLQkgICAgICB0bXAgPSBmb2xkX2J1aWxkMl9sb2MgKGlucHV0X2xvY2F0aW9u LCBNVUxUX0VYUFIsCi0JCQkJICAgICBnZmNfYXJyYXlfaW5kZXhfdHlwZSwKLQkJCQkgICAg IGdmY19jb252X2Rlc2NyaXB0b3Jfc3RyaWRlX2dldCAoZGVzYywgZGltKSwKLQkJCQkgICAg IGdmY19jb252X2Rlc2NyaXB0b3JfbGJvdW5kX2dldCAoZGVzYywgZGltKSk7Ci0JICAgICAg b2Zmc2V0ID0gZm9sZF9idWlsZDJfbG9jIChpbnB1dF9sb2NhdGlvbiwgTUlOVVNfRVhQUiwK LQkJCQkgICAgICAgIGdmY19hcnJheV9pbmRleF90eXBlLAotCQkJCSAgICAgICAgb2Zmc2V0 LCB0bXApOwotCSAgICB9CiAJICBpZiAobmVlZF9sZW5fYXNzaWduKQogCSAgICB7CiAJICAg ICAgaWYgKGUtPnN5bXRyZWUKQEAgLTIwODksNyArMjA1NCw2IEBAIHRyYW5zX2Fzc29jaWF0 ZV92YXIgKGdmY19zeW1ib2wgKnN5bSwgZ2ZjX3dyYXBwZWRfYmxvY2sgKmJsb2NrKQogCSAg ICAgIC8qIExlbmd0aCBhc3NpZ25tZW50IGRvbmUsIHByZXZlbnQgYWRkaW5nIGl0IGFnYWlu IGJlbG93LiAgKi8KIAkgICAgICBuZWVkX2xlbl9hc3NpZ24gPSBmYWxzZTsKIAkgICAgfQot CSAgZ2ZjX2NvbnZfZGVzY3JpcHRvcl9vZmZzZXRfc2V0ICgmc2UucHJlLCBkZXNjLCBvZmZz ZXQpOwogCX0KICAgICAgIGVsc2UgaWYgKHN5bS0+dHMudHlwZSA9PSBCVF9DTEFTUyAmJiBl LT50cy50eXBlID09IEJUX0NMQVNTCiAJICAgICAgICYmIENMQVNTX0RBVEEgKGUpLT5hdHRy LmRpbWVuc2lvbikKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL3RyYW5zLmNjIGIvZ2NjL2Zv cnRyYW4vdHJhbnMuY2MKaW5kZXggOTEyYTIwNmYyZWQuLjZlYmE1MjBlODE4IDEwMDY0NAot LS0gYS9nY2MvZm9ydHJhbi90cmFucy5jYworKysgYi9nY2MvZm9ydHJhbi90cmFucy5jYwpA QCAtNDM5LDIxICs0MzksMTUgQEAgZ2ZjX2J1aWxkX3NwYW5uZWRfYXJyYXlfcmVmICh0cmVl IGJhc2UsIHRyZWUgb2Zmc2V0LCB0cmVlIHNwYW4pCiAgIHRtcCA9IGdmY19idWlsZF9hZGRy X2V4cHIgKHB2b2lkX3R5cGVfbm9kZSwgYmFzZSk7CiAgIHRtcCA9IGZvbGRfYnVpbGRfcG9p bnRlcl9wbHVzX2xvYyAoaW5wdXRfbG9jYXRpb24sIHRtcCwgb2Zmc2V0KTsKICAgdG1wID0g Zm9sZF9jb252ZXJ0IChidWlsZF9wb2ludGVyX3R5cGUgKHR5cGUpLCB0bXApOwotICBpZiAo KFRSRUVfQ09ERSAodHlwZSkgIT0gSU5URUdFUl9UWVBFICYmIFRSRUVfQ09ERSAodHlwZSkg IT0gQVJSQVlfVFlQRSkKLSAgICAgIHx8ICFUWVBFX1NUUklOR19GTEFHICh0eXBlKSkKLSAg ICB0bXAgPSBidWlsZF9mb2xkX2luZGlyZWN0X3JlZl9sb2MgKGlucHV0X2xvY2F0aW9uLCB0 bXApOworICB0bXAgPSBidWlsZF9mb2xkX2luZGlyZWN0X3JlZl9sb2MgKGlucHV0X2xvY2F0 aW9uLCB0bXApOwogICByZXR1cm4gdG1wOwogfQogCiAKLS8qIEJ1aWxkIGFuIEFSUkFZX1JF RiB3aXRoIGl0cyBuYXR1cmFsIHR5cGUuCi0gICBOT05fTkVHQVRJVkVfT0ZGU0VUIGluZGlj YXRlcyBpZiBpdOKAmXMgdHJ1ZSB0aGF0IE9GRlNFVCBjYW7igJl0IGJlIG5lZ2F0aXZlLAot ICAgYW5kIHRodXMgdGhhdCBhbiBBUlJBWV9SRUYgY2FuIHNhZmVseSBiZSBnZW5lcmF0ZWQu ICBJZiBpdOKAmXMgZmFsc2UsIHdlCi0gICBoYXZlIHRvIHBsYXkgaXQgc2FmZSBhbmQgdXNl IHBvaW50ZXIgYXJpdGhtZXRpYy4gICovCisvKiBCdWlsZCBhbiBBUlJBWV9SRUYgd2l0aCBp dHMgbmF0dXJhbCB0eXBlLiAgKi8KIAogdHJlZQotZ2ZjX2J1aWxkX2FycmF5X3JlZiAodHJl ZSBiYXNlLCB0cmVlIG9mZnNldCwgdHJlZSBkZWNsLAotCQkgICAgIGJvb2wgbm9uX25lZ2F0 aXZlX29mZnNldCwgdHJlZSB2cHRyKQorZ2ZjX2J1aWxkX2FycmF5X3JlZiAodHJlZSBiYXNl LCB0cmVlIG9mZnNldCwgdHJlZSBkZWNsLCB0cmVlIHZwdHIpCiB7CiAgIHRyZWUgdHlwZSA9 IFRSRUVfVFlQRSAoYmFzZSk7CiAgIHRyZWUgc3BhbiA9IE5VTExfVFJFRTsKQEAgLTQ5OSw0 MCArNDkzLDEwIEBAIGdmY19idWlsZF9hcnJheV9yZWYgKHRyZWUgYmFzZSwgdHJlZSBvZmZz ZXQsIHRyZWUgZGVjbCwKICAgICAgcG9pbnRlciBhcml0aG1ldGljLiAgKi8KICAgaWYgKHNw YW4gIT0gTlVMTF9UUkVFKQogICAgIHJldHVybiBnZmNfYnVpbGRfc3Bhbm5lZF9hcnJheV9y ZWYgKGJhc2UsIG9mZnNldCwgc3Bhbik7Ci0gIC8qIEVsc2UgdXNlIGEgc3RyYWlnaHRmb3J3 YXJkIGFycmF5IHJlZmVyZW5jZSBpZiBwb3NzaWJsZS4gICovCi0gIGVsc2UgaWYgKG5vbl9u ZWdhdGl2ZV9vZmZzZXQpCisgIC8qIE90aGVyd2lzZSB1c2UgYSBzdHJhaWdodGZvcndhcmQg YXJyYXkgcmVmZXJlbmNlLiAgKi8KKyAgZWxzZQogICAgIHJldHVybiBidWlsZDRfbG9jIChp bnB1dF9sb2NhdGlvbiwgQVJSQVlfUkVGLCB0eXBlLCBiYXNlLCBvZmZzZXQsCiAJCSAgICAg ICBOVUxMX1RSRUUsIE5VTExfVFJFRSk7Ci0gIC8qIE90aGVyd2lzZSB1c2UgcG9pbnRlciBh cml0aG1ldGljLiAgKi8KLSAgZWxzZQotICAgIHsKLSAgICAgIGdjY19hc3NlcnQgKFRSRUVf Q09ERSAoVFJFRV9UWVBFIChiYXNlKSkgPT0gQVJSQVlfVFlQRSk7Ci0gICAgICB0cmVlIG1p biA9IE5VTExfVFJFRTsKLSAgICAgIGlmIChUWVBFX0RPTUFJTiAoVFJFRV9UWVBFIChiYXNl KSkKLQkgICYmICFpbnRlZ2VyX3plcm9wIChUWVBFX01JTl9WQUxVRSAoVFlQRV9ET01BSU4g KFRSRUVfVFlQRSAoYmFzZSkpKSkpCi0JbWluID0gVFlQRV9NSU5fVkFMVUUgKFRZUEVfRE9N QUlOIChUUkVFX1RZUEUgKGJhc2UpKSk7Ci0KLSAgICAgIHRyZWUgemVyb19iYXNlZF9pbmRl eAotCSAgID0gbWluID8gZm9sZF9idWlsZDJfbG9jIChpbnB1dF9sb2NhdGlvbiwgTUlOVVNf RVhQUiwKLQkJCQkgICAgZ2ZjX2FycmF5X2luZGV4X3R5cGUsCi0JCQkJICAgIGZvbGRfY29u dmVydCAoZ2ZjX2FycmF5X2luZGV4X3R5cGUsIG9mZnNldCksCi0JCQkJICAgIGZvbGRfY29u dmVydCAoZ2ZjX2FycmF5X2luZGV4X3R5cGUsIG1pbikpCi0JCSA6IGZvbGRfY29udmVydCAo Z2ZjX2FycmF5X2luZGV4X3R5cGUsIG9mZnNldCk7Ci0KLSAgICAgIHRyZWUgZWx0X3NpemUg PSBmb2xkX2NvbnZlcnQgKGdmY19hcnJheV9pbmRleF90eXBlLAotCQkJCSAgICBUWVBFX1NJ WkVfVU5JVCAodHlwZSkpOwotCi0gICAgICB0cmVlIG9mZnNldF9ieXRlcyA9IGZvbGRfYnVp bGQyX2xvYyAoaW5wdXRfbG9jYXRpb24sIE1VTFRfRVhQUiwKLQkJCQkJICAgZ2ZjX2FycmF5 X2luZGV4X3R5cGUsCi0JCQkJCSAgIHplcm9fYmFzZWRfaW5kZXgsIGVsdF9zaXplKTsKLQot ICAgICAgdHJlZSBiYXNlX2FkZHIgPSBnZmNfYnVpbGRfYWRkcl9leHByIChwdm9pZF90eXBl X25vZGUsIGJhc2UpOwotCi0gICAgICB0cmVlIHB0ciA9IGZvbGRfYnVpbGRfcG9pbnRlcl9w bHVzX2xvYyAoaW5wdXRfbG9jYXRpb24sIGJhc2VfYWRkciwKLQkJCQkJICAgICAgb2Zmc2V0 X2J5dGVzKTsKLSAgICAgIHJldHVybiBidWlsZDFfbG9jIChpbnB1dF9sb2NhdGlvbiwgSU5E SVJFQ1RfUkVGLCB0eXBlLAotCQkJIGZvbGRfY29udmVydCAoYnVpbGRfcG9pbnRlcl90eXBl ICh0eXBlKSwgcHRyKSk7Ci0gICAgfQogfQogCiAKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFu L3RyYW5zLmggYi9nY2MvZm9ydHJhbi90cmFucy5oCmluZGV4IDAzZDUyODhhYWQyLi4wMmI1 YjFiOTlhYyAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vdHJhbnMuaAorKysgYi9nY2MvZm9y dHJhbi90cmFucy5oCkBAIC02MTksOSArNjE5LDcgQEAgdHJlZSBnZmNfZ2V0X2V4dGVybl9m dW5jdGlvbl9kZWNsIChnZmNfc3ltYm9sICosCiB0cmVlIGdmY19idWlsZF9hZGRyX2V4cHIg KHRyZWUsIHRyZWUpOwogCiAvKiBCdWlsZCBhbiBBUlJBWV9SRUYuICAqLwotdHJlZSBnZmNf YnVpbGRfYXJyYXlfcmVmICh0cmVlLCB0cmVlLCB0cmVlLAotCQkJICBib29sIG5vbl9uZWdh dGl2ZV9vZmZzZXQgPSBmYWxzZSwKLQkJCSAgdHJlZSB2cHRyID0gTlVMTF9UUkVFKTsKK3Ry ZWUgZ2ZjX2J1aWxkX2FycmF5X3JlZiAodHJlZSwgdHJlZSwgdHJlZSwgdHJlZSB2cHRyID0g TlVMTF9UUkVFKTsKIAogLyogQnVpbGQgYW4gYXJyYXkgcmVmIHVzaW5nIHBvaW50ZXIgYXJp dGhtZXRpYy4gICovCiB0cmVlIGdmY19idWlsZF9zcGFubmVkX2FycmF5X3JlZiAodHJlZSBi YXNlLCB0cmVlIG9mZnNldCwgdHJlZSBzcGFuKTsKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3Vp dGUvZ2ZvcnRyYW4uZGcvYXJyYXlfcmVmZXJlbmNlXzMuZjkwIGIvZ2NjL3Rlc3RzdWl0ZS9n Zm9ydHJhbi5kZy9hcnJheV9yZWZlcmVuY2VfMy5mOTAKaW5kZXggODVmYTMzMTdkOTguLmQy OGNmOTMyZDYyIDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2FycmF5 X3JlZmVyZW5jZV8zLmY5MAorKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2FycmF5 X3JlZmVyZW5jZV8zLmY5MApAQCAtMzUsNyArMzUsNyBAQCBjb250YWlucwogICAgIGNhbGwg Y2FzZXMoeCkKICAgICBpZiAoYW55KHggLz0gKC8gMCwgMTAsIDAgLykpKSBzdG9wIDEwCiAg ICAgISBBc3N1bWVkIHNoYXBlIGFycmF5IGFyZSByZWZlcmVuY2VkIHdpdGggcG9pbnRlciBh cml0aG1ldGljLgotICAgICEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJc XCpcXChcXChpbnRlZ2VyXFwoa2luZD00XFwpIFxcKlxcKSBhc3N1bWVkX3NoYXBlX3guXFxk KyBcXCsgXFwoc2l6ZXR5cGVcXCkgXFwoXFwoc3RyaWRlLlxcZCsgXFwqIDIgXFwrIG9mZnNl dC5cXGQrXFwpIFxcKiA0XFwpXFwpID0gMTA7IiAxICJvcmlnaW5hbCIgfSB9CisgICAgISB7 IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIlxcKFxcKmFzc3VtZWRfc2hhcGVf eC5cXGQrXFwpXFxcW3N0cmlkZS5cXGQrIFxcKiAyIFxcKyBvZmZzZXQuXFxkK1xcXF0gPSAx MDsiIDEgIm9yaWdpbmFsIiB9IH0KICAgZW5kIHN1YnJvdXRpbmUgY2hlY2tfYXNzdW1lZF9z aGFwZV9lbGVtCiAgIHN1YnJvdXRpbmUgY2Fzc3MoYXNzdW1lZF9zaGFwZV95KQogICAgIGlu dGVnZXIgOjogYXNzdW1lZF9zaGFwZV95KDopCkBAIC00Niw3ICs0Niw3IEBAIGNvbnRhaW5z CiAgICAgY2FsbCBjYXNzcyh5KQogICAgIGlmIChhbnkoeSAvPSAxMSkpIHN0b3AgMTEKICAg ICAhIEFzc3VtZWQgc2hhcGUgYXJyYXkgYXJlIHJlZmVyZW5jZWQgd2l0aCBwb2ludGVyIGFy aXRobWV0aWMuCi0gICAgISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIlxc KlxcKFxcKGludGVnZXJcXChraW5kPTRcXCkgXFwqXFwpIGFzc3VtZWRfc2hhcGVfeS5cXGQr IFxcKyBcXChzaXpldHlwZVxcKSBcXChcXChTLlxcZCsgXFwqIEQuXFxkKyBcXCsgRC5cXGQr XFwpIFxcKiA0XFwpXFwpID0gMTE7IiAxICJvcmlnaW5hbCIgfSB9CisgICAgISB7IGRnLWZp bmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIlxcKFxcKmFzc3VtZWRfc2hhcGVfeS5cXGQr XFwpXFxcW1MuXFxkKyBcXCogRC5cXGQrIFxcKyBELlxcZCtcXFxdID0gMTE7IiAxICJvcmln aW5hbCIgfSB9CiAgIGVuZCBzdWJyb3V0aW5lIGNoZWNrX2Fzc3VtZWRfc2hhcGVfc2NhbGFy aXplZAogICBzdWJyb3V0aW5lIGNoZWNrX2Rlc2NyaXB0b3JfZGltCiAgICAgaW50ZWdlciwg YWxsb2NhdGFibGUgOjogZGVzY3JpcHRvcig6KQpAQCAtMTUyLDcgKzE1Miw3IEBAIGNvbnRh aW5zCiAgICAgY2FsbCBjYXJlcyh4KQogICAgIGlmIChhbnkoeCAvPSAoLyAwLCAwLCAyMiwg MCwgMCwgMCAvKSkpIHN0b3AgMjIKICAgICAhIEFzc3VtZWQgcmFuayBhcnJheXMgYXJlIHJl ZmVyZW5jZWQgd2l0aCBwb2ludGVyIGFyaXRobWV0aWMuCi0gICAgISB7IGRnLWZpbmFsIHsg c2Nhbi10cmVlLWR1bXAtdGltZXMgIlxcKlxcKFxcKGludGVnZXJcXChraW5kPTRcXCkgXFwq XFwpIF9fdG1wX0lOVEVHRVJfNF9yYW5rXzFcXC5kYXRhIFxcKyBcXChzaXpldHlwZVxcKSBc XChcXChfX3RtcF9JTlRFR0VSXzRfcmFua18xXFwub2Zmc2V0IFxcKyBfX3RtcF9JTlRFR0VS XzRfcmFua18xXFwuZGltXFxcWzBcXFxdXFwuc3RyaWRlIFxcKiAzXFwpIFxcKiA0XFwpXFwp ID0gMjI7IiAxICJvcmlnaW5hbCIgfSB9CisgICAgISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVl LWR1bXAtdGltZXMgIlxcKFxcKlxcKGludGVnZXJcXChraW5kPTRcXClcXFxbMDpcXFxdIFxc KiByZXN0cmljdFxcKSBfX3RtcF9JTlRFR0VSXzRfcmFua18xXFwuZGF0YVxcKVxcXFtfX3Rt cF9JTlRFR0VSXzRfcmFua18xXFwub2Zmc2V0IFxcKyBfX3RtcF9JTlRFR0VSXzRfcmFua18x XFwuZGltXFxcWzBcXFxdXFwuc3RyaWRlIFxcKiAzXFxcXSA9IDIyOyIgMSAib3JpZ2luYWwi IH0gfQogICBlbmQgc3Vicm91dGluZSBjaGVja19hc3N1bWVkX3JhbmtfZWxlbQogICBzdWJy b3V0aW5lIGNhcnNzKGFzc3VtZWRfcmFua195KQogICAgIGludGVnZXIgOjogYXNzdW1lZF9y YW5rX3koLi4pCkBAIC0xNjYsNyArMTY2LDcgQEAgY29udGFpbnMKICAgICBjYWxsIGNhcnNz KHkpCiAgICAgaWYgKGFueSh5IC89IDIzKSkgc3RvcCAyMwogICAgICEgQXNzdW1lZCByYW5r IGFycmF5cyBhcmUgcmVmZXJlbmNlZCB3aXRoIHBvaW50ZXIgYXJpdGhtZXRpYy4KLSAgICAh IHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiXFwqXFwoXFwoaW50ZWdlclxc KGtpbmQ9NFxcKSBcXCpcXCkgRC5cXGQrIFxcKyBcXChzaXpldHlwZVxcKSBcXChcXChTLlxc ZCsgXFwqIEQuXFxkKyBcXCsgRC5cXGQrXFwpIFxcKiA0XFwpXFwpID0gMjM7IiAxICJvcmln aW5hbCIgfSB9CisgICAgISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIlxc KFxcKkQuXFxkK1xcKVxcXFtTLlxcZCsgXFwqIEQuXFxkKyBcXCsgRC5cXGQrXFxcXSA9IDIz OyIgMSAib3JpZ2luYWwiIH0gfQogICBlbmQgc3Vicm91dGluZSBjaGVja19hc3N1bWVkX3Jh bmtfc2NhbGFyaXplZAogICBzdWJyb3V0aW5lIGNhc2Nlcyhhc3N1bWVkX3NoYXBlX2NvbnRf eCkKICAgICBpbnRlZ2VyLCBkaW1lbnNpb24oOiksIGNvbnRpZ3VvdXMgOjogYXNzdW1lZF9z aGFwZV9jb250X3gKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvYXNz aWduXzEwLmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvYXNzaWduXzEwLmY5MApp bmRleCBjMjA3ZjllNWUyYi4uYjE2ZmNiMjVmMGMgMTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3Vp dGUvZ2ZvcnRyYW4uZGcvYXNzaWduXzEwLmY5MAorKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0 cmFuLmRnL2Fzc2lnbl8xMC5mOTAKQEAgLTE5LDkgKzE5LDkgQEAKICAgaWYgKGFueShwOCAu bmUuIHE4KSkgU1RPUCAyCiBlbmQKICEgV2hpY2hldmVyIGlzIHRoZSBkZWZhdWx0IGxlbmd0 aCBmb3IgYXJyYXkgaW5kaWNlcyB3aWxsIHlpZWxkCi0hIHBhcm0gMTggdGltZXMsIGJlY2F1 c2UgYSB0ZW1wb3JhcnkgaXMgbm90IG5lY2Vzc2FyeS4gIFRoZSBvdGhlcgotISBjYXNlcyB3 aWxsIGFsbCB5aWVsZCBhIHRlbXBvcmFyeSwgc28gdGhhdCBhdG1wIGFwcGVhcnMgMTggdGlt ZXMuCishIHBhcm0gMjIgdGltZXMsIGJlY2F1c2UgYSB0ZW1wb3JhcnkgaXMgbm90IG5lY2Vz c2FyeS4gIFRoZSBvdGhlcgorISBjYXNlcyB3aWxsIGFsbCB5aWVsZCBhIHRlbXBvcmFyeSwg c28gdGhhdCBhdG1wIGFwcGVhcnMgMjIgdGltZXMuCiAhIE5vdGUgdGhhdCBpdCBpcyB0aGUg a2luZCBjb252ZXJzaW9uIHRoYXQgZ2VuZXJhdGVzIHRoZSB0ZW1wLgogIQotISB7IGRnLWZp bmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgInBhcm0iIDIwICJvcmlnaW5hbCIgfSB9Ci0h IHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiYXRtcCIgMjAgIm9yaWdpbmFs IiB9IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJwYXJtIiAyMiAi b3JpZ2luYWwiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgImF0 bXAiIDIyICJvcmlnaW5hbCIgfSB9CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0 cmFuLmRnL2JpbmRfY19hcnJheV9wYXJhbXNfMi5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0 cmFuLmRnL2JpbmRfY19hcnJheV9wYXJhbXNfMi5mOTAKaW5kZXggOGRkN2U4ZmIwODguLjdk NmFlMjY5MTEzIDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2JpbmRf Y19hcnJheV9wYXJhbXNfMi5mOTAKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9i aW5kX2NfYXJyYXlfcGFyYW1zXzIuZjkwCkBAIC00MCw3ICs0MCw3IEBAIGVuZAogISB7IGRn LWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAgImNmaS4uLmF0dHJpYnV0ZSA9IDI7IiAib3JpZ2lu YWwiIH0gfQogISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAgImNmaS4uLmJhc2VfYWRk ciA9IHBhcm0uMC5kYXRhOyIgIm9yaWdpbmFsIiB9IH0KICEgeyBkZy1maW5hbCB7IHNjYW4t dHJlZS1kdW1wICJjZmkuLi5lbGVtX2xlbiA9IDQ7IiAib3JpZ2luYWwiIH0gfQotISB7IGRn LWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAgImlkeC4yID0gMDsiICJvcmlnaW5hbCIgfSB9Cish IHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcCAiaWR4Li4gPSAwOyIgIm9yaWdpbmFsIiB9 IH0KIAogISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAgImlmIFxcKGlkeC4uIDw9IDFc XCkgZ290byBMLi47IiAib3JpZ2luYWwiIH0gfQogISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVl LWR1bXAgImNmaS4uLmRpbVxcXFtpZHguLlxcXF0ubG93ZXJfYm91bmQgPSAwOyIgIm9yaWdp bmFsIiB9IH0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvY19sb2Nf dGVzdF8yMi5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2NfbG9jX3Rlc3RfMjIu ZjkwCmluZGV4IDdiMTE0OWFhYTQ1Li4wOWZmZTc4ZWQzNCAxMDA2NDQKLS0tIGEvZ2NjL3Rl c3RzdWl0ZS9nZm9ydHJhbi5kZy9jX2xvY190ZXN0XzIyLmY5MAorKysgYi9nY2MvdGVzdHN1 aXRlL2dmb3J0cmFuLmRnL2NfbG9jX3Rlc3RfMjIuZjkwCkBAIC0xNSw5ICsxNSw5IEBAIHN1 YnJvdXRpbmUgc3ViKHh4eCwgeXl5KQogICBwdHI0ID0gY19sb2MgKHl5eSg1OikpCiBlbmQK ICEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLW5vdCAiIF9nZm9ydHJhbl9pbnRlcm5h bF9wYWNrIiAib3JpZ2luYWwiIH0gfQotISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAt dGltZXMgInBhcm0uXFswLTlcXSsuZGF0YSA9IFxcKHZvaWQgLlxcKSAmXFwoLnh4eC5cWzAt OVxdK1xcKVxcXFswXFxcXTsiIDEgIm9yaWdpbmFsIiB9IH0KLSEgeyBkZy1maW5hbCB7IHNj YW4tdHJlZS1kdW1wLXRpbWVzICJwYXJtLlxbMC05XF0rLmRhdGEgPSBcXCh2b2lkIC5cXCkg JlxcKC54eHguXFswLTlcXStcXClcXFxbRC5cWzAtOVxdKyBcXCogNFxcXF07IiAxICJvcmln aW5hbCIgfSB9Ci0hIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAicGFybS5c WzAtOVxdKy5kYXRhID0gXFwodm9pZCAuXFwpIHl5eS5cWzAtOVxdKzsiIDEgIm9yaWdpbmFs IiB9IH0KLSEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJwYXJtLlxbMC05 XF0rLmRhdGEgPSBcXCh2b2lkIC5cXCkgeXl5LlxbMC05XF0rIFxcKyBcXChzaXpldHlwZVxc KSBcXChELlxbMC05XF0rIFxcKiAxNlxcKTsiIDEgIm9yaWdpbmFsIiB9IH0KKyEgeyBkZy1m aW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJwYXJtLlxbMC05XF0rLmRhdGEgPSBcXCh2 b2lkIC5cXCkgJlxcKC54eHguXFswLTlcXStcXClcXFxbXFteXFxcXVxdK1xcXF07IiAyICJv cmlnaW5hbCIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAicGFy bS5cWzAtOVxdKy5kYXRhID0gXFwodm9pZCAuXFwpICZcXCgueHh4LlxbMC05XF0rXFwpXFxc W1xbXlxcXF1cXSsgXFwqIDVcW15cXFxdXF0rXFxcXTsiIDEgIm9yaWdpbmFsIiB9IH0KKyEg eyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJwYXJtLlxbMC05XF0rLmRhdGEg PSBcXCh2b2lkIC5cXCkgJlxcKC55eXkuXFswLTlcXStcXClcXFxbXFteXFxcXVxdK1xcXF07 IiAyICJvcmlnaW5hbCIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1l cyAicGFybS5cWzAtOVxdKy5kYXRhID0gXFwodm9pZCAuXFwpICZcXCgueXl5LlxbMC05XF0r XFwpXFxcW1xbXlxcXF1cXSsgXFwqIDVcW15cXFxdXF0rXFxcXTsiIDEgIm9yaWdpbmFsIiB9 IH0KIAogISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIkQuXFswLTlcXSsg PSBwYXJtLlxbMC05XF0rLmRhdGE7XFteO10rcHRyXFsxLTRcXSA9IEQuXFswLTlcXSs7IiA0 ICJvcmlnaW5hbCIgfSB9CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRn L2ZpbmFsaXplXzEwLmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZmluYWxpemVf MTAuZjkwCmluZGV4IGMwZTQxNzBmZDY2Li45NmI5NmU3ZjM4NSAxMDA2NDQKLS0tIGEvZ2Nj L3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9maW5hbGl6ZV8xMC5mOTAKKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nZm9ydHJhbi5kZy9maW5hbGl6ZV8xMC5mOTAKQEAgLTMxLDcgKzMxLDcgQEAgZW5k IHN1YnJvdXRpbmUgZm9vCiAhIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAi eC0+X3ZwdHItPl9jb3B5IFxcKCIgMSAib3JpZ2luYWwiIH0gfQogCiAhIEZJTkFMSVpFIFRZ UEU6Ci0hIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAicGFybS5cWzAtOVxd Ky5kYXRhID0gXFwodm9pZCBcXCpcXCkgYWEuXFswLTlcXSs7IiAxICJvcmlnaW5hbCIgfSB9 CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAicGFybS5cWzAtOVxdKy5k YXRhID0gXFwodm9pZCBcXCpcXCkgJlxcKFxcKmFhLlxbMC05XF0rXFwpXFxcW1xbXlxcXF1c XStcXFxdOyIgMSAib3JpZ2luYWwiIH0gfQogISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1 bXAtdGltZXMgIl9fZmluYWxfbV9UMiBcXCgmcGFybS5cWzAtOVxdKywgMCwgMFxcKTsiIDEg Im9yaWdpbmFsIiB9IH0KICEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJk ZXNjLlxbMC05XF0rLmRhdGEgPSBcXCh2b2lkIFxcKiByZXN0cmljdFxcKSBiYjsiIDEgIm9y aWdpbmFsIiB9IH0KICEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJfX2Zp bmFsX21fVDIgXFwoJmRlc2MuXFswLTlcXSssIDAsIDBcXCk7IiAxICJvcmlnaW5hbCIgfSB9 CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvYWNjL2FycmF5LXdp dGgtZHQtMi5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvYWNjL2FycmF5LXdp dGgtZHQtMi5mOTAKaW5kZXggNThmNGNlODRhMmMuLmNiZDZhZTkyZTMzIDEwMDY0NAotLS0g YS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvYWNjL2FycmF5LXdpdGgtZHQtMi5mOTAK KysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb2FjYy9hcnJheS13aXRoLWR0LTIu ZjkwCkBAIC0xMCw2ICsxMCw3IEBAIHR5cGUodCksIGFsbG9jYXRhYmxlIDo6IGIoOikKICEk YWNjIHVwZGF0ZSBob3N0KGIoOjoyKSkKICEgeyBkZy13YXJuaW5nIHsnYlwuZGltXFswXF1c LnVib3VuZCcgaXMgdXNlZCB1bmluaXRpYWxpemVkfSB7fSB7IHRhcmdldCAqLSotKiB9IC4t MSB9CiAhIHsgZGctd2FybmluZyB7J2JcLmRpbVxbMFxdXC5sYm91bmQnIGlzIHVzZWQgdW5p bml0aWFsaXplZH0ge30geyB0YXJnZXQgKi0qLSogfSAuLTIgfQorISB7IGRnLXdhcm5pbmcg eydiXC5vZmZzZXQnIGlzIHVzZWQgdW5pbml0aWFsaXplZH0ge30geyB0YXJnZXQgKi0qLSog fSAuLTMgfQogISRhY2MgdXBkYXRlIGhvc3QoYigxKSVBKDo6Myw6OjQpKQogZW5kCiAKZGlm ZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvbG9vcF92ZXJzaW9uaW5nXzEu ZjkwIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9sb29wX3ZlcnNpb25pbmdfMS5mOTAK aW5kZXggZTgwZjg5MjBkMDAuLmJiNzU1Y2MwN2IwIDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1 aXRlL2dmb3J0cmFuLmRnL2xvb3BfdmVyc2lvbmluZ18xLmY5MAorKysgYi9nY2MvdGVzdHN1 aXRlL2dmb3J0cmFuLmRnL2xvb3BfdmVyc2lvbmluZ18xLmY5MApAQCAtMjMsNiArMjMsNiBA QCBzdWJyb3V0aW5lIGYzKHgsIGxpbWl0LCBzdGVwKQogICBlbmQgZG8KIGVuZCBzdWJyb3V0 aW5lIGYzCiAKLSEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzIHtsaWtlbHkg dG8gYmUgdGhlIGlubmVybW9zdCBkaW1lbnNpb259IDEgImx2ZXJzaW9uIiB9IH0KLSEgeyBk Zy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzIHt3YW50IHRvIHZlcnNpb24gY29udGFp bmluZyBsb29wfSAzICJsdmVyc2lvbiIgfSB9Ci0hIHsgZGctZmluYWwgeyBzY2FuLXRyZWUt ZHVtcC10aW1lcyB7dmVyc2lvbmVkIHRoaXMgbG9vcH0gMyAibHZlcnNpb24iIH0gfQorISB7 IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMge2xpa2VseSB0byBiZSB0aGUgaW5u ZXJtb3N0IGRpbWVuc2lvbn0gMSAibHZlcnNpb24iIHsgeGZhaWwgKi0qLSogfSB9IH0KKyEg eyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzIHt3YW50IHRvIHZlcnNpb24gY29u dGFpbmluZyBsb29wfSAzICJsdmVyc2lvbiIgeyB4ZmFpbCAqLSotKiB9IH0gfQorISB7IGRn LWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMge3ZlcnNpb25lZCB0aGlzIGxvb3B9IDMg Imx2ZXJzaW9uIiB7IHhmYWlsICotKi0qIH0gfSB9CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1 aXRlL2dmb3J0cmFuLmRnL2xvb3BfdmVyc2lvbmluZ18xMC5mOTAgYi9nY2MvdGVzdHN1aXRl L2dmb3J0cmFuLmRnL2xvb3BfdmVyc2lvbmluZ18xMC5mOTAKaW5kZXggM2Q5MjFkNmM5OTMu LjJlYjljZjFkNzUzIDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2xv b3BfdmVyc2lvbmluZ18xMC5mOTAKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9s b29wX3ZlcnNpb25pbmdfMTAuZjkwCkBAIC0yNiw2ICsyNiw2IEBAIHN1YnJvdXRpbmUgZjQo eCwgaSkKICAgZW5kIGRvCiBlbmQgc3Vicm91dGluZSBmNAogCi0hIHsgZGctZmluYWwgeyBz Y2FuLXRyZWUtZHVtcC10aW1lcyB7bGlrZWx5IHRvIGJlIHRoZSBpbm5lcm1vc3QgZGltZW5z aW9ufSA0ICJsdmVyc2lvbiIgfSB9Ci0hIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10 aW1lcyB7d2FudCB0byB2ZXJzaW9ufSA0ICJsdmVyc2lvbiIgfSB9Ci0hIHsgZGctZmluYWwg eyBzY2FuLXRyZWUtZHVtcC10aW1lcyB7dmVyc2lvbmVkfSA0ICJsdmVyc2lvbiIgfSB9Cish IHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyB7bGlrZWx5IHRvIGJlIHRoZSBp bm5lcm1vc3QgZGltZW5zaW9ufSA0ICJsdmVyc2lvbiIgeyB4ZmFpbCAqLSotKiB9IH0gfQor ISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMge3dhbnQgdG8gdmVyc2lvbn0g NCAibHZlcnNpb24iIHsgeGZhaWwgKi0qLSogfSB9IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4t dHJlZS1kdW1wLXRpbWVzIHt2ZXJzaW9uZWR9IDQgImx2ZXJzaW9uIiB7IHhmYWlsICotKi0q IH0gfSB9CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2xvb3BfdmVy c2lvbmluZ18yLmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvbG9vcF92ZXJzaW9u aW5nXzIuZjkwCmluZGV4IDUyMmVmOTEyOTQ3Li5jNzAzZWJiZGY0MyAxMDA2NDQKLS0tIGEv Z2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9sb29wX3ZlcnNpb25pbmdfMi5mOTAKKysrIGIv Z2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9sb29wX3ZlcnNpb25pbmdfMi5mOTAKQEAgLTM0 LDYgKzM0LDYgQEAgc3Vicm91dGluZSBmMyh4LCBuLCBzdGVwKQogICBlbmQgZG8KIGVuZCBz dWJyb3V0aW5lIGYzCiAKLSEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzIHts aWtlbHkgdG8gYmUgdGhlIGlubmVybW9zdCBkaW1lbnNpb259IDEgImx2ZXJzaW9uIiB9IH0K KyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzIHtsaWtlbHkgdG8gYmUgdGhl IGlubmVybW9zdCBkaW1lbnNpb259IDEgImx2ZXJzaW9uIiB7IHhmYWlsICotKi0qIH0gfSB9 CiAhIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC1ub3Qge3dhbnQgdG8gdmVyc2lvbn0g Imx2ZXJzaW9uIiB9IH0KICEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLW5vdCB7dmVy c2lvbmVkfSAibHZlcnNpb24iIH0gfQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9y dHJhbi5kZy9sb29wX3ZlcnNpb25pbmdfNC5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFu LmRnL2xvb3BfdmVyc2lvbmluZ180LmY5MAppbmRleCAyZmM0ZDEyYzlkMS4uOWI5NjBjZWZi MDggMTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvbG9vcF92ZXJzaW9u aW5nXzQuZjkwCisrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvbG9vcF92ZXJzaW9u aW5nXzQuZjkwCkBAIC04OSw3ICs4OSw3IEBAIHN1YnJvdXRpbmUgZjkoeCwgbiwgbGltaXQs IHN0ZXApCiAgIGVuZCBkbwogZW5kIHN1YnJvdXRpbmUgZjkKIAotISB7IGRnLWZpbmFsIHsg c2Nhbi10cmVlLWR1bXAtdGltZXMge2xpa2VseSB0byBiZSB0aGUgaW5uZXJtb3N0IGRpbWVu c2lvbn0gMyAibHZlcnNpb24iIH0gfQotISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAt dGltZXMge3dhbnQgdG8gdmVyc2lvbiBjb250YWluaW5nIGxvb3B9IDkgImx2ZXJzaW9uIiB9 IH0KLSEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzIHtob2lzdGluZyBjaGVj a30gOSAibHZlcnNpb24iIH0gfQotISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGlt ZXMge3ZlcnNpb25lZCB0aGlzIGxvb3B9IDkgImx2ZXJzaW9uIiB9IH0KKyEgeyBkZy1maW5h bCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzIHtsaWtlbHkgdG8gYmUgdGhlIGlubmVybW9zdCBk aW1lbnNpb259IDMgImx2ZXJzaW9uIiB7IHhmYWlsICotKi0qIH0gfSB9CishIHsgZGctZmlu YWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyB7d2FudCB0byB2ZXJzaW9uIGNvbnRhaW5pbmcg bG9vcH0gOSAibHZlcnNpb24iIHsgeGZhaWwgKi0qLSogfSB9IH0KKyEgeyBkZy1maW5hbCB7 IHNjYW4tdHJlZS1kdW1wLXRpbWVzIHtob2lzdGluZyBjaGVja30gOSAibHZlcnNpb24iIHsg eGZhaWwgKi0qLSogfSB9IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVz IHt2ZXJzaW9uZWQgdGhpcyBsb29wfSA5ICJsdmVyc2lvbiIgeyB4ZmFpbCAqLSotKiB9IH0g fQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9sb29wX3ZlcnNpb25p bmdfNi5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2xvb3BfdmVyc2lvbmluZ182 LmY5MAppbmRleCBmZmQ4NTc5OGVhMi4uYTEzNDUzMjIwZDkgMTAwNjQ0Ci0tLSBhL2djYy90 ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvbG9vcF92ZXJzaW9uaW5nXzYuZjkwCisrKyBiL2djYy90 ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvbG9vcF92ZXJzaW9uaW5nXzYuZjkwCkBAIC04OSw1ICs4 OSw1IEBAIHN1YnJvdXRpbmUgZjkoeCwgbGltaXQsIHN0ZXApCiAgIGVuZCBkbwogZW5kIHN1 YnJvdXRpbmUgZjkKIAotISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMge3dh bnQgdG8gdmVyc2lvbiBjb250YWluaW5nIGxvb3B9IDkgImx2ZXJzaW9uIiB7IHhmYWlsIHsg ISBscDY0IH0gfSB9IH0KLSEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzIHt2 ZXJzaW9uZWQgdGhpcyBsb29wfSA5ICJsdmVyc2lvbiIgeyB4ZmFpbCB7ICEgbHA2NCB9IH0g fSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyB7d2FudCB0byB2ZXJz aW9uIGNvbnRhaW5pbmcgbG9vcH0gOSAibHZlcnNpb24iIHsgeGZhaWwgKi0qLSogfSB9IH0K KyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzIHt2ZXJzaW9uZWQgdGhpcyBs b29wfSA5ICJsdmVyc2lvbiIgeyB4ZmFpbCAqLSotKiB9IH0gfQpkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9sb29wX3ZlcnNpb25pbmdfOC5mOTAgYi9nY2MvdGVz dHN1aXRlL2dmb3J0cmFuLmRnL2xvb3BfdmVyc2lvbmluZ184LmY5MAppbmRleCAxOTM0Nzk5 MzVmNC4uNmE2Mjk3Y2YzMjQgMTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4u ZGcvbG9vcF92ZXJzaW9uaW5nXzguZjkwCisrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4u ZGcvbG9vcF92ZXJzaW9uaW5nXzguZjkwCkBAIC05LDUgKzksNSBAQCBmdW5jdGlvbiBmKHgs IGluZGV4LCBuKQogICBmID0gc3VtKHgoaW5kZXgoOikpKQogZW5kIGZ1bmN0aW9uIGYKIAot ISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMge3dhbnQgdG8gdmVyc2lvbiBj b250YWluaW5nIGxvb3B9IDEgImx2ZXJzaW9uIiB9IH0KLSEgeyBkZy1maW5hbCB7IHNjYW4t dHJlZS1kdW1wLXRpbWVzIHt2ZXJzaW9uZWQgdGhpcyBsb29wfSAxICJsdmVyc2lvbiIgfSB9 CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyB7d2FudCB0byB2ZXJzaW9u IGNvbnRhaW5pbmcgbG9vcH0gMSAibHZlcnNpb24iIHsgeGZhaWwgKi0qLSogfSB9IH0KKyEg eyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzIHt2ZXJzaW9uZWQgdGhpcyBsb29w fSAxICJsdmVyc2lvbiIgeyB4ZmFpbCAqLSotKiB9IH0gfQpkaWZmIC0tZ2l0IGEvZ2NjL3Rl c3RzdWl0ZS9nZm9ydHJhbi5kZy9sb29wX3ZlcnNpb25pbmdfOS5mOTAgYi9nY2MvdGVzdHN1 aXRlL2dmb3J0cmFuLmRnL2xvb3BfdmVyc2lvbmluZ185LmY5MAppbmRleCA3YTBmZDU1ZWFj YS4uNTE4ZWIyMWZlODcgMTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcv bG9vcF92ZXJzaW9uaW5nXzkuZjkwCisrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcv bG9vcF92ZXJzaW9uaW5nXzkuZjkwCkBAIC0yNiw2ICsyNiw2IEBAIHN1YnJvdXRpbmUgZjQo eCwgaSkKICAgZW5kIGRvCiBlbmQgc3Vicm91dGluZSBmNAogCi0hIHsgZGctZmluYWwgeyBz Y2FuLXRyZWUtZHVtcC10aW1lcyB7bGlrZWx5IHRvIGJlIHRoZSBpbm5lcm1vc3QgZGltZW5z aW9ufSA0ICJsdmVyc2lvbiIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10 aW1lcyB7bGlrZWx5IHRvIGJlIHRoZSBpbm5lcm1vc3QgZGltZW5zaW9ufSA0ICJsdmVyc2lv biIgeyB4ZmFpbCAqLSotKiB9IH0gfQogISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAt bm90IHt3YW50IHRvIHZlcnNpb259ICJsdmVyc2lvbiIgfSB9CiAhIHsgZGctZmluYWwgeyBz Y2FuLXRyZWUtZHVtcC1ub3Qge3ZlcnNpb25lZH0gImx2ZXJzaW9uIiB9IH0KZGlmZiAtLWdp dCBhL2xpYmdmb3J0cmFuL2ludHJpbnNpY3MvY3NoaWZ0MC5jIGIvbGliZ2ZvcnRyYW4vaW50 cmluc2ljcy9jc2hpZnQwLmMKaW5kZXggMmZlNGQwNGU1YWYuLmQ3ODg5NTVlMjQ2IDEwMDY0 NAotLS0gYS9saWJnZm9ydHJhbi9pbnRyaW5zaWNzL2NzaGlmdDAuYworKysgYi9saWJnZm9y dHJhbi9pbnRyaW5zaWNzL2NzaGlmdDAuYwpAQCAtMzI0LDggKzMyNCwxNyBAQCBjc2hpZnQw IChnZmNfYXJyYXlfY2hhciAqIHJldCwgY29uc3QgZ2ZjX2FycmF5X2NoYXIgKiBhcnJheSwK ICAgZGltID0gR0ZDX0RFU0NSSVBUT1JfUkFOSyAoYXJyYXkpOwogICByc3RyaWRlMCA9IHJz dHJpZGVbMF07CiAgIHNzdHJpZGUwID0gc3N0cmlkZVswXTsKLSAgcnB0ciA9IHJldC0+YmFz ZV9hZGRyOwotICBzcHRyID0gYXJyYXktPmJhc2VfYWRkcjsKKworCisgIGluZGV4X3R5cGUg cmV0c3RhcnQgPSBHRkNfREVTQ1JJUFRPUl9PRkZTRVQocmV0KTsKKyAgZm9yIChpbnQgaSA9 IDA7IGkgPCBHRkNfREVTQ1JJUFRPUl9SQU5LKHJldCk7IGkrKykKKyAgICByZXRzdGFydCAr PSBHRkNfREVTQ1JJUFRPUl9MQk9VTkQocmV0LGkpICogR0ZDX0RFU0NSSVBUT1JfU1RSSURF KHJldCxpKTsKKyAgcnB0ciA9IHJldC0+YmFzZV9hZGRyICsgcmV0c3RhcnQgKiBHRkNfREVT Q1JJUFRPUl9TSVpFKHJldCk7CisKKyAgaW5kZXhfdHlwZSBhcnN0YXJ0ID0gR0ZDX0RFU0NS SVBUT1JfT0ZGU0VUKGFycmF5KTsKKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBHRkNfREVTQ1JJ UFRPUl9SQU5LKGFycmF5KTsgaSsrKQorICAgIGFyc3RhcnQgKz0gR0ZDX0RFU0NSSVBUT1Jf TEJPVU5EKGFycmF5LGkpICogR0ZDX0RFU0NSSVBUT1JfU1RSSURFKGFycmF5LGkpOworICBz cHRyID0gYXJyYXktPmJhc2VfYWRkciArIGFyc3RhcnQgKiBHRkNfREVTQ1JJUFRPUl9TSVpF KGFycmF5KTsKIAogICBzaGlmdCA9IGxlbiA9PSAwID8gMCA6IHNoaWZ0ICUgKHB0cmRpZmZf dClsZW47CiAgIGlmIChzaGlmdCA8IDApCmRpZmYgLS1naXQgYS9saWJnZm9ydHJhbi9pbnRy aW5zaWNzL2Vvc2hpZnQwLmMgYi9saWJnZm9ydHJhbi9pbnRyaW5zaWNzL2Vvc2hpZnQwLmMK aW5kZXggNjExNGRjZTg0MTcuLmVlNjk5YmIxYjk5IDEwMDY0NAotLS0gYS9saWJnZm9ydHJh bi9pbnRyaW5zaWNzL2Vvc2hpZnQwLmMKKysrIGIvbGliZ2ZvcnRyYW4vaW50cmluc2ljcy9l b3NoaWZ0MC5jCkBAIC0yMDQsOCArMjA0LDE2IEBAIGVvc2hpZnQwIChnZmNfYXJyYXlfY2hh ciAqIHJldCwgY29uc3QgZ2ZjX2FycmF5X2NoYXIgKiBhcnJheSwKIAogICByc3RyaWRlMCA9 IHJzdHJpZGVbMF07CiAgIHNzdHJpZGUwID0gc3N0cmlkZVswXTsKLSAgcnB0ciA9IHJldC0+ YmFzZV9hZGRyOwotICBzcHRyID0gYXJyYXktPmJhc2VfYWRkcjsKKworICBpbmRleF90eXBl IHJzdGFydCA9IEdGQ19ERVNDUklQVE9SX09GRlNFVChyZXQpOworICBmb3IgKGludCBpID0g MDsgaSA8IEdGQ19ERVNDUklQVE9SX1JBTksocmV0KTsgaSsrKQorICAgIHJzdGFydCArPSBH RkNfREVTQ1JJUFRPUl9MQk9VTkQocmV0LGkpICogR0ZDX0RFU0NSSVBUT1JfU1RSSURFKHJl dCxpKTsKKyAgcnB0ciA9IHJldC0+YmFzZV9hZGRyICsgcnN0YXJ0ICogR0ZDX0RFU0NSSVBU T1JfU0laRShyZXQpOworICAKKyAgaW5kZXhfdHlwZSBzc3RhcnQgPSBHRkNfREVTQ1JJUFRP Ul9PRkZTRVQoYXJyYXkpOworICBmb3IgKGludCBpID0gMDsgaSA8IEdGQ19ERVNDUklQVE9S X1JBTksoYXJyYXkpOyBpKyspCisgICAgc3N0YXJ0ICs9IEdGQ19ERVNDUklQVE9SX0xCT1VO RChhcnJheSxpKSAqIEdGQ19ERVNDUklQVE9SX1NUUklERShhcnJheSxpKTsKKyAgc3B0ciA9 IGFycmF5LT5iYXNlX2FkZHIgKyBzc3RhcnQgKiBHRkNfREVTQ1JJUFRPUl9TSVpFKGFycmF5 KTsKIAogICB3aGlsZSAocnB0cikKICAgICB7CmRpZmYgLS1naXQgYS9saWJnZm9ydHJhbi9p bnRyaW5zaWNzL2Vvc2hpZnQyLmMgYi9saWJnZm9ydHJhbi9pbnRyaW5zaWNzL2Vvc2hpZnQy LmMKaW5kZXggZmQ3NWIxZGMzODcuLjllMTc4NGQ4ZDI0IDEwMDY0NAotLS0gYS9saWJnZm9y dHJhbi9pbnRyaW5zaWNzL2Vvc2hpZnQyLmMKKysrIGIvbGliZ2ZvcnRyYW4vaW50cmluc2lj cy9lb3NoaWZ0Mi5jCkBAIC0xNDUsOCArMTQ1LDE2IEBAIGVvc2hpZnQyIChnZmNfYXJyYXlf Y2hhciAqcmV0LCBjb25zdCBnZmNfYXJyYXlfY2hhciAqYXJyYXksCiAgIHJzdHJpZGUwID0g cnN0cmlkZVswXTsKICAgc3N0cmlkZTAgPSBzc3RyaWRlWzBdOwogICBic3RyaWRlMCA9IGJz dHJpZGVbMF07Ci0gIHJwdHIgPSByZXQtPmJhc2VfYWRkcjsKLSAgc3B0ciA9IGFycmF5LT5i YXNlX2FkZHI7CisKKyAgaW5kZXhfdHlwZSByc3RhcnQgPSBHRkNfREVTQ1JJUFRPUl9PRkZT RVQocmV0KTsKKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBHRkNfREVTQ1JJUFRPUl9SQU5LKHJl dCk7IGkrKykKKyAgICByc3RhcnQgKz0gR0ZDX0RFU0NSSVBUT1JfTEJPVU5EKHJldCxpKSAq IEdGQ19ERVNDUklQVE9SX1NUUklERShyZXQsaSk7CisgIHJwdHIgPSByZXQtPmJhc2VfYWRk ciArIHJzdGFydCAqIEdGQ19ERVNDUklQVE9SX1NJWkUocmV0KTsKKworICBpbmRleF90eXBl IHNzdGFydCA9IEdGQ19ERVNDUklQVE9SX09GRlNFVChhcnJheSk7CisgIGZvciAoaW50IGkg PSAwOyBpIDwgR0ZDX0RFU0NSSVBUT1JfUkFOSyhhcnJheSk7IGkrKykKKyAgICBzc3RhcnQg Kz0gR0ZDX0RFU0NSSVBUT1JfTEJPVU5EKGFycmF5LGkpICogR0ZDX0RFU0NSSVBUT1JfU1RS SURFKGFycmF5LGkpOworICBzcHRyID0gYXJyYXktPmJhc2VfYWRkciArIHNzdGFydCAqIEdG Q19ERVNDUklQVE9SX1NJWkUoYXJyYXkpOwogCiAgIGlmICgoc2hpZnQgPj0gMCA/IHNoaWZ0 IDogLXNoaWZ0ICkgPiBsZW4pCiAgICAgewpAQCAtMTYyLDcgKzE3MCwxMiBAQCBlb3NoaWZ0 MiAoZ2ZjX2FycmF5X2NoYXIgKnJldCwgY29uc3QgZ2ZjX2FycmF5X2NoYXIgKmFycmF5LAog ICAgIH0KICAgCiAgIGlmIChib3VuZCkKLSAgICBicHRyID0gYm91bmQtPmJhc2VfYWRkcjsK KyAgICB7CisgICAgICBpbmRleF90eXBlIGJzdGFydCA9IEdGQ19ERVNDUklQVE9SX09GRlNF VChib3VuZCk7CisgICAgICBmb3IgKGludCBpID0gMDsgaSA8IEdGQ19ERVNDUklQVE9SX1JB TksoYm91bmQpOyBpKyspCisJYnN0YXJ0ICs9IEdGQ19ERVNDUklQVE9SX0xCT1VORChib3Vu ZCxpKSAqIEdGQ19ERVNDUklQVE9SX1NUUklERShib3VuZCxpKTsKKyAgICAgIGJwdHIgPSBi b3VuZC0+YmFzZV9hZGRyICsgYnN0YXJ0ICogR0ZDX0RFU0NSSVBUT1JfU0laRShib3VuZCk7 CisgICAgfQogICBlbHNlCiAgICAgYnB0ciA9IE5VTEw7CiAKZGlmZiAtLWdpdCBhL2xpYmdm b3J0cmFuL2ludHJpbnNpY3MvcmVzaGFwZV9nZW5lcmljLmMgYi9saWJnZm9ydHJhbi9pbnRy aW5zaWNzL3Jlc2hhcGVfZ2VuZXJpYy5jCmluZGV4IGQzZDU0ODNjNjBhLi5jMTFmZGExN2Uw MCAxMDA2NDQKLS0tIGEvbGliZ2ZvcnRyYW4vaW50cmluc2ljcy9yZXNoYXBlX2dlbmVyaWMu YworKysgYi9saWJnZm9ydHJhbi9pbnRyaW5zaWNzL3Jlc2hhcGVfZ2VuZXJpYy5jCkBAIC03 NSw5ICs3NSwxNCBAQCByZXNoYXBlX2ludGVybmFsIChwYXJyYXkgKnJldCwgcGFycmF5ICpz b3VyY2UsIHNoYXBlX3R5cGUgKnNoYXBlLAogCiAgIHNoYXBlX2VtcHR5ID0gMDsKIAorICBp bmRleF90eXBlIHNoc3RhcnQgPSBHRkNfREVTQ1JJUFRPUl9PRkZTRVQoc2hhcGUpOworICBm b3IgKGludCBpID0gMDsgaSA8IEdGQ19ERVNDUklQVE9SX1JBTksoc2hhcGUpOyBpKyspCisg ICAgc2hzdGFydCArPSBHRkNfREVTQ1JJUFRPUl9MQk9VTkQoc2hhcGUsaSkgKiBHRkNfREVT Q1JJUFRPUl9TVFJJREUoc2hhcGUsaSk7CisgIGNvbnN0IGluZGV4X3R5cGUgKiBjb25zdCBz aGJhc2UgPSBzaGFwZS0+YmFzZV9hZGRyICsgc2hzdGFydDsKKwogICBmb3IgKG4gPSAwOyBu IDwgcmRpbTsgbisrKQogICAgIHsKLSAgICAgIHNoYXBlX2RhdGFbbl0gPSBzaGFwZS0+YmFz ZV9hZGRyW24gKiBHRkNfREVTQ1JJUFRPUl9TVFJJREUoc2hhcGUsMCldOworICAgICAgc2hh cGVfZGF0YVtuXSA9IHNoYmFzZVtuICogR0ZDX0RFU0NSSVBUT1JfU1RSSURFKHNoYXBlLDAp XTsKICAgICAgIGlmIChzaGFwZV9kYXRhW25dIDw9IDApCiAJewogCSAgc2hhcGVfZGF0YVtu XSA9IDA7CkBAIC0xMTcsNiArMTIyLDkgQEAgcmVzaGFwZV9pbnRlcm5hbCAocGFycmF5ICpy ZXQsIHBhcnJheSAqc291cmNlLCBzaGFwZV90eXBlICpzaGFwZSwKICAgICAgIHBkaW0gPSBH RkNfREVTQ1JJUFRPUl9SQU5LIChwYWQpOwogICAgICAgcHNpemUgPSAxOwogICAgICAgcGVt cHR5ID0gMDsKKworICAgICAgaW5kZXhfdHlwZSBwc3RhcnQgPSBHRkNfREVTQ1JJUFRPUl9P RkZTRVQocGFkKTsKKwogICAgICAgZm9yIChuID0gMDsgbiA8IHBkaW07IG4rKykKICAgICAg ICAgewogICAgICAgICAgIHBjb3VudFtuXSA9IDA7CkBAIC0xMzIsOCArMTQwLDEwIEBAIHJl c2hhcGVfaW50ZXJuYWwgKHBhcnJheSAqcmV0LCBwYXJyYXkgKnNvdXJjZSwgc2hhcGVfdHlw ZSAqc2hhcGUsCiAgICAgICAgICAgICBwc2l6ZSAqPSBwZXh0ZW50W25dOwogICAgICAgICAg IGVsc2UKICAgICAgICAgICAgIHBzaXplID0gMDsKKworCSAgcHN0YXJ0ICs9IEdGQ19ERVND UklQVE9SX0xCT1VORChwYWQsbikgKiBHRkNfREVTQ1JJUFRPUl9TVFJJREUocGFkLG4pOwog ICAgICAgICB9Ci0gICAgICBwcHRyID0gcGFkLT5iYXNlX2FkZHI7CisgICAgICBwcHRyID0g cGFkLT5iYXNlX2FkZHIgKyBwc3RhcnQ7CiAgICAgfQogICBlbHNlCiAgICAgewpAQCAtMTQz LDYgKzE1MywxNSBAQCByZXNoYXBlX2ludGVybmFsIChwYXJyYXkgKnJldCwgcGFycmF5ICpz b3VyY2UsIHNoYXBlX3R5cGUgKnNoYXBlLAogICAgICAgcHB0ciA9IE5VTEw7CiAgICAgfQog CisgIGNvbnN0IGluZGV4X3R5cGUgKm9iYXNlID0gTlVMTDsKKyAgaWYgKG9yZGVyKQorICAg IHsKKyAgICAgIGluZGV4X3R5cGUgb3N0YXJ0ID0gR0ZDX0RFU0NSSVBUT1JfT0ZGU0VUKG9y ZGVyKTsKKyAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgR0ZDX0RFU0NSSVBUT1JfUkFOSyhv cmRlcik7IGkrKykKKwlvc3RhcnQgKz0gR0ZDX0RFU0NSSVBUT1JfTEJPVU5EKG9yZGVyLGkp ICogR0ZDX0RFU0NSSVBUT1JfU1RSSURFKG9yZGVyLGkpOworICAgICAgb2Jhc2UgPSBvcmRl ci0+YmFzZV9hZGRyICsgb3N0YXJ0OworICAgIH0KKwogICBpZiAodW5saWtlbHkgKGNvbXBp bGVfb3B0aW9ucy5ib3VuZHNfY2hlY2spKQogICAgIHsKICAgICAgIGluZGV4X3R5cGUgcmV0 X2V4dGVudCwgc291cmNlX2V4dGVudDsKQEAgLTE4Nyw3ICsyMDYsNyBAQCByZXNoYXBlX2lu dGVybmFsIChwYXJyYXkgKnJldCwgcGFycmF5ICpzb3VyY2UsIHNoYXBlX3R5cGUgKnNoYXBl LAogCiAJICBmb3IgKG4gPSAwOyBuIDwgcmRpbTsgbisrKQogCSAgICB7Ci0JICAgICAgdiA9 IG9yZGVyLT5iYXNlX2FkZHJbbiAqIEdGQ19ERVNDUklQVE9SX1NUUklERShvcmRlciwwKV0g LSAxOworCSAgICAgIHYgPSBvYmFzZVtuICogR0ZDX0RFU0NSSVBUT1JfU1RSSURFKG9yZGVy LDApXSAtIDE7CiAKIAkgICAgICBpZiAodiA8IDAgfHwgdiA+PSByZGltKQogCQlydW50aW1l X2Vycm9yKCJWYWx1ZSAlbGQgb3V0IG9mIHJhbmdlIGluIE9SREVSIGFyZ3VtZW50IgpAQCAt MjA2LDcgKzIyNSw3IEBAIHJlc2hhcGVfaW50ZXJuYWwgKHBhcnJheSAqcmV0LCBwYXJyYXkg KnNvdXJjZSwgc2hhcGVfdHlwZSAqc2hhcGUsCiAgIGZvciAobiA9IDA7IG4gPCByZGltOyBu KyspCiAgICAgewogICAgICAgaWYgKG9yZGVyKQotICAgICAgICBkaW0gPSBvcmRlci0+YmFz ZV9hZGRyW24gKiBHRkNfREVTQ1JJUFRPUl9TVFJJREUob3JkZXIsMCldIC0gMTsKKyAgICAg ICAgZGltID0gb2Jhc2VbbiAqIEdGQ19ERVNDUklQVE9SX1NUUklERShvcmRlciwwKV0gLSAx OwogICAgICAgZWxzZQogICAgICAgICBkaW0gPSBuOwogCkBAIC0yNTgsOCArMjc3LDE4IEBA IHJlc2hhcGVfaW50ZXJuYWwgKHBhcnJheSAqcmV0LCBwYXJyYXkgKnNvdXJjZSwgc2hhcGVf dHlwZSAqc2hhcGUsCiAJCSAgICAgIHBhZCA/IHBhZC0+YmFzZV9hZGRyIDogTlVMTCwgcHNp emUpOwogICAgICAgcmV0dXJuOwogICAgIH0KLSAgcnB0ciA9IHJldC0+YmFzZV9hZGRyOwot ICBzcmMgPSBzcHRyID0gc291cmNlLT5iYXNlX2FkZHI7CisKKworICBpbmRleF90eXBlIHJl dHN0YXJ0ID0gR0ZDX0RFU0NSSVBUT1JfT0ZGU0VUKHJldCk7CisgIGZvciAoaW50IGkgPSAw OyBpIDwgR0ZDX0RFU0NSSVBUT1JfUkFOSyhyZXQpOyBpKyspCisgICAgcmV0c3RhcnQgKz0g R0ZDX0RFU0NSSVBUT1JfTEJPVU5EKHJldCxpKSAqIEdGQ19ERVNDUklQVE9SX1NUUklERShy ZXQsaSk7CisgIHJwdHIgPSByZXQtPmJhc2VfYWRkciArIHJldHN0YXJ0OworCisgIGluZGV4 X3R5cGUgc3N0YXJ0ID0gR0ZDX0RFU0NSSVBUT1JfT0ZGU0VUKHNvdXJjZSk7CisgIGZvciAo aW50IGkgPSAwOyBpIDwgR0ZDX0RFU0NSSVBUT1JfUkFOSyhzb3VyY2UpOyBpKyspCisgICAg c3N0YXJ0ICs9IEdGQ19ERVNDUklQVE9SX0xCT1VORChzb3VyY2UsaSkgKiBHRkNfREVTQ1JJ UFRPUl9TVFJJREUoc291cmNlLGkpOworICBzcmMgPSBzcHRyID0gc291cmNlLT5iYXNlX2Fk ZHIgKyBzc3RhcnQ7CisKICAgcnN0cmlkZTAgPSByc3RyaWRlWzBdICogc2l6ZTsKICAgc3N0 cmlkZTAgPSBzc3RyaWRlWzBdICogc2l6ZTsKIApkaWZmIC0tZ2l0IGEvbGliZ2ZvcnRyYW4v aW50cmluc2ljcy9zcHJlYWRfZ2VuZXJpYy5jIGIvbGliZ2ZvcnRyYW4vaW50cmluc2ljcy9z cHJlYWRfZ2VuZXJpYy5jCmluZGV4IGQ2NTkxMjI2OGI5Li42OGE3NzZiZjcyMCAxMDA2NDQK LS0tIGEvbGliZ2ZvcnRyYW4vaW50cmluc2ljcy9zcHJlYWRfZ2VuZXJpYy5jCisrKyBiL2xp Ymdmb3J0cmFuL2ludHJpbnNpY3Mvc3ByZWFkX2dlbmVyaWMuYwpAQCAtMTc5LDggKzE3OSwx NiBAQCBzcHJlYWRfaW50ZXJuYWwgKGdmY19hcnJheV9jaGFyICpyZXQsIGNvbnN0IGdmY19h cnJheV9jaGFyICpzb3VyY2UsCiAgICAgfQogICBzc3RyaWRlMCA9IHNzdHJpZGVbMF07CiAg IHJzdHJpZGUwID0gcnN0cmlkZVswXTsKLSAgcnB0ciA9IHJldC0+YmFzZV9hZGRyOwotICBz cHRyID0gc291cmNlLT5iYXNlX2FkZHI7CisKKyAgaW5kZXhfdHlwZSByZXRzdGFydCA9IEdG Q19ERVNDUklQVE9SX09GRlNFVChyZXQpOworICBmb3IgKGludCBpID0gMDsgaSA8IEdGQ19E RVNDUklQVE9SX1JBTksocmV0KTsgaSsrKQorICAgIHJldHN0YXJ0ICs9IEdGQ19ERVNDUklQ VE9SX0xCT1VORChyZXQsaSkgKiBHRkNfREVTQ1JJUFRPUl9TVFJJREUocmV0LGkpOworICBy cHRyID0gcmV0LT5iYXNlX2FkZHIgKyByZXRzdGFydCAqIEdGQ19ERVNDUklQVE9SX1NJWkUo cmV0KTsKKworICBpbmRleF90eXBlIHNyY3N0YXJ0ID0gR0ZDX0RFU0NSSVBUT1JfT0ZGU0VU KHNvdXJjZSk7CisgIGZvciAoaW50IGkgPSAwOyBpIDwgR0ZDX0RFU0NSSVBUT1JfUkFOSyhz b3VyY2UpOyBpKyspCisgICAgc3Jjc3RhcnQgKz0gR0ZDX0RFU0NSSVBUT1JfTEJPVU5EKHNv dXJjZSxpKSAqIEdGQ19ERVNDUklQVE9SX1NUUklERShzb3VyY2UsaSk7CisgIHNwdHIgPSBz b3VyY2UtPmJhc2VfYWRkciArIHNyY3N0YXJ0ICogR0ZDX0RFU0NSSVBUT1JfU0laRShzb3Vy Y2UpOwogCiAgIHdoaWxlIChzcHRyKQogICAgIHsKQEAgLTI1NSw5ICsyNjMsMTQgQEAgc3By ZWFkX2ludGVybmFsX3NjYWxhciAoZ2ZjX2FycmF5X2NoYXIgKnJldCwgY29uc3QgY2hhciAq c291cmNlLAogCXJ1bnRpbWVfZXJyb3IgKCJkaW0gdG9vIGxhcmdlIGluIHNwcmVhZCgpIik7 CiAgICAgfQogCisgIGluZGV4X3R5cGUgcmV0c3RhcnQgPSBHRkNfREVTQ1JJUFRPUl9PRkZT RVQocmV0KTsKKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBHRkNfREVTQ1JJUFRPUl9SQU5LKHJl dCk7IGkrKykKKyAgICByZXRzdGFydCArPSBHRkNfREVTQ1JJUFRPUl9MQk9VTkQocmV0LGkp ICogR0ZDX0RFU0NSSVBUT1JfU1RSSURFKHJldCxpKTsKKyAgY2hhciAqIGNvbnN0IHJldGJh c2UgPSByZXQtPmJhc2VfYWRkciArIHJldHN0YXJ0ICogR0ZDX0RFU0NSSVBUT1JfU0laRShy ZXQpOworCiAgIGZvciAobiA9IDA7IG4gPCBuY29waWVzOyBuKyspCiAgICAgewotICAgICAg ZGVzdCA9IChjaGFyKikocmV0LT5iYXNlX2FkZHIgKyBuICogR0ZDX0RFU0NSSVBUT1JfU1RS SURFX0JZVEVTKHJldCwwKSk7CisgICAgICBkZXN0ID0gKGNoYXIqKShyZXRiYXNlICsgbiAq IEdGQ19ERVNDUklQVE9SX1NUUklERV9CWVRFUyhyZXQsMCkpOwogICAgICAgbWVtY3B5IChk ZXN0ICwgc291cmNlLCBzaXplKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9saWJnZm9ydHJh bi9pby9mb3JtYXQuYyBiL2xpYmdmb3J0cmFuL2lvL2Zvcm1hdC5jCmluZGV4IDk2ZDUxNDE1 MzkyLi4wNmZmOTk5Mzg3MyAxMDA2NDQKLS0tIGEvbGliZ2ZvcnRyYW4vaW8vZm9ybWF0LmMK KysrIGIvbGliZ2ZvcnRyYW4vaW8vZm9ybWF0LmMKQEAgLTEwNzksNiArMTA3OSw3IEBAIHBh cnNlX2Zvcm1hdF9saXN0IChzdF9wYXJhbWV0ZXJfZHQgKmR0cCwgYm9vbCAqc2Vlbl9kZCkK IAkJCQkgICsgc2l6ZW9mIChkZXNjcmlwdG9yX2RpbWVuc2lvbikpOwogICAgICAgR0ZDX0RF U0NSSVBUT1JfREFUQSh0YWlsLT51LnVkZi52bGlzdCkgPSBOVUxMOwogICAgICAgR0ZDX0RJ TUVOU0lPTl9TRVQodGFpbC0+dS51ZGYudmxpc3QtPmRpbVswXSwxLCAwLCAwKTsKKyAgICAg IEdGQ19ERVNDUklQVE9SX09GRlNFVCh0YWlsLT51LnVkZi52bGlzdCkgPSAwOwogCiAgICAg ICBpZiAodCA9PSBGTVRfU1RSSU5HKQogICAgICAgICB7CkBAIC0xMTExLDYgKzExMTIsNyBA QCBwYXJzZV9mb3JtYXRfbGlzdCAoc3RfcGFyYW1ldGVyX2R0ICpkdHAsIGJvb2wgKnNlZW5f ZGQpCiAJICAgICAgZ2ZjX2Z1bGxfYXJyYXlfaTQgKnZwID0gdGFpbC0+dS51ZGYudmxpc3Q7 CiAJICAgICAgR0ZDX0RFU0NSSVBUT1JfREFUQSh2cCkgPSB4bWFsbG9jIChpICogc2l6ZW9m KEdGQ19JTlRFR0VSXzQpKTsKIAkgICAgICBHRkNfRElNRU5TSU9OX1NFVCh2cC0+ZGltWzBd LDEsIGksIDEpOworCSAgICAgIEdGQ19ERVNDUklQVE9SX09GRlNFVCh2cCkgPSAtMTsKIAkg ICAgICBtZW1jcHkgKEdGQ19ERVNDUklQVE9SX0RBVEEodnApLCB0ZW1wLCBpICogc2l6ZW9m KEdGQ19JTlRFR0VSXzQpKTsKIAkgICAgICBicmVhazsKIAkgICAgfQpkaWZmIC0tZ2l0IGEv bGliZ2ZvcnRyYW4vaW8vbGlzdF9yZWFkLmMgYi9saWJnZm9ydHJhbi9pby9saXN0X3JlYWQu YwppbmRleCA1YTU2MzRjZmEyMy4uNDhkYTVkM2QwNjYgMTAwNjQ0Ci0tLSBhL2xpYmdmb3J0 cmFuL2lvL2xpc3RfcmVhZC5jCisrKyBiL2xpYmdmb3J0cmFuL2lvL2xpc3RfcmVhZC5jCkBA IC0yMjAxLDYgKzIyMDEsNyBAQCBsaXN0X2Zvcm1hdHRlZF9yZWFkX3NjYWxhciAoc3RfcGFy YW1ldGVyX2R0ICpkdHAsIGJ0IHR5cGUsIHZvaWQgKnAsCiAKIAkgIEdGQ19ERVNDUklQVE9S X0RBVEEoJnZsaXN0KSA9IE5VTEw7CiAJICBHRkNfRElNRU5TSU9OX1NFVCh2bGlzdC5kaW1b MF0sMSwgMCwgMCk7CisJICBHRkNfREVTQ1JJUFRPUl9PRkZTRVQoJnZsaXN0KSA9IDA7CiAK IAkgIC8qIFNldCBpb3N0YXQsIGludGVudChvdXQpLiAgKi8KIAkgIG5vaW9zdGF0ID0gMDsK QEAgLTMwMDAsNiArMzAwMSw3IEBAIG5tbF9yZWFkX29iaiAoc3RfcGFyYW1ldGVyX2R0ICpk dHAsIG5hbWVsaXN0X2luZm8gKm5sLCBpbmRleF90eXBlIG9mZnNldCwKIAogCQlHRkNfREVT Q1JJUFRPUl9EQVRBKCZ2bGlzdCkgPSBOVUxMOwogCQlHRkNfRElNRU5TSU9OX1NFVCh2bGlz dC5kaW1bMF0sMSwgMCwgMCk7CisJCUdGQ19ERVNDUklQVE9SX09GRlNFVCgmdmxpc3QpID0g MDsKIAkJCiAJCWxpc3Rfb2JqLnZwdHIgPSBubC0+dnRhYmxlOwogCQlsaXN0X29iai5sZW4g PSAwOwpkaWZmIC0tZ2l0IGEvbGliZ2ZvcnRyYW4vaW8vdHJhbnNmZXIuYyBiL2xpYmdmb3J0 cmFuL2lvL3RyYW5zZmVyLmMKaW5kZXggZjU0M2RmZDc5ZGMuLjQ2MGNmNDMzNjhkIDEwMDY0 NAotLS0gYS9saWJnZm9ydHJhbi9pby90cmFuc2Zlci5jCisrKyBiL2xpYmdmb3J0cmFuL2lv L3RyYW5zZmVyLmMKQEAgLTI2NjksNiArMjY2OSwxMCBAQCB0cmFuc2Zlcl9hcnJheV9pbm5l ciAoc3RfcGFyYW1ldGVyX2R0ICpkdHAsIGdmY19hcnJheV9jaGFyICpkZXNjLCBpbnQga2lu ZCwKICAgICB0c2l6ZSA9IDE7CiAKICAgZGF0YSA9IEdGQ19ERVNDUklQVE9SX0RBVEEgKGRl c2MpOworICBkYXRhICs9IEdGQ19ERVNDUklQVE9SX09GRlNFVCAoZGVzYykgKiBHRkNfREVT Q1JJUFRPUl9TSVpFKGRlc2MpOworCisgIGZvciAobiA9IDA7IG4gPCByYW5rOyBuKyspCisg ICAgZGF0YSArPSBzdHJpZGVbbl0gKiBHRkNfREVTQ1JJUFRPUl9MQk9VTkQgKGRlc2MsIG4p OwogCiAgIC8qIFdoZW4gcmVhZGluZywgd2UgbmVlZCB0byBjaGVjayBlbmRmaWxlIGNvbmRp dGlvbnMgc28gd2UgZG8gbm90IG1pc3MKICAgICAgYW4gRU5EPWxhYmVsLiAgTWFrZSB0aGlz IHNlcGFyYXRlIHNvIHdlIGRvIG5vdCBoYXZlIGFuIGV4dHJhIHRlc3QKQEAgLTM1ODQsNyAr MzU4OCw3IEBAIGluaXRfbG9vcF9zcGVjIChnZmNfYXJyYXlfY2hhciAqZGVzYywgYXJyYXlf bG9vcF9zcGVjICpscywKIAogICBlbXB0eSA9IDA7CiAgIGluZGV4ID0gMTsKLSAgKnN0YXJ0 X3JlY29yZCA9IDA7CisgICpzdGFydF9yZWNvcmQgPSBHRkNfREVTQ1JJUFRPUl9PRkZTRVQo ZGVzYyk7CiAKICAgZm9yIChpPTA7IGk8cmFuazsgaSsrKQogICAgIHsKQEAgLTM2MDQsOSAr MzYwOCw4IEBAIGluaXRfbG9vcF9zcGVjIChnZmNfYXJyYXlfY2hhciAqZGVzYywgYXJyYXlf bG9vcF9zcGVjICpscywKIAl7CiAJICBpbmRleCAtPSAoR0ZDX0RFU0NSSVBUT1JfRVhURU5U KGRlc2MsaSkgLSAxKQogCSAgICAqIEdGQ19ERVNDUklQVE9SX1NUUklERShkZXNjLGkpOwot CSAgKnN0YXJ0X3JlY29yZCAtPSAoR0ZDX0RFU0NSSVBUT1JfRVhURU5UKGRlc2MsaSkgLSAx KQotCSAgICAqIEdGQ19ERVNDUklQVE9SX1NUUklERShkZXNjLGkpOwogCX0KKyAgICAgICpz dGFydF9yZWNvcmQgKz0gR0ZDX0RFU0NSSVBUT1JfTEJPVU5EKGRlc2MsaSkgKiBHRkNfREVT Q1JJUFRPUl9TVFJJREUoZGVzYyxpKTsKICAgICB9CiAKICAgaWYgKGVtcHR5KQpAQCAtMzYy NSw3ICszNjI4LDcgQEAgbmV4dF9hcnJheV9yZWNvcmQgKHN0X3BhcmFtZXRlcl9kdCAqZHRw LCBhcnJheV9sb29wX3NwZWMgKmxzLCBpbnQgKmZpbmlzaGVkKQogICBnZmNfb2Zmc2V0IGlu ZGV4OwogCiAgIGNhcnJ5ID0gMTsKLSAgaW5kZXggPSAwOworICBpbmRleCA9IEdGQ19ERVND UklQVE9SX09GRlNFVChkdHAtPmludGVybmFsX3VuaXRfZGVzYyk7CiAKICAgZm9yIChpID0g MDsgaSA8IGR0cC0+dS5wLmN1cnJlbnRfdW5pdC0+cmFuazsgaSsrKQogICAgIHsKQEAgLTM2 NDAsNyArMzY0Myw3IEBAIG5leHRfYXJyYXlfcmVjb3JkIChzdF9wYXJhbWV0ZXJfZHQgKmR0 cCwgYXJyYXlfbG9vcF9zcGVjICpscywgaW50ICpmaW5pc2hlZCkKICAgICAgICAgICBlbHNl CiAgICAgICAgICAgICBjYXJyeSA9IDA7CiAgICAgICAgIH0KLSAgICAgIGluZGV4ID0gaW5k ZXggKyAobHNbaV0uaWR4IC0gbHNbaV0uc3RhcnQpICogbHNbaV0uc3RlcDsKKyAgICAgIGlu ZGV4ID0gaW5kZXggKyBsc1tpXS5pZHggKiBsc1tpXS5zdGVwOwogICAgIH0KIAogICAqZmlu aXNoZWQgPSBjYXJyeTsKZGlmZiAtLWdpdCBhL2xpYmdmb3J0cmFuL2lvL3VuaXQuYyBiL2xp Ymdmb3J0cmFuL2lvL3VuaXQuYwppbmRleCA0ZDMyZTM2MWEyMS4uMmRmYTA5N2NiMDAgMTAw NjQ0Ci0tLSBhL2xpYmdmb3J0cmFuL2lvL3VuaXQuYworKysgYi9saWJnZm9ydHJhbi9pby91 bml0LmMKQEAgLTQ5MiwxMSArNDkyLDExIEBAIHNldF9pbnRlcm5hbF91bml0IChzdF9wYXJh bWV0ZXJfZHQgKmR0cCwgZ2ZjX3VuaXQgKml1bml0LCBpbnQga2luZCkKIAogICAvKiBTZXQg aW5pdGlhbCB2YWx1ZXMgZm9yIHVuaXQgcGFyYW1ldGVycy4gICovCiAgIGlmIChraW5kID09 IDQpCi0gICAgaXVuaXQtPnMgPSBvcGVuX2ludGVybmFsNCAoaXVuaXQtPmludGVybmFsX3Vu aXQgLSBzdGFydF9yZWNvcmQsCi0JCQkJIGl1bml0LT5pbnRlcm5hbF91bml0X2xlbiwgLXN0 YXJ0X3JlY29yZCk7CisgICAgaXVuaXQtPnMgPSBvcGVuX2ludGVybmFsNCAoaXVuaXQtPmlu dGVybmFsX3VuaXQsCisJCQkJIGl1bml0LT5pbnRlcm5hbF91bml0X2xlbiwgc3RhcnRfcmVj b3JkKTsKICAgZWxzZQotICAgIGl1bml0LT5zID0gb3Blbl9pbnRlcm5hbCAoaXVuaXQtPmlu dGVybmFsX3VuaXQgLSBzdGFydF9yZWNvcmQsCi0JCQkgICAgICBpdW5pdC0+aW50ZXJuYWxf dW5pdF9sZW4sIC1zdGFydF9yZWNvcmQpOworICAgIGl1bml0LT5zID0gb3Blbl9pbnRlcm5h bCAoaXVuaXQtPmludGVybmFsX3VuaXQsCisJCQkgICAgICBpdW5pdC0+aW50ZXJuYWxfdW5p dF9sZW4sIHN0YXJ0X3JlY29yZCk7CiAKICAgaXVuaXQtPmJ5dGVzX2xlZnQgPSBpdW5pdC0+ cmVjbDsKICAgaXVuaXQtPmxhc3RfcmVjb3JkPTA7CmRpZmYgLS1naXQgYS9saWJnZm9ydHJh bi9pby91bml4LmMgYi9saWJnZm9ydHJhbi9pby91bml4LmMKaW5kZXggNjE2YzFhYWIxNjYu LjUyNWJhMGVjMDJkIDEwMDY0NAotLS0gYS9saWJnZm9ydHJhbi9pby91bml4LmMKKysrIGIv bGliZ2ZvcnRyYW4vaW8vdW5peC5jCkBAIC0xMDc3LDcgKzEwNzcsNyBAQCBvcGVuX2ludGVy bmFsIChjaGFyICpiYXNlLCBzaXplX3QgbGVuZ3RoLCBnZmNfb2Zmc2V0IG9mZnNldCkKICAg cyA9IHhjYWxsb2MgKDEsIHNpemVvZiAodW5peF9zdHJlYW0pKTsKIAogICBzLT5idWZmZXIg PSBiYXNlOwotICBzLT5idWZmZXJfb2Zmc2V0ID0gb2Zmc2V0OworICBzLT5sb2dpY2FsX29m ZnNldCA9IG9mZnNldDsKIAogICBzLT5hY3RpdmUgPSBzLT5maWxlX2xlbmd0aCA9IGxlbmd0 aDsKIApAQCAtMTA5Nyw3ICsxMDk3LDcgQEAgb3Blbl9pbnRlcm5hbDQgKGNoYXIgKmJhc2Us IHNpemVfdCBsZW5ndGgsIGdmY19vZmZzZXQgb2Zmc2V0KQogICBzID0geGNhbGxvYyAoMSwg c2l6ZW9mICh1bml4X3N0cmVhbSkpOwogCiAgIHMtPmJ1ZmZlciA9IGJhc2U7Ci0gIHMtPmJ1 ZmZlcl9vZmZzZXQgPSBvZmZzZXQ7CisgIHMtPmxvZ2ljYWxfb2Zmc2V0ID0gb2Zmc2V0Owog CiAgIHMtPmFjdGl2ZSA9IHMtPmZpbGVfbGVuZ3RoID0gbGVuZ3RoICogc2l6ZW9mIChnZmNf Y2hhcjRfdCk7CiAKZGlmZiAtLWdpdCBhL2xpYmdmb3J0cmFuL2lvL3dyaXRlLmMgYi9saWJn Zm9ydHJhbi9pby93cml0ZS5jCmluZGV4IDVlMDI1YTEwOGIzLi5jOWY4NDkxODY1YiAxMDA2 NDQKLS0tIGEvbGliZ2ZvcnRyYW4vaW8vd3JpdGUuYworKysgYi9saWJnZm9ydHJhbi9pby93 cml0ZS5jCkBAIC0xOTYzLDYgKzE5NjMsNyBAQCBsaXN0X2Zvcm1hdHRlZF93cml0ZV9zY2Fs YXIgKHN0X3BhcmFtZXRlcl9kdCAqZHRwLCBidCB0eXBlLCB2b2lkICpwLCBpbnQga2luZCwK IAogCSAgR0ZDX0RFU0NSSVBUT1JfREFUQSgmdmxpc3QpID0gTlVMTDsKIAkgIEdGQ19ESU1F TlNJT05fU0VUKHZsaXN0LmRpbVswXSwxLCAwLCAwKTsKKwkgIEdGQ19ERVNDUklQVE9SX09G RlNFVCgmdmxpc3QpID0gMDsKIAogCSAgLyogU2V0IGlvc3RhdCwgaW50ZW50KG91dCkuICAq LwogCSAgbm9pb3N0YXQgPSAwOwpAQCAtMjI4OCw2ICsyMjg5LDcgQEAgbm1sX3dyaXRlX29i aiAoc3RfcGFyYW1ldGVyX2R0ICpkdHAsIG5hbWVsaXN0X2luZm8gKm9iaiwgaW5kZXhfdHlw ZSBvZmZzZXQsCiAJCSAgZm9ybWF0dGVkX2R0aW8gZHRpb19wdHIgPSAoZm9ybWF0dGVkX2R0 aW8pb2JqLT5kdGlvX3N1YjsKIAogCQkgIEdGQ19ESU1FTlNJT05fU0VUKHZsaXN0LmRpbVsw XSwxLCAwLCAwKTsKKwkJICBHRkNfREVTQ1JJUFRPUl9PRkZTRVQoJnZsaXN0KSA9IDA7CiAK IAkJICAvKiBTZXQgaW9zdGF0LCBpbnRlbnQob3V0KS4gICovCiAJCSAgbm9pb3N0YXQgPSAw OwpkaWZmIC0tZ2l0IGEvbGliZ2ZvcnRyYW4vbTQvY3NoaWZ0MC5tNCBiL2xpYmdmb3J0cmFu L200L2NzaGlmdDAubTQKaW5kZXggNzc2ZjhmYWQ0NzYuLmQyOTRhMjgyZWRmIDEwMDY0NAot LS0gYS9saWJnZm9ydHJhbi9tNC9jc2hpZnQwLm00CisrKyBiL2xpYmdmb3J0cmFuL200L2Nz aGlmdDAubTQKQEAgLTE2Miw4ICsxNjIsMTYgQEAgY3NoaWZ0MF8ncnR5cGVfY29kZWAgKCdy dHlwZWAgKnJldCwgY29uc3QgJ3J0eXBlYCAqYXJyYXksIHB0cmRpZmZfdCBzaGlmdCwKIAog ICByc3RyaWRlMCA9IHJzdHJpZGVbMF07CiAgIHNzdHJpZGUwID0gc3N0cmlkZVswXTsKLSAg cnB0ciA9IHJldC0+YmFzZV9hZGRyOwotICBzcHRyID0gYXJyYXktPmJhc2VfYWRkcjsKKwor ICBpbmRleF90eXBlIHJzdGFydCA9IEdGQ19ERVNDUklQVE9SX09GRlNFVChyZXQpOworICBm b3IgKGludCBpID0gMDsgaSA8IEdGQ19ERVNDUklQVE9SX1JBTksocmV0KTsgaSsrKQorICAg IHJzdGFydCArPSBHRkNfREVTQ1JJUFRPUl9MQk9VTkQocmV0LGkpICogR0ZDX0RFU0NSSVBU T1JfU1RSSURFKHJldCxpKTsKKyAgcnB0ciA9IHJldC0+YmFzZV9hZGRyICsgcnN0YXJ0Owor ICAKKyAgaW5kZXhfdHlwZSBzc3RhcnQgPSBHRkNfREVTQ1JJUFRPUl9PRkZTRVQoYXJyYXkp OworICBmb3IgKGludCBpID0gMDsgaSA8IEdGQ19ERVNDUklQVE9SX1JBTksoYXJyYXkpOyBp KyspCisgICAgc3N0YXJ0ICs9IEdGQ19ERVNDUklQVE9SX0xCT1VORChhcnJheSxpKSAqIEdG Q19ERVNDUklQVE9SX1NUUklERShhcnJheSxpKTsKKyAgc3B0ciA9IGFycmF5LT5iYXNlX2Fk ZHIgKyBzc3RhcnQ7CiAKICAgLyogQXZvaWQgdGhlIGNvc3RseSBtb2R1bG8gZm9yIHRyaXZp YWxseSBpbi1ib3VuZCBzaGlmdHMuICAqLwogICBpZiAoc2hpZnQgPCAwIHx8IHNoaWZ0ID49 IGxlbikKZGlmZiAtLWdpdCBhL2xpYmdmb3J0cmFuL200L2NzaGlmdDEubTQgYi9saWJnZm9y dHJhbi9tNC9jc2hpZnQxLm00CmluZGV4IDEzNGEyNjA5OTg5Li4zNjBlNDA4ZGJiMyAxMDA2 NDQKLS0tIGEvbGliZ2ZvcnRyYW4vbTQvY3NoaWZ0MS5tNAorKysgYi9saWJnZm9ydHJhbi9t NC9jc2hpZnQxLm00CkBAIC0yNDUsOSArMjQ1LDIxIEBAIGNzaGlmdDEgKGdmY19hcnJheV9j aGFyICogY29uc3QgcmVzdHJpY3QgcmV0LAogICByc3RyaWRlMCA9IHJzdHJpZGVbMF07CiAg IHNzdHJpZGUwID0gc3N0cmlkZVswXTsKICAgaHN0cmlkZTAgPSBoc3RyaWRlWzBdOwotICBy cHRyID0gcmV0LT5iYXNlX2FkZHI7Ci0gIHNwdHIgPSBhcnJheS0+YmFzZV9hZGRyOwotICBo cHRyID0gaC0+YmFzZV9hZGRyOworCisgIGluZGV4X3R5cGUgcnN0YXJ0ID0gR0ZDX0RFU0NS SVBUT1JfT0ZGU0VUKHJldCk7CisgIGZvciAoaW50IGkgPSAwOyBpIDwgR0ZDX0RFU0NSSVBU T1JfUkFOSyhyZXQpOyBpKyspCisgICAgcnN0YXJ0ICs9IEdGQ19ERVNDUklQVE9SX0xCT1VO RChyZXQsaSkgKiBHRkNfREVTQ1JJUFRPUl9TVFJJREUocmV0LGkpOworICBycHRyID0gcmV0 LT5iYXNlX2FkZHIgKyByc3RhcnQgKiBHRkNfREVTQ1JJUFRPUl9TSVpFKHJldCk7CisKKyAg aW5kZXhfdHlwZSBzc3RhcnQgPSBHRkNfREVTQ1JJUFRPUl9PRkZTRVQoYXJyYXkpOworICBm b3IgKGludCBpID0gMDsgaSA8IEdGQ19ERVNDUklQVE9SX1JBTksoYXJyYXkpOyBpKyspCisg ICAgc3N0YXJ0ICs9IEdGQ19ERVNDUklQVE9SX0xCT1VORChhcnJheSxpKSAqIEdGQ19ERVND UklQVE9SX1NUUklERShhcnJheSxpKTsKKyAgc3B0ciA9IGFycmF5LT5iYXNlX2FkZHIgKyBz c3RhcnQgKiBHRkNfREVTQ1JJUFRPUl9TSVpFKGFycmF5KTsKKworICBpbmRleF90eXBlIGhz dGFydCA9IEdGQ19ERVNDUklQVE9SX09GRlNFVChoKTsKKyAgZm9yIChpbnQgaSA9IDA7IGkg PCBHRkNfREVTQ1JJUFRPUl9SQU5LKGgpOyBpKyspCisgICAgaHN0YXJ0ICs9IEdGQ19ERVND UklQVE9SX0xCT1VORChoLGkpICogR0ZDX0RFU0NSSVBUT1JfU1RSSURFKGgsaSk7CisgIGhw dHIgPSBoLT5iYXNlX2FkZHIgKyBoc3RhcnQ7CiAKICAgd2hpbGUgKHJwdHIpCiAgICAgewpk aWZmIC0tZ2l0IGEvbGliZ2ZvcnRyYW4vbTQvY3NoaWZ0MWEubTQgYi9saWJnZm9ydHJhbi9t NC9jc2hpZnQxYS5tNAppbmRleCAyMDkzODEyYjYxMi4uNTc2YzBlNDcxNDYgMTAwNjQ0Ci0t LSBhL2xpYmdmb3J0cmFuL200L2NzaGlmdDFhLm00CisrKyBiL2xpYmdmb3J0cmFuL200L2Nz aGlmdDFhLm00CkBAIC0xMTYsOSArMTE2LDIxIEBAIGNzaGlmdDEncnR5cGVfcXVhbGBfJ2F0 eXBlX2NvZGVgICgnYXR5cGVgICogY29uc3QgcmVzdHJpY3QgcmV0LAogICByc3RyaWRlMCA9 IHJzdHJpZGVbMF07CiAgIHNzdHJpZGUwID0gc3N0cmlkZVswXTsKICAgaHN0cmlkZTAgPSBo c3RyaWRlWzBdOwotICBycHRyID0gcmV0LT5iYXNlX2FkZHI7Ci0gIHNwdHIgPSBhcnJheS0+ YmFzZV9hZGRyOwotICBocHRyID0gaC0+YmFzZV9hZGRyOworCisgIGluZGV4X3R5cGUgcnN0 YXJ0ID0gR0ZDX0RFU0NSSVBUT1JfT0ZGU0VUKHJldCk7CisgIGZvciAoaW50IGkgPSAwOyBp IDwgR0ZDX0RFU0NSSVBUT1JfUkFOSyhyZXQpOyBpKyspCisgICAgcnN0YXJ0ICs9IEdGQ19E RVNDUklQVE9SX0xCT1VORChyZXQsaSkgKiBHRkNfREVTQ1JJUFRPUl9TVFJJREUocmV0LGkp OworICBycHRyID0gcmV0LT5iYXNlX2FkZHIgKyByc3RhcnQ7CisKKyAgaW5kZXhfdHlwZSBz c3RhcnQgPSBHRkNfREVTQ1JJUFRPUl9PRkZTRVQoYXJyYXkpOworICBmb3IgKGludCBpID0g MDsgaSA8IEdGQ19ERVNDUklQVE9SX1JBTksoYXJyYXkpOyBpKyspCisgICAgc3N0YXJ0ICs9 IEdGQ19ERVNDUklQVE9SX0xCT1VORChhcnJheSxpKSAqIEdGQ19ERVNDUklQVE9SX1NUUklE RShhcnJheSxpKTsKKyAgc3B0ciA9IGFycmF5LT5iYXNlX2FkZHIgKyBzc3RhcnQ7CisKKyAg aW5kZXhfdHlwZSBoc3RhcnQgPSBHRkNfREVTQ1JJUFRPUl9PRkZTRVQoaCk7CisgIGZvciAo aW50IGkgPSAwOyBpIDwgR0ZDX0RFU0NSSVBUT1JfUkFOSyhoKTsgaSsrKQorICAgIGhzdGFy dCArPSBHRkNfREVTQ1JJUFRPUl9MQk9VTkQoaCxpKSAqIEdGQ19ERVNDUklQVE9SX1NUUklE RShoLGkpOworICBocHRyID0gaC0+YmFzZV9hZGRyICsgaHN0YXJ0OwogCiAgIHdoaWxlIChy cHRyKQogICAgIHsKZGlmZiAtLWdpdCBhL2xpYmdmb3J0cmFuL200L2Vvc2hpZnQxLm00IGIv bGliZ2ZvcnRyYW4vbTQvZW9zaGlmdDEubTQKaW5kZXggZDY2MmRjYzUxNWUuLmYxYTliZjQ2 OWViIDEwMDY0NAotLS0gYS9saWJnZm9ydHJhbi9tNC9lb3NoaWZ0MS5tNAorKysgYi9saWJn Zm9ydHJhbi9tNC9lb3NoaWZ0MS5tNApAQCAtMTU2LDkgKzE1NiwyMSBAQCBlb3NoaWZ0MSAo Z2ZjX2FycmF5X2NoYXIgKiBjb25zdCByZXN0cmljdCByZXQsCiAgIHJzdHJpZGUwID0gcnN0 cmlkZVswXTsKICAgc3N0cmlkZTAgPSBzc3RyaWRlWzBdOwogICBoc3RyaWRlMCA9IGhzdHJp ZGVbMF07Ci0gIHJwdHIgPSByZXQtPmJhc2VfYWRkcjsKLSAgc3B0ciA9IGFycmF5LT5iYXNl X2FkZHI7Ci0gIGhwdHIgPSBoLT5iYXNlX2FkZHI7CisKKyAgaW5kZXhfdHlwZSByc3RhcnQg PSBHRkNfREVTQ1JJUFRPUl9PRkZTRVQocmV0KTsKKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBH RkNfREVTQ1JJUFRPUl9SQU5LKHJldCk7IGkrKykKKyAgICByc3RhcnQgKz0gR0ZDX0RFU0NS SVBUT1JfTEJPVU5EKHJldCxpKSAqIEdGQ19ERVNDUklQVE9SX1NUUklERShyZXQsaSk7Cisg IHJwdHIgPSByZXQtPmJhc2VfYWRkciArIHJzdGFydCAqIEdGQ19ERVNDUklQVE9SX1NJWkUo cmV0KTsKKworICBpbmRleF90eXBlIHNzdGFydCA9IEdGQ19ERVNDUklQVE9SX09GRlNFVChh cnJheSk7CisgIGZvciAoaW50IGkgPSAwOyBpIDwgR0ZDX0RFU0NSSVBUT1JfUkFOSyhhcnJh eSk7IGkrKykKKyAgICBzc3RhcnQgKz0gR0ZDX0RFU0NSSVBUT1JfTEJPVU5EKGFycmF5LGkp ICogR0ZDX0RFU0NSSVBUT1JfU1RSSURFKGFycmF5LGkpOworICBzcHRyID0gYXJyYXktPmJh c2VfYWRkciArIHNzdGFydCAqIEdGQ19ERVNDUklQVE9SX1NJWkUoYXJyYXkpOyAKKworICBp bmRleF90eXBlIGhzdGFydCA9IEdGQ19ERVNDUklQVE9SX09GRlNFVChoKTsKKyAgZm9yIChp bnQgaSA9IDA7IGkgPCBHRkNfREVTQ1JJUFRPUl9SQU5LKGgpOyBpKyspCisgICAgaHN0YXJ0 ICs9IEdGQ19ERVNDUklQVE9SX0xCT1VORChoLGkpICogR0ZDX0RFU0NSSVBUT1JfU1RSSURF KGgsaSk7CisgIGhwdHIgPSBoLT5iYXNlX2FkZHIgKyBoc3RhcnQ7CiAKICAgd2hpbGUgKHJw dHIpCiAgICAgewpkaWZmIC0tZ2l0IGEvbGliZ2ZvcnRyYW4vbTQvZW9zaGlmdDMubTQgYi9s aWJnZm9ydHJhbi9tNC9lb3NoaWZ0My5tNAppbmRleCA5YjE4YTA0Y2RmZS4uOTRmZTJlNTg4 ZWYgMTAwNjQ0Ci0tLSBhL2xpYmdmb3J0cmFuL200L2Vvc2hpZnQzLm00CisrKyBiL2xpYmdm b3J0cmFuL200L2Vvc2hpZnQzLm00CkBAIC0xNjcsMTEgKzE2NywyOSBAQCBlb3NoaWZ0MyAo Z2ZjX2FycmF5X2NoYXIgKiBjb25zdCByZXN0cmljdCByZXQsCiAgIHNzdHJpZGUwID0gc3N0 cmlkZVswXTsKICAgaHN0cmlkZTAgPSBoc3RyaWRlWzBdOwogICBic3RyaWRlMCA9IGJzdHJp ZGVbMF07Ci0gIHJwdHIgPSByZXQtPmJhc2VfYWRkcjsKLSAgc3B0ciA9IGFycmF5LT5iYXNl X2FkZHI7Ci0gIGhwdHIgPSBoLT5iYXNlX2FkZHI7CisKKyAgaW5kZXhfdHlwZSByc3RhcnQg PSBHRkNfREVTQ1JJUFRPUl9PRkZTRVQocmV0KTsKKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBH RkNfREVTQ1JJUFRPUl9SQU5LKHJldCk7IGkrKykKKyAgICByc3RhcnQgKz0gR0ZDX0RFU0NS SVBUT1JfTEJPVU5EKHJldCxpKSAqIEdGQ19ERVNDUklQVE9SX1NUUklERShyZXQsaSk7Cisg IHJwdHIgPSByZXQtPmJhc2VfYWRkciArIHJzdGFydCAqIEdGQ19ERVNDUklQVE9SX1NJWkUo cmV0KTsKKworICBpbmRleF90eXBlIHNzdGFydCA9IEdGQ19ERVNDUklQVE9SX09GRlNFVChh cnJheSk7CisgIGZvciAoaW50IGkgPSAwOyBpIDwgR0ZDX0RFU0NSSVBUT1JfUkFOSyhhcnJh eSk7IGkrKykKKyAgICBzc3RhcnQgKz0gR0ZDX0RFU0NSSVBUT1JfTEJPVU5EKGFycmF5LGkp ICogR0ZDX0RFU0NSSVBUT1JfU1RSSURFKGFycmF5LGkpOworICBzcHRyID0gYXJyYXktPmJh c2VfYWRkciArIHNzdGFydCAqIEdGQ19ERVNDUklQVE9SX1NJWkUoYXJyYXkpOworCisgIGlu ZGV4X3R5cGUgaHN0YXJ0ID0gR0ZDX0RFU0NSSVBUT1JfT0ZGU0VUKGgpOworICBmb3IgKGlu dCBpID0gMDsgaSA8IEdGQ19ERVNDUklQVE9SX1JBTksoaCk7IGkrKykKKyAgICBoc3RhcnQg Kz0gR0ZDX0RFU0NSSVBUT1JfTEJPVU5EKGgsaSkgKiBHRkNfREVTQ1JJUFRPUl9TVFJJREUo aCxpKTsKKyAgaHB0ciA9IGgtPmJhc2VfYWRkciArIGhzdGFydDsKKwogICBpZiAoYm91bmQp Ci0gICAgYnB0ciA9IGJvdW5kLT5iYXNlX2FkZHI7CisgICAgeworICAgICAgaW5kZXhfdHlw ZSBic3RhcnQgPSBHRkNfREVTQ1JJUFRPUl9PRkZTRVQoYm91bmQpOworICAgICAgZm9yIChp bnQgaSA9IDA7IGkgPCBHRkNfREVTQ1JJUFRPUl9SQU5LKGJvdW5kKTsgaSsrKQorCWJzdGFy dCArPSBHRkNfREVTQ1JJUFRPUl9MQk9VTkQoYm91bmQsaSkgKiBHRkNfREVTQ1JJUFRPUl9T VFJJREUoYm91bmQsaSk7CisgICAgICBicHRyID0gYm91bmQtPmJhc2VfYWRkciArIGJzdGFy dCAqIEdGQ19ERVNDUklQVE9SX1NJWkUoYm91bmQpOworICAgIH0KICAgZWxzZQogICAgIGJw dHIgPSBOVUxMOwogCmRpZmYgLS1naXQgYS9saWJnZm9ydHJhbi9tNC9pZmluZGxvYzAubTQg Yi9saWJnZm9ydHJhbi9tNC9pZmluZGxvYzAubTQKaW5kZXggMzYwZGJiMTdmZWMuLjczNDAz NTc2ZDMyIDEwMDY0NAotLS0gYS9saWJnZm9ydHJhbi9tNC9pZmluZGxvYzAubTQKKysrIGIv bGliZ2ZvcnRyYW4vbTQvaWZpbmRsb2MwLm00CkBAIC01OCw3ICs1OCwxMSBAQCBzZWUgdGhl IGZpbGVzIENPUFlJTkczIGFuZCBDT1BZSU5HLlJVTlRJTUUgcmVzcGVjdGl2ZWx5LiAgSWYg bm90LCBzZWUKICAgICB9CiAKICAgZHN0cmlkZSA9IEdGQ19ERVNDUklQVE9SX1NUUklERShy ZXRhcnJheSwwKTsKLSAgZGVzdCA9IHJldGFycmF5LT5iYXNlX2FkZHI7CisKKyAgaW5kZXhf dHlwZSByZXRzdGFydCA9IEdGQ19ERVNDUklQVE9SX09GRlNFVChyZXRhcnJheSk7CisgIGZv ciAoaW50IGkgPSAwOyBpIDwgR0ZDX0RFU0NSSVBUT1JfUkFOSyhyZXRhcnJheSk7IGkrKykK KyAgICByZXRzdGFydCArPSBHRkNfREVTQ1JJUFRPUl9MQk9VTkQocmV0YXJyYXksaSkgKiBH RkNfREVTQ1JJUFRPUl9TVFJJREUocmV0YXJyYXksaSk7CisgIGRlc3QgPSByZXRhcnJheS0+ YmFzZV9hZGRyICsgcmV0c3RhcnQ7CiAKICAgLyogU2V0IHRoZSByZXR1cm4gdmFsdWUuICAq LwogICBmb3IgKG4gPSAwOyBuIDwgcmFuazsgbisrKQpAQCAtNzcsOSArODEsMTQgQEAgc2Vl IHRoZSBmaWxlcyBDT1BZSU5HMyBhbmQgQ09QWUlORy5SVU5USU1FIHJlc3BlY3RpdmVseS4g IElmIG5vdCwgc2VlCiAgICAgZm9yIChuID0gMDsgbiA8IHJhbms7IG4rKykKICAgICAgIGNv dW50W25dID0gMDsKIAorICBpbmRleF90eXBlIGFyc3RhcnQgPSBHRkNfREVTQ1JJUFRPUl9P RkZTRVQoYXJyYXkpOworICBmb3IgKGludCBpID0gMDsgaSA8IEdGQ19ERVNDUklQVE9SX1JB TksoYXJyYXkpOyBpKyspCisgICAgYXJzdGFydCArPSBHRkNfREVTQ1JJUFRPUl9MQk9VTkQo YXJyYXksaSkgKiBHRkNfREVTQ1JJUFRPUl9TVFJJREUoYXJyYXksaSk7CisgIGJhc2UgPSBh cnJheS0+YmFzZV9hZGRyICsgYXJzdGFydDsKKwogICBpZiAoYmFjaykKICAgICB7Ci0gICAg ICBiYXNlID0gYXJyYXktPmJhc2VfYWRkciArIChzeiAtIDEpICogJ2Jhc2VfbXVsdGAnYDsK KyAgICAgIGJhc2UgPSBiYXNlICsgKHN6IC0gMSkgKiAnYmFzZV9tdWx0YCdgOwogCiAgICAg ICB3aGlsZSAoMSkKICAgICAgICAgewpAQCAtMTE3LDcgKzEyNiw2IEBAIHNlZSB0aGUgZmls ZXMgQ09QWUlORzMgYW5kIENPUFlJTkcuUlVOVElNRSByZXNwZWN0aXZlbHkuICBJZiBub3Qs IHNlZQogICAgIH0KICAgZWxzZQogICAgIHsKLSAgICAgIGJhc2UgPSBhcnJheS0+YmFzZV9h ZGRyOwogICAgICAgd2hpbGUgKDEpCiAgICAgICAgIHsKIAkgIGRvCkBAIC0xOTQsNyArMjAy LDEwIEBAIHNlZSB0aGUgZmlsZXMgQ09QWUlORzMgYW5kIENPUFlJTkcuUlVOVElNRSByZXNw ZWN0aXZlbHkuICBJZiBub3QsIHNlZQogCiAgIG1hc2tfa2luZCA9IEdGQ19ERVNDUklQVE9S X1NJWkUgKG1hc2spOwogCi0gIG1iYXNlID0gbWFzay0+YmFzZV9hZGRyOworICBpbmRleF90 eXBlIG1zdGFydCA9IEdGQ19ERVNDUklQVE9SX09GRlNFVChtYXNrKTsKKyAgZm9yIChpbnQg aSA9IDA7IGkgPCBHRkNfREVTQ1JJUFRPUl9SQU5LKG1hc2spOyBpKyspCisgICAgbXN0YXJ0 ICs9IEdGQ19ERVNDUklQVE9SX0xCT1VORChtYXNrLGkpICogR0ZDX0RFU0NSSVBUT1JfU1RS SURFKG1hc2ssaSk7CisgIG1iYXNlID0gbWFzay0+YmFzZV9hZGRyICsgbXN0YXJ0OwogCiAg IGlmIChtYXNrX2tpbmQgPT0gMSB8fCBtYXNrX2tpbmQgPT0gMiB8fCBtYXNrX2tpbmQgPT0g NCB8fCBtYXNrX2tpbmQgPT0gOAogI2lmZGVmIEhBVkVfR0ZDX0xPR0lDQUxfMTYKQEAgLTIy Niw5ICsyMzcsMTQgQEAgc2VlIHRoZSBmaWxlcyBDT1BZSU5HMyBhbmQgQ09QWUlORy5SVU5U SU1FIHJlc3BlY3RpdmVseS4gIElmIG5vdCwgc2VlCiAgICAgZm9yIChuID0gMDsgbiA8IHJh bms7IG4rKykKICAgICAgIGNvdW50W25dID0gMDsKIAorICBpbmRleF90eXBlIGFyc3RhcnQg PSBHRkNfREVTQ1JJUFRPUl9PRkZTRVQoYXJyYXkpOworICBmb3IgKGludCBpID0gMDsgaSA8 IEdGQ19ERVNDUklQVE9SX1JBTksoYXJyYXkpOyBpKyspCisgICAgYXJzdGFydCArPSBHRkNf REVTQ1JJUFRPUl9MQk9VTkQoYXJyYXksaSkgKiBHRkNfREVTQ1JJUFRPUl9TVFJJREUoYXJy YXksaSk7CisgIGJhc2UgPSBhcnJheS0+YmFzZV9hZGRyICsgYXJzdGFydDsKKwogICBpZiAo YmFjaykKICAgICB7Ci0gICAgICBiYXNlID0gYXJyYXktPmJhc2VfYWRkciArIChzeiAtIDEp ICogJ2Jhc2VfbXVsdGAnYDsKKyAgICAgIGJhc2UgPSBiYXNlICsgKHN6IC0gMSkgKiAnYmFz ZV9tdWx0YCdgOwogICAgICAgbWJhc2UgPSBtYmFzZSArIChzeiAtIDEpICogbWFza19raW5k OwogICAgICAgd2hpbGUgKDEpCiAgICAgICAgIHsKQEAgLTI2OSw3ICsyODUsNiBAQCBzZWUg dGhlIGZpbGVzIENPUFlJTkczIGFuZCBDT1BZSU5HLlJVTlRJTUUgcmVzcGVjdGl2ZWx5LiAg SWYgbm90LCBzZWUKICAgICB9CiAgIGVsc2UKICAgICB7Ci0gICAgICBiYXNlID0gYXJyYXkt PmJhc2VfYWRkcjsKICAgICAgIHdoaWxlICgxKQogICAgICAgICB7CiAJICBkbwpAQCAtMzQy LDcgKzM1NywxMiBAQCBzZWUgdGhlIGZpbGVzIENPUFlJTkczIGFuZCBDT1BZSU5HLlJVTlRJ TUUgcmVzcGVjdGl2ZWx5LiAgSWYgbm90LCBzZWUKICAgICB9CiAKICAgZHN0cmlkZSA9IEdG Q19ERVNDUklQVE9SX1NUUklERShyZXRhcnJheSwwKTsKLSAgZGVzdCA9IHJldGFycmF5LT5i YXNlX2FkZHI7CisKKyAgaW5kZXhfdHlwZSByZXRzdGFydCA9IEdGQ19ERVNDUklQVE9SX09G RlNFVChyZXRhcnJheSk7CisgIGZvciAoaW50IGkgPSAwOyBpIDwgR0ZDX0RFU0NSSVBUT1Jf UkFOSyhyZXRhcnJheSk7IGkrKykKKyAgICByZXRzdGFydCArPSBHRkNfREVTQ1JJUFRPUl9M Qk9VTkQocmV0YXJyYXksaSkgKiBHRkNfREVTQ1JJUFRPUl9TVFJJREUocmV0YXJyYXksaSk7 CisgIGRlc3QgPSByZXRhcnJheS0+YmFzZV9hZGRyICsgcmV0c3RhcnQ7CisKICAgZm9yIChu ID0gMDsgbjxyYW5rOyBuKyspCiAgICAgZGVzdFtuICogZHN0cmlkZV0gPSAwIDsKIH0KZGlm ZiAtLWdpdCBhL2xpYmdmb3J0cmFuL200L2lmaW5kbG9jMS5tNCBiL2xpYmdmb3J0cmFuL200 L2lmaW5kbG9jMS5tNAppbmRleCAwZDk4MTNmM2U3ZS4uYjA0MDU2OTlhZjkgMTAwNjQ0Ci0t LSBhL2xpYmdmb3J0cmFuL200L2lmaW5kbG9jMS5tNAorKysgYi9saWJnZm9ydHJhbi9tNC9p ZmluZGxvYzEubTQKQEAgLTEyNCwxMCArMTI0LDE4IEBAIHNlZSB0aGUgZmlsZXMgQ09QWUlO RzMgYW5kIENPUFlJTkcuUlVOVElNRSByZXNwZWN0aXZlbHkuICBJZiBub3QsIHNlZQogCXJl dHVybjsKICAgICB9CiAKLSAgZGVzdCA9IHJldGFycmF5LT5iYXNlX2FkZHI7CisgIGluZGV4 X3R5cGUgcmV0c3RhcnQgPSBHRkNfREVTQ1JJUFRPUl9PRkZTRVQocmV0YXJyYXkpOworICBm b3IgKGludCBpID0gMDsgaSA8IEdGQ19ERVNDUklQVE9SX1JBTksocmV0YXJyYXkpOyBpKysp CisgICAgcmV0c3RhcnQgKz0gR0ZDX0RFU0NSSVBUT1JfTEJPVU5EKHJldGFycmF5LGkpICog R0ZDX0RFU0NSSVBUT1JfU1RSSURFKHJldGFycmF5LGkpOworICBkZXN0ID0gcmV0YXJyYXkt PmJhc2VfYWRkciArIHJldHN0YXJ0OworCiAgIGNvbnRpbnVlX2xvb3AgPSAxOwogCi0gIGJh c2UgPSBhcnJheS0+YmFzZV9hZGRyOworICBpbmRleF90eXBlIGFyc3RhcnQgPSBHRkNfREVT Q1JJUFRPUl9PRkZTRVQoYXJyYXkpOworICBmb3IgKGludCBpID0gMDsgaSA8IEdGQ19ERVND UklQVE9SX1JBTksoYXJyYXkpOyBpKyspCisgICAgYXJzdGFydCArPSBHRkNfREVTQ1JJUFRP Ul9MQk9VTkQoYXJyYXksaSkgKiBHRkNfREVTQ1JJUFRPUl9TVFJJREUoYXJyYXksaSk7Cisg IGJhc2UgPSBhcnJheS0+YmFzZV9hZGRyICsgYXJzdGFydDsKKwogICB3aGlsZSAoY29udGlu dWVfbG9vcCkKICAgICB7CiAgICAgICBjb25zdCAnYXR5cGVfbmFtZWAnYCAqIHJlc3RyaWN0 IHNyYzsKQEAgLTMwMiwxMCArMzEwLDE4IEBAIHNlZSB0aGUgZmlsZXMgQ09QWUlORzMgYW5k IENPUFlJTkcuUlVOVElNRSByZXNwZWN0aXZlbHkuICBJZiBub3QsIHNlZQogCXJldHVybjsK ICAgICB9CiAKLSAgZGVzdCA9IHJldGFycmF5LT5iYXNlX2FkZHI7CisgIGluZGV4X3R5cGUg cmV0c3RhcnQgPSBHRkNfREVTQ1JJUFRPUl9PRkZTRVQocmV0YXJyYXkpOworICBmb3IgKGlu dCBpID0gMDsgaSA8IEdGQ19ERVNDUklQVE9SX1JBTksocmV0YXJyYXkpOyBpKyspCisgICAg cmV0c3RhcnQgKz0gR0ZDX0RFU0NSSVBUT1JfTEJPVU5EKHJldGFycmF5LGkpICogR0ZDX0RF U0NSSVBUT1JfU1RSSURFKHJldGFycmF5LGkpOworICBkZXN0ID0gcmV0YXJyYXktPmJhc2Vf YWRkciArIHJldHN0YXJ0OworCiAgIGNvbnRpbnVlX2xvb3AgPSAxOwogCi0gIGJhc2UgPSBh cnJheS0+YmFzZV9hZGRyOworICBpbmRleF90eXBlIGFyc3RhcnQgPSBHRkNfREVTQ1JJUFRP Ul9PRkZTRVQoYXJyYXkpOworICBmb3IgKGludCBpID0gMDsgaSA8IEdGQ19ERVNDUklQVE9S X1JBTksoYXJyYXkpOyBpKyspCisgICAgYXJzdGFydCArPSBHRkNfREVTQ1JJUFRPUl9MQk9V TkQoYXJyYXksaSkgKiBHRkNfREVTQ1JJUFRPUl9TVFJJREUoYXJyYXksaSk7CisgIGJhc2Ug PSBhcnJheS0+YmFzZV9hZGRyICsgYXJzdGFydDsKKwogICB3aGlsZSAoY29udGludWVfbG9v cCkKICAgICB7CiAgICAgICBjb25zdCAnYXR5cGVfbmFtZWAnYCAqIHJlc3RyaWN0IHNyYzsK QEAgLTQ2NCw3ICs0ODAsMTIgQEAgc2VlIHRoZSBmaWxlcyBDT1BZSU5HMyBhbmQgQ09QWUlO Ry5SVU5USU1FIHJlc3BlY3RpdmVseS4gIElmIG5vdCwgc2VlCiAgICAgICBpZiAoZXh0ZW50 W25dIDw9IDApCiAJcmV0dXJuOwogICAgIH0KLSAgZGVzdCA9IHJldGFycmF5LT5iYXNlX2Fk ZHI7CisKKyAgaW5kZXhfdHlwZSByZXRzdGFydCA9IEdGQ19ERVNDUklQVE9SX09GRlNFVChy ZXRhcnJheSk7CisgIGZvciAoaW50IGkgPSAwOyBpIDwgR0ZDX0RFU0NSSVBUT1JfUkFOSyhy ZXRhcnJheSk7IGkrKykKKyAgICByZXRzdGFydCArPSBHRkNfREVTQ1JJUFRPUl9MQk9VTkQo cmV0YXJyYXksaSkgKiBHRkNfREVTQ1JJUFRPUl9TVFJJREUocmV0YXJyYXksaSk7CisgIGRl c3QgPSByZXRhcnJheS0+YmFzZV9hZGRyICsgcmV0c3RhcnQ7CisKICAgY29udGludWVfbG9v cCA9IDE7CiAKICAgd2hpbGUgKGNvbnRpbnVlX2xvb3ApCmRpZmYgLS1naXQgYS9saWJnZm9y dHJhbi9tNC9pZmluZGxvYzIubTQgYi9saWJnZm9ydHJhbi9tNC9pZmluZGxvYzIubTQKaW5k ZXggMDBmZTU5YzgxMjQuLjhkYzA3Zjg0NWJiIDEwMDY0NAotLS0gYS9saWJnZm9ydHJhbi9t NC9pZmluZGxvYzIubTQKKysrIGIvbGliZ2ZvcnRyYW4vbTQvaWZpbmRsb2MyLm00CkBAIC0z NywxMCArMzcsMTUgQEAgc2VlIHRoZSBmaWxlcyBDT1BZSU5HMyBhbmQgQ09QWUlORy5SVU5U SU1FIHJlc3BlY3RpdmVseS4gIElmIG5vdCwgc2VlCiAgIGlmIChleHRlbnQgPD0gMCkKICAg ICByZXR1cm4gMDsKIAorICBpbmRleF90eXBlIGFyc3RhcnQgPSBHRkNfREVTQ1JJUFRPUl9P RkZTRVQoYXJyYXkpOworICBmb3IgKGludCBpID0gMDsgaSA8IEdGQ19ERVNDUklQVE9SX1JB TksoYXJyYXkpOyBpKyspCisgICAgYXJzdGFydCArPSBHRkNfREVTQ1JJUFRPUl9MQk9VTkQo YXJyYXksaSkgKiBHRkNfREVTQ1JJUFRPUl9TVFJJREUoYXJyYXksaSk7CisgIHNyYyA9IGFy cmF5LT5iYXNlX2FkZHIgKyBhcnN0YXJ0OworCiAgIHNzdHJpZGUgPSBHRkNfREVTQ1JJUFRP Ul9TVFJJREUoYXJyYXksMCkgKiAnYmFzZV9tdWx0YCdgOwogICBpZiAoYmFjaykKICAgICB7 Ci0gICAgICBzcmMgPSBhcnJheS0+YmFzZV9hZGRyICsgKGV4dGVudCAtIDEpICogc3N0cmlk ZTsKKyAgICAgIHNyYyA9IHNyYyArIChleHRlbnQgLSAxKSAqIHNzdHJpZGU7CiAgICAgICBm b3IgKGkgPSBleHRlbnQ7IGkgPj0gMDsgaS0tKQogCXsKIAkgIGlmICgnY29tcGFyaXNvbmAn YCkKQEAgLTUwLDcgKzU1LDYgQEAgc2VlIHRoZSBmaWxlcyBDT1BZSU5HMyBhbmQgQ09QWUlO Ry5SVU5USU1FIHJlc3BlY3RpdmVseS4gIElmIG5vdCwgc2VlCiAgICAgfQogICBlbHNlCiAg ICAgewotICAgICAgc3JjID0gYXJyYXktPmJhc2VfYWRkcjsKICAgICAgIGZvciAoaSA9IDE7 IGkgPD0gZXh0ZW50OyBpKyspCiAJewogCSAgaWYgKCdjb21wYXJpc29uYCdgKQpAQCAtNzYs NyArODAsMTEgQEAgc2VlIHRoZSBmaWxlcyBDT1BZSU5HMyBhbmQgQ09QWUlORy5SVU5USU1F IHJlc3BlY3RpdmVseS4gIElmIG5vdCwgc2VlCiAgICAgcmV0dXJuIDA7CiAKICAgbWFza19r aW5kID0gR0ZDX0RFU0NSSVBUT1JfU0laRSAobWFzayk7Ci0gIG1iYXNlID0gbWFzay0+YmFz ZV9hZGRyOworCisgIGluZGV4X3R5cGUgbXN0YXJ0ID0gR0ZDX0RFU0NSSVBUT1JfT0ZGU0VU KG1hc2spOworICBmb3IgKGludCBpID0gMDsgaSA8IEdGQ19ERVNDUklQVE9SX1JBTksobWFz ayk7IGkrKykKKyAgICBtc3RhcnQgKz0gR0ZDX0RFU0NSSVBUT1JfTEJPVU5EKG1hc2ssaSkg KiBHRkNfREVTQ1JJUFRPUl9TVFJJREUobWFzayxpKTsKKyAgbWJhc2UgPSBtYXNrLT5iYXNl X2FkZHIgKyBtc3RhcnQ7CiAKICAgaWYgKG1hc2tfa2luZCA9PSAxIHx8IG1hc2tfa2luZCA9 PSAyIHx8IG1hc2tfa2luZCA9PSA0IHx8IG1hc2tfa2luZCA9PSA4CiAjaWZkZWYgSEFWRV9H RkNfTE9HSUNBTF8xNgpAQCAtOTAsOSArOTgsMTQgQEAgc2VlIHRoZSBmaWxlcyBDT1BZSU5H MyBhbmQgQ09QWUlORy5SVU5USU1FIHJlc3BlY3RpdmVseS4gIElmIG5vdCwgc2VlCiAgIHNz dHJpZGUgPSBHRkNfREVTQ1JJUFRPUl9TVFJJREUoYXJyYXksMCkgKiAnYmFzZV9tdWx0YCdg OwogICBtc3RyaWRlID0gR0ZDX0RFU0NSSVBUT1JfU1RSSURFX0JZVEVTKG1hc2ssMCk7CiAK KyAgaW5kZXhfdHlwZSBhcnN0YXJ0ID0gR0ZDX0RFU0NSSVBUT1JfT0ZGU0VUKGFycmF5KTsK KyAgZm9yIChpbnQgaSA9IDA7IGkgPCBHRkNfREVTQ1JJUFRPUl9SQU5LKGFycmF5KTsgaSsr KQorICAgIGFyc3RhcnQgKz0gR0ZDX0RFU0NSSVBUT1JfTEJPVU5EKGFycmF5LGkpICogR0ZD X0RFU0NSSVBUT1JfU1RSSURFKGFycmF5LGkpOworICBzcmMgPSBhcnJheS0+YmFzZV9hZGRy ICsgYXJzdGFydDsKKwogICBpZiAoYmFjaykKICAgICB7Ci0gICAgICBzcmMgPSBhcnJheS0+ YmFzZV9hZGRyICsgKGV4dGVudCAtIDEpICogc3N0cmlkZTsKKyAgICAgIHNyYyA9IHNyYyAr IChleHRlbnQgLSAxKSAqIHNzdHJpZGU7CiAgICAgICBtYmFzZSArPSAoZXh0ZW50IC0gMSkg KiBtc3RyaWRlOwogICAgICAgZm9yIChpID0gZXh0ZW50OyBpID49IDA7IGktLSkKIAl7CkBA IC0xMDQsNyArMTE3LDYgQEAgc2VlIHRoZSBmaWxlcyBDT1BZSU5HMyBhbmQgQ09QWUlORy5S VU5USU1FIHJlc3BlY3RpdmVseS4gIElmIG5vdCwgc2VlCiAgICAgfQogICBlbHNlCiAgICAg ewotICAgICAgc3JjID0gYXJyYXktPmJhc2VfYWRkcjsKICAgICAgIGZvciAoaSA9IDE7IGkg PD0gZXh0ZW50OyBpKyspCiAJewogCSAgaWYgKCptYmFzZSAmJiAoJ2NvbXBhcmlzb25gJ2Ap KQpkaWZmIC0tZ2l0IGEvbGliZ2ZvcnRyYW4vbTQvaWZ1bmN0aW9uLXMubTQgYi9saWJnZm9y dHJhbi9tNC9pZnVuY3Rpb24tcy5tNAppbmRleCAxNjYxNWFhMjkwZi4uODA0OGYxM2ZjMjgg MTAwNjQ0Ci0tLSBhL2xpYmdmb3J0cmFuL200L2lmdW5jdGlvbi1zLm00CisrKyBiL2xpYmdm b3J0cmFuL200L2lmdW5jdGlvbi1zLm00CkBAIC0xMzcsOCArMTM3LDE1IEBAIHZvaWQKIAly ZXR1cm47CiAgICAgfQogCi0gIGJhc2UgPSBhcnJheS0+YmFzZV9hZGRyOwotICBkZXN0ID0g cmV0YXJyYXktPmJhc2VfYWRkcjsKKyAgaW5kZXhfdHlwZSBhcnN0YXJ0ID0gR0ZDX0RFU0NS SVBUT1JfT0ZGU0VUKGFycmF5KTsKKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBHRkNfREVTQ1JJ UFRPUl9SQU5LKGFycmF5KTsgaSsrKQorICAgIGFyc3RhcnQgKz0gR0ZDX0RFU0NSSVBUT1Jf TEJPVU5EKGFycmF5LGkpICogR0ZDX0RFU0NSSVBUT1JfU1RSSURFKGFycmF5LGkpOworICBi YXNlID0gYXJyYXktPmJhc2VfYWRkciArIGFyc3RhcnQ7CisKKyAgaW5kZXhfdHlwZSByZXRz dGFydCA9IEdGQ19ERVNDUklQVE9SX09GRlNFVChyZXRhcnJheSk7CisgIGZvciAoaW50IGkg PSAwOyBpIDwgR0ZDX0RFU0NSSVBUT1JfUkFOSyhyZXRhcnJheSk7IGkrKykKKyAgICByZXRz dGFydCArPSBHRkNfREVTQ1JJUFRPUl9MQk9VTkQocmV0YXJyYXksaSkgKiBHRkNfREVTQ1JJ UFRPUl9TVFJJREUocmV0YXJyYXksaSk7CisgIGRlc3QgPSByZXRhcnJheS0+YmFzZV9hZGRy ICsgcmV0c3RhcnQ7CiAKICAgY29udGludWVfbG9vcCA9IDE7CiAgIHdoaWxlIChjb250aW51 ZV9sb29wKQpAQCAtMjQ3LDcgKzI1NCwxMCBAQCBtJ25hbWVgJ3J0eXBlX3F1YWxgXydhdHlw ZV9jb2RlYCAoJ3J0eXBlYCAqIGNvbnN0IHJlc3RyaWN0IHJldGFycmF5LAogICBpZiAobGVu IDw9IDApCiAgICAgcmV0dXJuOwogCi0gIG1iYXNlID0gbWFzay0+YmFzZV9hZGRyOworICBp bmRleF90eXBlIG1zdGFydCA9IEdGQ19ERVNDUklQVE9SX09GRlNFVChtYXNrKTsKKyAgZm9y IChpbnQgaSA9IDA7IGkgPCBHRkNfREVTQ1JJUFRPUl9SQU5LKG1hc2spOyBpKyspCisgICAg bXN0YXJ0ICs9IEdGQ19ERVNDUklQVE9SX0xCT1VORChtYXNrLGkpICogR0ZDX0RFU0NSSVBU T1JfU1RSSURFKG1hc2ssaSk7CisgIG1iYXNlID0gbWFzay0+YmFzZV9hZGRyICsgbXN0YXJ0 OwogCiAgIG1hc2tfa2luZCA9IEdGQ19ERVNDUklQVE9SX1NJWkUgKG1hc2spOwogCkBAIC0z MzUsOCArMzQ1LDE1IEBAIG0nbmFtZWAncnR5cGVfcXVhbGBfJ2F0eXBlX2NvZGVgICgncnR5 cGVgICogY29uc3QgcmVzdHJpY3QgcmV0YXJyYXksCiAJcmV0dXJuOwogICAgIH0KIAotICBk ZXN0ID0gcmV0YXJyYXktPmJhc2VfYWRkcjsKLSAgYmFzZSA9IGFycmF5LT5iYXNlX2FkZHI7 CisgIGluZGV4X3R5cGUgcmV0c3RhcnQgPSBHRkNfREVTQ1JJUFRPUl9PRkZTRVQocmV0YXJy YXkpOworICBmb3IgKGludCBpID0gMDsgaSA8IEdGQ19ERVNDUklQVE9SX1JBTksocmV0YXJy YXkpOyBpKyspCisgICAgcmV0c3RhcnQgKz0gR0ZDX0RFU0NSSVBUT1JfTEJPVU5EKHJldGFy cmF5LGkpICogR0ZDX0RFU0NSSVBUT1JfU1RSSURFKHJldGFycmF5LGkpOworICBkZXN0ID0g cmV0YXJyYXktPmJhc2VfYWRkciArIHJldHN0YXJ0OworCisgIGluZGV4X3R5cGUgYXJzdGFy dCA9IEdGQ19ERVNDUklQVE9SX09GRlNFVChhcnJheSk7CisgIGZvciAoaW50IGkgPSAwOyBp IDwgR0ZDX0RFU0NSSVBUT1JfUkFOSyhhcnJheSk7IGkrKykKKyAgICBhcnN0YXJ0ICs9IEdG Q19ERVNDUklQVE9SX0xCT1VORChhcnJheSxpKSAqIEdGQ19ERVNDUklQVE9SX1NUUklERShh cnJheSxpKTsKKyAgYmFzZSA9IGFycmF5LT5iYXNlX2FkZHIgKyBhcnN0YXJ0OwogCiAgIHdo aWxlIChiYXNlKQogICAgIHsKQEAgLTUwNiw3ICs1MjMsMTAgQEAgcyduYW1lYCdydHlwZV9x dWFsYF8nYXR5cGVfY29kZWAgKCdydHlwZWAgKiBjb25zdCByZXN0cmljdCByZXRhcnJheSwK ICAgICAgIGRzdHJpZGVbbl0gPSBHRkNfREVTQ1JJUFRPUl9TVFJJREUocmV0YXJyYXksbik7 CiAgICAgfQogCi0gIGRlc3QgPSByZXRhcnJheS0+YmFzZV9hZGRyOworICBpbmRleF90eXBl IHJldHN0YXJ0ID0gR0ZDX0RFU0NSSVBUT1JfT0ZGU0VUKHJldGFycmF5KTsKKyAgZm9yIChp bnQgaSA9IDA7IGkgPCBHRkNfREVTQ1JJUFRPUl9SQU5LKHJldGFycmF5KTsgaSsrKQorICAg IHJldHN0YXJ0ICs9IEdGQ19ERVNDUklQVE9SX0xCT1VORChyZXRhcnJheSxpKSAqIEdGQ19E RVNDUklQVE9SX1NUUklERShyZXRhcnJheSxpKTsKKyAgZGVzdCA9IHJldGFycmF5LT5iYXNl X2FkZHIgKyByZXRzdGFydDsKIAogICB3aGlsZSgxKQogICAgIHsKZGlmZiAtLWdpdCBhL2xp Ymdmb3J0cmFuL200L2lmdW5jdGlvbi1zMi5tNCBiL2xpYmdmb3J0cmFuL200L2lmdW5jdGlv bi1zMi5tNAppbmRleCA0ZDMxYzIwOGUwNS4uMGJlOTcwODMyYzggMTAwNjQ0Ci0tLSBhL2xp Ymdmb3J0cmFuL200L2lmdW5jdGlvbi1zMi5tNAorKysgYi9saWJnZm9ydHJhbi9tNC9pZnVu Y3Rpb24tczIubTQKQEAgLTEzOSw4ICsxMzksMTUgQEAgbmFtZWAncnR5cGVfcXVhbGBfJ2F0 eXBlX2NvZGUgKHJ0eXBlICogY29uc3QgcmVzdHJpY3QgcmV0YXJyYXksCiAJcmV0dXJuOwog ICAgIH0KIAotICBiYXNlID0gYXJyYXktPmJhc2VfYWRkcjsKLSAgZGVzdCA9IHJldGFycmF5 LT5iYXNlX2FkZHI7CisgIGluZGV4X3R5cGUgYXJzdGFydCA9IEdGQ19ERVNDUklQVE9SX09G RlNFVChhcnJheSk7CisgIGZvciAoaW50IGkgPSAwOyBpIDwgR0ZDX0RFU0NSSVBUT1JfUkFO SyhhcnJheSk7IGkrKykKKyAgICBhcnN0YXJ0ICs9IEdGQ19ERVNDUklQVE9SX0xCT1VORChh cnJheSxpKSAqIEdGQ19ERVNDUklQVE9SX1NUUklERShhcnJheSxpKTsKKyAgYmFzZSA9IGFy cmF5LT5iYXNlX2FkZHIgKyBhcnN0YXJ0OworCisgIGluZGV4X3R5cGUgcmV0c3RhcnQgPSBH RkNfREVTQ1JJUFRPUl9PRkZTRVQocmV0YXJyYXkpOworICBmb3IgKGludCBpID0gMDsgaSA8 IEdGQ19ERVNDUklQVE9SX1JBTksocmV0YXJyYXkpOyBpKyspCisgICAgcmV0c3RhcnQgKz0g R0ZDX0RFU0NSSVBUT1JfTEJPVU5EKHJldGFycmF5LGkpICogR0ZDX0RFU0NSSVBUT1JfU1RS SURFKHJldGFycmF5LGkpOworICBkZXN0ID0gcmV0YXJyYXktPmJhc2VfYWRkciArIHJldHN0 YXJ0OwogCiAgIGNvbnRpbnVlX2xvb3AgPSAxOwogICB3aGlsZSAoY29udGludWVfbG9vcCkK QEAgLTI0Nyw3ICsyNTQsMTAgQEAgdm9pZAogICBpZiAobGVuIDw9IDApCiAgICAgcmV0dXJu OwogCi0gIG1iYXNlID0gbWFzay0+YmFzZV9hZGRyOworICBpbmRleF90eXBlIG1zdGFydCA9 IEdGQ19ERVNDUklQVE9SX09GRlNFVChtYXNrKTsKKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBH RkNfREVTQ1JJUFRPUl9SQU5LKG1hc2spOyBpKyspCisgICAgbXN0YXJ0ICs9IEdGQ19ERVND UklQVE9SX0xCT1VORChtYXNrLGkpICogR0ZDX0RFU0NSSVBUT1JfU1RSSURFKG1hc2ssaSk7 CisgIG1iYXNlID0gbWFzay0+YmFzZV9hZGRyICsgbXN0YXJ0OwogCiAgIG1hc2tfa2luZCA9 IEdGQ19ERVNDUklQVE9SX1NJWkUgKG1hc2spOwogCkBAIC0zMzYsOCArMzQ2LDE1IEBAIHZv aWQKIAlyZXR1cm47CiAgICAgfQogCi0gIGRlc3QgPSByZXRhcnJheS0+YmFzZV9hZGRyOwot ICBiYXNlID0gYXJyYXktPmJhc2VfYWRkcjsKKyAgaW5kZXhfdHlwZSByZXRzdGFydCA9IEdG Q19ERVNDUklQVE9SX09GRlNFVChyZXRhcnJheSk7CisgIGZvciAoaW50IGkgPSAwOyBpIDwg R0ZDX0RFU0NSSVBUT1JfUkFOSyhyZXRhcnJheSk7IGkrKykKKyAgICByZXRzdGFydCArPSBH RkNfREVTQ1JJUFRPUl9MQk9VTkQocmV0YXJyYXksaSkgKiBHRkNfREVTQ1JJUFRPUl9TVFJJ REUocmV0YXJyYXksaSk7CisgIGRlc3QgPSByZXRhcnJheS0+YmFzZV9hZGRyICsgcmV0c3Rh cnQ7CisKKyAgaW5kZXhfdHlwZSBhcnN0YXJ0ID0gR0ZDX0RFU0NSSVBUT1JfT0ZGU0VUKGFy cmF5KTsKKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBHRkNfREVTQ1JJUFRPUl9SQU5LKGFycmF5 KTsgaSsrKQorICAgIGFyc3RhcnQgKz0gR0ZDX0RFU0NSSVBUT1JfTEJPVU5EKGFycmF5LGkp ICogR0ZDX0RFU0NSSVBUT1JfU1RSSURFKGFycmF5LGkpOworICBiYXNlID0gYXJyYXktPmJh c2VfYWRkciArIGFyc3RhcnQ7CiAKICAgd2hpbGUgKGJhc2UpCiAgICAgewpAQCAtNTA3LDcg KzUyNCwxMCBAQCB2b2lkCiAgICAgICBkc3RyaWRlW25dID0gR0ZDX0RFU0NSSVBUT1JfU1RS SURFKHJldGFycmF5LG4pICogc3RyaW5nX2xlbjsKICAgICB9CiAKLSAgZGVzdCA9IHJldGFy cmF5LT5iYXNlX2FkZHI7CisgIGluZGV4X3R5cGUgcmV0c3RhcnQgPSBHRkNfREVTQ1JJUFRP Ul9PRkZTRVQocmV0YXJyYXkpOworICBmb3IgKGludCBpID0gMDsgaSA8IEdGQ19ERVNDUklQ VE9SX1JBTksocmV0YXJyYXkpOyBpKyspCisgICAgcmV0c3RhcnQgKz0gR0ZDX0RFU0NSSVBU T1JfTEJPVU5EKHJldGFycmF5LGkpICogR0ZDX0RFU0NSSVBUT1JfU1RSSURFKHJldGFycmF5 LGkpOworICBkZXN0ID0gcmV0YXJyYXktPmJhc2VfYWRkciArIHJldHN0YXJ0OwogCiAgIHdo aWxlKDEpCiAgICAgewpkaWZmIC0tZ2l0IGEvbGliZ2ZvcnRyYW4vbTQvaWZ1bmN0aW9uLm00 IGIvbGliZ2ZvcnRyYW4vbTQvaWZ1bmN0aW9uLm00CmluZGV4IGM2NDIxN2VjNWRiLi4yYjY1 NTQ2MjFhMyAxMDA2NDQKLS0tIGEvbGliZ2ZvcnRyYW4vbTQvaWZ1bmN0aW9uLm00CisrKyBi L2xpYmdmb3J0cmFuL200L2lmdW5jdGlvbi5tNApAQCAtMTI0LDggKzEyNCwxNSBAQCBuYW1l YCdydHlwZV9xdWFsYF8nYXR5cGVfY29kZWAgKCdydHlwZWAgKiBjb25zdCByZXN0cmljdCBy ZXRhcnJheSwKIAlyZXR1cm47CiAgICAgfQogCi0gIGJhc2UgPSBhcnJheS0+YmFzZV9hZGRy OwotICBkZXN0ID0gcmV0YXJyYXktPmJhc2VfYWRkcjsKKyAgaW5kZXhfdHlwZSBhcnN0YXJ0 ID0gR0ZDX0RFU0NSSVBUT1JfT0ZGU0VUKGFycmF5KTsKKyAgZm9yIChpbnQgaSA9IDA7IGkg PCBHRkNfREVTQ1JJUFRPUl9SQU5LKGFycmF5KTsgaSsrKQorICAgIGFyc3RhcnQgKz0gR0ZD X0RFU0NSSVBUT1JfTEJPVU5EKGFycmF5LGkpICogR0ZDX0RFU0NSSVBUT1JfU1RSSURFKGFy cmF5LGkpOworICBiYXNlID0gYXJyYXktPmJhc2VfYWRkciArIGFyc3RhcnQ7CisKKyAgaW5k ZXhfdHlwZSByZXRzdGFydCA9IEdGQ19ERVNDUklQVE9SX09GRlNFVChyZXRhcnJheSk7Cisg IGZvciAoaW50IGkgPSAwOyBpIDwgR0ZDX0RFU0NSSVBUT1JfUkFOSyhyZXRhcnJheSk7IGkr KykKKyAgICByZXRzdGFydCArPSBHRkNfREVTQ1JJUFRPUl9MQk9VTkQocmV0YXJyYXksaSkg KiBHRkNfREVTQ1JJUFRPUl9TVFJJREUocmV0YXJyYXksaSk7CisgIGRlc3QgPSByZXRhcnJh eS0+YmFzZV9hZGRyICsgcmV0c3RhcnQ7CiAKICAgY29udGludWVfbG9vcCA9IDE7CiAgIHdo aWxlIChjb250aW51ZV9sb29wKQpAQCAtMjM1LDcgKzI0MiwxMCBAQCBtJ25hbWVgJ3J0eXBl X3F1YWxgXydhdHlwZV9jb2RlYCAoJ3J0eXBlYCAqIGNvbnN0IHJlc3RyaWN0IHJldGFycmF5 LAogICBpZiAobGVuIDw9IDApCiAgICAgcmV0dXJuOwogCi0gIG1iYXNlID0gbWFzay0+YmFz ZV9hZGRyOworICBpbmRleF90eXBlIG1zdGFydCA9IEdGQ19ERVNDUklQVE9SX09GRlNFVCht YXNrKTsKKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBHRkNfREVTQ1JJUFRPUl9SQU5LKG1hc2sp OyBpKyspCisgICAgbXN0YXJ0ICs9IEdGQ19ERVNDUklQVE9SX0xCT1VORChtYXNrLGkpICog R0ZDX0RFU0NSSVBUT1JfU1RSSURFKG1hc2ssaSk7CisgIG1iYXNlID0gbWFzay0+YmFzZV9h ZGRyICsgbXN0YXJ0OwogCiAgIG1hc2tfa2luZCA9IEdGQ19ERVNDUklQVE9SX1NJWkUgKG1h c2spOwogCkBAIC0zMjMsOCArMzMzLDE1IEBAIG0nbmFtZWAncnR5cGVfcXVhbGBfJ2F0eXBl X2NvZGVgICgncnR5cGVgICogY29uc3QgcmVzdHJpY3QgcmV0YXJyYXksCiAJcmV0dXJuOwog ICAgIH0KIAotICBkZXN0ID0gcmV0YXJyYXktPmJhc2VfYWRkcjsKLSAgYmFzZSA9IGFycmF5 LT5iYXNlX2FkZHI7CisgIGluZGV4X3R5cGUgcmV0c3RhcnQgPSBHRkNfREVTQ1JJUFRPUl9P RkZTRVQocmV0YXJyYXkpOworICBmb3IgKGludCBpID0gMDsgaSA8IEdGQ19ERVNDUklQVE9S X1JBTksocmV0YXJyYXkpOyBpKyspCisgICAgcmV0c3RhcnQgKz0gR0ZDX0RFU0NSSVBUT1Jf TEJPVU5EKHJldGFycmF5LGkpICogR0ZDX0RFU0NSSVBUT1JfU1RSSURFKHJldGFycmF5LGkp OworICBkZXN0ID0gcmV0YXJyYXktPmJhc2VfYWRkciArIHJldHN0YXJ0OworCisgIGluZGV4 X3R5cGUgYXJzdGFydCA9IEdGQ19ERVNDUklQVE9SX09GRlNFVChhcnJheSk7CisgIGZvciAo aW50IGkgPSAwOyBpIDwgR0ZDX0RFU0NSSVBUT1JfUkFOSyhhcnJheSk7IGkrKykKKyAgICBh cnN0YXJ0ICs9IEdGQ19ERVNDUklQVE9SX0xCT1VORChhcnJheSxpKSAqIEdGQ19ERVNDUklQ VE9SX1NUUklERShhcnJheSxpKTsKKyAgYmFzZSA9IGFycmF5LT5iYXNlX2FkZHIgKyBhcnN0 YXJ0OwogCiAgIHdoaWxlIChiYXNlKQogICAgIHsKQEAgLTQ5NCw3ICs1MTEsMTAgQEAgdm9p ZAogICAgICAgZHN0cmlkZVtuXSA9IEdGQ19ERVNDUklQVE9SX1NUUklERShyZXRhcnJheSxu KTsKICAgICB9CiAKLSAgZGVzdCA9IHJldGFycmF5LT5iYXNlX2FkZHI7CisgIGluZGV4X3R5 cGUgcmV0c3RhcnQgPSBHRkNfREVTQ1JJUFRPUl9PRkZTRVQocmV0YXJyYXkpOworICBmb3Ig KGludCBpID0gMDsgaSA8IEdGQ19ERVNDUklQVE9SX1JBTksocmV0YXJyYXkpOyBpKyspCisg ICAgcmV0c3RhcnQgKz0gR0ZDX0RFU0NSSVBUT1JfTEJPVU5EKHJldGFycmF5LGkpICogR0ZD X0RFU0NSSVBUT1JfU1RSSURFKHJldGFycmF5LGkpOworICBkZXN0ID0gcmV0YXJyYXktPmJh c2VfYWRkciArIHJldHN0YXJ0OwogCiAgIHdoaWxlKDEpCiAgICAgewpkaWZmIC0tZ2l0IGEv bGliZ2ZvcnRyYW4vbTQvaWZ1bmN0aW9uX2xvZ2ljYWwubTQgYi9saWJnZm9ydHJhbi9tNC9p ZnVuY3Rpb25fbG9naWNhbC5tNAppbmRleCAwNTY4Mzg3ZTM0My4uZDE0OTVmYzE2MzAgMTAw NjQ0Ci0tLSBhL2xpYmdmb3J0cmFuL200L2lmdW5jdGlvbl9sb2dpY2FsLm00CisrKyBiL2xp Ymdmb3J0cmFuL200L2lmdW5jdGlvbl9sb2dpY2FsLm00CkBAIC0xMzIsNyArMTMyLDkgQEAg bmFtZWAncnR5cGVfcXVhbGBfJ2F0eXBlX2NvZGUgKHJ0eXBlICogY29uc3QgcmVzdHJpY3Qg cmV0YXJyYXksCiAJcmV0dXJuOwogICAgIH0KIAotICBiYXNlID0gYXJyYXktPmJhc2VfYWRk cjsKKyAgYmFzZSA9IGFycmF5LT5iYXNlX2FkZHIgKyBHRkNfREVTQ1JJUFRPUl9PRkZTRVQo YXJyYXkpOworICBmb3IgKGludCBpID0gMDsgaSA8IEdGQ19ERVNDUklQVE9SX1JBTksoYXJy YXkpOyBpKyspCisgICAgYmFzZSArPSBHRkNfREVTQ1JJUFRPUl9MQk9VTkQoYXJyYXksaSkg KiBHRkNfREVTQ1JJUFRPUl9TVFJJREUoYXJyYXksaSk7CiAKICAgaWYgKHNyY19raW5kID09 IDEgfHwgc3JjX2tpbmQgPT0gMiB8fCBzcmNfa2luZCA9PSA0IHx8IHNyY19raW5kID09IDgK ICNpZmRlZiBIQVZFX0dGQ19MT0dJQ0FMXzE2CkBAIC0xNDYsNyArMTQ4LDkgQEAgbmFtZWAn cnR5cGVfcXVhbGBfJ2F0eXBlX2NvZGUgKHJ0eXBlICogY29uc3QgcmVzdHJpY3QgcmV0YXJy YXksCiAgIGVsc2UKICAgICBpbnRlcm5hbF9lcnJvciAoTlVMTCwgIkZ1bm55IHNpemVkIGxv Z2ljYWwgYXJyYXkgaW4gdV9uYW1lIGludHJpbnNpYyIpOwogCi0gIGRlc3QgPSByZXRhcnJh eS0+YmFzZV9hZGRyOworICBkZXN0ID0gcmV0YXJyYXktPmJhc2VfYWRkciArIEdGQ19ERVND UklQVE9SX09GRlNFVChyZXRhcnJheSk7CisgIGZvciAoaW50IGkgPSAwOyBpIDwgR0ZDX0RF U0NSSVBUT1JfUkFOSyhyZXRhcnJheSk7IGkrKykKKyAgICBkZXN0ICs9IEdGQ19ERVNDUklQ VE9SX0xCT1VORChyZXRhcnJheSxpKSAqIEdGQ19ERVNDUklQVE9SX1NUUklERShyZXRhcnJh eSxpKTsKIAogICBjb250aW51ZV9sb29wID0gMTsKICAgd2hpbGUgKGNvbnRpbnVlX2xvb3Ap CmRpZmYgLS1naXQgYS9saWJnZm9ydHJhbi9tNC9pbl9wYWNrLm00IGIvbGliZ2ZvcnRyYW4v bTQvaW5fcGFjay5tNAppbmRleCBkYmJjOWEyNjFlZC4uNTk2NWI4ZWMzYjEgMTAwNjQ0Ci0t LSBhL2xpYmdmb3J0cmFuL200L2luX3BhY2subTQKKysrIGIvbGliZ2ZvcnRyYW4vbTQvaW5f cGFjay5tNApAQCAtNzksNiArNzksMTIgQEAgaW50ZXJuYWxfcGFja18ncnR5cGVfY2NvZGVg ICgncnR5cGVgICogc291cmNlKQogICBkZXN0cHRyID0geG1hbGxvY2FycmF5IChzc2l6ZSwg c2l6ZW9mICgncnR5cGVfbmFtZWApKTsKICAgZGVzdCA9IGRlc3RwdHI7CiAgIHNyYyA9IHNv dXJjZS0+YmFzZV9hZGRyOworCisgIGluZGV4X3R5cGUgc3RhcnRfaW5kZXggPSBHRkNfREVT Q1JJUFRPUl9PRkZTRVQoc291cmNlKTsKKyAgZm9yIChpbmRleF90eXBlIG4gPSAwOyBuIDwg ZGltOyBuKyspCisgICAgc3RhcnRfaW5kZXggKz0gR0ZDX0RFU0NSSVBUT1JfTEJPVU5EKHNv dXJjZSxuKSAqIHN0cmlkZVtuXTsKKyAgc3JjICs9IHN0YXJ0X2luZGV4OworCiAgIHN0cmlk ZTAgPSBzdHJpZGVbMF07CiAKIApkaWZmIC0tZ2l0IGEvbGliZ2ZvcnRyYW4vbTQvaW5fdW5w YWNrLm00IGIvbGliZ2ZvcnRyYW4vbTQvaW5fdW5wYWNrLm00CmluZGV4IGM0NmZiMTc2MGNk Li4xNWM3OGZmNWMyZiAxMDA2NDQKLS0tIGEvbGliZ2ZvcnRyYW4vbTQvaW5fdW5wYWNrLm00 CisrKyBiL2xpYmdmb3J0cmFuL200L2luX3VucGFjay5tNApAQCAtMzksNiArMzksNyBAQCBp bnRlcm5hbF91bnBhY2tfJ3J0eXBlX2Njb2RlYCAoJ3J0eXBlYCAqIGQsIGNvbnN0ICdydHlw ZV9uYW1lYCAqIHNyYykKICAgaW5kZXhfdHlwZSBleHRlbnRbR0ZDX01BWF9ESU1FTlNJT05T XTsKICAgaW5kZXhfdHlwZSBzdHJpZGVbR0ZDX01BWF9ESU1FTlNJT05TXTsKICAgaW5kZXhf dHlwZSBzdHJpZGUwOworICBpbmRleF90eXBlIG47CiAgIGluZGV4X3R5cGUgZGltOwogICBp bmRleF90eXBlIGRzaXplOwogICAncnR5cGVfbmFtZWAgKiByZXN0cmljdCBkZXN0OwpAQCAt NjMsNiArNjQsMTEgQEAgaW50ZXJuYWxfdW5wYWNrXydydHlwZV9jY29kZWAgKCdydHlwZWAg KiBkLCBjb25zdCAncnR5cGVfbmFtZWAgKiBzcmMpCiAJZHNpemUgPSAwOwogICAgIH0KIAor ICBpbmRleF90eXBlIHN0YXJ0X2luZGV4ID0gR0ZDX0RFU0NSSVBUT1JfT0ZGU0VUKGQpOwor ICBmb3IgKGludCBpID0gMDsgaSA8IGRpbTsgaSsrKQorICAgIHN0YXJ0X2luZGV4ICs9IEdG Q19ERVNDUklQVE9SX0xCT1VORChkLGkpICogc3RyaWRlW2ldOworICBkZXN0ICs9IHN0YXJ0 X2luZGV4OworCiAgIGlmIChkc2l6ZSAhPSAwKQogICAgIHsKICAgICAgIG1lbWNweSAoZGVz dCwgc3JjLCBkc2l6ZSAqIHNpemVvZiAoJ3J0eXBlX25hbWVgKSk7CmRpZmYgLS1naXQgYS9s aWJnZm9ydHJhbi9tNC9tYXRtdWxfaW50ZXJuYWwubTQgYi9saWJnZm9ydHJhbi9tNC9tYXRt dWxfaW50ZXJuYWwubTQKaW5kZXggMGU5NjIwN2EwZmMuLjI5OWJiZGQ3OTY2IDEwMDY0NAot LS0gYS9saWJnZm9ydHJhbi9tNC9tYXRtdWxfaW50ZXJuYWwubTQKKysrIGIvbGliZ2ZvcnRy YW4vbTQvbWF0bXVsX2ludGVybmFsLm00CkBAIC0xNTAsOSArMTUwLDE3IEBAIHNpbmNsdWRl KGBtYXRtdWxfYXNtXydydHlwZV9jb2RlYC5tNCcpZG5sCiAgICAgICB5Y291bnQgPSBHRkNf REVTQ1JJUFRPUl9FWFRFTlQoYiwxKTsKICAgICB9CiAKLSAgYWJhc2UgPSBhLT5iYXNlX2Fk ZHI7Ci0gIGJiYXNlID0gYi0+YmFzZV9hZGRyOwotICBkZXN0ID0gcmV0YXJyYXktPmJhc2Vf YWRkcjsKKyAgYWJhc2UgPSBhLT5iYXNlX2FkZHIgKyBHRkNfREVTQ1JJUFRPUl9PRkZTRVQo YSk7CisgIGZvciAoaW50IGkgPSAwOyBpIDwgR0ZDX0RFU0NSSVBUT1JfUkFOSyhhKTsgaSsr KQorICAgIGFiYXNlICs9IEdGQ19ERVNDUklQVE9SX0xCT1VORChhLGkpICogR0ZDX0RFU0NS SVBUT1JfU1RSSURFKGEsaSk7CisKKyAgYmJhc2UgPSBiLT5iYXNlX2FkZHIgKyBHRkNfREVT Q1JJUFRPUl9PRkZTRVQoYik7CisgIGZvciAoaW50IGkgPSAwOyBpIDwgR0ZDX0RFU0NSSVBU T1JfUkFOSyhiKTsgaSsrKQorICAgIGJiYXNlICs9IEdGQ19ERVNDUklQVE9SX0xCT1VORChi LGkpICogR0ZDX0RFU0NSSVBUT1JfU1RSSURFKGIsaSk7CisKKyAgZGVzdCA9IHJldGFycmF5 LT5iYXNlX2FkZHIgKyBHRkNfREVTQ1JJUFRPUl9PRkZTRVQocmV0YXJyYXkpOworICBmb3Ig KGludCBpID0gMDsgaSA8IEdGQ19ERVNDUklQVE9SX1JBTksocmV0YXJyYXkpOyBpKyspCisg ICAgZGVzdCArPSBHRkNfREVTQ1JJUFRPUl9MQk9VTkQocmV0YXJyYXksaSkgKiBHRkNfREVT Q1JJUFRPUl9TVFJJREUocmV0YXJyYXksaSk7CiAKICAgLyogTm93IHRoYXQgZXZlcnl0aGlu ZyBpcyBzZXQgdXAsIHdlIHBlcmZvcm0gdGhlIG11bHRpcGxpY2F0aW9uCiAgICAgIGl0c2Vs Zi4gICovCkBAIC0yMjIsNyArMjMwLDcgQEAgc2luY2x1ZGUoYG1hdG11bF9hc21fJ3J0eXBl X2NvZGVgLm00JylkbmwKIAogICAgICAgYSA9IGFiYXNlOwogICAgICAgYiA9IGJiYXNlOwot ICAgICAgYyA9IHJldGFycmF5LT5iYXNlX2FkZHI7CisgICAgICBjID0gZGVzdDsKIAogICAg ICAgLyogUGFyYW1ldGVyIGFkanVzdG1lbnRzICovCiAgICAgICBjX2RpbTEgPSByeXN0cmlk ZTsKZGlmZiAtLWdpdCBhL2xpYmdmb3J0cmFuL200L21hdG11bGwubTQgYi9saWJnZm9ydHJh bi9tNC9tYXRtdWxsLm00CmluZGV4IGZjNDJhOGQ4MTM0Li43ZDBiMzhmODg1MiAxMDA2NDQK LS0tIGEvbGliZ2ZvcnRyYW4vbTQvbWF0bXVsbC5tNAorKysgYi9saWJnZm9ydHJhbi9tNC9t YXRtdWxsLm00CkBAIC0xMzMsNyArMTMzLDEwIEBAIG1hdG11bF8ncnR5cGVfY29kZWAgKCdy dHlwZWAgKiBjb25zdCByZXN0cmljdCByZXRhcnJheSwKIAkgIH0KICAgICAgIH0KIAotICBh YmFzZSA9IGEtPmJhc2VfYWRkcjsKKyAgYWJhc2UgPSBhLT5iYXNlX2FkZHIgKyBHRkNfREVT Q1JJUFRPUl9PRkZTRVQoYSk7CisgIGZvciAoaW50IGkgPSAwOyBpIDwgR0ZDX0RFU0NSSVBU T1JfUkFOSyhhKTsgaSsrKQorICAgIGFiYXNlICs9IEdGQ19ERVNDUklQVE9SX0xCT1VORChh LGkpICogR0ZDX0RFU0NSSVBUT1JfU1RSSURFKGEsaSk7CisKICAgYV9raW5kID0gR0ZDX0RF U0NSSVBUT1JfU0laRSAoYSk7CiAKICAgaWYgKGFfa2luZCA9PSAxIHx8IGFfa2luZCA9PSAy IHx8IGFfa2luZCA9PSA0IHx8IGFfa2luZCA9PSA4CkBAIC0xNDUsNyArMTQ4LDEwIEBAIG1h dG11bF8ncnR5cGVfY29kZWAgKCdydHlwZWAgKiBjb25zdCByZXN0cmljdCByZXRhcnJheSwK ICAgZWxzZQogICAgIGludGVybmFsX2Vycm9yIChOVUxMLCAiRnVubnkgc2l6ZWQgbG9naWNh bCBhcnJheSIpOwogCi0gIGJiYXNlID0gYi0+YmFzZV9hZGRyOworICBiYmFzZSA9IGItPmJh c2VfYWRkciArIEdGQ19ERVNDUklQVE9SX09GRlNFVChiKTsKKyAgZm9yIChpbnQgaSA9IDA7 IGkgPCBHRkNfREVTQ1JJUFRPUl9SQU5LKGIpOyBpKyspCisgICAgYmJhc2UgKz0gR0ZDX0RF U0NSSVBUT1JfTEJPVU5EKGIsaSkgKiBHRkNfREVTQ1JJUFRPUl9TVFJJREUoYixpKTsKKwog ICBiX2tpbmQgPSBHRkNfREVTQ1JJUFRPUl9TSVpFIChiKTsKIAogICBpZiAoYl9raW5kID09 IDEgfHwgYl9raW5kID09IDIgfHwgYl9raW5kID09IDQgfHwgYl9raW5kID09IDgKQEAgLTE1 Nyw3ICsxNjMsOSBAQCBtYXRtdWxfJ3J0eXBlX2NvZGVgICgncnR5cGVgICogY29uc3QgcmVz dHJpY3QgcmV0YXJyYXksCiAgIGVsc2UKICAgICBpbnRlcm5hbF9lcnJvciAoTlVMTCwgIkZ1 bm55IHNpemVkIGxvZ2ljYWwgYXJyYXkiKTsKIAotICBkZXN0ID0gcmV0YXJyYXktPmJhc2Vf YWRkcjsKKyAgZGVzdCA9IHJldGFycmF5LT5iYXNlX2FkZHIgKyBHRkNfREVTQ1JJUFRPUl9P RkZTRVQocmV0YXJyYXkpOworICBmb3IgKGludCBpID0gMDsgaSA8IEdGQ19ERVNDUklQVE9S X1JBTksocmV0YXJyYXkpOyBpKyspCisgICAgZGVzdCArPSBHRkNfREVTQ1JJUFRPUl9MQk9V TkQocmV0YXJyYXksaSkgKiBHRkNfREVTQ1JJUFRPUl9TVFJJREUocmV0YXJyYXksaSk7CiAn CiBzaW5jbHVkZShgbWF0bXVsX2FzbV8ncnR5cGVfY29kZWAubTQnKWRubAogYApkaWZmIC0t Z2l0IGEvbGliZ2ZvcnRyYW4vbTQvbWF4bG9jMnMubTQgYi9saWJnZm9ydHJhbi9tNC9tYXhs b2Mycy5tNAppbmRleCBjYTMzY2MwNmM1ZS4uNDFiOGQ5NTQwOGIgMTAwNjQ0Ci0tLSBhL2xp Ymdmb3J0cmFuL200L21heGxvYzJzLm00CisrKyBiL2xpYmdmb3J0cmFuL200L21heGxvYzJz Lm00CkBAIC02MSw3ICs2MSwxMiBAQCBleHBvcnRfcHJvdG8oJ25hbWVgJ3J0eXBlX3F1YWxg XydhdHlwZV9jb2RlYCk7CiAgIHNzdHJpZGUgPSBHRkNfREVTQ1JJUFRPUl9TVFJJREUoYXJy YXksMCkgKiBsZW47CiAKICAgcmV0ID0gMTsKLSAgc3JjID0gYXJyYXktPmJhc2VfYWRkcjsK KworICBpbmRleF90eXBlIGFyc3RhcnQgPSBHRkNfREVTQ1JJUFRPUl9PRkZTRVQoYXJyYXkp OworICBmb3IgKGludCBpID0gMDsgaSA8IEdGQ19ERVNDUklQVE9SX1JBTksoYXJyYXkpOyBp KyspCisgICAgYXJzdGFydCArPSBHRkNfREVTQ1JJUFRPUl9MQk9VTkQoYXJyYXksaSkgKiBH RkNfREVTQ1JJUFRPUl9TVFJJREUoYXJyYXksaSk7CisgIHNyYyA9IGFycmF5LT5iYXNlX2Fk ZHIgKyBhcnN0YXJ0OworCiAgIG1heHZhbCA9IE5VTEw7CiAgIGZvciAoaT0xOyBpPD1leHRl bnQ7IGkrKykKICAgICB7CkBAIC0xMDMsNyArMTA4LDExIEBAIG0nbmFtZWAncnR5cGVfcXVh bGBfJ2F0eXBlX2NvZGVgICgnYXR5cGVgICogY29uc3QgcmVzdHJpY3QgYXJyYXksCiAgIHNz dHJpZGUgPSBHRkNfREVTQ1JJUFRPUl9TVFJJREUoYXJyYXksMCkgKiBsZW47CiAKICAgbWFz a19raW5kID0gR0ZDX0RFU0NSSVBUT1JfU0laRSAobWFzayk7Ci0gIG1iYXNlID0gbWFzay0+ YmFzZV9hZGRyOworCisgIGluZGV4X3R5cGUgbXN0YXJ0ID0gR0ZDX0RFU0NSSVBUT1JfT0ZG U0VUKG1hc2spOworICBmb3IgKGludCBpID0gMDsgaSA8IEdGQ19ERVNDUklQVE9SX1JBTkso bWFzayk7IGkrKykKKyAgICBtc3RhcnQgKz0gR0ZDX0RFU0NSSVBUT1JfTEJPVU5EKG1hc2ss aSkgKiBHRkNfREVTQ1JJUFRPUl9TVFJJREUobWFzayxpKTsKKyAgbWJhc2UgPSBtYXNrLT5i YXNlX2FkZHIgKyBtc3RhcnQ7CiAKICAgaWYgKG1hc2tfa2luZCA9PSAxIHx8IG1hc2tfa2lu ZCA9PSAyIHx8IG1hc2tfa2luZCA9PSA0IHx8IG1hc2tfa2luZCA9PSA4CiAjaWZkZWYgSEFW RV9HRkNfTE9HSUNBTF8xNgpAQCAtMTI4LDcgKzEzNywxMSBAQCBtJ25hbWVgJ3J0eXBlX3F1 YWxgXydhdHlwZV9jb2RlYCAoJ2F0eXBlYCAqIGNvbnN0IHJlc3RyaWN0IGFycmF5LAogICAg IHJldHVybiAwOwogCiAgIHJldCA9IGogKyAxOwotICBzcmMgPSBhcnJheS0+YmFzZV9hZGRy ICsgaiAqIHNzdHJpZGU7CisKKyAgaW5kZXhfdHlwZSBhcnN0YXJ0ID0gR0ZDX0RFU0NSSVBU T1JfT0ZGU0VUKGFycmF5KTsKKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBHRkNfREVTQ1JJUFRP Ul9SQU5LKGFycmF5KTsgaSsrKQorICAgIGFyc3RhcnQgKz0gR0ZDX0RFU0NSSVBUT1JfTEJP VU5EKGFycmF5LGkpICogR0ZDX0RFU0NSSVBUT1JfU1RSSURFKGFycmF5LGkpOworICBzcmMg PSBhcnJheS0+YmFzZV9hZGRyICsgYXJzdGFydCArIGogKiBzc3RyaWRlOwogICBtYXh2YWwg PSBzcmM7CiAKICAgZm9yIChpPWorMTsgaTw9ZXh0ZW50OyBpKyspCmRpZmYgLS1naXQgYS9s aWJnZm9ydHJhbi9tNC9taW5sb2Mycy5tNCBiL2xpYmdmb3J0cmFuL200L21pbmxvYzJzLm00 CmluZGV4IGRiODUwN2I1MmJkLi40OWQwYjE0ZTUzNyAxMDA2NDQKLS0tIGEvbGliZ2ZvcnRy YW4vbTQvbWlubG9jMnMubTQKKysrIGIvbGliZ2ZvcnRyYW4vbTQvbWlubG9jMnMubTQKQEAg LTYyLDcgKzYyLDEyIEBAIGV4cG9ydF9wcm90bygnbmFtZWAncnR5cGVfcXVhbGBfJ2F0eXBl X2NvZGVgKTsKICAgc3N0cmlkZSA9IEdGQ19ERVNDUklQVE9SX1NUUklERShhcnJheSwwKSAq IGxlbjsKIAogICByZXQgPSAxOwotICBzcmMgPSBhcnJheS0+YmFzZV9hZGRyOworCisgIGlu ZGV4X3R5cGUgYXJzdGFydCA9IEdGQ19ERVNDUklQVE9SX09GRlNFVChhcnJheSk7CisgIGZv ciAoaW50IGkgPSAwOyBpIDwgR0ZDX0RFU0NSSVBUT1JfUkFOSyhhcnJheSk7IGkrKykKKyAg ICBhcnN0YXJ0ICs9IEdGQ19ERVNDUklQVE9SX0xCT1VORChhcnJheSxpKSAqIEdGQ19ERVND UklQVE9SX1NUUklERShhcnJheSxpKTsKKyAgc3JjID0gYXJyYXktPmJhc2VfYWRkciArIGFy c3RhcnQ7CisKICAgbWludmFsID0gTlVMTDsKICAgZm9yIChpPTE7IGk8PWV4dGVudDsgaSsr KQogICAgIHsKQEAgLTEwNCw3ICsxMDksMTEgQEAgbSduYW1lYCdydHlwZV9xdWFsYF8nYXR5 cGVfY29kZWAgKCdhdHlwZWAgKiBjb25zdCByZXN0cmljdCBhcnJheSwKICAgc3N0cmlkZSA9 IEdGQ19ERVNDUklQVE9SX1NUUklERShhcnJheSwwKSAqIGxlbjsKIAogICBtYXNrX2tpbmQg PSBHRkNfREVTQ1JJUFRPUl9TSVpFIChtYXNrKTsKLSAgbWJhc2UgPSBtYXNrLT5iYXNlX2Fk ZHI7CisKKyAgaW5kZXhfdHlwZSBtc3RhcnQgPSBHRkNfREVTQ1JJUFRPUl9PRkZTRVQobWFz ayk7CisgIGZvciAoaW50IGkgPSAwOyBpIDwgR0ZDX0RFU0NSSVBUT1JfUkFOSyhtYXNrKTsg aSsrKQorICAgIG1zdGFydCArPSBHRkNfREVTQ1JJUFRPUl9MQk9VTkQobWFzayxpKSAqIEdG Q19ERVNDUklQVE9SX1NUUklERShtYXNrLGkpOworICBtYmFzZSA9IG1hc2stPmJhc2VfYWRk ciArIG1zdGFydDsKIAogICBpZiAobWFza19raW5kID09IDEgfHwgbWFza19raW5kID09IDIg fHwgbWFza19raW5kID09IDQgfHwgbWFza19raW5kID09IDgKICNpZmRlZiBIQVZFX0dGQ19M T0dJQ0FMXzE2CkBAIC0xMjksNyArMTM4LDExIEBAIG0nbmFtZWAncnR5cGVfcXVhbGBfJ2F0 eXBlX2NvZGVgICgnYXR5cGVgICogY29uc3QgcmVzdHJpY3QgYXJyYXksCiAgICAgcmV0dXJu IDA7CiAKICAgcmV0ID0gaiArIDE7Ci0gIHNyYyA9IGFycmF5LT5iYXNlX2FkZHIgKyBqICog c3N0cmlkZTsKKworICBpbmRleF90eXBlIGFyc3RhcnQgPSBHRkNfREVTQ1JJUFRPUl9PRkZT RVQoYXJyYXkpOworICBmb3IgKGludCBpID0gMDsgaSA8IEdGQ19ERVNDUklQVE9SX1JBTkso YXJyYXkpOyBpKyspCisgICAgYXJzdGFydCArPSBHRkNfREVTQ1JJUFRPUl9MQk9VTkQoYXJy YXksaSkgKiBHRkNfREVTQ1JJUFRPUl9TVFJJREUoYXJyYXksaSk7CisgIHNyYyA9IGFycmF5 LT5iYXNlX2FkZHIgKyBhcnN0YXJ0ICsgaiAqIHNzdHJpZGU7CiAgIG1heHZhbCA9IHNyYzsK IAogICBmb3IgKGk9aisxOyBpPD1leHRlbnQ7IGkrKykKZGlmZiAtLWdpdCBhL2xpYmdmb3J0 cmFuL200L3BhY2subTQgYi9saWJnZm9ydHJhbi9tNC9wYWNrLm00CmluZGV4IDRjYTIxN2Jm ZGYzLi5iOTgxODIzZjM2MyAxMDA2NDQKLS0tIGEvbGliZ2ZvcnRyYW4vbTQvcGFjay5tNAor KysgYi9saWJnZm9ydHJhbi9tNC9wYWNrLm00CkBAIC05Nyw3ICs5NywxMCBAQCBwYWNrXydy dHlwZV9jb2RlYCAoJ3J0eXBlYCAqcmV0LCBjb25zdCAncnR5cGVgICphcnJheSwKIAogICBk aW0gPSBHRkNfREVTQ1JJUFRPUl9SQU5LIChhcnJheSk7CiAKLSAgbXB0ciA9IG1hc2stPmJh c2VfYWRkcjsKKyAgaW5kZXhfdHlwZSBtc3RhcnQgPSBHRkNfREVTQ1JJUFRPUl9PRkZTRVQo bWFzayk7CisgIGZvciAoaW50IGkgPSAwOyBpIDwgR0ZDX0RFU0NSSVBUT1JfUkFOSyhtYXNr KTsgaSsrKQorICAgIG1zdGFydCArPSBHRkNfREVTQ1JJUFRPUl9MQk9VTkQobWFzayxpKSAq IEdGQ19ERVNDUklQVE9SX1NUUklERShtYXNrLGkpOworICBtcHRyID0gbWFzay0+YmFzZV9h ZGRyICsgbXN0YXJ0OwogCiAgIC8qIFVzZSB0aGUgc2FtZSBsb29wIGZvciBhbGwgbG9naWNh bCB0eXBlcywgYnkgdXNpbmcgR0ZDX0xPR0lDQUxfMQogICAgICBhbmQgdXNpbmcgc2hpZnRp bmcgdG8gYWRkcmVzcyBzaXplIGFuZCBlbmRpYW4gaXNzdWVzLiAgKi8KQEAgLTEzNSw3ICsx MzgsMTIgQEAgcGFja18ncnR5cGVfY29kZWAgKCdydHlwZWAgKnJldCwgY29uc3QgJ3J0eXBl YCAqYXJyYXksCiAgIGlmICh6ZXJvX3NpemVkKQogICAgIHNwdHIgPSBOVUxMOwogICBlbHNl Ci0gICAgc3B0ciA9IGFycmF5LT5iYXNlX2FkZHI7CisgICAgeworICAgICAgaW5kZXhfdHlw ZSBhcnN0YXJ0ID0gR0ZDX0RFU0NSSVBUT1JfT0ZGU0VUKGFycmF5KTsKKyAgICAgIGZvciAo aW50IGkgPSAwOyBpIDwgR0ZDX0RFU0NSSVBUT1JfUkFOSyhhcnJheSk7IGkrKykKKwlhcnN0 YXJ0ICs9IEdGQ19ERVNDUklQVE9SX0xCT1VORChhcnJheSxpKSAqIEdGQ19ERVNDUklQVE9S X1NUUklERShhcnJheSxpKTsKKyAgICAgIHNwdHIgPSBhcnJheS0+YmFzZV9hZGRyICsgYXJz dGFydDsKKyAgICB9CiAKICAgaWYgKHJldC0+YmFzZV9hZGRyID09IE5VTEwgfHwgdW5saWtl bHkgKGNvbXBpbGVfb3B0aW9ucy5ib3VuZHNfY2hlY2spKQogICAgIHsKQEAgLTE5MCw3ICsx OTgsMTEgQEAgcGFja18ncnR5cGVfY29kZWAgKCdydHlwZWAgKnJldCwgY29uc3QgJ3J0eXBl YCAqYXJyYXksCiAgICAgcnN0cmlkZTAgPSAxOwogICBzc3RyaWRlMCA9IHNzdHJpZGVbMF07 CiAgIG1zdHJpZGUwID0gbXN0cmlkZVswXTsKLSAgcnB0ciA9IHJldC0+YmFzZV9hZGRyOwor CisgIGluZGV4X3R5cGUgcmV0c3RhcnQgPSBHRkNfREVTQ1JJUFRPUl9PRkZTRVQocmV0KTsK KyAgZm9yIChpbnQgaSA9IDA7IGkgPCBHRkNfREVTQ1JJUFRPUl9SQU5LKHJldCk7IGkrKykK KyAgICByZXRzdGFydCArPSBHRkNfREVTQ1JJUFRPUl9MQk9VTkQocmV0LGkpICogR0ZDX0RF U0NSSVBUT1JfU1RSSURFKHJldCxpKTsKKyAgcnB0ciA9IHJldC0+YmFzZV9hZGRyICsgcmV0 c3RhcnQ7CiAKICAgd2hpbGUgKHNwdHIgJiYgbXB0cikKICAgICB7CmRpZmYgLS1naXQgYS9s aWJnZm9ydHJhbi9tNC9yZXNoYXBlLm00IGIvbGliZ2ZvcnRyYW4vbTQvcmVzaGFwZS5tNApp bmRleCAwNzgwNTkwNzE2MS4uNDdiYTQxZTc4ZjcgMTAwNjQ0Ci0tLSBhL2xpYmdmb3J0cmFu L200L3Jlc2hhcGUubTQKKysrIGIvbGliZ2ZvcnRyYW4vbTQvcmVzaGFwZS5tNApAQCAtODks OSArODksMTQgQEAgcmVzaGFwZV8ncnR5cGVfY2NvZGVgICgncnR5cGVgICogY29uc3QgcmVz dHJpY3QgcmV0LAogCiAgIHNoYXBlX2VtcHR5ID0gMDsKIAorICBpbmRleF90eXBlIHNoc3Rh cnQgPSBHRkNfREVTQ1JJUFRPUl9PRkZTRVQoc2hhcGUpOworICBmb3IgKGludCBpID0gMDsg aSA8IEdGQ19ERVNDUklQVE9SX1JBTksoc2hhcGUpOyBpKyspCisgICAgc2hzdGFydCArPSBH RkNfREVTQ1JJUFRPUl9MQk9VTkQoc2hhcGUsaSkgKiBHRkNfREVTQ1JJUFRPUl9TVFJJREUo c2hhcGUsaSk7CisgIGNvbnN0IGluZGV4X3R5cGUgKiBjb25zdCBzaGJhc2UgPSBzaGFwZS0+ YmFzZV9hZGRyICsgc2hzdGFydDsKKwogICBmb3IgKGluZGV4X3R5cGUgbiA9IDA7IG4gPCBy ZGltOyBuKyspCiAgICAgewotICAgICAgc2hhcGVfZGF0YVtuXSA9IHNoYXBlLT5iYXNlX2Fk ZHJbbiAqIEdGQ19ERVNDUklQVE9SX1NUUklERShzaGFwZSwwKV07CisgICAgICBzaGFwZV9k YXRhW25dID0gc2hiYXNlW24gKiBHRkNfREVTQ1JJUFRPUl9TVFJJREUoc2hhcGUsMCldOwog ICAgICAgaWYgKHNoYXBlX2RhdGFbbl0gPD0gMCkKICAgICAgIHsKICAgICAgICAgc2hhcGVf ZGF0YVtuXSA9IDA7CkBAIC0xMzEsNiArMTM2LDcgQEAgcmVzaGFwZV8ncnR5cGVfY2NvZGVg ICgncnR5cGVgICogY29uc3QgcmVzdHJpY3QgcmV0LAogICAgICAgcGRpbSA9IEdGQ19ERVND UklQVE9SX1JBTksgKHBhZCk7CiAgICAgICBwc2l6ZSA9IDE7CiAgICAgICBwZW1wdHkgPSAw OworICAgICAgaW5kZXhfdHlwZSBwc3RhcnQgPSBHRkNfREVTQ1JJUFRPUl9PRkZTRVQocGFk KTsKICAgICAgIGZvciAoaW5kZXhfdHlwZSBuID0gMDsgbiA8IHBkaW07IG4rKykKICAgICAg ICAgewogICAgICAgICAgIHBjb3VudFtuXSA9IDA7CkBAIC0xNDYsOCArMTUyLDEwIEBAIHJl c2hhcGVfJ3J0eXBlX2Njb2RlYCAoJ3J0eXBlYCAqIGNvbnN0IHJlc3RyaWN0IHJldCwKICAg ICAgICAgICAgIHBzaXplICo9IHBleHRlbnRbbl07CiAgICAgICAgICAgZWxzZQogICAgICAg ICAgICAgcHNpemUgPSAwOworCisJICBwc3RhcnQgKz0gR0ZDX0RFU0NSSVBUT1JfTEJPVU5E KHBhZCxuKSAqIEdGQ19ERVNDUklQVE9SX1NUUklERShwYWQsbik7CiAgICAgICAgIH0KLSAg ICAgIHBwdHIgPSBwYWQtPmJhc2VfYWRkcjsKKyAgICAgIHBwdHIgPSBwYWQtPmJhc2VfYWRk ciArIHBzdGFydDsKICAgICB9CiAgIGVsc2UKICAgICB7CkBAIC0xNTcsNiArMTY1LDE1IEBA IHJlc2hhcGVfJ3J0eXBlX2Njb2RlYCAoJ3J0eXBlYCAqIGNvbnN0IHJlc3RyaWN0IHJldCwK ICAgICAgIHBwdHIgPSBOVUxMOwogICAgIH0KIAorICBjb25zdCBpbmRleF90eXBlICogb2Jh c2UgPSBOVUxMOworICBpZiAob3JkZXIpCisgICAgeworICAgICAgaW5kZXhfdHlwZSBvc3Rh cnQgPSBHRkNfREVTQ1JJUFRPUl9PRkZTRVQob3JkZXIpOworICAgICAgZm9yIChpbnQgaSA9 IDA7IGkgPCBHRkNfREVTQ1JJUFRPUl9SQU5LKG9yZGVyKTsgaSsrKQorCW9zdGFydCArPSBH RkNfREVTQ1JJUFRPUl9MQk9VTkQob3JkZXIsaSkgKiBHRkNfREVTQ1JJUFRPUl9TVFJJREUo b3JkZXIsaSk7CisgICAgICBvYmFzZSA9IG9yZGVyLT5iYXNlX2FkZHIgKyBvc3RhcnQ7Cisg ICAgfQorCiAgIGlmICh1bmxpa2VseSAoY29tcGlsZV9vcHRpb25zLmJvdW5kc19jaGVjaykp CiAgICAgewogICAgICAgaW5kZXhfdHlwZSByZXRfZXh0ZW50LCBzb3VyY2VfZXh0ZW50OwpA QCAtMTk3LDcgKzIxNCw3IEBAIHJlc2hhcGVfJ3J0eXBlX2Njb2RlYCAoJ3J0eXBlYCAqIGNv bnN0IHJlc3RyaWN0IHJldCwKIAogCSAgZm9yIChpbmRleF90eXBlIG4gPSAwOyBuIDwgcmRp bTsgbisrKQogCSAgICB7Ci0JICAgICAgdiA9IG9yZGVyLT5iYXNlX2FkZHJbbiAqIEdGQ19E RVNDUklQVE9SX1NUUklERShvcmRlciwwKV0gLSAxOworCSAgICAgIHYgPSBvYmFzZVtuICog R0ZDX0RFU0NSSVBUT1JfU1RSSURFKG9yZGVyLDApXSAtIDE7CiAKIAkgICAgICBpZiAodiA8 IDAgfHwgdiA+PSByZGltKQogCQlydW50aW1lX2Vycm9yKCJWYWx1ZSAlbGQgb3V0IG9mIHJh bmdlIGluIE9SREVSIGFyZ3VtZW50IgpAQCAtMjE3LDcgKzIzNCw3IEBAIHJlc2hhcGVfJ3J0 eXBlX2Njb2RlYCAoJ3J0eXBlYCAqIGNvbnN0IHJlc3RyaWN0IHJldCwKICAgICB7CiAgICAg ICBpbmRleF90eXBlIGRpbTsKICAgICAgIGlmIChvcmRlcikKLSAgICAgICAgZGltID0gb3Jk ZXItPmJhc2VfYWRkcltuICogR0ZDX0RFU0NSSVBUT1JfU1RSSURFKG9yZGVyLDApXSAtIDE7 CisgICAgICAgIGRpbSA9IG9iYXNlW24gKiBHRkNfREVTQ1JJUFRPUl9TVFJJREUob3JkZXIs MCldIC0gMTsKICAgICAgIGVsc2UKICAgICAgICAgZGltID0gbjsKIApAQCAtMjcyLDggKzI4 OSwxNyBAQCByZXNoYXBlXydydHlwZV9jY29kZWAgKCdydHlwZWAgKiBjb25zdCByZXN0cmlj dCByZXQsCiAJCSAgICAgIHNzaXplLCBwYWQgPyAoY2hhciAqKXBhZC0+YmFzZV9hZGRyIDog TlVMTCwgcHNpemUpOwogICAgICAgcmV0dXJuOwogICAgIH0KLSAgcnB0ciA9IHJldC0+YmFz ZV9hZGRyOwotICBzcmMgPSBzcHRyID0gc291cmNlLT5iYXNlX2FkZHI7CisKKyAgaW5kZXhf dHlwZSByZXRzdGFydCA9IEdGQ19ERVNDUklQVE9SX09GRlNFVChyZXQpOworICBmb3IgKGlu dCBpID0gMDsgaSA8IEdGQ19ERVNDUklQVE9SX1JBTksocmV0KTsgaSsrKQorICAgIHJldHN0 YXJ0ICs9IEdGQ19ERVNDUklQVE9SX0xCT1VORChyZXQsaSkgKiBHRkNfREVTQ1JJUFRPUl9T VFJJREUocmV0LGkpOworICBycHRyID0gcmV0LT5iYXNlX2FkZHIgKyByZXRzdGFydDsKKwor ICBpbmRleF90eXBlIHNzdGFydCA9IEdGQ19ERVNDUklQVE9SX09GRlNFVChzb3VyY2UpOwor ICBmb3IgKGludCBpID0gMDsgaSA8IEdGQ19ERVNDUklQVE9SX1JBTksoc291cmNlKTsgaSsr KQorICAgIHNzdGFydCArPSBHRkNfREVTQ1JJUFRPUl9MQk9VTkQoc291cmNlLGkpICogR0ZD X0RFU0NSSVBUT1JfU1RSSURFKHNvdXJjZSxpKTsKKyAgc3JjID0gc3B0ciA9IHNvdXJjZS0+ YmFzZV9hZGRyICsgc3N0YXJ0OworCiAgIHJzdHJpZGUwID0gcnN0cmlkZVswXTsKICAgc3N0 cmlkZTAgPSBzc3RyaWRlWzBdOwogCmRpZmYgLS1naXQgYS9saWJnZm9ydHJhbi9tNC9zaGFw ZS5tNCBiL2xpYmdmb3J0cmFuL200L3NoYXBlLm00CmluZGV4IGQ1NjQwYTFhNzI3Li5kZDlk ZTYwN2EyMyAxMDA2NDQKLS0tIGEvbGliZ2ZvcnRyYW4vbTQvc2hhcGUubTQKKysrIGIvbGli Z2ZvcnRyYW4vbTQvc2hhcGUubTQKQEAgLTU0LDEwICs1NCwxNSBAQCBzaGFwZV8ncnR5cGVf a2luZGAgKCdydHlwZWAgKiBjb25zdCByZXN0cmljdCByZXQsCiAgIGlmIChHRkNfREVTQ1JJ UFRPUl9FWFRFTlQocmV0LDApIDwgMSkKICAgICByZXR1cm47CiAKKyAgaW5kZXhfdHlwZSBy ZXRzdGFydCA9IEdGQ19ERVNDUklQVE9SX09GRlNFVChyZXQpOworICBmb3IgKGludCBpID0g MDsgaSA8IEdGQ19ERVNDUklQVE9SX1JBTksocmV0KTsgaSsrKQorICAgIHJldHN0YXJ0ICs9 IEdGQ19ERVNDUklQVE9SX0xCT1VORChyZXQsaSkgKiBHRkNfREVTQ1JJUFRPUl9TVFJJREUo cmV0LGkpOworICAncnR5cGVfbmFtZWAgKiBjb25zdCByZXRiYXNlID0gcmV0LT5iYXNlX2Fk ZHIgKyByZXRzdGFydDsKKwogICBmb3IgKGluZGV4X3R5cGUgbiA9IDA7IG4gPCByYW5rOyBu KyspCiAgICAgewogICAgICAgZXh0ZW50ID0gR0ZDX0RFU0NSSVBUT1JfRVhURU5UKGFycmF5 LG4pOwotICAgICAgcmV0LT5iYXNlX2FkZHJbbiAqIHN0cmlkZV0gPSBleHRlbnQgPiAwID8g ZXh0ZW50IDogMCA7CisgICAgICByZXRiYXNlW24gKiBzdHJpZGVdID0gZXh0ZW50ID4gMCA/ IGV4dGVudCA6IDAgOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvbGliZ2ZvcnRyYW4vbTQv c3ByZWFkLm00IGIvbGliZ2ZvcnRyYW4vbTQvc3ByZWFkLm00CmluZGV4IDU0YTc1YWNhZWZj Li43MmUyYjdkYWVmYSAxMDA2NDQKLS0tIGEvbGliZ2ZvcnRyYW4vbTQvc3ByZWFkLm00Cisr KyBiL2xpYmdmb3J0cmFuL200L3NwcmVhZC5tNApAQCAtMTgxLDggKzE4MSwxNiBAQCBzcHJl YWRfJ3J0eXBlX2NvZGVgICgncnR5cGVgICpyZXQsIGNvbnN0ICdydHlwZWAgKnNvdXJjZSwK ICAgICB9CiAgIHNzdHJpZGUwID0gc3N0cmlkZVswXTsKICAgcnN0cmlkZTAgPSByc3RyaWRl WzBdOwotICBycHRyID0gcmV0LT5iYXNlX2FkZHI7Ci0gIHNwdHIgPSBzb3VyY2UtPmJhc2Vf YWRkcjsKKworICBpbmRleF90eXBlIHJldHN0YXJ0ID0gR0ZDX0RFU0NSSVBUT1JfT0ZGU0VU KHJldCk7CisgIGZvciAoaW50IGkgPSAwOyBpIDwgR0ZDX0RFU0NSSVBUT1JfUkFOSyhyZXQp OyBpKyspCisgICAgcmV0c3RhcnQgKz0gR0ZDX0RFU0NSSVBUT1JfTEJPVU5EKHJldCxpKSAq IEdGQ19ERVNDUklQVE9SX1NUUklERShyZXQsaSk7CisgIHJwdHIgPSByZXQtPmJhc2VfYWRk ciArIHJldHN0YXJ0OworCisgIGluZGV4X3R5cGUgc3Jjc3RhcnQgPSBHRkNfREVTQ1JJUFRP Ul9PRkZTRVQoc291cmNlKTsKKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBHRkNfREVTQ1JJUFRP Ul9SQU5LKHNvdXJjZSk7IGkrKykKKyAgICBzcmNzdGFydCArPSBHRkNfREVTQ1JJUFRPUl9M Qk9VTkQoc291cmNlLGkpICogR0ZDX0RFU0NSSVBUT1JfU1RSSURFKHNvdXJjZSxpKTsKKyAg c3B0ciA9IHNvdXJjZS0+YmFzZV9hZGRyICsgc3Jjc3RhcnQ7CiAKICAgd2hpbGUgKHNwdHIp CiAgICAgewpAQCAtMjUzLDcgKzI2MSwxMSBAQCBzcHJlYWRfc2NhbGFyXydydHlwZV9jb2Rl YCAoJ3J0eXBlYCAqcmV0LCBjb25zdCAncnR5cGVfbmFtZWAgKnNvdXJjZSwKIAlydW50aW1l X2Vycm9yICgiZGltIHRvbyBsYXJnZSBpbiBzcHJlYWQoKSIpOwogICAgIH0KIAotICBkZXN0 ID0gcmV0LT5iYXNlX2FkZHI7CisgIGluZGV4X3R5cGUgcmV0c3RhcnQgPSBHRkNfREVTQ1JJ UFRPUl9PRkZTRVQocmV0KTsKKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBHRkNfREVTQ1JJUFRP Ul9SQU5LKHJldCk7IGkrKykKKyAgICByZXRzdGFydCArPSBHRkNfREVTQ1JJUFRPUl9MQk9V TkQocmV0LGkpICogR0ZDX0RFU0NSSVBUT1JfU1RSSURFKHJldCxpKTsKKyAgZGVzdCA9IHJl dC0+YmFzZV9hZGRyICsgcmV0c3RhcnQ7CisKICAgc3RyaWRlID0gR0ZDX0RFU0NSSVBUT1Jf U1RSSURFKHJldCwwKTsKIAogICBmb3IgKGluZGV4X3R5cGUgbiA9IDA7IG4gPCBuY29waWVz OyBuKyspCmRpZmYgLS1naXQgYS9saWJnZm9ydHJhbi9tNC91bnBhY2subTQgYi9saWJnZm9y dHJhbi9tNC91bnBhY2subTQKaW5kZXggMDUwZWViNWU0MGYuLjkyODU5MWE5Mjg5IDEwMDY0 NAotLS0gYS9saWJnZm9ydHJhbi9tNC91bnBhY2subTQKKysrIGIvbGliZ2ZvcnRyYW4vbTQv dW5wYWNrLm00CkBAIC02MCw3ICs2MCwxMCBAQCB1bnBhY2swXydydHlwZV9jb2RlYCAoJ3J0 eXBlYCAqcmV0LCBjb25zdCAncnR5cGVgICp2ZWN0b3IsCiAKICAgZW1wdHkgPSAwOwogCi0g IG1wdHIgPSBtYXNrLT5iYXNlX2FkZHI7CisgIGluZGV4X3R5cGUgbWFza3N0YXJ0ID0gR0ZD X0RFU0NSSVBUT1JfT0ZGU0VUKG1hc2spOworICBmb3IgKGludCBpID0gMDsgaSA8IEdGQ19E RVNDUklQVE9SX1JBTksobWFzayk7IGkrKykKKyAgICBtYXNrc3RhcnQgKz0gR0ZDX0RFU0NS SVBUT1JfTEJPVU5EKG1hc2ssaSkgKiBHRkNfREVTQ1JJUFRPUl9TVFJJREUobWFzayxpKTsK KyAgbXB0ciA9IG1hc2stPmJhc2VfYWRkciArIG1hc2tzdGFydDsKIAogICAvKiBVc2UgdGhl IHNhbWUgbG9vcCBmb3IgYWxsIGxvZ2ljYWwgdHlwZXMsIGJ5IHVzaW5nIEdGQ19MT0dJQ0FM XzEKICAgICAgYW5kIHVzaW5nIHNoaWZ0aW5nIHRvIGFkZHJlc3Mgc2l6ZSBhbmQgZW5kaWFu IGlzc3Vlcy4gICovCkBAIC0xMjgsOCArMTMxLDE2IEBAIHVucGFjazBfJ3J0eXBlX2NvZGVg ICgncnR5cGVgICpyZXQsIGNvbnN0ICdydHlwZWAgKnZlY3RvciwKICAgICB2c3RyaWRlMCA9 IDE7CiAgIHJzdHJpZGUwID0gcnN0cmlkZVswXTsKICAgbXN0cmlkZTAgPSBtc3RyaWRlWzBd OwotICBycHRyID0gcmV0LT5iYXNlX2FkZHI7Ci0gIHZwdHIgPSB2ZWN0b3ItPmJhc2VfYWRk cjsKKworICBpbmRleF90eXBlIHJldHN0YXJ0ID0gR0ZDX0RFU0NSSVBUT1JfT0ZGU0VUKHJl dCk7CisgIGZvciAoaW50IGkgPSAwOyBpIDwgR0ZDX0RFU0NSSVBUT1JfUkFOSyhyZXQpOyBp KyspCisgICAgcmV0c3RhcnQgKz0gR0ZDX0RFU0NSSVBUT1JfTEJPVU5EKHJldCxpKSAqIEdG Q19ERVNDUklQVE9SX1NUUklERShyZXQsaSk7CisgIHJwdHIgPSByZXQtPmJhc2VfYWRkciAr IHJldHN0YXJ0OworCisgIGluZGV4X3R5cGUgdmVjc3RhcnQgPSBHRkNfREVTQ1JJUFRPUl9P RkZTRVQodmVjdG9yKTsKKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBHRkNfREVTQ1JJUFRPUl9S QU5LKHZlY3Rvcik7IGkrKykKKyAgICB2ZWNzdGFydCArPSBHRkNfREVTQ1JJUFRPUl9MQk9V TkQodmVjdG9yLGkpICogR0ZDX0RFU0NSSVBUT1JfU1RSSURFKHZlY3RvcixpKTsKKyAgdnB0 ciA9IHZlY3Rvci0+YmFzZV9hZGRyICsgdmVjc3RhcnQ7CiAKICAgd2hpbGUgKHJwdHIpCiAg ICAgewpAQCAtMjA2LDcgKzIxNywxMCBAQCB1bnBhY2sxXydydHlwZV9jb2RlYCAoJ3J0eXBl YCAqcmV0LCBjb25zdCAncnR5cGVgICp2ZWN0b3IsCiAKICAgZW1wdHkgPSAwOwogCi0gIG1w dHIgPSBtYXNrLT5iYXNlX2FkZHI7CisgIGluZGV4X3R5cGUgbXN0YXJ0ID0gR0ZDX0RFU0NS SVBUT1JfT0ZGU0VUKG1hc2spOworICBmb3IgKGludCBpID0gMDsgaSA8IEdGQ19ERVNDUklQ VE9SX1JBTksobWFzayk7IGkrKykKKyAgICBtc3RhcnQgKz0gR0ZDX0RFU0NSSVBUT1JfTEJP VU5EKG1hc2ssaSkgKiBHRkNfREVTQ1JJUFRPUl9TVFJJREUobWFzayxpKTsKKyAgbXB0ciA9 IG1hc2stPmJhc2VfYWRkciArIG1zdGFydDsKIAogICAvKiBVc2UgdGhlIHNhbWUgbG9vcCBm b3IgYWxsIGxvZ2ljYWwgdHlwZXMsIGJ5IHVzaW5nIEdGQ19MT0dJQ0FMXzEKICAgICAgYW5k IHVzaW5nIHNoaWZ0aW5nIHRvIGFkZHJlc3Mgc2l6ZSBhbmQgZW5kaWFuIGlzc3Vlcy4gICov CkBAIC0yNzksOSArMjkzLDIxIEBAIHVucGFjazFfJ3J0eXBlX2NvZGVgICgncnR5cGVgICpy ZXQsIGNvbnN0ICdydHlwZWAgKnZlY3RvciwKICAgcnN0cmlkZTAgPSByc3RyaWRlWzBdOwog ICBmc3RyaWRlMCA9IGZzdHJpZGVbMF07CiAgIG1zdHJpZGUwID0gbXN0cmlkZVswXTsKLSAg cnB0ciA9IHJldC0+YmFzZV9hZGRyOwotICBmcHRyID0gZmllbGQtPmJhc2VfYWRkcjsKLSAg dnB0ciA9IHZlY3Rvci0+YmFzZV9hZGRyOworCisgIGluZGV4X3R5cGUgcnN0YXJ0ID0gR0ZD X0RFU0NSSVBUT1JfT0ZGU0VUKHJldCk7CisgIGZvciAoaW50IGkgPSAwOyBpIDwgR0ZDX0RF U0NSSVBUT1JfUkFOSyhyZXQpOyBpKyspCisgICAgcnN0YXJ0ICs9IEdGQ19ERVNDUklQVE9S X0xCT1VORChyZXQsaSkgKiBHRkNfREVTQ1JJUFRPUl9TVFJJREUocmV0LGkpOworICBycHRy ID0gcmV0LT5iYXNlX2FkZHIgKyByc3RhcnQ7CisKKyAgaW5kZXhfdHlwZSBmc3RhcnQgPSBH RkNfREVTQ1JJUFRPUl9PRkZTRVQoZmllbGQpOworICBmb3IgKGludCBpID0gMDsgaSA8IEdG Q19ERVNDUklQVE9SX1JBTksoZmllbGQpOyBpKyspCisgICAgZnN0YXJ0ICs9IEdGQ19ERVND UklQVE9SX0xCT1VORChmaWVsZCxpKSAqIEdGQ19ERVNDUklQVE9SX1NUUklERShmaWVsZCxp KTsKKyAgZnB0ciA9IGZpZWxkLT5iYXNlX2FkZHIgKyBmc3RhcnQ7CisKKyAgaW5kZXhfdHlw ZSB2ZWNzdGFydCA9IEdGQ19ERVNDUklQVE9SX09GRlNFVCh2ZWN0b3IpOworICBmb3IgKGlu dCBpID0gMDsgaSA8IEdGQ19ERVNDUklQVE9SX1JBTksodmVjdG9yKTsgaSsrKQorICAgIHZl Y3N0YXJ0ICs9IEdGQ19ERVNDUklQVE9SX0xCT1VORCh2ZWN0b3IsaSkgKiBHRkNfREVTQ1JJ UFRPUl9TVFJJREUodmVjdG9yLGkpOworICB2cHRyID0gdmVjdG9yLT5iYXNlX2FkZHIgKyB2 ZWNzdGFydDsKIAogICB3aGlsZSAocnB0cikKICAgICB7CmRpZmYgLS1naXQgYS9saWJnZm9y dHJhbi9ydW50aW1lL2luX3BhY2tfZ2VuZXJpYy5jIGIvbGliZ2ZvcnRyYW4vcnVudGltZS9p bl9wYWNrX2dlbmVyaWMuYwppbmRleCAzN2MwN2FhZDNlMi4uYzRlODFiMDQ2ZGIgMTAwNjQ0 Ci0tLSBhL2xpYmdmb3J0cmFuL3J1bnRpbWUvaW5fcGFja19nZW5lcmljLmMKKysrIGIvbGli Z2ZvcnRyYW4vcnVudGltZS9pbl9wYWNrX2dlbmVyaWMuYwpAQCAtMTg3LDYgKzE4NywxMiBA QCBpbnRlcm5hbF9wYWNrIChnZmNfYXJyYXlfY2hhciAqIHNvdXJjZSkKICAgZGVzdHB0ciA9 IHhtYWxsb2NhcnJheSAoc3NpemUsIHNpemUpOwogICBkZXN0ID0gKGNoYXIgKilkZXN0cHRy OwogICBzcmMgPSBzb3VyY2UtPmJhc2VfYWRkcjsKKworICBpbmRleF90eXBlIHN0YXJ0X2lu ZGV4ID0gR0ZDX0RFU0NSSVBUT1JfT0ZGU0VUKHNvdXJjZSk7CisgIGZvciAoaW5kZXhfdHlw ZSBuID0gMDsgbiA8IGRpbTsgbisrKQorICAgIHN0YXJ0X2luZGV4ICs9IEdGQ19ERVNDUklQ VE9SX0xCT1VORChzb3VyY2UsbikgKiBzdHJpZGVbbl07CisgIHNyYyArPSBzdGFydF9pbmRl eCAqIHNpemU7CisKICAgc3RyaWRlMCA9IHN0cmlkZVswXSAqIHNpemU7CiAKICAgd2hpbGUg KHNyYykKZGlmZiAtLWdpdCBhL2xpYmdmb3J0cmFuL3J1bnRpbWUvaW5fdW5wYWNrX2dlbmVy aWMuYyBiL2xpYmdmb3J0cmFuL3J1bnRpbWUvaW5fdW5wYWNrX2dlbmVyaWMuYwppbmRleCAx YmVkN2UxYjFhYi4uNzMwNzlmZGQ2YTAgMTAwNjQ0Ci0tLSBhL2xpYmdmb3J0cmFuL3J1bnRp bWUvaW5fdW5wYWNrX2dlbmVyaWMuYworKysgYi9saWJnZm9ydHJhbi9ydW50aW1lL2luX3Vu cGFja19nZW5lcmljLmMKQEAgLTM2LDYgKzM2LDcgQEAgaW50ZXJuYWxfdW5wYWNrIChnZmNf YXJyYXlfY2hhciAqIGQsIGNvbnN0IHZvaWQgKiBzKQogICBpbmRleF90eXBlIGV4dGVudFtH RkNfTUFYX0RJTUVOU0lPTlNdOwogICBpbmRleF90eXBlIHN0cmlkZVtHRkNfTUFYX0RJTUVO U0lPTlNdOwogICBpbmRleF90eXBlIHN0cmlkZTA7CisgIGluZGV4X3R5cGUgbjsKICAgaW5k ZXhfdHlwZSBkaW07CiAgIGluZGV4X3R5cGUgZHNpemU7CiAgIGNoYXIgKmRlc3Q7CkBAIC0x ODgsNiArMTg5LDEyIEBAIGludGVybmFsX3VucGFjayAoZ2ZjX2FycmF5X2NoYXIgKiBkLCBj b25zdCB2b2lkICogcykKICAgc2l6ZSA9IEdGQ19ERVNDUklQVE9SX1NJWkUgKGQpOwogCiAg IGRpbSA9IEdGQ19ERVNDUklQVE9SX1JBTksgKGQpOworCisgIGluZGV4X3R5cGUgc3RhcnRf aW5kZXggPSBHRkNfREVTQ1JJUFRPUl9PRkZTRVQoZCk7CisgIGZvciAoaW50IGkgPSAwOyBp IDwgZGltOyBpKyspCisgICAgc3RhcnRfaW5kZXggKz0gR0ZDX0RFU0NSSVBUT1JfTEJPVU5E KGQsaSkgKiBzdHJpZGVbaV07CisgIGRlc3QgKz0gc3RhcnRfaW5kZXggKiBzaXplOworCiAg IGRzaXplID0gMTsKICAgZm9yIChpbmRleF90eXBlIG4gPSAwOyBuIDwgZGltOyBuKyspCiAg ICAgewpAQCAtMjAxLDYgKzIwOCw3IEBAIGludGVybmFsX3VucGFjayAoZ2ZjX2FycmF5X2No YXIgKiBkLCBjb25zdCB2b2lkICogcykKIAlkc2l6ZSAqPSBleHRlbnRbbl07CiAgICAgICBl bHNlCiAJZHNpemUgPSAwOworCiAgICAgfQogCiAgIHNyYyA9IHM7Cg== --------------Bcfll3R8TFcBpZ610Kfrz0Y1 Content-Type: application/gzip; name="fortran_restore_array_indexing_full.diff.gz" Content-Disposition: attachment; filename="fortran_restore_array_indexing_full.diff.gz" Content-Transfer-Encoding: base64 H4sICMw2v2IAA2ZvcnRyYW5fcmVzdG9yZV9hcnJheV9yZWZlcmVuY2VzX2Z1bGwuZGlmZgDs fet220iS5m/7KdLenSrRJGHcCAJ2yz0qW67WWZdcR1ZVb7ftxcElIWGLFw1B2tZ4fM6+xr7e Pslm5AVI3AFKLms86HKLJJDXyIgvIyIjM8M4itB0ehFvkff4IggeR+vNduOtHsOfZOptNt61 EgTIb3h5P16F+BNSZ5phOjM99E1FCQPLsP1ZpAYO0lTVMs370+m0sY774/G4uZ5//Vc01eb6 ZI7G7IM8SLbeNg7QdoPxfXQRBe4F3rpBFLthvHTjLV6iA3iHQpwEE5oMxeGnCdqtkvhihUMU xXgRuuTZ6D76fB8hlma7vEKH+fJIAZv4arveuDQLOmBFPn954r48OX71wn1x8svo6f0pkjL7 u5gUTjvgbnBE2rK8mrAGnP726pV7fnZ8DK3aYZJz3CMnSS6aylrDcnnhB28VYDe49OIVOjj/ x6/HrHFvyA9SlwtPaFmj0UTqOi2NUN71kgRvtuiAFfrgMGsmS7PB291mhaI1yUibaLiLdYAO 4tXVbgtfyWisV4Qqr3/59fXp8em5e3b8coKkumnJowkdTFM3YTDZB3kAXQjWqw8ysck4YjJW 61V5IMkrMmiUELnhqs4NT6ETMEK8G/WEJvlqhqh7VqjsC7SP9tXQDHui6WjMvtiiv14YErqt r9wkIX0PMTqAp/AkXkVr9AjB1wlNmiTkZ5JMkL9eL1Cy81k3J/fRPYT8Dfb+gO6he4GXYPTz y+fumzfu78fPz1+fPbk/JUkeP0I/4y3aXmL0AQeEPD8mKKMV8lYhEaf1hkjIFhH2efNGQejR Y5oVqo9X8dYlJR/8kOC0h+IlHTb86WojUZ+nhKdSSuiwTzjlD3e7Zl9IuvVuize019NnVxuS ieRUyJde+dbJlmck33hOIOL0mdSmQ0QSQJPIaJL3n+nfvWnDMtdSJ3vdTp8sbV8K9clZpBHL 20YlDjXrKEoIkQ6zHjHm588PisUUys9lxx+8xc7bYne1/ogO2CvSskI3R0+R3ICFv96twnID +PNSAyZILbSBzBeb7Vv1fWUrWDFVraBlfGkStJPT87OT0zcnz58wcZ+pzsQAcZ9ps4lpgrhL DaZTZko3KtwYhBsXJD1ebRmgwJe4WtLJvHN8mhN0GckpivzwAyl6+gw6JCSqkIRQRuDJW1Lh e5KIUg1B3qoE02fs6fb6CqPDwzze8EpgIAihm7KH3tZT2AyfDRvJLQOWh/4db9ZTn3Q2REzZ IORYS8KaARV7fSjNUHr1DPXLyelvb9zj//nr2QT6SntLRUgaH+hb9lZQkP394G3exu8n0tNo s16SR6M8sLSMRXWi0miMSRP2HAgJHXjXYFphdGM/DtEP3YZIFMbHVSpDFrpqyMglZk9Jwjz6 dh1oIdB7DPWYD2bdYGfvuw83Esz6y26xja8W17TBrHk++5FsN3GI92HT316d9+JS+mxSBEhW v9BZ1ZGEih0b8uurPWjIG5Mbe4HAMuHOsBdKo4zImF8AP6xkLijyWUZN4FDSB6aP0Z6QbPGG lAV6WWV/GL1k5YX1gxbFdMVUg2AUqtT4IPlEdFNSieRM+TmGp/0BGClTcHLDAM2hUFBJXpY2 HcDObNdXaDLG6z3e7cyXjvyLNRnla0Qn3gQFlzj4I15dIKKwQ/ujeOUtytoJraYsTNRc5HXS Al1aHjqAaZXNprR5dEL9wdtMn328xBuc8QKCZ17CsZRYP0dv3KM3b3775fiF++bkn8dZwv/4 DygF/YXmoEYGmiLtz5UqBqKjHIreQJA4tO8hSmNBlWZhypOmsziVs7UJVMUYdBWpjJI3Zcx8 I/ZmzYy2rcwpJW1kz2o1lmmRZ0enPx9zDXau2hObKLBz3WLm+Wq9clf4goz6B8yFWvTpilvn 1Ja5D/T7CcaWzOhJ4C28TfzvZEYnQ0z6tAowsCVhSab2UWqRZnBPzod1HN6fpoyUZZf5pKQw Z+8ekWKZRDP1lRnLxDJnaYAhvEWCR/fHN6tDuIuKihX8zZwzIQ4WSPKiPOWknTkTTQXazq2C 62PPDqN7vKqyNkap8IU5PigxKsYRWFSQKCMeYaPmMa8w+KZMcwJGqJNy0O8yjifNTrWXitqY 16V3kQXny5y5DY25zelN2Syjetr5ErnFOEMLoEWrC3eBVxfbS2ojk2eJ0JNzbykhWgZVOApk 91LHLNxjJ7n8Ekw9SMzxl2DRf9p7WzcnDum9bdis92XPVcG1JuzxlIn51w9X203J51aN+E+z RH1mE8jSzY0q2phxEGXaZo6lTZNS0w518r3mqhP5MpcoSSOR3HKI+U8YznJ0bZL6+tgsEO6W y2sxF8RewtnteukT2SQsd72cpE5oOiRMgln7ku1y6155wR84755Ff829esJ+7Vbst8Qtobtc h3F0jQ5+AJfVJK2lMFGyiZF6irnTNOe+YbMnmGtkFg4xpWDZPSR5YtlL8M+SQdgtOYsUc9V4 haCljNoJkYhcE9YrzFtAuZLMPMe8DDpR8/l7HdFf0ozDRkkjOGzAMBk6OGdvOk73PtO5VXIm FuoPtjuiN1x5G2+Jt5hrXpAl3JVcWxLx2Msc8dg0QBr6hxsk27er98LnUvaRSQUtuhWE7n25 z6dPTCbLtGNZK6UZLV+r9AJKGbNSbqdVok1pYeDroIscR2dnR/9wX/30+rfTF4J3V6OnIkNM hPjByen58c/HZ+7zN+fur8LZNxpxTnA0gMi5qhoTTbs5IwC+VOuaFEx45U8pVWsEc8e9kQwQ gZhT1hvCXueXqWuFslacoHSpQ5Fkin+ZCpI9ypuE+5fHyUe+8aEdVZfNUKuPi6bB/JEGf5LW mw5y16pSw7bBk5KrKVNExBs6huljXn9KpF4OKcoq1ZySTsKMASijzm0CWRZhVNswCMPKmmNp dUFoMUJnpArUI66ic5pRtl0/zf0GZSr/JPXXsWcwt/BlBro85RK7ixpPKLVf6XKIWIEQaWQZ XoGBItRVmGX/mn2fPtsp3kZhhguZyhJuxGREMCyK23N7ZsCX/ckAYopXeAPzxW61wgFOEm9z jehSHDFTiBYW7BbwVmZuxI0L2W8LphZL83aFxrR/78EfK9Q1ipOCPEzFI3oQ4QeXesSEk4QS S6ErPGAXiqJSs7ZTfrcqv2g0rYB6L+El/UWp+z5z1VMXXdqLQtbtupQRpVnxKixnpIp4YdFh BbQhVCZcwExTIE86/fP1HIkYUssmiNEavlKqVGZzG7MhKsrl9SLRdqaTi3Q50/uQmt4vjl8e n50dv+CE3YOolJNB8SB64twxnYIhuI84EyR/wxWP5IpY2HSxnbOsDJJipZz75yAp987xxUhp 3gT0IYNTNW9DRpeuYEkDRZSbpcCscZdsbikbkvoDMxMB1MX6I7hfAtJSn3RuvcQfL70tLKlF u4S8IZ38O0aX3gcitR/XIj9C0iIukQYPrfBHRFRGuqALZFpv4gvqy2GqIR+UmT3RAGSd+Wyi 3wheinpUyFgoi1Wgvw+g9/CNWT5CynNKQUZhFmbAk48bkrvl5EXSasmWNA0TTqXr2pRzGKxw /ypLDVNCg+YveIWB+iFSR2ToO+ShRMmlrFhVTgM38i3nr0HmaLPbelKcpSvblVYSwdASjELq U4IJf6EyS76NxyOqDAPqMIdXUelN31B5d9PqqpJAv6tTUExJXTON/vQVow0zO/6+3vyB1rtt J4owXp/PJ7qOxraqapOZehNeL8+JxWXF1XsOqBVrmau6lcw3z49eHZ1JExilbMW68iq/ZMk8 KArMDThz7aLiwNxcYZQcr4jPNJLKmAlQVqfcBGmSvJfCBDz4nHZYNmoBuDZkTJc+3vA1HqAG NzDzHF9NLzYPvX+aKiQ5Pstb4OwVscAF+khdYqwvTfvvn0o07lYk1wq/8eCkXwDDaLfkwDco omn4UnowMKPoIMHD7XfmniB/3jShfHIiOToQseIA26jTZEKf766uCNswNYm8XeEP5OcGe8El DiesEKDTGv3vHQGPXcKcKGTyFbnE4sa9XKDkLdl39zLOmjAii57xSEcyUWcO69slp+DZTGVk qvz7XBNW61XZc97akJ+PeTPA/Y6J8gPV0xknbQNrhNzDSdUMlTamG9nPz347fe6+OPm9C+mp niC3INdz/GkL80ivNc0WstMKy568IsGv1klMCd69Ca+6EpwV2UxqaMYO3Os9oYkQ//xv7uuz k5edGlNmrUlF70Wr8oDUIR739EXTmJQ6KAlH7rGEaKwpXyQbb3qvZllAxOdlGsu0OxPL2FEI YhYLRxzY+dJBj6IzhKgpOe/pmd5LVeE+YlBTNlcL0nbTmeRmxUPuURorwEqXWIUrUTDNpc6W VE1IdbKCB4ZyyNsVdWawVeLjV8fk43yUKiqgSdqqZtEAZ1u1iPlk3kyTlCxZMNlKMxCkoar/ oWR6Zz6H7Vq82K754zHvOLwqTO/QCZqjxibIBTmX/daVFjAttlMmyf5l3kCeMXV+Q/sntLey qi+TR5rW8zHbNQsJ/VpcytSxxdu13N5clBKfO0WYEtNaxVMetELecMYyZhCIYKu2c0Nn342c tIRJJEnjAlX20o5vjGwy4KbCnEfhvEyPe3WsKuaovWPjlO9oGLzgvGJgY6W/h6bpyXSlTB2Z LvPK3xOLsbZqmszG1VRjYtzEa87XwUrIs6rCHWFjfUPoWEnAwfEPvBmZfxKNJScstwj3Ao4b QEdFmxl00BFEmWkG8RZg2hNg3rorjEMc1rkmabK61nbIUGond25U6olIMgDRPSIjv64hXh9k hAZEXMFPAtBeN78M6xH1DpLcV9tN6goruVmZQkXned6v2mxuTTbau2TnQ0AG09YI0lxQVY/7 gmWXZM2yfnXrMoDqUYBbWYDsZYR2sXAgV7iKAM7c34/OTo5+enVM+ZFoMyxdcr0EFX76bKWQ r9Nn3nZLFBtY0u2Qbn0Fw+ItQEtgXj957cvzEzKGbJnraSq1uaUvOcnoaa1kS9wn5xB0qDFP Mk8ioVnCbKM8sInnB1V9HEmuSJIl7GlIQAhVyZbhosDrZS0nNmWcXJZXA/NZKlLmiCdRDxzd bPjXuVIZ70FXaOIvBTdze9am1souaL4BAgYnja8Lm7fSQthQ3U5a/o5vpLVMxwgCPbJ8TVEw QbkZdjRjHrRtpBWl1O2jFe9pvIM1m8MyMv20cxMibHYlxCG/QRPJmP0Ri0rIPaLegsX1RIQX 5Vhf8DwSLBbFfWPBxMZbqRS6BRZLoRTkjz6hLi73g7eR/egTBHNKwbNe3JcipaZCWOmOF5lI o6GbPEhazromxLu6jleFCBgecclfkx6Db56HoGYRS3+/JBMxIST02/MXmEzKMGEQuSXJYQLH TOECChbDtln0ykyjo+nMikEB+44mm8vgf5yGbNxIs2COJmXR3dMQb7iRMAAx5EyIDUlyMXUY FclG27bB4BCGATu4KgAJeihneJjFRebWtzg+ykknaLVbLFw+22YoyYkcby+RT3ju4PloIjzn q9DbgD/933aEExPylEzR/pokfMlEB9b/F3iTULc7/Y4TDgKX5NGCOqgIobfxxW69S5jfNSHA kMAWJhbmTOca9BGq/zFL+iOCCSb2d1tOZ1oFTQVE9QLShYMFXh0+GhF2IOXtljicAps/Jvi1 iIN4S3/xKhXOCCzO1YJVnfktMIK05naSIODhabx6DEzM1K+/SitrJI0sBpRvHhwiFabYB3IH pHXFdO7hslvkjbLLDD1MK3mYaRbFcuSG9C4TFcrsYlSdNngchf4IFJlwQaLzOJUkyfSiQjPK WgAUjZdv4fFUe69w/yeh6VRD02eCKSj2ieU8zaBIQD4tiDC/DShAdGkd1gIga7xKtrDJZB1R OOL7Ic7+9oY0hwWOLeOLyy2s0ntAPRCybboCKxnGzVsyaGROrdII2jMEWrPM6QYT4IY8iBfH nk4TuYHPkjcijZ6bHiZlOMyXy3bY3ecK64Mc/vNojc/SKJM6iWVD4zAO0cEBISyNeHqrvleS JfoX9l50esRH2pzTyBFtZt3iDN4QqyHoIEiei9YgnXiehkpx8o8R/BVRdDx0lO2kl5wGHcyC cs01CnExBlka+Wq398NuQy9Gvdb8o9apPPehZxz4MltCWIH5p9K0zxmDhh7Q/d4s/CAmBnuu 7KdoPI7TmB/mfZ3rKmMHXbsd5GdKbU4T+CwFoDKOjWEHrJIuhKV8G1O+fQwPUrbNB5x2zj/N FSCguXw8S7x0SRYQHXpMSu+w0MJSGY9TQDW78ajqyQmvqywWUTfUiWXcAunlmmvcYhfi2AAm DtDhloxyjHU+o7xT4xYWcqdNrZB3AaTQLe356OYh8NfhdRmH0ujcguOyLjiKlVL0co6rIXvM BCBjYHmeGZdY9y9E+v+KDuSnfPYGPxt6VEz/hKSXgqZzC65FNucvZFYvB1vz2bV6EIuzVba0 2EtkZF4oFFkIlW6ZLbVRQZNLlu3inbVVL6kUxQqSpexD6r842Nw7aEKufNaFdBdSpxXr87ZF YkSKLFFSXjVYjoTeUd3Ndo9ObTelzkw6jag62oPg0pJmbUtySpgksylS14h5VT4+xXH15WcR Bk7dQUJhpasB8fJqgd1ozY6EkfQC6oxoUOgpvEq6LDcBssGuHU2K6EQw5Mx13ino4UgGLwic e3H85vnZya/nr8/YDplfc8VnanMR2ijzFq31Km9lHsP7Ysevr2E7zplbWIyiRRTbSWobTdI2 VTODzAepepH2gH+/GstZFAlxW3yydapvgcP70qpe38x5NfLYVnKX8D16pe6LvTqHubmqoFQp xWmHpIWkHTfOF0ZAnr6E1tatoBzYEyJJJh551IBqHdW5cbM6x3s9SZt9k8mwrbIKGOpge+RA a5zbK9zdbpKEBclWS8ESgZ3fJcOlaLdWn5Ho0qVp0pMNGzmhJRts25LuFPc53NxDKUhXOvmM +wg5HZg78j4K1yv8hIP+SYTEEg/yNhdP0I9AE/JthD4jVswXWhP5CdRZkOG84D7ep+jLj+k8 kSdltmxEO2/w7f5zk9gKtPdpG+T2F9clxPCB37EQAA/VUTnOqP1AQjpoPWiv4D9+Sv3HB8QI HqEvT8V25aIPjqtRbaOZbk+Q1a59/WLZIQ3Mh5/HiXzQlD5iYDPKNUH4pQ33AzqQFBlWXsV8 yTlhkhfuyjJSl2BzQen0zOZyvLzaQoT+clukheTXaxzw1K3C0663a8ouLmd+vnHIcJijzzQd 5vLnLFW/FKMLf/yf6iLL9KJ8wamDjHDzK6LFPOF+j8znkbk6MikLP1W0uOhBJW0mCR9meyZN TYdNvYRYc2Ni6hK1Gk1tcH3lZ2752IVqPbPRaJGChFKNq2BKTm/DlJR24O5nSt6eAdhsl3HD M03NWAaYvY5j0j5RE7G/qds4PrkKCorQDSzFe5ykeTuUhTenEb/L27ESu+haYCny5LV+1GyZ 9BZsyHtSNyVdqwtA3DI75gCKfGZ19Dcev6T49Z/fdJymWkVmLfHjRVJNSEdfOLDk4eu3qxD6 LtzbY775hJZB/6xXRNDjbRGVQAQz9aKL7tGHGcoGpmxX5urO8CffpkrzpnbuK2TNscm4QWmr pnEP/bo7TdoWKRlIVS2itwS3gCJTF9zC3/HgFnumquo8CnWsKYoV2JGnWZhYB23BLaKUuuAW 8R7me93S6Co4/8ydrrXz2TFNFUdqscO0yF922u4fpMETSeV+SdSTn05OX9DwAQ/9dO4+/9vR 2dFzwmR0K9WaHrPHDiIBJsvtOoWhp+z3/PWL4/JZ7HRPeZqTxZnmN1NUn0lEg4LpOc2Vp5Xv UQIPFK0+b4swHQuHlU4Hkg6L+UKpP7PmMzhKhX4WlqCFIgVKr2DobCQgnKoQdcuPQ+ZHrUQQ tNa8NNVNaIpmTKvjpmFfdqa0N1swI+4oLgYt7IeCezjq2nwNRQhLtwPWd6sAo2lzUlsnc6/C doXUp0PE4Y/V+iOcSriEjYY+Jv+iLK780xaS0FaxwJaZrRpg7pBPs7i35HaYShjxmK/fPqC7 2DlzfbsBK/rmPLfaBqpZ3hY5iqEynY/qKjSjjnNEPUUPE8fOzgZe2sDell6uLgR6TRYfN7N1 mxqAM9uYT3TnK7BPZ0Oywg1wMzuSdzvljbHwAzGLMD34qbzinj+oqfp8/foV5OI6HDvzoHhi Qf3SdZp//2W56gVobnKVT2/qVU2nXay0wIz3mx26RYNCziLxb7UxIUrsZFDUWwVqFiawnz1x D7UbEyjHE3scAZlOI3nuiuJNsnXFzokmrSajb27eo6VQLSYrqk7DkdSpXL0lUObTQOc5slB/ O7qWbQtaksQ1fN5q2BGB+E6HbMdn+otv9UyPNjpzX5Kuc9y0bTrrOtqMn4qXc1x3VbYk/m1b ZKMjVoVvJxFsnyFWC+FOOMCHQw09xIAvs+dM17yhlTp8EYuzlV1uEJPrxauEnQfEnvl4+xFj Ftu4/bgWxm3C9uvAwUOk5DJ+3tiz2sgF+wUgCgaJ6mLOskMrKQF5FGJhlTCdSh1NA9tq5pgG CzssLWV0CyGsOutp7wjCuqrrVsMaAgjTsbxRJGHjOLZGE3JyfGutydEdNtSWnlu1knWdRm9y cSmjYoTKGwRT/YdPaYJNhtjDUuzhzCHqrEaHaK5OZrP8GKVzddO6evPolDfhdhydbDWjgtj5 EVjwbeu5Idovfz+qtyqSfQIx94nBlMMv+7T7VkMw5ejLTjBaZIO24MtKKGwOwORMcPshlkOM Zdb3IcZyiLH8+jGW35VhW/LGDZFydzhSrvOpAznDoBxOekOv763GwxadCWWPfWVkbD0hqoNc c4r7l5xzfJukroLcEhjsamKvd0qwmD5j16CM2lYOIVKqbuWQv+Mrh1FohbpjauYcK4oZqnNj 7pnzmdW2cihKqVs5FO/p7dLW3KEn/7Iv1OMRLLwkcS+9BJid0G95RTTslbi1k3uBxRpC4Roj uoNEPlwmF80oVo4omCTitpVkE7AFSGqr3R/vWQa9t2aKaEkrdp8KvzM520u/pXeWSBGA2S+Y HLJc4qjLafs9IGK957cEoyVeBlfX9Bh1CEak56FI29fhFF+6Hzhmvpclgd7lbkkq4BPDlieg 92f8SDr1IzX+fyQd/RGyk3weEDqBg53XqylRyT/E3gIxBE1yB91qc1Wf6BoMrQNHH9D7WG88 Ojl1v8mHCCMiWQctqhT5XYg1K4QK5iIFpzx8Q5wIlvq1NuBmXVynbpLiocbMlUAPNabaf7qK ys7mp4vi2ak8T8trrE0GDqUUO3m+fbFVtqYqM/ZUJitP3Ctpk7z4/c4EgxLbj80qVkHXkSov uRHHZUwZ5k67bIcTq2/JVpq4pHuvtLmhwlq8NtdUxvP8IrokWQdxzqMlIRnTMT5uvKsrzKOq uTiM0hMtGCqyk4Kycy52q0W8jLf8wqH0UqkKIJHhKEOpdLa99DYLvMoKhtMGKP6SWuML6cXH S6LKp1e7QeADi4/VbBPuuhprtj5jzqsb9/xedmJDAkfksnObFuyiRQlGxIo2gZeY3mMLoAXZ +YP1bluKDRFbhuE4qxIs/cBu+hbHNvGbudnpJtT07pgj8zTkLvXpsnclK4ERlx4vQYg7M2+L uPfodXPPXx29eeO+ODo/ouH0o8IOhFHmri5SDbpVTQd65XlKNEaRlHR9svHYGOmI7haNqr4Y FqekztSJZqOxrurzWxLP4umQYqtTes8UO7mINpyKcNUYT++1zfKQojibYLE7nU0o/GhQcch4 3ZSS7QDoB/HZGaoNTrBu7jvGEjDjtOXKXVSV5hpl3dh/KhGRmq29QUUfG6v7S3bAXx4rs1Na xUGvXJPnh4FxVrSpr5+wpHlLnMgrg7UFdl8iaw5duwUn9QQOCfsAv4h+AxF5YCFcwPWFPl6s P+aPsC/0STpCiXe+7pzFnKGXR0XpSNzcLR3ZXp6CrQPYxNdNK96kbYUkMo5hgWLpjVptVlGN QZTZQo6me7pqRToOFcXCvjfTVWwTKGm2hRrMIGEBmYZDtWT41GYiUIZptrCQt8LleyP5Ical eyMh/SgfyVpSkUu7GekJxpUnEqQxqVeLXVItVNvsosZSGam2nS+M3b9Cb0eRdDZgATlgk76H ZWVxiRxV+shAV6WRIzm5/kemtgd0G+6b87OT05/dl6+OfuY5eJo9wiRSr8jeeVHF9ZXo/jS7 vlcEtJ4dv2RnU8XbBK08koWYWdB8hbb+9PWpe3r889H5ye/H7uuXL98cn8NlrDGpjehKhJjx 9v/9n/+bUP2MrZ/zRIG3Ii+oupQ6P2mJ7H6eHT+SK9cOuAMo8SK8uIZs4vYuOPj4JK2IosME fcS0MHYt0BpdLeBShC3NTWuAQ43Swzk3pH9LTIx3vq7fhwriEmMKqNPqwJQmUUnvMKXcUr6l N5eYXcI63rOW3EWunzPzn91LVDxLXPIIsLiAwlXGpuNMTJXghWNIwb77dJ4JSt1o8GmLNuJB 7vhumo1zcSNWsepFzRScxMaHY4B9YAYPIgs8OMCKoONHOBuOmRbZ1dWkFUSnS2J/kYUfpLNG xZiNePD/a6KNbT7GXetJY0ukg/hYH2n/zGqpTtl0gpgDNddnaT+I5JnISCmokW9q3Yjwfhc8 B/LtP9UB75StihHvmakPDLEsnqM4zRQXiqIvXv9ydHJaUSzVA8AVCW2+IPAOOusVz0VULvf3 o1e/HbeVMqIFsVb0zMm9MWlXqM4M70KmzjFt7ZB28a97aoktGmKXRYT0cPFeuUijKWXuoSd9 ainSBC+IQsbu8e1yElzaRDaBnvzz2P3t9ORcTJ/F0rnG51/D1LOHSXGvmcLwujiok7RLpdYU 1ww6K0D5Ygha99WFpGWBtOGp7cDIk4mdjC1adXknpy9Ozo6fn0vwwrxqnbUrmHIyBxdXNlo0 4ctKZfWS68GqEc502/a8UFcUVfdnvuY7jtd2VC7JX6cGX7JzNDXYVD2GD+7e4KH7sOQDK/mb lRvtVuz6TZi+8qbR5H6Wo7x1hrxhEx+LfqtUMzjEFkvJT6isFP6XezjrVAdhMYl0qRIgAy1o kz2qrC2k0Kt0akP0qsb6Ob5Q9172RsVeNcLp22QXb/HjCz7YSnjxOC2VTbiuoUSOynmiR450 X1vkGYY2Dx1bUULdDiLH0ENLL3Nin7IzLu2TCzjYAK/n2OC+TxHiyhQJOE+CBrAmB5+4/kRP vVhdH3xCjw/RwWOkTkjDJ0hFj8mcRnQVModqKkv6AB2Jc0cvvStx1Zi3wZnyws+xrRhnJvwP 0GcUXkzpgQbka0I0esrq03C3vJpuiZmcoIfv3j169+6A/ONTOfkGW/IOzXfvRoi+HIkTUF3a EveT8u5dOCbv4P90UQWAhyWHgnjQKE/0COk0KfeQwVNeMoIq4Psh6fTTh0hDD8U1oQ/RF8SP Fe/YCVLxo6pm0ireve3QpnfvaxuC2C18cHr/ereNV+A5x8Efbr5CWKmHpHIykiI5yCe7FrzA 6I2ePCnQ9/rgCTvQxLSAuejfWuYixV8XmOsamEvTUobS7jpDXbcw1Jts3F5kSV/U8ZJ2+7x0 LfNSc3MYG1W2oRsbsfs0CRHCIjPRxLILPF7mWGmSO9yc8FWWVrCUNqNbdtlHHVNtmhGL/NP1 Cf8mQ5euFzmNrhzww7q/Dae57nZ55Qp3ksm84tq7dwrdwFDLcrXZ+DQPGeuLjpfAJyowA/nJ w2mBX4wyu+r6bbBrNRFoK55QnoRKybiSpgTbVrrwrF+PCFRIqnveJiS0gkqo3UhQS1M1IC17 f6AoXCwsCrXso1Ys6rBWN1IJMO6eBLy4VXTVjdtg1xc98bS61k6sUg+nXhLg4uQMA+9+GhVg NV1RIDBKLz4R9xCU5m6Wv7NuTFdZXE1t14nllFwXDnR1Hjl4hnVfUXzNigJfn0VqhVXWpcxW HTiXmgoNNd40di7WfUkormykrLCC/s0mcvHm/PWviEwMGBbnH6C/X8ZkkOA6XB6NFOLI2y1g yxldvYLVTn6rLji2Cct8jIn0Xcd4Ed6fPqB3wSDNRpSdiPWNA485+rZ4ebXeeJtrcUrECpPc CXlArB56kTm426AIqpKzYj1RtFzAhEUdgD8cPP6w6kZkP61UuT/mzdD1vZsx3rsZolIFqHm6 3nJHP+E0TlAAACk0i70W7nuWBOqA/ECNDjILnX2IdLUof91yQ+urco/71K3vl5vXXcrdUT7h GhNXuKhIS7xl4uqtslqbS9iwYTjHduSrNrFh56HlYd1yNK3ibJa+5bfJcH1Oam6o1NzgRydy eW0gMnoYRLGiKGm4DgA1wekiSncqRHbgwZgrKtVE9i1OCvY2y2U0My7dtqfoNOKilLWZ71hW pToram07AVCYy2kRfyFWBEy59GDCV4qyLyW4HkYLhdlUoXe8uuIEgop2dhSOAJyWLrxz9Xah KKXmwjD3Nc10PM8zZ4qiOlGE5zYODbOrMJTLbROCcg5mGNHJbMYOeZTUBPL14NOnTxN0fc2U v6vtxoSNjMx9S54ezJ5AwFS7wExhPniIXNEal6p+cBH4lRf80ZNLZYBUiJ49dd69Hyv8zBPC ReDvRgpw0A/kl0K6kKYSlgGwQ5Ve9bUrfpE+EMrl120HGaM0wZ9VT42+Xei6ZpHnlQr1Vx6C d2//FzXM3o858fecYG+jBZQSs1KLvi5N5LH6NjRpbEFXmrTNKaJNEt/x+TXXwKekpqfvxwTa 3r3Vpia1uV7IMmPuOUnQVkHYfQcbp5BWWDkqNrW5GoWWpSiO5TsWnkeGPes6QRRLbZseiump l5+exUD/Ms1IniCi9brjIHyaPnNhGYd80I0ahAvqhvTlyenRq5N/HtPF2Ce3gVDC8+o1QuEt cDiv6AfuR/VaxaxMgU6NcNlJze7SPQdv/sEPuVYx52QNunarALynTb3M+dN8/xZ7kqu5sScd xfBi7ZF3VO+fgttpGm6n7TpbbS4umjM7MgNsm54eKErggyXj6NjobMjUl98mpPU5qS4HmzDG GjdkYPY9gB0jBee4Dz5x9OC/k5LQjp2terlOtgfk+RMdFDo+dh+9zQqWUz//6DOvJlGc3r9T 2IkaP4LVvYNLKHcrOAo8ptgRfkGfyT/E9m2gR1PyHxkuZapJPFFT7mKfcnVJdHPlMk9tz9IM 2soKwmijfzki1DEmT56YqcrblQfpFl/ulCDtc7VW/qvMwXkP22pkO7oaqioxHv35bBYE6txX u/JeddltfFedi0Z203MT6d+8/RAZB8R4oPt14JA0fDUSfstwfb80lxgQF9oFND4v4j8gNJMY hz47zjFerfBmSQYqc1d+AcBY8Pb20HU/f/TgXvU1Ej4k7g8HtgISfEHGfuXyLHBnK+wqrCmr 0yS0DwE+o0+RFy9SVu9eWT+C7F9PO4Gqyt5XAtt1suosXAaN0NG10Aocx1AUHftOEGnhfNYZ /2sK7y2EmaKmW1QKrbIUmiCFcaPsmbcse+atyN7e5aSsVFHCbUqY+VUk7NbKrSPDLcpRuyZV mUNoUbqOI0fTHXNOtKi5amDfDyNzbynqpkFV56LGDuxMGhtmzUy2uguz2J86Q3Rw6pW5t9Dg LmVInFrIvSdfmr350pT4Uo8CM9T0wAk1YngTu1sNMCxa7MuX5l58aaZ8yXbO2TxUVGY3h/Nl VyXLuWX23FMZatUpnP3KvVzHyRZKoavhexdTqYqUyrpNSbwlHaofXfevp5HOt6wCtpa9J0RY vSHCkiAiikJ7Nnds7OmK4mmGOTN0YpI5+0KEtRdEWDJEzChEzCoh4vbxYT9W+0xmg8WVZbKh u0WBrK3gbgnOn8rhdm8OtyUO1xzDnBP7ZhaZimJ5lu7Mg8jQOy9PVpfdl8PtlMMpg3P+Fjsj UERtG7ZDhu0EhtPSkt3y4NMBfXzwZMTdNVKm22PyPZ0MlWywp6rXr423zLqtZe/Juk5v1nXk lXVPjcLZDHuBpygzzca+rkXYnu/Lus5erOv8J7HN/1SL+I5ZFIvYF0P4ON3n/dhbLNyFpsAR Cc0JhL2gBSYBS08PiL0QBWFgzOaaPy8oAy1FMfZqSUR9/CYLZCcfNGKDvZT3NpJfjwAHyNiI hRrYf0dfwh5dthdPOnxviuiWJwKdbGEhO9ae7v6veYfGqHAPONtzf0ATsoMD2NniZDyl88UL mc6OTv+HyIJiONmFxtTSSseHxdSvfnr92+kLln4Swym8hQRw/sGL4zTB0+xswWQTuDRE8PCQ ABdcQCw90IsPzOID+z76b3EU4gj97ej3YxeqffX655PnR69czeKRNCyWembvOTLyZuw0QgZv Nmt+1NsEPXy5W62u6fltIcHgizig9wqzqFF09OoV5NvERByDh+LY7JDURKgv6imObv3r2gEW afuNcZZLGmZae+0wp7RpGGkpDR9sGqa82mF2zisZbMrqHy/jBUYHuZej7nBgteKBlQKC7cz0 eTTzPNNSFKyaga1qGFvz7oBgdUIEqxESrDznWQMo3B1Q6DU2AyzcWVjQ21BBT0HBiVRLt5xQ m9tES/Cx4c183db1zqCgd8EEvQkS9BzX6QMg3BlA6DMyAxzcWTgw2+DATOHA0wLDNDWiJ0SK os9VW3NsL3T8znBgdoEDswkOzBzTmQMc3Bk46DMyAxzcWTiw2+DATuHACkw7Iljg6DrRDnRv ps5nQWSpneHA7gIHdhMc2Dmmswc4uDNw0GdkBji4k3Cwum5xKfIEIsDMN3Bgqo7uzcFYmAem FUTYMTrBgSiqEQ5Eoko4oC8Hl+IdhIO+I3NjODj9xwAHXwkOGl2KIgUHhDCyPTsMQs2D47+M CNtWhGdY6w4IrS7FNFU9JAwuxbsLCn+uS3GAha8FC40uRZ5A+BAc7OmWD8uPimIaphZ4qh96 3bWEVpeiSFQLCYNL8a4Cwp/qUhzg4GvBQaNLkScQh9WGvqlHqhrNHUVRNV0PjLmmhd3hoNWl KBLVwsHgUryrcPCnuhQHOPhacNDoUuQJhHYQqE5ghMbcniuK5dsEBGa2EXqd4aDVpSgS1cLB 4FK8q3Dwp7oUBzj4CnAQrHerLRljd9EACXIiEZzkmR4OZvPI1IjRYIaB4zlONLe7wEKuuCZo yCWsgocsQe5WhsGlcDcwYr/huSlQPCcEOh+g4mtBRRekkIHCN2zTdvwomCkKNsJ5GOqOZVo9 gKIrTrTBRJENB5C4QyDRa3AGiLjLEKF3gAhdgojQIIhg+Z4TEoggaoU+84O5VbyUpL20dojQ WyBCL3Dh4Im8QxDRb3AGiLjLEGF2gAhThoiZ5/i+Dqd7KIqmRjoxPXzdDrtDhNkRIswWiDAL XDh4J+8QRPQbnAEi7jJE2B0gwpYgQjMN349Um16yZ0V66Ee+GRS3mreX1g4RdgtE2AUuHDyW dwgi+g3OABF3FCKSyzjaqm6gqU0gIacS26wNC47IDwK49cWaYTOwvVmozjrBRK68RqDIpWRX JGkTG65I0iYa3cEvJZEZEn4+2sBlkYwrC28YWeEQfaCSu0W0lAkj8obdEqUC67Cvb9X3lNBJ 9iaR3hBO3LB7MUmNOSYkbxL2poJBgU2yG2ehLm8D/FrLmb2ZMsePvPwmjmxhRsqH45rOEpFi NdAkhb4lzX27FWxNWvrXA13HtcNGepnwXlJeefwIHdGTmOEYhmCdbBfXaLkOd4s17QnhkQ+x t1gAik3ZZReU05L8PefwiPRTpehMfzw7hKuIegpxUwxjLpU4vRbjCMOWaNVSFCNSZ3PP8J2g 21yfK6+bEFvtQmzlhdiqFWJrEOJBiL9DIW4KMZITieN1zDn2Qow9j4iwpXvEwrfs+azfPNwW apRL2CzAucgW8qtGfM1Begfp/Q6ltykiSE6UrephSw9CO8KK4s/IVGx6tmd12necK66T9Nqt 0psLRCG/aqTXHqR3kN7vT3rjpj2BciJxZPbcCfAsIiawpighDgxvHs6tsNuCm1xcF+mNtTbp jbXi0m+l9MKLQXoH6f3+pLeL+RtL5q8aEcXZ9tU5eab4jun7munPg05HBebL6ybAreZvnDd/ 41rzNx7M30GIv0shbtpwJycS1/IZjh46VjAjpqliGiGeYcPztW5hcXJxnSRYbxVgvRhaUS2+ +iC9g/R+h9LbxXkVZ84r3/QjTbX1MPIUxbNN1Qg0Ygt32kefK66T9LY6r2KzGPVQLb2D82qQ 3u9Rers4r+LMeRWGM800VM9yiPnrYUzmYIyx2emUrFxxnaS31XkV28WAhGrpHZxXg/R+h9K7 6RTCsZFCOAJfM3TLtucqbEm1Z4EGd5fqvZzPm84hHJv2EI5NPoRjUxvCsRlCOAYh/j6FuIsP ayP5sDzDV21L93AQ0RWkuaVjH2u9Qjg2nX1Ym3Yf1ibvw9rU+rA2gw9rEOLvUoi7WMGbzAo2 nbmqq5qPA7i/PrID0/D1wOrlht50tYI3rVbwJmcFb+qs4M1gBQ/S+z1KbxcreJNZwVHg657q O5bvw31TqoaNyFH7xVBuulrBm1YreJOzgjd1VvBmsIIH6f3upFdzO+jPLJGYez1PnfnazPPg triZZUVzDWOz2/krcnHt0ssT0jsITXPioDF86Fomvbn4jeDS21TuqZnsJZ7kzWX25vLGgkve XbJ3l/8lBLqihJN/Hov2f/eSXtP9tCcFAlw2E+CyX+cvcx2/bOn4ZVOnL0WHK5iXdPZShjW+ qwr4YsS2rn3uB0WdtlVlCUVUmT+zQ8ODW34VZWbpoecZAZ73cMtJRXaDJXl/lTYDaIKPHDTx VKUtVgNA3RGA+q+AQgPQ1MpvN70nt/srwJo3g/uY56Gi6LptOKYe2nsATXf9R94D1gg05W1g A9AMQDMAzTcHmnbfZpou3eMyN3wPz3QD3Ju2ZWtO6Dth0Bdmunk4s7StIFPaqjZAzAAxA8R8 c4hpd8Cm6cSZNb4a+fNIDyLwwVqBpfq6iee9IaabGzZL2woxpf10A8QMEDNAzLeGmA4b/dJ0 YpnHtixP0+05xsRY0kJT0w3HMXos82QldoSYbMdfA8SUN/0NEDNAzAAx3x5iOnpk5A2JONBs NdBtY0ZMJUObeVYw97HV6ZKQUpGdUaaLR6ZqZ+IANAPQDEDzzYGmfcdkmk7AjOYYTugZOIRN k5Zle4Zlhmpfc6njvsksbSvIlHZPDhAzQMwAMd8cYjo6faWdnbpp2LZjmo7lK4pvzM25rmuG Pu8LMT2cvnEXp295i+cAMQPEDBDzzSGmo9NX2n46C7BO/nM0OPlwjkN97hm67ff2yPRw+sZd nL7lfagDxAwQM0DMt4aYLhtks4Tp3pxIhzOiIisgppJmYUedm47a43wZqciOKLPpFIxXtVl2 AJoBaAag+fZA09H1K+/j1QJD9wMtMA1DUWaBZ4aGH2GtbzBe1628UuJ2oClv6B2AZgCaAWi+ OdB09MtIe43tKLJsW9NUuN1J1+DoAGz4Wo8ze7ISu6JMF79MedPxADEDxAwQ880hpqNfRtoQ jQ0d+75t+TNfUWzfsue6EWGj2x2ThRK7QkwXv0x5Z/QAMQPEDBDzTSGmiwaTaS+GHjqerpqO pyqKGoXhfO4FftRr4bqr5iK0lmGv9n86OBn2ald1f9ir3SDsHbdqm7md2sH/Z+/ce9w2zjX+ d/IpBBQobGc9nfsFbg6QExhpALcpekPPKYrFXFvBu+tAsoueIvnuhzdJ1K5Fzkgridp9icB2 pCFFDp95+Jvh+85IpU2oF++pw/Wc9Z74EHwR6fCCRG2ek6fNIU17yt70HAwIPGZX680ZGObb S3RqaTCL9dK6CAXsTcCGEVKGPAU52jwnRZtDhjZ4DHjMJD0mq0e1lZ9tuTSKcM4tQsLaSLmO JhQlHfD89GyekZ3NITkb3AXcZYLukjMczPup2UwqZbzhqs41CLgeu4lG09I+Uu5gMM9IzOaQ lw3uAu4yPXfJSsvm/axs51Oi1BFjJEJYh+SktLRsbhmen5TNM3KyOaRkg7uAu0zRXfJGX/oJ 2QZzhxN3iieEvMfMGkW1KMox4AX52DwnHZtDNjZ4DHjMJD0mJxmb93OxKWaEexl0vYCt9EYk gqm3RXG/PD8Vm2dkYnNIxAZ3AXeZoLvkje320rCNDCYoFpolOqVmiXhsqCta3oDnZ2HzjCRs DjnY4C7gLhN0l7yx3V4GtmXWSlu1NWoRSljxeukyz0pHX/LHdsfzrzmkX4O7gLtMz13ysq/5 VvJ14oxgbyyOvJ5EhgSJsbYslvlLfu41z0m95pB5DR4DHjNNj8kb4d1aP5ngEJJK1jWrLUlH taa2bF5fXpB2zXOyrjkkXYPHgMdM0mPyxmB6KdcsReeNJFVPCSFrGGfRUSNoocPkj8GMJ1xz yLcGdwF3maC75I3B9LKtVaCeOcGtiAgpFQwmwhlHCt0lfwxmPNeaQ6o1uAu4y9TcJcdaNr7C sYnYBo+TQIg7o4MOWJb5Sq6prBwFUq0vzk4g1fpzlw+p1gONPTPVWm+lWktitaCJiDpMRnnD sNIseFNkRwWp1jon1VpDqvWUvek5GBB4zK7WmzMUrLdSrVNSkUXGaB3sy7WUNJoUXNHrJl2Q aq1zUq01pFqDx4DHTNJjcoaCdT/VmhNqnLQGe4+Q4MR5LUh0RanWOj/VWmekWmtItQZ3AXeZ oLtkjdf0U62x8IIkFp02CHnjlQ8uWFO05pLOT7XWGanWGlKtwV3AXabnLlmp1nprAWyaBHEs WRYrd6mj8YSwlhfNHK7zU611Rqq1hlRrcBdwlym6S97oSz/VWkqpWMBVh0gjpJO0UkaJcSr1 l/zRl4xUaw2p1uAx4DGT9JicVGvdT7X2WNrALPUeI2QFTYoqkWLRWm46P9VaZ6Raa0i1BncB d5mgu+SN7fZSrVNk1Ehmoq5XVjI+aEu5tKX8kj+2O55qrSHVGtwF3GWC7pI3tttLtfY6cSUc FZFU7CJp5JhRYotSrXV+qrXOSLXWkGoN7gLuMj13yUu11lup1tYnGoWQnkuEkmRcuqqnhIum 6dUFqdY6J9VaQ6o1eAx4zDQ9Jm+Et59q7ZKSPLGAQ+UxxMhEjKeJFo6/5Kda65xUaw2p1uAx 4DGT9Ji8MZheqnXAIuGoNWehohijhWM+aFzqMPljMOOp1hpSrcFdwF0m6C55YzC9VOt6nhhc bYoThLRWsbIUZ2Wpu+SPwYynWmtItQZ3AXeZirvED127HOwdbZXqvEVgQ7QnVjuGEDOWx4Bx 8lnRddvHG7KW7ZKNs4jWWcTKWVZFIOd6sr4COdefu/zVaYEhfa7BD3Wl+oVWc1Z5raWmztSh MlpZxXWiHIsiOxrrRm0VBDMCMwIzeh5mNNTz6hdavZsSoiIikWL9bkokHrELMuCsuR+2Dpdl RhrMCMwIzOiZmBHL6qqxflfNpMQUS8lVnyHJNI3USGeyZsbaPl6GH7FeV03KK0IqR6r+pqbn SCzfkYp9p/rGbb5x4EjgSDA/1k5D+qpuL/M0e+E+fLoLL2u1V+2n3aX5aFvzrVk1f21Vgxuu hvbgb1Y75lZHt1tXJV+4kfpoig/VyarA+kR2XGhVP25IDFuX83Ndg/FmGb/sH/J3f373rrb7 El/P6PGyXo9XaeID5TEYhRC1mHnriCMlkMlye7xs0+MFTwdPB08HTwdPz/H0jIED1hs4ENpb RqP3WCNkE48ecyZ5GalnDhywzcABeDp4Ong6eDp4+oCnp6oebz54PDIb8HaxVaplcNJjwo2R dSK3jUFrnFLWRJ33Djjk7PeK1t4u1ZWafVX9SZoh4X6JrVSojUY+Z/Ft02xr7ud2FCu0jv1Q Sxsja/fCLxtzDtXhWjd76N0PPDp+HHXpPTxrs1ffr1e/NeTYo97VK9Oc0u6rrQ28+8luPPBX r2Z/jB9nH//ZXPinxd3sX/bmU0Sz2atffblqhnftpd1Vl1bd8/fVv+orqO+wlvWov8FXhD/S HR74wbY9Vvt/uvv4t7u/N2Wqq9i+fXbkGfsojxs79qAte97U9+fzzxu7eODB1r9fj9y+7ixq 5/4vlv+ZvZ6R+jzIxtHa4s1f94vMVrXcDRSTdbXXv9cAG5V1qyZMXMnHa9V9exy7rjeD5zj7 omoBH9oVEgipT5USc1WdW/XJ7YEnW//OrV2+v35f7fAZ96mMf/aiLvCyrsnqKm67S6g/u/+U 7P3m7bBmuyMWSLbdo6fY2xHB1jsM6bX7vjmJHRdVaem2by21WnuV9fWMzH76abb1CX3wCX/w if5y9ot5CjHNfvPNX95e16f37ofvvv/2m3fXRHYLYbBmIQzBOxs69DaDD53fh9ptLbWHhdYi GbaDRiC6sSyGaWtZj6GPY3kWa6GJaXpFaH2yS8CmSWHTVw+w6Nf3vaE+0t/uqh/uKryxiFkl gZ8LWX/oZet2sY71o1Y+CC1tVAhFEiImyiuZtXrivQNmsr4cZX0Joj27aI/L+vveYXjGXi7r H9CqT8/6+5wssP7FsT740GX6ULsdn/Wn5lmDrA/YdH5sOiHrDwXgbJVaLY4THJFRkxg0Qhxj g6mnKu9t7fbx8kCfj3E+B72eXa9Hxfx9bzA8XS+W8g9o0yeH/H3OFRj/0hgfTOgyTajdjo74 UzOsIcIHYDo/MJ0Q8IeiMbdKrebPoSFRa3ByGCGlo7FBR+WyQuy3j5cH+HoM8DXo9ex6PSrg 73uD4dl6sYB/QJs+OeDvc64A+JcG+GBCl2lC7XZ0wJ+aYQ0BPgDT+YHpdIA/uEbsVqkV4DNN rCM8mIAQJpFaoniyugjwR1eI3S45BPj3VocFvT41wN/7BsOz9VIB/5A2fWrA3+tcAfAvDPDB hC7UhNrt2IA/OcMaAHwApgkA0ykBPyscv79Ke8TeOa2sxhIhh5nlKXCSysbwxxdpv1d0GPIh ruz8oj0u5UMY7GU+YQ/B/KmFtg5yPoTjPwvQBx+6TB9qt+OT/tQ8axD1AZvOj00nZH2ahfp0 Tfo6maikcDI6hEKF99QHw5UtI32aDfp0jPMp6PXsej0q5u97g+HperGUf0CbPjnk73OuwPiX xvhgQpdpQu12dMSfmmENET4A0/mB6YSAn5VvO++t8Ua0idQwYzBCSeOYHJXGFwJ+dr7tfCzf dg7pI+fX61EBH1LdLvPZegDgTy19bQjwId/2OQA+mNBlmlC7HR3wp2ZYQ4APwHR+YDoh4Gfl 2843+bYxBZIkCVi4CvBD8MpZRVLWIs7bx8sD/LF82zmkj5xfr0cFfEh1u8xn6wGAP7X0tSHA h3zb5wD4YEKXaULtdnTAn5phDQE+ANP5gel0gL/IWwlr0VsJSwVjHNMpCYWQJljxpGWivAjx F/krYS1GV8JawJIOExDtMSl//zsMT9hLxfyDWvWpOX+/kwXQvzDQBx+6VB9qt2OT/vQ8awD1 AZumgE2nZP2s1NtFL/XWGRqiFFZ7hlD0xgXhgkqskPWzU28Xo6m3C8ghmYBoj8v6kPJ2mc/Y Q1h/amlsg6wPqbfPgvXBhy7Th9rt+Kw/Nc8aZH3ApvNj0wlZPysyf7GJzI+Ueq49iSEgxIzU 1hOuRSwj/ezI/MVYZP4CAs3Or9ejYj4ExV7m0/UAyp9aoOsQ5ENk/nNgfDChyzShdjs64k/N sIYIH4Dp/MB0QsDPisxf6N7cOglLLUUgCSFKOLYuYixSGeBnR+YvxiLzFxBodn69HhXwISj2 Mp+tBwD+1AJdhwAfIvOfA+CDCV2mCbXb0QF/aoY1BPgATOcHptMB/jJrJazlZiUsohUmXjLi KEIiSK6tZTrRIsBfZq+EtVyvhKUbwNf3AX8JCzucX6+PAviqAXxyH/D3vsHwbD3Ss/Um3rV3 Y/wZ2yuaA/yqBX55D/gPaeNHAn7eAD+lD4B/r3MF4J8m8MsW+NUD4AdTeiKm1G6P1QEwbQdA 3O8ATM7AmKJtB0A96AAAUE0AqE7YAcgK4VluQniUMwlL7w3HCCkWo3SJJufLOgDZITxLPtYB gDdS59frUTsA8Pb8aTxrD+gATO0N+VAHAEJ6nkMHAEzpaZhSux29AzA1AxvqAABQnR+oTtUB INc+Z26erljXBRDCeK4j9ZEjZH1SJDFHZEkXYHXAjD7AqmhDCKx54H7V/K17jNAU2kO3X7Sk +maj4DFFPmM9VtX4cX73KV7ffPjwY7UT6WBkpxk9n0dX57dbNbR+jK0f7LUK6x/99off/v7d 279eV5J9tZHlcuHftOZMcaNyRnWn8luQOcj8qcmcm4ZBBNb3GGRflbdbTZHx3x9jC9G/rir2 5cMGANxR2gB23v0y2MiYHKQrtk4ZjEZFSQ3zCKlY4YZlmkhcCBuZk4Osio7Cxj6JruDC4MJn dGG5B2yAzEHmT0Lmg7Cx76wFABuTho2MV5ttqXXyEg0xRC6oQwg7R5x3mNtC1Mh8tdmVHAON fQbjwIDBgM9nwLwcM0DkIPKnIPIhyNj3rQowxqQZIyNBui21Cp8iglDmeMQaIWKU59hQUTQD Une8PMbQGYyxT8oP2C/Y7/nsV5czBogcRP4URD7EGPvmbgJjTJkx5hk5mm2pVXyGwjERQSn2 CAXNlbKBclaydlJ3vCzGmJNxxpjvk1UA9gv2e3r7/f53f3r73ds/XJNixgCRg8ifhMgHGGMv jQNjTJ8xsgIz5r3ADJyUDCElKxVCLAnujWNSlCzCvjpgJmZkBGbM4Y01ePCleXB5YAbIHGT+ RGQ+yBoQmDGxBvA4sEGzWINuJp2i2jttLEkaoWg4x0R6UqmjCDVoNmnQDNCgYMBgwBdlwLQc M0DkIPKnIPIhyNhH48AYk2eMrODP+Sb40ychZYjJM4tQ0jxSIZzxZcGf8+zgz3lG8Occ4uLA fi/LfsuDP0HkIPInIfIhxoDgz4nJ/3EYIyv4c74J/gxGW0aUDzIixJ23MbEUSChjjOzgz3lG 8Occ4uLAfi/LfsuDP0HkIPInIfIhxoDgz4nJ/1EYY5E3PdeiNz0XtVJEJbXhFWV4FbTWhDPh iihjkT891yJneq4FzFsEHnwhHvyHt/UcoOVzc4HGQeNPQeMDlLGfxAEzpo8ZWfGfi178J2cs JSIlruM/HZHMYiYCKcsyWeTHfy5y4j8XEBgHFnxRFlwe/AkaB40/BY0PYgZEfk5M/Y+DGVlR GYteVAY2inCiLeUI4Qo5iAtCclIGGdlRGYuMqIwFvLAG970g9y0PyQCFg8IvX+FDeAHxGBPT /uPQRVY8xmITj6G1FM5JHlSqJ+OKMlnMKC2L+Vxkx2MsMuIxFvCqGrz3gry3PBgDFA4Kv3yF D9EFRGJMTPuPQhfLrGm4lptpuALG9YziknuMkLEiUGVlMGXRnsvsabiWm2m4eEcX/D5d7LW4 N3gveO/pvffPY/NwtQjNGH5AGKByUPnTUDk3zTrTguAHlLGXyIEyJk8ZWW9Ilps3JC5SI7mM 0QSEtCCReWspKYv2XGa/IVnyDMqA8WPw3wvz311vSQYoA1QOKn8SKh+iDHhTMjH9PwJl0Kyx DNofy2BMJEJF9Z+tc0oIZTg4JW0BZdDssQy6GcvgovHf+i/RYwx6D3+X5KEg22ofYe0vt4S6 Uml3+yuhVqqp6vzyfaVq6zm2sqwrJcSHl7Z1TFz/6E28ayv/zaoOnfXv1x70ujWBnb+7qvHX M1IfrfvhN+3Fr/ar/9xdtPOZto6r0m2xupL/q63s169rx6n88Iv2BP2H2x/tIl7XB7j7x+zF +hKuqu/+aRezVy/rn7xqru1f9uZT7H3R/P/L2deNQmppCl2bpmRX8ljCbABhNos3y5hVrQ+r hDSS61VNra/jVUn7HDH6ipA+K+VXysOmV/3vrV2+v35fHeozsvz+f9/OXtQFKplXdXPbPT/r TwYfJLfDTbg7YkELbvfoNeDbkfZb7zDUfLvvm5PYcVlV27jtWu9s1Qh7lVXd/tlPP822PqEP PuEPPtFfzn4xTyGm2W+++cvb6/r03v3w3fffNpGcbd8P6ytTdf2IvCJ8/zu9t9vcDu94/d// 86e3f2xrEL98VgZ+Rh9uRVpd7r1yt8V+3UiMNu/XCBOtv+7rJUd30Fftdf/yl49opoUwlzFk RPtDRkEoQhzXkWGElCIhMh2o12UwlzlkRDdDRrthbquXseQlz0wOMAcw94/ruhnxrSZ3v6Vl A9zjifHkALdPNeyGtsyKAGi7eGgruNMAbQBte0BbkZecD9oKDTQL1Ob25mZ4Eb91iRWghRBp olFhipARCXtrLeNZiwRvjjUEZ5tSq3d5unuV15BZ9/XW2O9nQHvsxcbOgfqilx6X2PKzxvGf 6dj2bNfY9q6R7VqitOo1VNZCRfNCrvaWco22bb9qyg+7Bt2bpd0o8vRBJJfYZu2bUcZqy2Cc dZaxx/0ofhma/+7v2TSm+y7yRM2y/96rLrBGpaYjhxtvEHTlDct9vKHeQos99QvLXXy73ufu JbzFz3H65q69IOs7lk9MQ1PSbIp0zGQ8ddo6Q4xAKAmcPE4yKl/ATGNT0fSKDVHT9tQFzeQH wE3ATRPjpiKVAjmdgJwO9w1gJ2Cnx2KnQn8AepoYPQ2tsbgusZplR0oRMRXSGoRY8EJLH5It YKextRU3pQbIaXslLgrcBNw0OW4q0ShQ0/Gp6WDPAGYCZnokZirzBiCmiRHTUBjVukRHTFFa 6yR1hIl2XkJPvA9K5BPTWPjUptQAMW1nZ3zmrSoQExDTmYmpRKNATMcnpoM9A4gJiOmRiKnM G4CYJkZMQ/Mtrkt0xKSoiV4JI1VAyARpTQxERplPTGPzLG5KDRDT9txcGogJiGlyxFSiUSCm 4xPTwZ4BxATE9EjEVOYNQEwTIqa7/xuLAu9KrBbYilo7on2UpJ4/UjpplKc6c4xpdaxhYlqV 2kFMzdcQBQ7ENGFiKtUoENNxielRPAOICYjpEYip3BuAmKZGTMNR4KsiHTMJEoxODMsoEFKS W6FE0CZrNszewTKgaSAKvP0eosCBmybPTRAFPjVygihwYKfpsBNEgZ9bnofR03AUeFeiY6dk hWOGyegNQtW/OA0kJZoZBb461jg6DUSBN19DFDhw08S5CaLAp0VNEAUOzDQVZoIo8Ck4/d7E NBwF3pVYzTmgtDBEexoCQtZJjW3gJBQQ03gU+KrUADFBFDgQ09SJCaLAp0VMEAUOxDQVYoIo 8Ck4/d7ENBwF3pXoiElKGZ3QSSuPEA2OSCUppyafmMajwFelBogJosCBmKZOTBAFPi1igihw IKapEBNEgU/B6fchprvrH61/f+0JHqKmfqlVZBNVxilHSTIIJWK10MxpTLLIaet4g/S0VbKW oJJXcvZV9We7NGR1t+Lizt6si/WVWP/vq9nyw6eFb3Vc1+aPHxdVhf771t7cfPBNudmL5XL+ n3g1q//8UD246lvz7Q+//f27t3+9JvhlK7/uTnSHaD7qJrZvjj+4UkRzl9rlKndKsTvNvhDX +9+1eqwep7Mwv63+sVZd/8g7hdceumpHdW2s2l3zQ82k/F/3j/KmW6ylKYbry2t3wH9vVFYm qsFYuX6pVVKmCIpyx0iiCDnhIxE0mswUg63j5YlK5olKbotKHi4qCaLaV1SDA+K9QqsoAmoj xRbHaCtJUa00l0mZrMWltg6XpSieJaitAQbPD5YTBzXtq6bBwYJeodXq9tYmzEzUUiAUrPGc i8ScKlLT6JBBv+C4mrbgy+uD1aRBTXuqaTidrldo9b5Oc5uS9VS7Sk3EOh6cspqXqGk8qa5f cFRND7MT9hPTeglZENPeYsqhp36ygQ/aaG0qBTGECHXs/9k71x7JbTMLf86/qM0nO5llxItI Ct79sMB6AQOJd7HOAkGCYEBSZKJNdc9A3ZPEm/z4lerSpepSSaRK7mE5x4A9nm62WheeR6eO XvFVhleFrtOmU6x7auLc01jJ5o1TCuZp8ZyarL8cDDre7pjz0ihhmSSk5N4ZVnpTJ93u5qsw hwNn59NlOctts4lhMi2dTDFOfFCdYj11hRVWC0+IqLQpKq6VD0mTKdaJN1FO/PJJ322TCUZ8 8WSKMeKDB3fBdubJWcOY7shUSmUll9qZpMkUa8SbKCN+GYLeNpngw5dOpjYqzWyHaaYX1vdL qIaOTYx5UWshQslSplMbnWa2cWlme55mtjekmf/9dd94FVHm8hkVY8bbgRk3itacO16GQIgL ttSKBcOT7nZttBlv48x4e+7G2xvc+H5GwYovnlEx7qk9uScWJK2Kktu6u+FxyVxZCE/TsoI2 1j21Ue6pPbNP7XL7tJtL8E6Lp1KMd2pP3olXTnfWWyjfTSVXF6IyXjhXJE2lWO/URnmn9sw8 tcvN024qwTktmEqfHuOeBA/HvbypqZhVlfBBEVILXdX94xYdO6HOtjgzp87G7spjdtOq+686 m1WncZcPhOt3h/KE8+e8/Zlu3W7CDa7jvmf37/qhv/q337z/929+9fW3333zn99+9/uvXo08 nPXokcXraoXH1+P6ifP6S/1k333xYudfii36+f7V7uTIoj85kr6jdLWz85PdLuxm96kqI107 9fWSi51emjS91PuiisM1aH5/Kp4Y1UpfnrY/jn86Faj97Vic8uAf3MeOL/3PHxqu7wf/bKJE IFFlM35yOO6Yn9S+1KUrtCoIKRxzlTGhjHaUZ1uMVZmMVNnIE/LxeSTvWWVyocoWnB2obLxm Ik1lMx57MOx4J+OGCVm5un+EooQvZdCe+dhqgeEGIyUm4hR2WTIwOoPEHctLLFNX8pmBtEbr R9KUNfORYzDsoKxC60LKYIwPhHhaVbTSvLY+UVkRHzuGQyOUdVk+MTp/9B0rSy9TVvKZgbJG a2mSlDVXQzIYdvw475jktqAF7z7O08ALarSnPLZocrjBOGW9VJJMK+uylORs+rw8zr9DYQ33 PV1YyScGuhotK0rUVdwnrmFBjaBMGqULwSwhRrrKSVt0d61UZcV/4moiP3GNVdWMT6J7/MB1 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 D0swBAwBQ36AgDhJWVmyIyEiZhEJMXsJiDWvqtIrUZiaEOqEMgUPsihTAmIWmQ+zuXiYXSRY DBAEBAHBm8PhVGVlCcHJaJhdhleAB+ABeNweDCdLK1t6TMTCbDSzAkKAECBkjVB4ib7y5cj1 SJiN5lXgCDgCjqwRCC/RV7YcmYiD8VEG/AA/1g+D7/5zTEIUHNFOrjm1kxPBmkKGQktHiLZO By6CUiYlCo5sJ9fMtZNrLppeNVhGHQgEAm+PglOVlSUEJ6Pgy55XgAfgAXisEAUnSytbekxE waPtroAQIAQIWSUKXqKvfDlyPQoebXcFjoAj4MgqUfASfWXLkYkoWIAf4Af4sXoUnKKrLLmR EAVHtJNrTu3kTKiqUipWUEpIaStZSyY4dylRcGQ7uWaunVxz0fSqwTLqQCAQeHsUnKqsLCE4 GQVf9rwCPAAPwGOFKDhZWtnSYyIKHm13BYQAIUDIKlHwEn3ly5HrUfBouytwBBwBR1aJgpfo K1uOTETBGvwAP8CP1aPgFF1lyY34KHgbs4bwdrCGcJBCS21cbRghnNdeSFUGIxLC4G3sGsLb lzWEKWc7y9j9QYvBpdqer+axnVnN4yc7rm3mAXd3oOo38/5P3SW6ZPt33/z2681uD3ezqunc 9XHov27o5u9/35z+ys7/Ks7/qo/+fW/f1U3XYrPx2ye/vxrdKfPto9m+923bn8Jv/+eXv3y3 +el/fHp8/H7z1PyfrzfbD3/o5Lzd7H78p7uDuXoXujtq95uZvHp2ePXs+dWz51fPnl89+/rq lbv0l8o+5Pi8F2/GKfzY7mPHyzeyC5vTPuwu65cpBI94r2N7eq+DC0mFVYJXnhAlDfV13b/Z kcLvyPc6tmKO3mfPXLfTz1zB7h+S3SlXAuTOitxvfunA7VW4HVGEsR0UYZS6KjqfraghJEgl iipYoaoUbkcWYWz1HLfPPiBtpz8ggds/JLdTrgS4nRW33/zSgdtrcLulxTy4d4MO5La8LKjz 1njeOe6KWe+dsiKF3PvNRaB7P3CqgK4b8brOp/sSomNExz9CBLxxCd0CbWUZH08V0R2OkQEg AAgAsnIZ3RJxZUuQ64V0h8N8XekDjAAjwMgqpXQLFZYvS64W0/VHOlLtA5aAJWDJKuV0CxWW LUuuF9T1hwSGgCFgyNoldYnKypIdKRFxRFFdOyyqK61UHZcst4Rox4y3BfU0JEXEkUV17UtR 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 ZdnFAkyGcsqRs0r5VOG896/+B//TEbuG/gwA --------------Bcfll3R8TFcBpZ610Kfrz0Y1--