From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 121071 invoked by alias); 9 Sep 2016 13:32:07 -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 121032 invoked by uid 89); 9 Sep 2016 13:32:04 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.6 required=5.0 tests=BAYES_00,KAM_ASCII_DIVIDERS,RCVD_IN_DNSWL_LOW,RCVD_IN_SORBS_SPAM,SPF_PASS autolearn=no version=3.3.2 spammy=12967, 12657, 1265,7, 1296,7 X-HELO: mail-oi0-f48.google.com Received: from mail-oi0-f48.google.com (HELO mail-oi0-f48.google.com) (209.85.218.48) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 09 Sep 2016 13:31:54 +0000 Received: by mail-oi0-f48.google.com with SMTP id q188so26522541oia.3 for ; Fri, 09 Sep 2016 06:31:53 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=5e86xf6Bytm6w8z8TEb1YtDHSj4pPeHTOyAhISkwKJQ=; b=Mw9oCStXhuEQvb0HXnubSjBtLfcnW6+jLjhSf4zHyYv3RIFMrOtS+x1kFEWah4BWpB XcBoQzM4hMRwS3r7HUReIz8+Pgu+Um4btq6oh5UTqo7ZknnfnIx+JuippY3a9R4H3g1L yITldJRyMd+DkpFi/vOqd4rWy4uyBkKWNJxLtLtCWxRr5Y9Ep/Q6BKh83WmqPbx3DVTa S/GMCROEi30pnJva4mbi1zcjXyZoPtoq98wJvd7c9BlwDeSjiaKWvY1lxsupPoO1nORa E+N/AAshDolD4HBYHN21yHmv8S704llZ072d+1V9DrLJdrM8s8SNYpc+uJRek6hjcCgH 8wdQ== X-Gm-Message-State: AE9vXwOPK8t96gizlrKLvgKh56ghr0bGgWL1OWc8wQ6lsVYwF3DUWQCNP9IJkZN/A4nO5DDEPWqIEtVNGTl1+A== X-Received: by 10.202.182.130 with SMTP id g124mr5694667oif.106.1473427912305; Fri, 09 Sep 2016 06:31:52 -0700 (PDT) MIME-Version: 1.0 Received: by 10.79.12.132 with HTTP; Fri, 9 Sep 2016 06:31:51 -0700 (PDT) In-Reply-To: <87wpiuw9km.fsf@linux-m68k.org> References: <871t12xoqr.fsf@linux-m68k.org> <87wpiuw9km.fsf@linux-m68k.org> From: Ian Lance Taylor Date: Fri, 09 Sep 2016 13:52:00 -0000 Message-ID: Subject: Re: Fwd: libgo patch committed: Use -fgo-c-header to share between Go and C To: Andreas Schwab Cc: gcc-patches , "gofrontend-dev@googlegroups.com" Content-Type: multipart/mixed; boundary=001a113daf24522799053c132b87 X-SW-Source: 2016-09/txt/msg00498.txt.bz2 --001a113daf24522799053c132b87 Content-Type: text/plain; charset=UTF-8 Content-length: 1037 On Fri, Sep 2, 2016 at 9:27 AM, Andreas Schwab wrote: > On Sep 02 2016, Ian Lance Taylor wrote: > >> On Fri, Sep 2, 2016 at 9:14 AM, Andreas Schwab wrote: >>> >>> That breaks libgo on ia64. The problem is that _ucontext_t isn't >>> properly aligned. >> >> Interesting. Thanks for looking into it. What is the required >> alignment? This code should be aligning it to a pointer boundary. > > That is too small. It needs at least 16 byte alignment. I have committed this patch to fix this problem (I hope). Since the relevant data structures are now defined in Go, and since they are defined as simply an array of unsafe.Pointer in Go, and since Go does not have a way to increase the alignment of a field in a struct, I increased the size of the structures and used code to select the appropriately aligned element of the structure. Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu, which admittedly does not show the problem. Committed to mainline. Ian --001a113daf24522799053c132b87 Content-Type: text/plain; charset=US-ASCII; name="patch.txt" Content-Disposition: attachment; filename="patch.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_isvsx3vm0 Content-length: 8976 SW5kZXg6IGdjYy9nby9nb2Zyb250ZW5kL01FUkdFCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tIGdjYy9nby9nb2Zyb250ZW5kL01FUkdFCShyZXZpc2lv biAyMzk4OTQpCisrKyBnY2MvZ28vZ29mcm9udGVuZC9NRVJHRQkod29ya2lu ZyBjb3B5KQpAQCAtMSw0ICsxLDQgQEAKLWM4Y2Y5MGYyZGFmNjI0MjhjYTZh YTBiNTY3NDU3MmNkOTlmMjVmZTMKKzRmMDMzZjI5NTUzNjU1YWQ5MDQ5M2Q1 NTA1OWE3YmJjNmNkNjMxMDgKIAogVGhlIGZpcnN0IGxpbmUgb2YgdGhpcyBm aWxlIGhvbGRzIHRoZSBnaXQgcmV2aXNpb24gbnVtYmVyIG9mIHRoZSBsYXN0 CiBtZXJnZSBkb25lIGZyb20gdGhlIGdvZnJvbnRlbmQgcmVwb3NpdG9yeS4K SW5kZXg6IGxpYmdvL2dvL3J1bnRpbWUvcnVudGltZTIuZ28KPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0gbGliZ28vZ28vcnVudGltZS9ydW50aW1lMi5n bwkocmV2aXNpb24gMjM5ODcyKQorKysgbGliZ28vZ28vcnVudGltZS9ydW50 aW1lMi5nbwkod29ya2luZyBjb3B5KQpAQCAtODA1LDcgKzgwNSwxMSBAQCB2 YXIgKAogCiAvLyBfdWNvbnRleHRfdCBpcyBhIEdvIHZlcnNpb24gb2YgdGhl IEMgdWNvbnRleHRfdCB0eXBlLCB1c2VkIGJ5IGdldGNvbnRleHQuCiAvLyBf c2l6ZW9mX3Vjb250ZXh0X3QgaXMgZGVmaW5lZCBieSB0aGUgTWFrZWZpbGUg ZnJvbSA8dWNvbnRleHQuaD4uCi10eXBlIF91Y29udGV4dF90IFtfc2l6ZW9m X3Vjb250ZXh0X3QgLyB1bnNhZmUuU2l6ZW9mKHVpbnRwdHIoMCkpXXVuc2Fm ZS5Qb2ludGVyCisvLyBPbiBzb21lIHN5c3RlbXMgZ2V0Y29udGV4dCBhbmQg ZnJpZW5kcyByZXF1aXJlIGEgdmFsdWUgdGhhdCBpcworLy8gYWxpZ25lZCB0 byBhIDE2LWJ5dGUgYm91bmRhcnkuICBXZSBpbXBsZW1lbnQgdGhpcyBieSBp bmNyZWFzaW5nIHRoZQorLy8gcmVxdWlyZWQgc2l6ZSBhbmQgcGlja2luZyBh biBhcHByb3ByaWF0ZSBvZmZzZXQgd2hlbiB3ZSB1c2UgdGhlCisvLyBhcnJh eS4KK3R5cGUgX3Vjb250ZXh0X3QgWyhfc2l6ZW9mX3Vjb250ZXh0X3QgKyAx NSkgLyB1bnNhZmUuU2l6ZW9mKHVuc2FmZS5Qb2ludGVyKG5pbCkpXXVuc2Fm ZS5Qb2ludGVyCiAKIC8vIHRyYWNlYmFjayBpcyB1c2VkIHRvIGNvbGxlY3Qg c3RhY2sgdHJhY2VzIGZyb20gb3RoZXIgZ29yb3V0aW5lcy4KIHR5cGUgdHJh Y2ViYWNrIHN0cnVjdCB7CkluZGV4OiBsaWJnby9ydW50aW1lL3Byb2MuYwo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLSBsaWJnby9ydW50aW1lL3Byb2Mu YwkocmV2aXNpb24gMjM5ODcyKQorKysgbGliZ28vcnVudGltZS9wcm9jLmMJ KHdvcmtpbmcgY29weSkKQEAgLTE1Niw2ICsxNTYsMjAgQEAgZml4Y29udGV4 dCh1Y29udGV4dF90ICpjKQogCiAjZW5kaWYKIAorLy8gdWNvbnRleHRfYXJn IHJldHVybnMgYSBwcm9wZXJseSBhbGlnbmVkIHVjb250ZXh0X3QgdmFsdWUu ICBPbiBzb21lCisvLyBzeXN0ZW1zIGEgdWNvbnRleHRfdCB2YWx1ZSBtdXN0 IGJlIGFsaWduZWQgdG8gYSAxNi1ieXRlIGJvdW5kYXJ5LgorLy8gVGhlIGcg c3RydWN0dXJlIHRoYXQgaGFzIGZpZWxkcyBvZiB0eXBlIHVjb250ZXh0X3Qg aXMgZGVmaW5lZCBpbgorLy8gR28sIGFuZCBHbyBoYXMgbm8gc2ltcGxlIHdh eSB0byBhbGlnbiBhIGZpZWxkIHRvIHN1Y2ggYSBib3VuZGFyeS4KKy8vIFNv IHdlIG1ha2UgdGhlIGZpZWxkIGxhcmdlciBpbiBydW50aW1lMi5nbyBhbmQg cGljayBhbiBhcHByb3ByaWF0ZQorLy8gb2Zmc2V0IHdpdGhpbiB0aGUgZmll bGQgaGVyZS4KK3N0YXRpYyB1Y29udGV4dF90KgordWNvbnRleHRfYXJnKHZv aWQqKiBnb191Y29udGV4dCkKK3sKKwl1aW50cHRyX3QgcCA9ICh1aW50cHRy X3QpZ29fdWNvbnRleHQ7CisJcCA9IChwICsgMTUpICZ+ICh1aW50cHRyX3Qp MHhmOworCXJldHVybiAodWNvbnRleHRfdCopcDsKK30KKwogLy8gV2UgY2Fu IG5vdCBhbHdheXMgcmVmZXIgdG8gdGhlIFRMUyB2YXJpYWJsZXMgZGlyZWN0 bHkuICBUaGUKIC8vIGNvbXBpbGVyIHdpbGwgY2FsbCB0bHNfZ2V0X2FkZHIg dG8gZ2V0IHRoZSBhZGRyZXNzIG9mIHRoZSB2YXJpYWJsZSwKIC8vIGFuZCBp dCBtYXkgaG9sZCBpdCBpbiBhIHJlZ2lzdGVyIGFjcm9zcyBhIGNhbGwgdG8g c2NoZWR1bGUuICBXaGVuCkBAIC0yNDUsOCArMjU5LDggQEAgcnVudGltZV9n b2dvKEcqIG5ld2cpCiAjZW5kaWYKIAlnID0gbmV3ZzsKIAluZXdnLT5mcm9t Z29nbyA9IHRydWU7Ci0JZml4Y29udGV4dCgodWNvbnRleHRfdCopJm5ld2ct PmNvbnRleHRbMF0pOwotCXNldGNvbnRleHQoKHVjb250ZXh0X3QqKSZuZXdn LT5jb250ZXh0WzBdKTsKKwlmaXhjb250ZXh0KHVjb250ZXh0X2FyZygmbmV3 Zy0+Y29udGV4dFswXSkpOworCXNldGNvbnRleHQodWNvbnRleHRfYXJnKCZu ZXdnLT5jb250ZXh0WzBdKSk7CiAJcnVudGltZV90aHJvdygiZ29nbyBzZXRj b250ZXh0IHJldHVybmVkIik7CiB9CiAKQEAgLTI3OCw3ICsyOTIsNyBAQCBy dW50aW1lX21jYWxsKHZvaWQgKCpwZm4pKEcqKSkKIAkJZ3AtPmdjbmV4dHNw ID0gJnBmbjsKICNlbmRpZgogCQlncC0+ZnJvbWdvZ28gPSBmYWxzZTsKLQkJ Z2V0Y29udGV4dCgodWNvbnRleHRfdCopJmdwLT5jb250ZXh0WzBdKTsKKwkJ Z2V0Y29udGV4dCh1Y29udGV4dF9hcmcoJmdwLT5jb250ZXh0WzBdKSk7CiAK IAkJLy8gV2hlbiB3ZSByZXR1cm4gZnJvbSBnZXRjb250ZXh0LCB3ZSBtYXkg YmUgcnVubmluZwogCQkvLyBpbiBhIG5ldyB0aHJlYWQuICBUaGF0IG1lYW5z IHRoYXQgZyBtYXkgaGF2ZQpAQCAtMzA1LDggKzMxOSw4IEBAIHJ1bnRpbWVf bWNhbGwodm9pZCAoKnBmbikoRyopKQogCQkvLyB0aGUgZ2V0Y29udGV4dCBj YWxsIGp1c3QgYWJvdmUuCiAJCWcgPSBtcC0+ZzA7CiAKLQkJZml4Y29udGV4 dCgodWNvbnRleHRfdCopJm1wLT5nMC0+Y29udGV4dFswXSk7Ci0JCXNldGNv bnRleHQoKHVjb250ZXh0X3QqKSZtcC0+ZzAtPmNvbnRleHRbMF0pOworCQlm aXhjb250ZXh0KHVjb250ZXh0X2FyZygmbXAtPmcwLT5jb250ZXh0WzBdKSk7 CisJCXNldGNvbnRleHQodWNvbnRleHRfYXJnKCZtcC0+ZzAtPmNvbnRleHRb MF0pKTsKIAkJcnVudGltZV90aHJvdygicnVudGltZTogbWNhbGwgZnVuY3Rp b24gcmV0dXJuZWQiKTsKIAl9CiB9CkBAIC03MDksNyArNzIzLDcgQEAgcnVu dGltZV90cmFjZWJhY2tvdGhlcnMoRyAqIHZvbGF0aWxlIG1lKQogI2lmZGVm IFVTSU5HX1NQTElUX1NUQUNLCiAJCV9fc3BsaXRzdGFja19nZXRjb250ZXh0 KCZtZS0+c3RhY2tjb250ZXh0WzBdKTsKICNlbmRpZgotCQlnZXRjb250ZXh0 KCh1Y29udGV4dF90KikmbWUtPmNvbnRleHRbMF0pOworCQlnZXRjb250ZXh0 KHVjb250ZXh0X2FyZygmbWUtPmNvbnRleHRbMF0pKTsKIAogCQlpZihncC0+ dHJhY2ViYWNrICE9IG5pbCkgewogCQkgIHJ1bnRpbWVfZ29nbyhncCk7CkBA IC03NTAsNyArNzY0LDcgQEAgcnVudGltZV90cmFjZWJhY2tvdGhlcnMoRyAq IHZvbGF0aWxlIG1lKQogI2lmZGVmIFVTSU5HX1NQTElUX1NUQUNLCiAJCQlf X3NwbGl0c3RhY2tfZ2V0Y29udGV4dCgmbWUtPnN0YWNrY29udGV4dFswXSk7 CiAjZW5kaWYKLQkJCWdldGNvbnRleHQoKHVjb250ZXh0X3QqKSZtZS0+Y29u dGV4dFswXSk7CisJCQlnZXRjb250ZXh0KHVjb250ZXh0X2FyZygmbWUtPmNv bnRleHRbMF0pKTsKIAogCQkJaWYoZ3AtPnRyYWNlYmFjayAhPSBuaWwpIHsK IAkJCQlydW50aW1lX2dvZ28oZ3ApOwpAQCAtMTA2Myw3ICsxMDc3LDcgQEAg cnVudGltZV9tc3RhcnQodm9pZCogbXApCiAJZy0+Z2NzdGFja3NpemUgPSAw OwogCWctPmdjbmV4dHNwID0gJm1wOwogI2VuZGlmCi0JZ2V0Y29udGV4dCgo dWNvbnRleHRfdCopJmctPmNvbnRleHRbMF0pOworCWdldGNvbnRleHQodWNv bnRleHRfYXJnKCZnLT5jb250ZXh0WzBdKSk7CiAKIAlpZihnLT5lbnRyeSAh PSBuaWwpIHsKIAkJLy8gR290IGhlcmUgZnJvbSBtY2FsbC4KQEAgLTEyNTEs NyArMTI2NSw3IEBAIHJ1bnRpbWVfbmVlZG0odm9pZCkKIAlnLT5nY3N0YWNr c2l6ZSA9IDA7CiAJZy0+Z2NuZXh0c3AgPSAmbXA7CiAjZW5kaWYKLQlnZXRj b250ZXh0KCh1Y29udGV4dF90KikmZy0+Y29udGV4dFswXSk7CisJZ2V0Y29u dGV4dCh1Y29udGV4dF9hcmcoJmctPmNvbnRleHRbMF0pKTsKIAogCWlmKGct PmVudHJ5ICE9IG5pbCkgewogCQkvLyBHb3QgaGVyZSBmcm9tIG1jYWxsLgpA QCAtMTI4Miw2ICsxMjk2LDcgQEAgcnVudGltZV9uZXdleHRyYW0odm9pZCkK IAlHICpncDsKIAlieXRlICpnMF9zcCwgKnNwOwogCXVpbnRwdHIgZzBfc3Bz aXplLCBzcHNpemU7CisJdWNvbnRleHRfdCAqdWM7CiAKIAkvLyBDcmVhdGUg ZXh0cmEgZ29yb3V0aW5lIGxvY2tlZCB0byBleHRyYSBtLgogCS8vIFRoZSBn b3JvdXRpbmUgaXMgdGhlIGNvbnRleHQgaW4gd2hpY2ggdGhlIGNnbyBjYWxs YmFjayB3aWxsIHJ1bi4KQEAgLTEzMDIsMTAgKzEzMTcsMTEgQEAgcnVudGlt ZV9uZXdleHRyYW0odm9pZCkKIAogCS8vIFRoZSBjb250ZXh0IGZvciBncCB3 aWxsIGJlIHNldCB1cCBpbiBydW50aW1lX25lZWRtLiAgQnV0CiAJLy8gaGVy ZSB3ZSBuZWVkIHRvIHNldCB1cCB0aGUgY29udGV4dCBmb3IgZzAuCi0JZ2V0 Y29udGV4dCgodWNvbnRleHRfdCopJm1wLT5nMC0+Y29udGV4dFswXSk7Ci0J KCh1Y29udGV4dF90KikmbXAtPmcwLT5jb250ZXh0WzBdKS0+dWNfc3RhY2su c3Nfc3AgPSBnMF9zcDsKLQkoKHVjb250ZXh0X3QqKSZtcC0+ZzAtPmNvbnRl eHRbMF0pLT51Y19zdGFjay5zc19zaXplID0gKHNpemVfdClnMF9zcHNpemU7 Ci0JbWFrZWNvbnRleHQoKHVjb250ZXh0X3QqKSZtcC0+ZzAtPmNvbnRleHRb MF0sIGtpY2tvZmYsIDApOworCXVjID0gdWNvbnRleHRfYXJnKCZtcC0+ZzAt PmNvbnRleHRbMF0pOworCWdldGNvbnRleHQodWMpOworCXVjLT51Y19zdGFj ay5zc19zcCA9IGcwX3NwOworCXVjLT51Y19zdGFjay5zc19zaXplID0gKHNp emVfdClnMF9zcHNpemU7CisJbWFrZWNvbnRleHQodWMsIGtpY2tvZmYsIDAp OwogCiAJLy8gQWRkIG0gdG8gdGhlIGV4dHJhIGxpc3QuCiAJbW5leHQgPSBs b2NrZXh0cmEodHJ1ZSk7CkBAIC0yMDA3LDcgKzIwMjMsNyBAQCBydW50aW1l X2VudGVyc3lzY2FsbCgpCiB7CiAJLy8gU2F2ZSB0aGUgcmVnaXN0ZXJzIGlu IHRoZSBnIHN0cnVjdHVyZSBzbyB0aGF0IGFueSBwb2ludGVycwogCS8vIGhl bGQgaW4gcmVnaXN0ZXJzIHdpbGwgYmUgc2VlbiBieSB0aGUgZ2FyYmFnZSBj b2xsZWN0b3IuCi0JZ2V0Y29udGV4dCgodWNvbnRleHRfdCopJmctPmdjcmVn c1swXSk7CisJZ2V0Y29udGV4dCh1Y29udGV4dF9hcmcoJmctPmdjcmVnc1sw XSkpOwogCiAJLy8gRG8gdGhlIHdvcmsgaW4gYSBzZXBhcmF0ZSBmdW5jdGlv biwgc28gdGhhdCB0aGlzIGZ1bmN0aW9uCiAJLy8gZG9lc24ndCBzYXZlIGFu eSByZWdpc3RlcnMgb24gaXRzIG93biBzdGFjay4gIElmIHRoaXMKQEAgLTIw ODYsNyArMjEwMiw3IEBAIHJ1bnRpbWVfZW50ZXJzeXNjYWxsYmxvY2sodm9p ZCkKIAogCS8vIFNhdmUgdGhlIHJlZ2lzdGVycyBpbiB0aGUgZyBzdHJ1Y3R1 cmUgc28gdGhhdCBhbnkgcG9pbnRlcnMKIAkvLyBoZWxkIGluIHJlZ2lzdGVy cyB3aWxsIGJlIHNlZW4gYnkgdGhlIGdhcmJhZ2UgY29sbGVjdG9yLgotCWdl dGNvbnRleHQoKHVjb250ZXh0X3QqKSZnLT5nY3JlZ3NbMF0pOworCWdldGNv bnRleHQodWNvbnRleHRfYXJnKCZnLT5nY3JlZ3NbMF0pKTsKIAogCWctPmF0 b21pY3N0YXR1cyA9IF9Hc3lzY2FsbDsKIApAQCAtMjM3NSwxNCArMjM5MSwx NiBAQCBfX2dvX2dvKHZvaWQgKCpmbikodm9pZCopLCB2b2lkKiBhcmcpCiAJ CWJ5dGUgKiB2b2xhdGlsZSB2c3AgPSBzcDsKIAkJc2l6ZV90IHZvbGF0aWxl IHZzcHNpemUgPSBzcHNpemU7CiAJCUcgKiB2b2xhdGlsZSB2bmV3ZyA9IG5l d2c7CisJCXVjb250ZXh0X3QgKiB2b2xhdGlsZSB1YzsKIAotCQlnZXRjb250 ZXh0KCh1Y29udGV4dF90Kikmdm5ld2ctPmNvbnRleHRbMF0pOwotCQkoKHVj b250ZXh0X3QqKSZ2bmV3Zy0+Y29udGV4dFswXSktPnVjX3N0YWNrLnNzX3Nw ID0gdnNwOworCQl1YyA9IHVjb250ZXh0X2FyZygmdm5ld2ctPmNvbnRleHRb MF0pOworCQlnZXRjb250ZXh0KHVjKTsKKwkJdWMtPnVjX3N0YWNrLnNzX3Nw ID0gdnNwOwogI2lmZGVmIE1BS0VDT05URVhUX1NUQUNLX1RPUAotCQkoKHVj b250ZXh0X3QqKSZ2bmV3Zy0+Y29udGV4dFswXSktPnVjX3N0YWNrLnNzX3Nw ICs9IHZzcHNpemU7CisJCXVjLT51Y19zdGFjay5zc19zcCArPSB2c3BzaXpl OwogI2VuZGlmCi0JCSgodWNvbnRleHRfdCopJnZuZXdnLT5jb250ZXh0WzBd KS0+dWNfc3RhY2suc3Nfc2l6ZSA9IHZzcHNpemU7Ci0JCW1ha2Vjb250ZXh0 KCh1Y29udGV4dF90Kikmdm5ld2ctPmNvbnRleHRbMF0sIGtpY2tvZmYsIDAp OworCQl1Yy0+dWNfc3RhY2suc3Nfc2l6ZSA9IHZzcHNpemU7CisJCW1ha2Vj b250ZXh0KHVjLCBraWNrb2ZmLCAwKTsKIAogCQlydW5xcHV0KHAsIHZuZXdn KTsKIAo= --001a113daf24522799053c132b87--