From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 65361 invoked by alias); 22 Aug 2019 17:41:43 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 64522 invoked by uid 89); 22 Aug 2019 17:41:38 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-13.2 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_STOCKGEN,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.1 spammy=sk:gfc_act, caf, UD:is_bind_c, gfc_symbol X-HELO: mail-qk1-f174.google.com Received: from mail-qk1-f174.google.com (HELO mail-qk1-f174.google.com) (209.85.222.174) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 22 Aug 2019 17:41:35 +0000 Received: by mail-qk1-f174.google.com with SMTP id m2so5855189qkd.10; Thu, 22 Aug 2019 10:41:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to:cc; bh=TqdsxrWXHvsan0f2KmycqYcJvl9FOohgZfcgiYezZg0=; b=USfPhUfR+NKZxa8TwrHEfFAu9JttH1/+3l6YVRb81hlXE+4DJNaG37ps0iEqlZYraI QCp+RZTxatz6N0ob8pGMKx8eEmeoINMnLEfH2aBKheM+D8bMZfdIRto6OzRECI0oW1Od mZu5O2+c1euSFqi1UIQz/sB9Era47T/eEGKJVWMlpizf/MQKmW5fiTocjQSOkC8ebguq oUxFchDUZ2mbs244p+EjmVKH/r7IuNm+K8uL/rGZNa0dx7jDn3HglG/lXANsUCCxF2G6 438EGl/4TIrcZKYFPjSwKwX3lmLg9AJQBXh57HvYHpxrt8Be48xm67Ri0jTvrwpjZ1pO Obmg== MIME-Version: 1.0 From: Alessandro Fanfarillo Date: Thu, 22 Aug 2019 18:54:00 -0000 Message-ID: Subject: [Patch, Fortran] CO_BROADCAST for derived types with allocatable components To: gfortran , gcc-patches Cc: Damian Rouson Content-Type: multipart/mixed; boundary="000000000000584c3b0590b83315" X-IsSubscribed: yes X-SW-Source: 2019-08/txt/msg01583.txt.bz2 --000000000000584c3b0590b83315 Content-Type: text/plain; charset="UTF-8" Content-length: 852 Dear all, please find in attachment a preliminary patch that adds support to co_broadcast for allocatable components of derived types. The patch is currently ignoring the stat and errmsg arguments, mostly because I am not sure how to handle them properly. I have created a new data structure called used to pass those argument to the preexisting structure_alloc_comps. Suggestions on how to handle them are more than welcome :-) The patch builds correctly on x86_64 and it has been tested with OpenCoarrays and the following test cases: https://github.com/sourceryinstitute/OpenCoarrays/blob/co_broadcast-derived-type/src/tests/unit/collectives/co_broadcast_allocatable_components.f90 https://github.com/sourceryinstitute/OpenCoarrays/blob/co_broadcast-derived-type/src/tests/unit/collectives/co_broadcast_allocatable_components_array.f90 Regards, --000000000000584c3b0590b83315 Content-Type: text/x-patch; charset="US-ASCII"; name="co_broadcast_alloc_comp_draft.diff" Content-Disposition: attachment; filename="co_broadcast_alloc_comp_draft.diff" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jzmxk91j0 Content-length: 23274 Y29tbWl0IGI5NDU4ZmY0NDE0NjE1MjYzZWQ5MmQ4OTY1YzkzZmQwYTk1M2Y0 YTkKQXV0aG9yOiBBbGVzc2FuZHJvIEZhbmZhcmlsbG8gPGFsZXNzYW5kcm8u ZmFuZmFyaWxsb0BnbWFpbC5jb20+CkRhdGU6ICAgVGh1IEF1ZyAyMiAxMDo1 MDoxNyAyMDE5IC0wNjAwCgogICAgQ29fYnJvYWRjYXN0IGRlcml2ZWQgdHlw ZXMgd2l0aCBhbGxvY2F0YWJsZSBjb21wb25lbnRzCgpkaWZmIC0tZ2l0IGEv Z2NjL2ZvcnRyYW4vdHJhbnMtYXJyYXkuYyBiL2djYy9mb3J0cmFuL3RyYW5z LWFycmF5LmMKaW5kZXggYzhkNzRlNTg4ZGQuLjAwNTY0NmYxMzU5IDEwMDY0 NAotLS0gYS9nY2MvZm9ydHJhbi90cmFucy1hcnJheS5jCisrKyBiL2djYy9m b3J0cmFuL3RyYW5zLWFycmF5LmMKQEAgLTg1NzEsMTMgKzg1NzEsMTUgQEAg Z2ZjX2NhZl9pc19kZWFsbG9jX29ubHkgKGludCBjYWZfbW9kZSkKIAogZW51 bSB7REVBTExPQ0FURV9BTExPQ19DT01QID0gMSwgTlVMTElGWV9BTExPQ19D T01QLAogICAgICAgQ09QWV9BTExPQ19DT01QLCBDT1BZX09OTFlfQUxMT0Nf Q09NUCwgUkVBU1NJR05fQ0FGX0NPTVAsCi0gICAgICBBTExPQ0FURV9QRFRf Q09NUCwgREVBTExPQ0FURV9QRFRfQ09NUCwgQ0hFQ0tfUERUX0RVTU1ZfTsK KyAgICAgIEFMTE9DQVRFX1BEVF9DT01QLCBERUFMTE9DQVRFX1BEVF9DT01Q LCBDSEVDS19QRFRfRFVNTVksCisgICAgICBCQ0FTVF9BTExPQ19DT01QfTsK IAogc3RhdGljIGdmY19hY3R1YWxfYXJnbGlzdCAqcGR0X3BhcmFtX2xpc3Q7 CiAKIHN0YXRpYyB0cmVlCiBzdHJ1Y3R1cmVfYWxsb2NfY29tcHMgKGdmY19z eW1ib2wgKiBkZXJfdHlwZSwgdHJlZSBkZWNsLAotCQkgICAgICAgdHJlZSBk ZXN0LCBpbnQgcmFuaywgaW50IHB1cnBvc2UsIGludCBjYWZfbW9kZSkKKwkJ ICAgICAgIHRyZWUgZGVzdCwgaW50IHJhbmssIGludCBwdXJwb3NlLCBpbnQg Y2FmX21vZGUsCisJCSAgICAgICBnZmNfY29fc3Vicm91dGluZXNfYXJncyAq YXJncykKIHsKICAgZ2ZjX2NvbXBvbmVudCAqYzsKICAgZ2ZjX2xvb3BpbmZv IGxvb3A7CkBAIC04NjYzLDE0ICs4NjY1LDE0IEBAIHN0cnVjdHVyZV9hbGxv Y19jb21wcyAoZ2ZjX3N5bWJvbCAqIGRlcl90eXBlLCB0cmVlIGRlY2wsCiAJ ICAmJiAhY2FmX2VuYWJsZWQgKGNhZl9tb2RlKSkKIAl7CiAJICB0bXAgPSBi dWlsZF9mb2xkX2luZGlyZWN0X3JlZl9sb2MgKGlucHV0X2xvY2F0aW9uLAot CQkJCQkgZ2ZjX2NvbnZfYXJyYXlfZGF0YSAoZGVzdCkpOworCQkJCQkgICAg IGdmY19jb252X2FycmF5X2RhdGEgKGRlc3QpKTsKIAkgIGRyZWYgPSBnZmNf YnVpbGRfYXJyYXlfcmVmICh0bXAsIGluZGV4LCBOVUxMKTsKIAkgIHRtcCA9 IHN0cnVjdHVyZV9hbGxvY19jb21wcyAoZGVyX3R5cGUsIHZyZWYsIGRyZWYs IHJhbmssCi0JCQkJICAgICAgIENPUFlfQUxMT0NfQ09NUCwgMCk7CisJCQkJ ICAgICAgIENPUFlfQUxMT0NfQ09NUCwgMCwgYXJncyk7CiAJfQogICAgICAg ZWxzZQogCXRtcCA9IHN0cnVjdHVyZV9hbGxvY19jb21wcyAoZGVyX3R5cGUs IHZyZWYsIE5VTExfVFJFRSwgcmFuaywgcHVycG9zZSwKLQkJCQkgICAgIGNh Zl9tb2RlKTsKKwkJCQkgICAgIGNhZl9tb2RlLCBhcmdzKTsKIAogICAgICAg Z2ZjX2FkZF9leHByX3RvX2Jsb2NrICgmbG9vcGJvZHksIHRtcCk7CiAKQEAg LTg3MDQsMTMgKzg3MDYsMTMgQEAgc3RydWN0dXJlX2FsbG9jX2NvbXBzIChn ZmNfc3ltYm9sICogZGVyX3R5cGUsIHRyZWUgZGVjbCwKICAgaWYgKHB1cnBv c2UgPT0gREVBTExPQ0FURV9BTExPQ19DT01QICYmIGRlcl90eXBlLT5hdHRy LnBkdF90eXBlKQogICAgIHsKICAgICAgIHRtcCA9IHN0cnVjdHVyZV9hbGxv Y19jb21wcyAoZGVyX3R5cGUsIGRlY2wsIE5VTExfVFJFRSwgcmFuaywKLQkJ CQkgICBERUFMTE9DQVRFX1BEVF9DT01QLCAwKTsKKwkJCQkgICBERUFMTE9D QVRFX1BEVF9DT01QLCAwLCBhcmdzKTsKICAgICAgIGdmY19hZGRfZXhwcl90 b19ibG9jayAoJmZuYmxvY2ssIHRtcCk7CiAgICAgfQogICBlbHNlIGlmIChw dXJwb3NlID09IEFMTE9DQVRFX1BEVF9DT01QICYmIGRlcl90eXBlLT5hdHRy LmFsbG9jX2NvbXApCiAgICAgewogICAgICAgdG1wID0gc3RydWN0dXJlX2Fs bG9jX2NvbXBzIChkZXJfdHlwZSwgZGVjbCwgTlVMTF9UUkVFLCByYW5rLAot CQkJCSAgIE5VTExJRllfQUxMT0NfQ09NUCwgMCk7CisJCQkJICAgTlVMTElG WV9BTExPQ19DT01QLCAwLCBhcmdzKTsKICAgICAgIGdmY19hZGRfZXhwcl90 b19ibG9jayAoJmZuYmxvY2ssIHRtcCk7CiAgICAgfQogCkBAIC04NzMyLDYg Kzg3MzQsMTI4IEBAIHN0cnVjdHVyZV9hbGxvY19jb21wcyAoZ2ZjX3N5bWJv bCAqIGRlcl90eXBlLCB0cmVlIGRlY2wsCiAKICAgICAgIHN3aXRjaCAocHVy cG9zZSkKIAl7CisKKwljYXNlIEJDQVNUX0FMTE9DX0NPTVA6CisKKwkgIHRy ZWUgdWJvdW5kOworCSAgdHJlZSBjZGVzYzsKKwkgIHN0bXRibG9ja190IGRl cml2ZWRfdHlwZV9ibG9jazsKKworCSAgZ2ZjX2luaXRfYmxvY2sgKCZ0bXBi bG9jayk7CisKKwkgIGNvbXAgPSBmb2xkX2J1aWxkM19sb2MgKGlucHV0X2xv Y2F0aW9uLCBDT01QT05FTlRfUkVGLCBjdHlwZSwKKwkJCQkgIGRlY2wsIGNk ZWNsLCBOVUxMX1RSRUUpOworCisJICAvKiBTaG9ydGN1dCB0byBnZXQgdGhl IGF0dHJpYnV0ZXMgb2YgdGhlIGNvbXBvbmVudC4gICovCisJICBpZiAoYy0+ dHMudHlwZSA9PSBCVF9DTEFTUykKKwkgICAgeworCSAgICAgIGF0dHIgPSAm Q0xBU1NfREFUQSAoYyktPmF0dHI7CisJICAgICAgaWYgKGF0dHItPmNsYXNz X3BvaW50ZXIpCisJCWNvbnRpbnVlOworCSAgICB9CisJICBlbHNlCisJICAg IHsKKwkgICAgICBhdHRyID0gJmMtPmF0dHI7CisJICAgICAgaWYgKGF0dHIt PnBvaW50ZXIpCisJCWNvbnRpbnVlOworCSAgICB9CisKKwkgIGFkZF93aGVu X2FsbG9jYXRlZCA9IE5VTExfVFJFRTsKKwkgIGlmIChjbXBfaGFzX2FsbG9j X2NvbXBzCisJICAgICAgJiYgIWMtPmF0dHIucG9pbnRlciAmJiAhYy0+YXR0 ci5wcm9jX3BvaW50ZXIpCisJICAgIHsKKwkgICAgICAvKiBBZGQgY2hlY2tl ZCBkZWFsbG9jYXRpb24gb2YgdGhlIGNvbXBvbmVudHMuICBUaGlzIGNvZGUg aXMKKwkJIG9idmlvdXNseSBhZGRlZCBiZWNhdXNlIHRoZSBmaW5hbGl6ZXIg aXMgbm90IHRydXN0ZWQgdG8gZnJlZQorCQkgYWxsIG1lbW9yeS4gICovCisJ ICAgICAgaWYgKGMtPnRzLnR5cGUgPT0gQlRfQ0xBU1MpCisJCXsKKwkJICBy YW5rID0gQ0xBU1NfREFUQSAoYyktPmFzID8gQ0xBU1NfREFUQSAoYyktPmFz LT5yYW5rIDogMDsKKwkJICBhZGRfd2hlbl9hbGxvY2F0ZWQKKwkJICAgICAg PSBzdHJ1Y3R1cmVfYWxsb2NfY29tcHMgKENMQVNTX0RBVEEgKGMpLT50cy51 LmRlcml2ZWQsCisJCQkJCSAgICAgICBjb21wLCBOVUxMX1RSRUUsIHJhbmss IHB1cnBvc2UsCisJCQkJCSAgICAgICBjYWZfbW9kZSwgYXJncyk7CisJCX0K KwkgICAgICBlbHNlCisJCXsKKwkJICByYW5rID0gYy0+YXMgPyBjLT5hcy0+ cmFuayA6IDA7CisJCSAgYWRkX3doZW5fYWxsb2NhdGVkID0gc3RydWN0dXJl X2FsbG9jX2NvbXBzIChjLT50cy51LmRlcml2ZWQsCisJCQkJCQkJICAgICAg Y29tcCwgTlVMTF9UUkVFLAorCQkJCQkJCSAgICAgIHJhbmssIHB1cnBvc2Us CisJCQkJCQkJICAgICAgY2FmX21vZGUsIGFyZ3MpOworCQl9CisJICAgIH0K KworCSAgZ2ZjX2luaXRfYmxvY2sgKCZkZXJpdmVkX3R5cGVfYmxvY2spOwor CSAgaWYgKGFkZF93aGVuX2FsbG9jYXRlZCkKKwkgICAgZ2ZjX2FkZF9leHBy X3RvX2Jsb2NrICgmZGVyaXZlZF90eXBlX2Jsb2NrLCBhZGRfd2hlbl9hbGxv Y2F0ZWQpOworCSAgdG1wID0gZ2ZjX2ZpbmlzaF9ibG9jayAoJmRlcml2ZWRf dHlwZV9ibG9jayk7CisJICBnZmNfYWRkX2V4cHJfdG9fYmxvY2sgKCZ0bXBi bG9jaywgdG1wKTsKKworCSAgLyogQ29udmVydCB0aGUgY29tcG9uZW50IGlu dG8gYSByYW5rIDEgZGVzY3JpcHRvciB0eXBlLiAgKi8KKwkgIGlmIChhdHRy LT5kaW1lbnNpb24pCisJICAgIHsKKwkgICAgICB0bXAgPSBnZmNfZ2V0X2Vs ZW1lbnRfdHlwZSAoVFJFRV9UWVBFIChjb21wKSk7CisJICAgICAgdWJvdW5k ID0gZ2ZjX2Z1bGxfYXJyYXlfc2l6ZSAoJnRtcGJsb2NrLCBjb21wLAorCQkJ CQkgICAgYy0+dHMudHlwZSA9PSBCVF9DTEFTUworCQkJCQkgICAgPyBDTEFT U19EQVRBIChjKS0+YXMtPnJhbmsKKwkJCQkJICAgIDogYy0+YXMtPnJhbmsp OworCSAgICB9CisJICBlbHNlCisJICAgIHsKKwkgICAgICB0bXAgPSBUUkVF X1RZUEUgKGNvbXApOworCSAgICAgIHVib3VuZCA9IGJ1aWxkX2ludF9jc3Qg KGdmY19hcnJheV9pbmRleF90eXBlLCAxKTsKKwkgICAgfQorCisJICBjZGVz YyA9IGdmY19nZXRfYXJyYXlfdHlwZV9ib3VuZHMgKHRtcCwgMSwgMCwgJmdm Y19pbmRleF9vbmVfbm9kZSwKKwkJCQkJICAgICAmdWJvdW5kLCAxLAorCQkJ CQkgICAgIEdGQ19BUlJBWV9BTExPQ0FUQUJMRSwgZmFsc2UpOworCisJICBj ZGVzYyA9IGdmY19jcmVhdGVfdmFyIChjZGVzYywgImNkZXNjIik7CisJICBE RUNMX0FSVElGSUNJQUwgKGNkZXNjKSA9IDE7CisgIAorCSAgZ2ZjX2FkZF9t b2RpZnkgKCZ0bXBibG9jaywgZ2ZjX2NvbnZfZGVzY3JpcHRvcl9kdHlwZSAo Y2Rlc2MpLAorCSAgCQkgIGdmY19nZXRfZHR5cGVfcmFua190eXBlICgxLCB0 bXApKTsKKwkgIGdmY19jb252X2Rlc2NyaXB0b3JfbGJvdW5kX3NldCAoJnRt cGJsb2NrLCBjZGVzYywKKwkJCQkJICBnZmNfaW5kZXhfemVyb19ub2RlLAor CQkJCQkgIGdmY19pbmRleF9vbmVfbm9kZSk7CisJICBnZmNfY29udl9kZXNj cmlwdG9yX3N0cmlkZV9zZXQgKCZ0bXBibG9jaywgY2Rlc2MsCisJCQkJCSAg Z2ZjX2luZGV4X3plcm9fbm9kZSwKKwkJCQkJICBnZmNfaW5kZXhfb25lX25v ZGUpOworCSAgZ2ZjX2NvbnZfZGVzY3JpcHRvcl91Ym91bmRfc2V0ICgmdG1w YmxvY2ssIGNkZXNjLAorCQkJCQkgIGdmY19pbmRleF96ZXJvX25vZGUsIHVi b3VuZCk7CisgIAorCSAgaWYgKGF0dHItPmRpbWVuc2lvbikKKwkgICAgY29t cCA9IGdmY19jb252X2Rlc2NyaXB0b3JfZGF0YV9nZXQgKGNvbXApOworCSAg ZWxzZQorCSAgICB7CisJICAgICAgZ2ZjX3NlIHNlOworCisJICAgICAgZ2Zj X2luaXRfc2UgKCZzZSwgTlVMTCk7CisKKwkgICAgICBjb21wID0gZ2ZjX2Nv bnZfc2NhbGFyX3RvX2Rlc2NyaXB0b3IgKCZzZSwgY29tcCwKKwkgICAgICAJ CQkJCSAgICBjLT50cy50eXBlID09IEJUX0NMQVNTCisJICAgICAgCQkJCQkg ICAgPyBDTEFTU19EQVRBIChjKS0+YXR0cgorCSAgICAgIAkJCQkJICAgIDog Yy0+YXR0cik7CisJICAgICAgY29tcCA9IGdmY19idWlsZF9hZGRyX2V4cHIg KE5VTExfVFJFRSwgY29tcCk7CisJICAgICAgZ2ZjX2FkZF9ibG9ja190b19i bG9jayAoJnRtcGJsb2NrLCAmc2UucHJlKTsKKwkgICAgfQorCisJICBnZmNf Y29udl9kZXNjcmlwdG9yX2RhdGFfc2V0ICgmdG1wYmxvY2ssIGNkZXNjLCBj b21wKTsKKworCSAgdHJlZSBmbmRlY2w7CisKKwkgIGZuZGVjbCA9IGJ1aWxk X2NhbGxfZXhwcl9sb2MgKGlucHV0X2xvY2F0aW9uLAorCQkJCQlnZm9yX2Zu ZGVjbF9jb19icm9hZGNhc3QsIDUsCisJCQkJCWdmY19idWlsZF9hZGRyX2V4 cHIgKHB2b2lkX3R5cGVfbm9kZSxjZGVzYyksCisJCQkJCWFyZ3MtPmltYWdl X2luZGV4LAorCQkJCQludWxsX3BvaW50ZXJfbm9kZSwgbnVsbF9wb2ludGVy X25vZGUsCisJCQkJCW51bGxfcG9pbnRlcl9ub2RlKTsKKworCSAgZ2ZjX2Fk ZF9leHByX3RvX2Jsb2NrICgmdG1wYmxvY2ssIGZuZGVjbCk7CisJICBnZmNf YWRkX2Jsb2NrX3RvX2Jsb2NrICgmZm5ibG9jaywgJnRtcGJsb2NrKTsKKwor CSAgYnJlYWs7CisKIAljYXNlIERFQUxMT0NBVEVfQUxMT0NfQ09NUDoKIAog CSAgZ2ZjX2luaXRfYmxvY2sgKCZ0bXBibG9jayk7CkBAIC04NzgyLDcgKzg5 MDYsNyBAQCBzdHJ1Y3R1cmVfYWxsb2NfY29tcHMgKGdmY19zeW1ib2wgKiBk ZXJfdHlwZSwgdHJlZSBkZWNsLAogCQkgIGFkZF93aGVuX2FsbG9jYXRlZAog CQkgICAgICA9IHN0cnVjdHVyZV9hbGxvY19jb21wcyAoQ0xBU1NfREFUQSAo YyktPnRzLnUuZGVyaXZlZCwKIAkJCQkJICAgICAgIGNvbXAsIE5VTExfVFJF RSwgcmFuaywgcHVycG9zZSwKLQkJCQkJICAgICAgIGNhZl9tb2RlKTsKKwkJ CQkJICAgICAgIGNhZl9tb2RlLCBhcmdzKTsKIAkJfQogCSAgICAgIGVsc2UK IAkJewpAQCAtODc5MCw3ICs4OTE0LDcgQEAgc3RydWN0dXJlX2FsbG9jX2Nv bXBzIChnZmNfc3ltYm9sICogZGVyX3R5cGUsIHRyZWUgZGVjbCwKIAkJICBh ZGRfd2hlbl9hbGxvY2F0ZWQgPSBzdHJ1Y3R1cmVfYWxsb2NfY29tcHMgKGMt PnRzLnUuZGVyaXZlZCwKIAkJCQkJCQkgICAgICBjb21wLCBOVUxMX1RSRUUs CiAJCQkJCQkJICAgICAgcmFuaywgcHVycG9zZSwKLQkJCQkJCQkgICAgICBj YWZfbW9kZSk7CisJCQkJCQkJICAgICAgY2FmX21vZGUsIGFyZ3MpOwogCQl9 CiAJICAgIH0KIApAQCAtOTA2Niw3ICs5MTkwLDcgQEAgc3RydWN0dXJlX2Fs bG9jX2NvbXBzIChnZmNfc3ltYm9sICogZGVyX3R5cGUsIHRyZWUgZGVjbCwK IAkJCQkgICAgICBkZWNsLCBjZGVjbCwgTlVMTF9UUkVFKTsKIAkgICAgICBy YW5rID0gYy0+YXMgPyBjLT5hcy0+cmFuayA6IDA7CiAJICAgICAgdG1wID0g c3RydWN0dXJlX2FsbG9jX2NvbXBzIChjLT50cy51LmRlcml2ZWQsIGNvbXAs IE5VTExfVFJFRSwKLQkJCQkJICAgcmFuaywgcHVycG9zZSwgY2FmX21vZGUp OworCQkJCQkgICByYW5rLCBwdXJwb3NlLCBjYWZfbW9kZSwgYXJncyk7CiAJ ICAgICAgZ2ZjX2FkZF9leHByX3RvX2Jsb2NrICgmZm5ibG9jaywgdG1wKTsK IAkgICAgfQogCSAgYnJlYWs7CkBAIC05MTAxLDcgKzkyMjUsOCBAQCBzdHJ1 Y3R1cmVfYWxsb2NfY29tcHMgKGdmY19zeW1ib2wgKiBkZXJfdHlwZSwgdHJl ZSBkZWNsLAogCQl7CiAJCSAgdG1wID0gc3RydWN0dXJlX2FsbG9jX2NvbXBz IChjLT50cy51LmRlcml2ZWQsIGNvbXAsIGRjbXAsCiAJCQkJCSAgICAgICBy YW5rLCBwdXJwb3NlLCBjYWZfbW9kZQotCQkJCQkgICB8IEdGQ19TVFJVQ1RV UkVfQ0FGX01PREVfSU5fQ09BUlJBWSk7CisJCQkJCSAgICAgICB8IEdGQ19T VFJVQ1RVUkVfQ0FGX01PREVfSU5fQ09BUlJBWSwKKwkJCQkJICAgICAgIGFy Z3MpOwogCQkgIGdmY19hZGRfZXhwcl90b19ibG9jayAoJmZuYmxvY2ssIHRt cCk7CiAJCX0KIAkgICAgfQpAQCAtOTIyMSw3ICs5MzQ2LDcgQEAgc3RydWN0 dXJlX2FsbG9jX2NvbXBzIChnZmNfc3ltYm9sICogZGVyX3R5cGUsIHRyZWUg ZGVjbCwKIAkgICAgICBhZGRfd2hlbl9hbGxvY2F0ZWQgPSBzdHJ1Y3R1cmVf YWxsb2NfY29tcHMgKGMtPnRzLnUuZGVyaXZlZCwKIAkJCQkJCQkgIGNvbXAs IGRjbXAsCiAJCQkJCQkJICByYW5rLCBwdXJwb3NlLAotCQkJCQkJCSAgY2Fm X21vZGUpOworCQkJCQkJCSAgY2FmX21vZGUsIGFyZ3MpOwogCSAgICB9CiAJ ICBlbHNlCiAJICAgIGFkZF93aGVuX2FsbG9jYXRlZCA9IE5VTExfVFJFRTsK QEAgLTk1ODUsNyArOTcxMCw3IEBAIGdmY19udWxsaWZ5X2FsbG9jX2NvbXAg KGdmY19zeW1ib2wgKiBkZXJfdHlwZSwgdHJlZSBkZWNsLCBpbnQgcmFuaywK IHsKICAgcmV0dXJuIHN0cnVjdHVyZV9hbGxvY19jb21wcyAoZGVyX3R5cGUs IGRlY2wsIE5VTExfVFJFRSwgcmFuaywKIAkJCQlOVUxMSUZZX0FMTE9DX0NP TVAsCi0JCQkgICAgICBHRkNfU1RSVUNUVVJFX0NBRl9NT0RFX0VOQUJMRV9D T0FSUkFZIHwgY2FmX21vZGUpOworCQkJCUdGQ19TVFJVQ1RVUkVfQ0FGX01P REVfRU5BQkxFX0NPQVJSQVkgfCBjYWZfbW9kZSwgTlVMTCk7CiB9CiAKIApA QCAtOTU5OCw5ICs5NzIzLDQ3IEBAIGdmY19kZWFsbG9jYXRlX2FsbG9jX2Nv bXAgKGdmY19zeW1ib2wgKiBkZXJfdHlwZSwgdHJlZSBkZWNsLCBpbnQgcmFu aywKIHsKICAgcmV0dXJuIHN0cnVjdHVyZV9hbGxvY19jb21wcyAoZGVyX3R5 cGUsIGRlY2wsIE5VTExfVFJFRSwgcmFuaywKIAkJCQlERUFMTE9DQVRFX0FM TE9DX0NPTVAsCi0JCQkgICAgICBHRkNfU1RSVUNUVVJFX0NBRl9NT0RFX0VO QUJMRV9DT0FSUkFZIHwgY2FmX21vZGUpOworCQkJCUdGQ19TVFJVQ1RVUkVf Q0FGX01PREVfRU5BQkxFX0NPQVJSQVkgfCBjYWZfbW9kZSwgTlVMTCk7CiB9 CiAKK3RyZWUKK2dmY19iY2FzdF9hbGxvY19jb21wIChnZmNfc3ltYm9sICpk ZXJpdmVkLCBnZmNfZXhwciAqZXhwciwgaW50IHJhbmssCisJCSAgICAgIHRy ZWUgaW1hZ2VfaW5kZXgsIHRyZWUgc3RhdCwgdHJlZSBlcnJtc2csCisJCSAg ICAgIHRyZWUgZXJybXNnX2xlbikKK3sKKyAgdHJlZSB0bXAsIGFycmF5Owor ICBnZmNfc2UgYXJnc2U7CisgIHN0bXRibG9ja190IGJsb2NrLCBwb3N0X2Js b2NrOworICBnZmNfY29fc3Vicm91dGluZXNfYXJncyBhcmdzOworCisgIGFy Z3MuaW1hZ2VfaW5kZXggPSBpbWFnZV9pbmRleDsKKyAgYXJncy5zdGF0ID0g c3RhdDsKKyAgYXJncy5lcnJtc2cgPSBlcnJtc2c7CisgIGFyZ3MuZXJybXNn ID0gZXJybXNnX2xlbjsKKworICBpZiAocmFuayA9PSAwKQorICAgIHsKKyAg ICAgIGdmY19zdGFydF9ibG9jayAoJmJsb2NrKTsKKyAgICAgIGdmY19pbml0 X2Jsb2NrICgmcG9zdF9ibG9jayk7CisgICAgICBnZmNfaW5pdF9zZSAoJmFy Z3NlLCBOVUxMKTsKKyAgICAgIGdmY19jb252X2V4cHIgKCZhcmdzZSwgZXhw cik7CisgICAgICBnZmNfYWRkX2Jsb2NrX3RvX2Jsb2NrICgmYmxvY2ssICZh cmdzZS5wcmUpOworICAgICAgZ2ZjX2FkZF9ibG9ja190b19ibG9jayAoJnBv c3RfYmxvY2ssICZhcmdzZS5wb3N0KTsKKyAgICAgIGFycmF5ID0gYXJnc2Uu ZXhwcjsKKyAgICB9CisgIGVsc2UKKyAgICB7CisgICAgICBnZmNfaW5pdF9z ZSAoJmFyZ3NlLCBOVUxMKTsKKyAgICAgIGFyZ3NlLndhbnRfcG9pbnRlciA9 IDE7CisgICAgICBnZmNfY29udl9leHByX2Rlc2NyaXB0b3IgKCZhcmdzZSwg ZXhwcik7CisgICAgICBhcnJheSA9IGFyZ3NlLmV4cHI7CisgICAgfQorCisg IHRtcCA9IHN0cnVjdHVyZV9hbGxvY19jb21wcyAoZGVyaXZlZCwgYXJyYXks IE5VTExfVFJFRSwgcmFuaywKKwkJCSAgICAgICBCQ0FTVF9BTExPQ19DT01Q LAorICAJCQkgICAgICAgR0ZDX1NUUlVDVFVSRV9DQUZfTU9ERV9FTkFCTEVf Q09BUlJBWSwgJmFyZ3MpOworICByZXR1cm4gdG1wOworfQogCiAvKiBSZWN1 cnNpdmVseSB0cmF2ZXJzZSBhbiBvYmplY3Qgb2YgZGVyaXZlZCB0eXBlLCBn ZW5lcmF0aW5nIGNvZGUgdG8KICAgIGRlYWxsb2NhdGUgYWxsb2NhdGFibGUg Y29tcG9uZW50cy4gIEJ1dCBkbyBub3QgZGVhbGxvY2F0ZSBjb2FycmF5cy4K QEAgLTk2MTEsNyArOTc3NCw3IEBAIHRyZWUKIGdmY19kZWFsbG9jYXRlX2Fs bG9jX2NvbXBfbm9fY2FmIChnZmNfc3ltYm9sICogZGVyX3R5cGUsIHRyZWUg ZGVjbCwgaW50IHJhbmspCiB7CiAgIHJldHVybiBzdHJ1Y3R1cmVfYWxsb2Nf Y29tcHMgKGRlcl90eXBlLCBkZWNsLCBOVUxMX1RSRUUsIHJhbmssCi0JCQkJ REVBTExPQ0FURV9BTExPQ19DT01QLCAwKTsKKwkJCQlERUFMTE9DQVRFX0FM TE9DX0NPTVAsIDAsIE5VTEwpOwogfQogCiAKQEAgLTk2MTksNyArOTc4Miw3 IEBAIHRyZWUKIGdmY19yZWFzc2lnbl9hbGxvY19jb21wX2NhZiAoZ2ZjX3N5 bWJvbCAqZGVyX3R5cGUsIHRyZWUgZGVjbCwgdHJlZSBkZXN0KQogewogICBy ZXR1cm4gc3RydWN0dXJlX2FsbG9jX2NvbXBzIChkZXJfdHlwZSwgZGVjbCwg ZGVzdCwgMCwgUkVBU1NJR05fQ0FGX0NPTVAsCi0JCQkJR0ZDX1NUUlVDVFVS RV9DQUZfTU9ERV9FTkFCTEVfQ09BUlJBWSk7CisJCQkJR0ZDX1NUUlVDVFVS RV9DQUZfTU9ERV9FTkFCTEVfQ09BUlJBWSwgTlVMTCk7CiB9CiAKIApAQCAt OTYzMSw3ICs5Nzk0LDcgQEAgZ2ZjX2NvcHlfYWxsb2NfY29tcCAoZ2ZjX3N5 bWJvbCAqIGRlcl90eXBlLCB0cmVlIGRlY2wsIHRyZWUgZGVzdCwgaW50IHJh bmssCiAJCSAgICAgaW50IGNhZl9tb2RlKQogewogICByZXR1cm4gc3RydWN0 dXJlX2FsbG9jX2NvbXBzIChkZXJfdHlwZSwgZGVjbCwgZGVzdCwgcmFuaywg Q09QWV9BTExPQ19DT01QLAotCQkJCWNhZl9tb2RlKTsKKwkJCQljYWZfbW9k ZSwgTlVMTCk7CiB9CiAKIApAQCAtOTY0Miw3ICs5ODA1LDcgQEAgdHJlZQog Z2ZjX2NvcHlfb25seV9hbGxvY19jb21wIChnZmNfc3ltYm9sICogZGVyX3R5 cGUsIHRyZWUgZGVjbCwgdHJlZSBkZXN0LCBpbnQgcmFuaykKIHsKICAgcmV0 dXJuIHN0cnVjdHVyZV9hbGxvY19jb21wcyAoZGVyX3R5cGUsIGRlY2wsIGRl c3QsIHJhbmssCi0JCQkJQ09QWV9PTkxZX0FMTE9DX0NPTVAsIDApOworCQkJ CUNPUFlfT05MWV9BTExPQ19DT01QLCAwLCBOVUxMKTsKIH0KIAogCkBAIC05 NjU3LDcgKzk4MjAsNyBAQCBnZmNfYWxsb2NhdGVfcGR0X2NvbXAgKGdmY19z eW1ib2wgKiBkZXJfdHlwZSwgdHJlZSBkZWNsLCBpbnQgcmFuaywKICAgZ2Zj X2FjdHVhbF9hcmdsaXN0ICpvbGRfcGFyYW1fbGlzdCA9IHBkdF9wYXJhbV9s aXN0OwogICBwZHRfcGFyYW1fbGlzdCA9IHBhcmFtX2xpc3Q7CiAgIHJlcyA9 IHN0cnVjdHVyZV9hbGxvY19jb21wcyAoZGVyX3R5cGUsIGRlY2wsIE5VTExf VFJFRSwgcmFuaywKLQkJCSAgICAgICBBTExPQ0FURV9QRFRfQ09NUCwgMCk7 CisJCQkgICAgICAgQUxMT0NBVEVfUERUX0NPTVAsIDAsIE5VTEwpOwogICBw ZHRfcGFyYW1fbGlzdCA9IG9sZF9wYXJhbV9saXN0OwogICByZXR1cm4gcmVz OwogfQpAQCAtOTY2OSw3ICs5ODMyLDcgQEAgdHJlZQogZ2ZjX2RlYWxsb2Nh dGVfcGR0X2NvbXAgKGdmY19zeW1ib2wgKiBkZXJfdHlwZSwgdHJlZSBkZWNs LCBpbnQgcmFuaykKIHsKICAgcmV0dXJuIHN0cnVjdHVyZV9hbGxvY19jb21w cyAoZGVyX3R5cGUsIGRlY2wsIE5VTExfVFJFRSwgcmFuaywKLQkJCQlERUFM TE9DQVRFX1BEVF9DT01QLCAwKTsKKwkJCQlERUFMTE9DQVRFX1BEVF9DT01Q LCAwLCBOVUxMKTsKIH0KIAogCkBAIC05Njg0LDcgKzk4NDcsNyBAQCBnZmNf Y2hlY2tfcGR0X2R1bW15IChnZmNfc3ltYm9sICogZGVyX3R5cGUsIHRyZWUg ZGVjbCwgaW50IHJhbmssCiAgIGdmY19hY3R1YWxfYXJnbGlzdCAqb2xkX3Bh cmFtX2xpc3QgPSBwZHRfcGFyYW1fbGlzdDsKICAgcGR0X3BhcmFtX2xpc3Qg PSBwYXJhbV9saXN0OwogICByZXMgPSBzdHJ1Y3R1cmVfYWxsb2NfY29tcHMg KGRlcl90eXBlLCBkZWNsLCBOVUxMX1RSRUUsIHJhbmssCi0JCQkgICAgICAg Q0hFQ0tfUERUX0RVTU1ZLCAwKTsKKwkJCSAgICAgICBDSEVDS19QRFRfRFVN TVksIDAsIE5VTEwpOwogICBwZHRfcGFyYW1fbGlzdCA9IG9sZF9wYXJhbV9s aXN0OwogICByZXR1cm4gcmVzOwogfQpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRy YW4vdHJhbnMtYXJyYXkuaCBiL2djYy9mb3J0cmFuL3RyYW5zLWFycmF5LmgK aW5kZXggOGMyZDUxODM4ZDQuLjVhN2VlZTdlMzA1IDEwMDY0NAotLS0gYS9n Y2MvZm9ydHJhbi90cmFucy1hcnJheS5oCisrKyBiL2djYy9mb3J0cmFuL3Ry YW5zLWFycmF5LmgKQEAgLTUyLDYgKzUyLDggQEAgYm9vbCBnZmNfY2FmX2lz X2RlYWxsb2Nfb25seSAoaW50KTsKIHRyZWUgZ2ZjX251bGxpZnlfYWxsb2Nf Y29tcCAoZ2ZjX3N5bWJvbCAqLCB0cmVlLCBpbnQsIGludCBjbSA9IDApOwog CiB0cmVlIGdmY19kZWFsbG9jYXRlX2FsbG9jX2NvbXAgKGdmY19zeW1ib2wg KiwgdHJlZSwgaW50LCBpbnQgY20gPSAwKTsKK3RyZWUgZ2ZjX2JjYXN0X2Fs bG9jX2NvbXAgKGdmY19zeW1ib2wgKiwgZ2ZjX2V4cHIgKiwgaW50LCB0cmVl LAorCQkJICAgdHJlZSwgdHJlZSwgdHJlZSk7CiB0cmVlIGdmY19kZWFsbG9j YXRlX2FsbG9jX2NvbXBfbm9fY2FmIChnZmNfc3ltYm9sICosIHRyZWUsIGlu dCk7CiB0cmVlIGdmY19yZWFzc2lnbl9hbGxvY19jb21wX2NhZiAoZ2ZjX3N5 bWJvbCAqLCB0cmVlLCB0cmVlKTsKIApkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRy YW4vdHJhbnMtaW50cmluc2ljLmMgYi9nY2MvZm9ydHJhbi90cmFucy1pbnRy aW5zaWMuYwppbmRleCAyNmVhNjI0MTAxZC4uYzJlMDUzMzM5M2EgMTAwNjQ0 Ci0tLSBhL2djYy9mb3J0cmFuL3RyYW5zLWludHJpbnNpYy5jCisrKyBiL2dj Yy9mb3J0cmFuL3RyYW5zLWludHJpbnNpYy5jCkBAIC0xMDc4NiwxMyArMTA3 ODYsMTIgQEAgZ2ZjX3dhbGtfaW50cmluc2ljX2Z1bmN0aW9uIChnZmNfc3Mg KiBzcywgZ2ZjX2V4cHIgKiBleHByLAogICAgIH0KIH0KIAotCiBzdGF0aWMg dHJlZQogY29udl9jb19jb2xsZWN0aXZlIChnZmNfY29kZSAqY29kZSkKIHsK ICAgZ2ZjX3NlIGFyZ3NlOwogICBzdG10YmxvY2tfdCBibG9jaywgcG9zdF9i bG9jazsKLSAgdHJlZSBmbmRlY2wsIGFycmF5LCBzdHJsZW4sIGltYWdlX2lu ZGV4LCBzdGF0LCBlcnJtc2csIGVycm1zZ19sZW47CisgIHRyZWUgZm5kZWNs LCBhcnJheSA9IE5VTExfVFJFRSwgc3RybGVuLCBpbWFnZV9pbmRleCwgc3Rh dCwgZXJybXNnLCBlcnJtc2dfbGVuOwogICBnZmNfZXhwciAqaW1hZ2VfaWR4 X2V4cHIsICpzdGF0X2V4cHIsICplcnJtc2dfZXhwciwgKm9wcl9leHByOwog CiAgIGdmY19zdGFydF9ibG9jayAoJmJsb2NrKTsKQEAgLTEwODU3LDYgKzEw ODU2LDcgQEAgY29udl9jb19jb2xsZWN0aXZlIChnZmNfY29kZSAqY29kZSkK ICAgICAgIGdmY19jb252X2V4cHJfZGVzY3JpcHRvciAoJmFyZ3NlLCBjb2Rl LT5leHQuYWN0dWFsLT5leHByKTsKICAgICAgIGFycmF5ID0gYXJnc2UuZXhw cjsKICAgICB9CisKICAgZ2ZjX2FkZF9ibG9ja190b19ibG9jayAoJmJsb2Nr LCAmYXJnc2UucHJlKTsKICAgZ2ZjX2FkZF9ibG9ja190b19ibG9jayAoJnBv c3RfYmxvY2ssICZhcmdzZS5wb3N0KTsKIApAQCAtMTA5MTUsNDYgKzEwOTE1 LDY0IEBAIGNvbnZfY29fY29sbGVjdGl2ZSAoZ2ZjX2NvZGUgKmNvZGUpCiAg ICAgICBnY2NfdW5yZWFjaGFibGUgKCk7CiAgICAgfQogCi0gIGlmIChjb2Rl LT5yZXNvbHZlZF9pc3ltLT5pZCA9PSBHRkNfSVNZTV9DT19TVU0KLSAgICAg IHx8IGNvZGUtPnJlc29sdmVkX2lzeW0tPmlkID09IEdGQ19JU1lNX0NPX0JS T0FEQ0FTVCkKLSAgICBmbmRlY2wgPSBidWlsZF9jYWxsX2V4cHJfbG9jIChp bnB1dF9sb2NhdGlvbiwgZm5kZWNsLCA1LCBhcnJheSwKLQkJCQkgIGltYWdl X2luZGV4LCBzdGF0LCBlcnJtc2csIGVycm1zZ19sZW4pOwotICBlbHNlIGlm IChjb2RlLT5yZXNvbHZlZF9pc3ltLT5pZCAhPSBHRkNfSVNZTV9DT19SRURV Q0UpCi0gICAgZm5kZWNsID0gYnVpbGRfY2FsbF9leHByX2xvYyAoaW5wdXRf bG9jYXRpb24sIGZuZGVjbCwgNiwgYXJyYXksIGltYWdlX2luZGV4LAotCQkJ CSAgc3RhdCwgZXJybXNnLCBzdHJsZW4sIGVycm1zZ19sZW4pOworICBnZmNf c3ltYm9sICpkZXJpdmVkID0gY29kZS0+ZXh0LmFjdHVhbC0+ZXhwci0+dHMu dHlwZSA9PSBCVF9ERVJJVkVECisgICAgPyBjb2RlLT5leHQuYWN0dWFsLT5l eHByLT50cy51LmRlcml2ZWQgOiBOVUxMOworCisgIGlmIChkZXJpdmVkICYm IGRlcml2ZWQtPmF0dHIuYWxsb2NfY29tcAorICAgICAgJiYgY29kZS0+cmVz b2x2ZWRfaXN5bS0+aWQgPT0gR0ZDX0lTWU1fQ09fQlJPQURDQVNUKQorICAg IC8qIFRoZSBkZXJpdmVkIHR5cGUgaGFzIHRoZSBhdHRyaWJ1dGUgJ2FsbG9j X2NvbXAnLiAgKi8KKyAgICB7CisgICAgICB0cmVlIHRtcCA9IGdmY19iY2Fz dF9hbGxvY19jb21wIChkZXJpdmVkLCBjb2RlLT5leHQuYWN0dWFsLT5leHBy LAorCQkJCSAgICAgICBjb2RlLT5leHQuYWN0dWFsLT5leHByLT5yYW5rLAor CQkJCSAgICAgICBpbWFnZV9pbmRleCwgc3RhdCwgZXJybXNnLCBlcnJtc2df bGVuKTsKKyAgICAgIGdmY19hZGRfZXhwcl90b19ibG9jayAoJmJsb2NrLCB0 bXApOworICAgIH0KICAgZWxzZQogICAgIHsKLSAgICAgIHRyZWUgb3ByLCBv cHJfZmxhZ3M7Ci0KLSAgICAgIC8vIEZJWE1FOiBIYW5kbGUgVFMyOTExMydz IGJpbmQoQykgc3RyaW5ncyB3aXRoIGRlc2NyaXB0b3IuCi0gICAgICBpbnQg b3ByX2ZsYWdfaW50OwotICAgICAgaWYgKGdmY19pc19wcm9jX3B0cl9jb21w IChvcHJfZXhwcikpCi0JewotCSAgZ2ZjX3N5bWJvbCAqc3ltID0gZ2ZjX2dl dF9wcm9jX3B0cl9jb21wIChvcHJfZXhwciktPnRzLmludGVyZmFjZTsKLQkg IG9wcl9mbGFnX2ludCA9IHN5bS0+YXR0ci5kaW1lbnNpb24KLQkJCSB8fCAo c3ltLT50cy50eXBlID09IEJUX0NIQVJBQ1RFUgotCQkJICAgICAmJiAhc3lt LT5hdHRyLmlzX2JpbmRfYykKLQkJCSA/IEdGQ19DQUZfQllSRUYgOiAwOwot CSAgb3ByX2ZsYWdfaW50IHw9IG9wcl9leHByLT50cy50eXBlID09IEJUX0NI QVJBQ1RFUgotCQkJICAmJiAhc3ltLT5hdHRyLmlzX2JpbmRfYwotCQkJICA/ IEdGQ19DQUZfSElEREVOTEVOIDogMDsKLQkgIG9wcl9mbGFnX2ludCB8PSBz eW0tPmZvcm1hbC0+c3ltLT5hdHRyLnZhbHVlID8gR0ZDX0NBRl9BUkdfVkFM VUUgOiAwOwotCX0KKyAgICAgIGlmIChjb2RlLT5yZXNvbHZlZF9pc3ltLT5p ZCA9PSBHRkNfSVNZTV9DT19TVU0KKwkgIHx8IGNvZGUtPnJlc29sdmVkX2lz eW0tPmlkID09IEdGQ19JU1lNX0NPX0JST0FEQ0FTVCkKKwlmbmRlY2wgPSBi dWlsZF9jYWxsX2V4cHJfbG9jIChpbnB1dF9sb2NhdGlvbiwgZm5kZWNsLCA1 LCBhcnJheSwKKwkJCQkgICAgICBpbWFnZV9pbmRleCwgc3RhdCwgZXJybXNn LCBlcnJtc2dfbGVuKTsKKyAgICAgIGVsc2UgaWYgKGNvZGUtPnJlc29sdmVk X2lzeW0tPmlkICE9IEdGQ19JU1lNX0NPX1JFRFVDRSkKKwlmbmRlY2wgPSBi dWlsZF9jYWxsX2V4cHJfbG9jIChpbnB1dF9sb2NhdGlvbiwgZm5kZWNsLCA2 LCBhcnJheSwKKwkJCQkgICAgICBpbWFnZV9pbmRleCwgc3RhdCwgZXJybXNn LAorCQkJCSAgICAgIHN0cmxlbiwgZXJybXNnX2xlbik7CiAgICAgICBlbHNl CiAJewotCSAgb3ByX2ZsYWdfaW50ID0gZ2ZjX3JldHVybl9ieV9yZWZlcmVu Y2UgKG9wcl9leHByLT5zeW10cmVlLT5uLnN5bSkKLQkJCSA/IEdGQ19DQUZf QllSRUYgOiAwOwotCSAgb3ByX2ZsYWdfaW50IHw9IG9wcl9leHByLT50cy50 eXBlID09IEJUX0NIQVJBQ1RFUgotCQkJICAmJiAhb3ByX2V4cHItPnN5bXRy ZWUtPm4uc3ltLT5hdHRyLmlzX2JpbmRfYwotCQkJICA/IEdGQ19DQUZfSElE REVOTEVOIDogMDsKLQkgIG9wcl9mbGFnX2ludCB8PSBvcHJfZXhwci0+c3lt dHJlZS0+bi5zeW0tPmZvcm1hbC0+c3ltLT5hdHRyLnZhbHVlCi0JCQkgID8g R0ZDX0NBRl9BUkdfVkFMVUUgOiAwOworCSAgdHJlZSBvcHIsIG9wcl9mbGFn czsKKworCSAgLy8gRklYTUU6IEhhbmRsZSBUUzI5MTEzJ3MgYmluZChDKSBz dHJpbmdzIHdpdGggZGVzY3JpcHRvci4KKwkgIGludCBvcHJfZmxhZ19pbnQ7 CisJICBpZiAoZ2ZjX2lzX3Byb2NfcHRyX2NvbXAgKG9wcl9leHByKSkKKwkg ICAgeworCSAgICAgIGdmY19zeW1ib2wgKnN5bSA9IGdmY19nZXRfcHJvY19w dHJfY29tcCAob3ByX2V4cHIpLT50cy5pbnRlcmZhY2U7CisJICAgICAgb3By X2ZsYWdfaW50ID0gc3ltLT5hdHRyLmRpbWVuc2lvbgorCQl8fCAoc3ltLT50 cy50eXBlID09IEJUX0NIQVJBQ1RFUgorCQkgICAgJiYgIXN5bS0+YXR0ci5p c19iaW5kX2MpCisJCT8gR0ZDX0NBRl9CWVJFRiA6IDA7CisJICAgICAgb3By X2ZsYWdfaW50IHw9IG9wcl9leHByLT50cy50eXBlID09IEJUX0NIQVJBQ1RF UgorCQkmJiAhc3ltLT5hdHRyLmlzX2JpbmRfYworCQk/IEdGQ19DQUZfSElE REVOTEVOIDogMDsKKwkgICAgICBvcHJfZmxhZ19pbnQgfD0gc3ltLT5mb3Jt YWwtPnN5bS0+YXR0ci52YWx1ZQorCQk/IEdGQ19DQUZfQVJHX1ZBTFVFIDog MDsKKwkgICAgfQorCSAgZWxzZQorCSAgICB7CisJICAgICAgb3ByX2ZsYWdf aW50ID0gZ2ZjX3JldHVybl9ieV9yZWZlcmVuY2UgKG9wcl9leHByLT5zeW10 cmVlLT5uLnN5bSkKKwkJPyBHRkNfQ0FGX0JZUkVGIDogMDsKKwkgICAgICBv cHJfZmxhZ19pbnQgfD0gb3ByX2V4cHItPnRzLnR5cGUgPT0gQlRfQ0hBUkFD VEVSCisJCSYmICFvcHJfZXhwci0+c3ltdHJlZS0+bi5zeW0tPmF0dHIuaXNf YmluZF9jCisJCT8gR0ZDX0NBRl9ISURERU5MRU4gOiAwOworCSAgICAgIG9w cl9mbGFnX2ludCB8PSBvcHJfZXhwci0+c3ltdHJlZS0+bi5zeW0tPmZvcm1h bC0+c3ltLT5hdHRyLnZhbHVlCisJCT8gR0ZDX0NBRl9BUkdfVkFMVUUgOiAw OworCSAgICB9CisJICBvcHJfZmxhZ3MgPSBidWlsZF9pbnRfY3N0IChpbnRl Z2VyX3R5cGVfbm9kZSwgb3ByX2ZsYWdfaW50KTsKKwkgIGdmY19jb252X2V4 cHIgKCZhcmdzZSwgb3ByX2V4cHIpOworCSAgb3ByID0gYXJnc2UuZXhwcjsK KwkgIGZuZGVjbCA9IGJ1aWxkX2NhbGxfZXhwcl9sb2MgKGlucHV0X2xvY2F0 aW9uLCBmbmRlY2wsIDgsIGFycmF5LCBvcHIsCisJCQkJCW9wcl9mbGFncywg aW1hZ2VfaW5kZXgsIHN0YXQsIGVycm1zZywKKwkJCQkJc3RybGVuLCBlcnJt c2dfbGVuKTsKIAl9Ci0gICAgICBvcHJfZmxhZ3MgPSBidWlsZF9pbnRfY3N0 IChpbnRlZ2VyX3R5cGVfbm9kZSwgb3ByX2ZsYWdfaW50KTsKLSAgICAgIGdm Y19jb252X2V4cHIgKCZhcmdzZSwgb3ByX2V4cHIpOwotICAgICAgb3ByID0g YXJnc2UuZXhwcjsKLSAgICAgIGZuZGVjbCA9IGJ1aWxkX2NhbGxfZXhwcl9s b2MgKGlucHV0X2xvY2F0aW9uLCBmbmRlY2wsIDgsIGFycmF5LCBvcHIsIG9w cl9mbGFncywKLQkJCQkgICAgaW1hZ2VfaW5kZXgsIHN0YXQsIGVycm1zZywg c3RybGVuLCBlcnJtc2dfbGVuKTsKICAgICB9CiAKICAgZ2ZjX2FkZF9leHBy X3RvX2Jsb2NrICgmYmxvY2ssIGZuZGVjbCk7CmRpZmYgLS1naXQgYS9nY2Mv Zm9ydHJhbi90cmFucy5oIGIvZ2NjL2ZvcnRyYW4vdHJhbnMuaAppbmRleCA4 MDgyYjQxNGRmMS4uODQ3OTNkYzFkZjAgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0 cmFuL3RyYW5zLmgKKysrIGIvZ2NjL2ZvcnRyYW4vdHJhbnMuaApAQCAtMTA3 LDYgKzEwNywxNCBAQCB0eXBlZGVmIHN0cnVjdCBnZmNfc2UKIH0KIGdmY19z ZTsKIAordHlwZWRlZiBzdHJ1Y3QgZ2ZjX2NvX3N1YnJvdXRpbmVzX2FyZ3MK K3sKKyAgdHJlZSBpbWFnZV9pbmRleDsKKyAgdHJlZSBzdGF0OworICB0cmVl IGVycm1zZzsKKyAgdHJlZSBlcnJtc2dfbGVuOworfQorZ2ZjX2NvX3N1YnJv dXRpbmVzX2FyZ3M7CiAKIC8qIERlbm90ZXMgZGlmZmVyZW50IHR5cGVzIG9m IGNvYXJyYXkuCiAgICBQbGVhc2Uga2VlcCBpbiBzeW5jIHdpdGggbGliZ2Zv cnRyYW4vY2FmL2xpYmNhZi5oLiAgKi8K --000000000000584c3b0590b83315 Content-Type: application/octet-stream; name=Changelog_co_broadcast Content-Disposition: attachment; filename=Changelog_co_broadcast Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jzmy4jio1 Content-length: 1408 Y29tbWl0IDljMTIwODZmOTNiNTFhZWM0ZWJkZTg4ZDE3NjJmYTg5YTVkYmMy OWYKQXV0aG9yOiBBbGVzc2FuZHJvIEZhbmZhcmlsbG8gPGFsZXNzYW5kcm8u ZmFuZmFyaWxsb0BnbWFpbC5jb20+CkRhdGU6ICAgVGh1IEF1ZyAyMiAxMTox NDowMiAyMDE5IC0wNjAwCgogICAgQ2hhbmdlbG9nIHVwZGF0ZQoKZGlmZiAt LWdpdCBhL2djYy9mb3J0cmFuL0NoYW5nZUxvZyBiL2djYy9mb3J0cmFuL0No YW5nZUxvZwppbmRleCAzZWNhOTllY2M3Yy4uZDk1MTk1MzdmYmMgMTAwNjQ0 Ci0tLSBhL2djYy9mb3J0cmFuL0NoYW5nZUxvZworKysgYi9nY2MvZm9ydHJh bi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOS0wOC0yMiAgQWxl c3NhbmRybyBGYW5mYXJpbGxvICA8ZmFuZmFyaWxsby5nY2NAZ21haWwuY29t PgorCisJKiB0cmFucy1hcnJheS5jIChzdHJ1Y3R1cmVfYWxsb2NfY29tcHMp OgorCUFkZCBuZXcgZW51bSBpdGVtIGZvciBCQ0FTVF9BTExPQ19DT01QLgor CU5ldyBhcmd1bWVudCBmb3Igc3RydWN0dXJlX2FsbG9jX2NvbXAsIGFuZCBu ZXcgY2FzZSB0byBoYW5kbGUKKwlyZWN1cnNpdmUgY29tcG9uZW50cyBpbiBk ZXJpdmVkIHR5cGVzLgorCSogdHJhbnMtYXJyYXkuYyAoZ2ZjX2JjYXN0X2Fs bG9jX2NvbXApOiBOZXcgZnVuY3Rpb24KKwl1c2VkIHRvIGhhbmRsZWNvX2Jy b2FkY2FzdCBmb3IgYWxsb2NhdGFibGUgY29tcG9uZW50cworCW9mIGRlcml2 ZWQgdHlwZXMuCisJKiB0cmFucy1hcnJheS5oOiBBZGQgZ2ZjX2JjYXN0X2Fs bG9jX2NvbXAKKwkqIHRyYW5zLWludHJpbnNpY3MuYyAoY29udl9jb19jb2xs ZWN0aXZlKTogQWRkIGNoZWNrIGZvcgorCWRlcml2ZWQgdHlwZSB2YXJpYWJs ZSBhbmQgaW52b2NhdGlvbiBvZiBjb19iY2FzdF9hbGxvY19jb21wLgorCSog dHJhbnMuaDogTmV3IGRhdGEgc3RydWN0dXJlIGdmY19jb19zdWJyb3V0aW5l c19hcmdzLgorCiAyMDE5LTA4LTIwICBNYXJrIEVnZ2xlc3RvbiAgPG1hcmsu ZWdnbGVzdG9uQGNvZGV0aGluay5jb20+CiAKIAlQUiBmb3J0cmFuLzg5MjM2 Cg== --000000000000584c3b0590b83315--