From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by sympa.inria.fr (Postfix) with ESMTPS id 57AC37EEBF for ; Sat, 8 Aug 2015 16:14:01 +0200 (CEST) Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of gabriel.scherer@gmail.com) identity=pra; client-ip=209.85.223.180; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="gabriel.scherer@gmail.com"; x-sender="gabriel.scherer@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of gabriel.scherer@gmail.com designates 209.85.223.180 as permitted sender) identity=mailfrom; client-ip=209.85.223.180; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="gabriel.scherer@gmail.com"; x-sender="gabriel.scherer@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-io0-f180.google.com) identity=helo; client-ip=209.85.223.180; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="gabriel.scherer@gmail.com"; x-sender="postmaster@mail-io0-f180.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0DoAQALDsZVm7TfVdFbg29pBoMeqh+ReYV5AoEjB0wBAQEBAQESAQEBAQEGCwsJIS6EIwEBAQMBEhEEGQEbHQEDAQsGBQsGAwECASoCAgIfAQERAQUBFAgGEwgah3YBAwoIDalVgS4+MYs/gWyCeYsNChknDVeEVQEBAQEBAQEBAQEBAQEBAQEBAQEBAREBBQ6KQIEDgk+BVxEBNgoMAQQHgmmBQwEEhxqFO4ErhwuCPYJFhXWBbIFJRpA7CoNDghoSI4EXF4IdHIFVPDGBDoE+AQEB X-IPAS-Result: A0DoAQALDsZVm7TfVdFbg29pBoMeqh+ReYV5AoEjB0wBAQEBAQESAQEBAQEGCwsJIS6EIwEBAQMBEhEEGQEbHQEDAQsGBQsGAwECASoCAgIfAQERAQUBFAgGEwgah3YBAwoIDalVgS4+MYs/gWyCeYsNChknDVeEVQEBAQEBAQEBAQEBAQEBAQEBAQEBAREBBQ6KQIEDgk+BVxEBNgoMAQQHgmmBQwEEhxqFO4ErhwuCPYJFhXWBbIFJRpA7CoNDghoSI4EXF4IdHIFVPDGBDoE+AQEB X-IronPort-AV: E=Sophos;i="5.15,634,1432591200"; d="scan'208,223";a="142328503" Received: from mail-io0-f180.google.com ([209.85.223.180]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/RC4-SHA; 08 Aug 2015 16:13:59 +0200 Received: by ioeg141 with SMTP id g141so135120932ioe.3; Sat, 08 Aug 2015 07:13:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=zwkAyR/Ij5aibu6RHX6CiJM8+ucU50uMi3XKA1KR4p4=; b=oYwApuT5ABDlH/tsihlA/LatmlbNB3ljJQjjtPFvlEs21qpo0Q/S96LJHuv2JpJ13U jJW0Y8kgrP+3fnzPBH6pqMhajhAC/SD/EDcWwdJaySKQ7UWlY3+DIe6j+8e9GAblrV/+ DauT3OeUjRsJ+4nDhyDfBhNzkwewLvewmvGJ5F5fwzepP2BOVqhhjlOvrd81Tzcf2YLa +le5s4qx5VQmrA87P7fJi8NrRr2CulGCpwSIqZ6tSeNcdzrLJdhKm5iOxdA8Hatjd18x UNipZAThAdot24VcKMYbnAsBkot8OCXgAkR77QcG+KyxITHU83/bg2TywngF5brKFdUA H7+Q== X-Received: by 10.107.128.28 with SMTP id b28mr13746497iod.84.1439043237647; Sat, 08 Aug 2015 07:13:57 -0700 (PDT) MIME-Version: 1.0 Received: by 10.79.68.132 with HTTP; Sat, 8 Aug 2015 07:13:18 -0700 (PDT) In-Reply-To: References: From: Gabriel Scherer Date: Sat, 8 Aug 2015 16:13:18 +0200 Message-ID: To: Bob Zhang Cc: Caml List , Xavier Leroy Content-Type: multipart/mixed; boundary=001a113f9a62ff3e60051ccd5c22 Subject: Re: [Caml-list] Questions about changing lambda IR --001a113f9a62ff3e60051ccd5c22 Content-Type: multipart/alternative; boundary=001a113f9a62ff3e5a051ccd5c20 --001a113f9a62ff3e5a051ccd5c20 Content-Type: text/plain; charset=UTF-8 Attached to this email is the patch I tried. It's exactly your proposed change, with necessary dummy changes to make it compile. The following process works reliably on my trunk: - make world - apply the patch - make bootstrap - make world On Sat, Aug 8, 2015 at 1:28 PM, Bob Zhang wrote: > Before I changed Lambda.lambda, and it works, it might be that we > serialized structured_constant somewhere in the bootstrapping process? > > On Sat, Aug 8, 2015 at 7:25 AM, Bob Zhang wrote: > >> It does not work for me. Since it fails to compile, I pushed it to >> another branch https://github.com/bobzhang/ocaml/tree/fails (sorry for >> the misinformation) >> >> I did `git clean -fxd` and try configure, make world, it failed in the >> same place. >> Thank you for your time! >> >> On Sat, Aug 8, 2015 at 3:37 AM, Gabriel Scherer < >> gabriel.scherer@gmail.com> wrote: >> >>> You need to run "make bootstrap" to avoid having part of the definition >>> compiled against the stale definition of lambda.cmi. (I just checked that >>> it works on your change: after a bootrsap, "make world", "make opt", "make >>> opt.opt" work.) >>> >>> On Sat, Aug 8, 2015 at 5:50 AM, Bob Zhang >>> wrote: >>> >>>> >>>> Dear caml develpers, >>>> >>>> I am working on an experimental branch to pass more information from >>>> typedtree to lambda to enable ocaml generate user readable javascript code( >>>> https://github.com/bobzhang/ocaml/tree/master) (online-demo: >>>> http://zhanghongbo.me/js-demo/) >>>> >>>> Here I get a segfault, after I change const_block: >>>> Below is my minimal change: >>>> >>>> ``` >>>> type pointer_info = >>>> | NullConstructor of string >>>> | NullVariant of string >>>> | NAPointer >>>> >>>> type tag_info = >>>> | Constructor of string >>>> | Tuple >>>> | Variant of string >>>> | Record >>>> | NA >>>> >>>> type structured_constant = >>>> Const_base of constant >>>> | Const_pointer of int * pointer_info >>>> | Const_block of int * tag_info * structured_constant list >>>> | Const_float_array of string list >>>> | Const_immstring of string >>>> ``` >>>> Note that the enriched info is not used in ``emitcode``, now I get a >>>> segfault in make world: >>>> >>>> ``` >>>> ../../boot/ocamlrun ../../ocamlc -nostdlib -I ../../stdlib -c -w >>>> +33..39 -warn-error A -bin-annot -g -safe-string -I ../../stdlib -I >>>> ../../utils -I ../../typing -I ../../bytecomp -I ../../asmcomp >>>> extract_crc.ml >>>> ../../boot/ocamlrun ../../ocamlc -nostdlib -I ../../stdlib -o >>>> extract_crc dynlink.cma extract_crc.cmo >>>> make[3]: *** [extract_crc] Segmentation fault: 11 >>>> make[3]: *** Deleting file `extract_crc' >>>> make[2]: *** [otherlibraries] Error 2 >>>> make[1]: *** [all] Error 2 >>>> ``` >>>> >>>> Any help is appreciated : ) >>>> >>>> -- >>>> Regards >>>> -- Hongbo Zhang >>>> >>> >>> >> >> >> -- >> Regards >> -- Hongbo Zhang >> > > > > -- > Regards > -- Hongbo Zhang > --001a113f9a62ff3e5a051ccd5c20 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Attached to this email is the patch I tried. It's= exactly your proposed change, with necessary dummy changes to make it comp= ile. The following process works reliably on my trunk:

- = make world
- apply the patch
- make bootstrap
- make world

On Sat, Aug 8, 2015 at 1:28 PM, Bob Zhang <bo= bzhang1988@gmail.com> wrote:
Before I changed Lambda.lambda, and it works, it might b= e that we serialized structured_constant somewhere in the bootstrapping pro= cess?

On Sat, Aug 8, 2015 at 7:25 AM, Bob Zhang= <bobzhang1988@gmail.com> wrote:
It does not work for me. Since it fails to c= ompile, I pushed it to another branch=C2=A0https://github.com/bobzhang/ocam= l/tree/fails (sorry for the misinformation)

I did `g= it clean -fxd` and try configure, make world, it failed in the same place.<= br>Thank you for your time!

On Sat, Aug 8, 2015 at 3:37 AM, Gabriel Sch= erer <gabriel.scherer@gmail.com> wrote:
You need to run "make bootstrap= " to avoid having part of the definition compiled against the stale de= finition of lambda.cmi. (I just checked that it works on your change: after= a bootrsap, "make world", "make opt", "make opt.o= pt" work.)

On Sat, Aug 8, 2015 at 5:50 AM, Bob Zhang <bobzhang= 1988@gmail.com> wrote:

Dear caml develpers,

=C2=A0 =C2= =A0I am working on an experimental branch to pass more information from typ= edtree to lambda to enable ocaml generate user readable javascript code(ht= tps://github.com/bobzhang/ocaml/tree/master) (online-demo: http://zhanghongbo.me/js-d= emo/)

=C2=A0 =C2=A0Here I get a segfault, afte= r I change const_block:
=C2=A0 =C2=A0Below is my minimal change:<= /div>

```
type pointer_info =3D=C2=A0
=C2=A0 | NullConstructor of string
=C2=A0 | NullVariant of stri= ng=C2=A0
=C2=A0 | NAPointer=C2=A0

t= ype tag_info =3D=C2=A0
=C2=A0 | Constructor of string
= =C2=A0 | Tuple
=C2=A0 | Variant of string=C2=A0
=C2=A0 = | Record=C2=A0
=C2=A0 | NA

type st= ructured_constant =3D
=C2=A0 =C2=A0 Const_base of constant
<= div>=C2=A0 | Const_pointer of int * pointer_info
=C2=A0 | Const_b= lock of int * tag_info * structured_constant list
=C2=A0 | Const_= float_array of string list
=C2=A0 | Const_immstring of string
```
Note that the enriched info is not used in ``emitcode`= `, now I get a segfault in make world:

```
../../boot/ocamlrun ../../ocamlc -nostdlib -I ../../stdlib -c -w +3= 3..39 -warn-error A -bin-annot -g -safe-string -I ../../stdlib -I ../../uti= ls -I ../../typing -I ../../bytecomp -I ../../asmcomp extract_crc.ml
../../boot/ocam= lrun ../../ocamlc -nostdlib -I ../../stdlib -o extract_crc dynlink.cma extr= act_crc.cmo
make[3]: *** [extract_crc] Segmentation fault: 11
make[3]: *** Deleting file `extract_crc'
make[2]: *** = [otherlibraries] Error 2
make[1]: *** [all] Error 2
```

Any help is appreciated : )

--
Regards
-- Hongbo Zhang




--
=
Regards
-- Hongbo Zhang



--
=
Regards
-- Hongbo Zhang

--001a113f9a62ff3e5a051ccd5c20-- --001a113f9a62ff3e60051ccd5c22 Content-Type: text/x-patch; charset=US-ASCII; name="change-const_block-representation.patch" Content-Disposition: attachment; filename="change-const_block-representation.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_id355hlz0 RnJvbSAwMmZmZGY4ZjI0MzFmOWUyZDg0YzY1MWVmNGViYzcyYzg3MjI3NWI5 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBHYWJyaWVsIFNjaGVy ZXIgPGdhYnJpZWwuc2NoZXJlckBnbWFpbC5jb20+CkRhdGU6IFNhdCwgOCBB dWcgMjAxNSAwOTozMDoxNiArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIGNoYW5n ZSBjb25zdF9ibG9jayByZXByZXNlbnRhdGlvbgoKLS0tCiBhc21jb21wL2Ns b3N1cmUubWwgICAgICB8ICA0ICsrLS0KIGJ5dGVjb21wL2VtaXRjb2RlLm1s ICAgIHwgMTAgKysrKystLS0tLQogYnl0ZWNvbXAvbGFtYmRhLm1sICAgICAg fCAyMSArKysrKysrKysrKysrKysrKy0tLS0KIGJ5dGVjb21wL2xhbWJkYS5t bGkgICAgIHwgMTYgKysrKysrKysrKysrKystLQogYnl0ZWNvbXAvbWF0Y2hp bmcubWwgICAgfCAgMiArLQogYnl0ZWNvbXAvcHJpbnRsYW1iZGEubWwgfCAg NiArKystLS0KIGJ5dGVjb21wL3N5bXRhYmxlLm1sICAgIHwgIDYgKysrLS0t CiBieXRlY29tcC90cmFuc2xjbGFzcy5tbCB8IDEwICsrKysrLS0tLS0KIGJ5 dGVjb21wL3RyYW5zbGNvcmUubWwgIHwgMTggKysrKysrKysrLS0tLS0tLS0t CiBieXRlY29tcC90cmFuc2xtb2QubWwgICB8IDEyICsrKysrKy0tLS0tLQog Ynl0ZWNvbXAvdHJhbnNsb2JqLm1sICAgfCAgMiArLQogdG9vbHMvZHVtcG9i ai5tbCAgICAgICAgfCAgNCArKy0tCiAxMiBmaWxlcyBjaGFuZ2VkLCA2OCBp bnNlcnRpb25zKCspLCA0MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9h c21jb21wL2Nsb3N1cmUubWwgYi9hc21jb21wL2Nsb3N1cmUubWwKaW5kZXgg MTc1OTMyYy4uNTY5ZTA2YiAxMDA2NDQKLS0tIGEvYXNtY29tcC9jbG9zdXJl Lm1sCisrKyBiL2FzbWNvbXAvY2xvc3VyZS5tbApAQCAtODIyLDggKzgyMiw4 IEBAIGxldCByZWMgY2xvc2UgZmVudiBjZW52ID0gZnVuY3Rpb24KICAgICAg IGxldCByZWMgdHJhbnNsID0gZnVuY3Rpb24KICAgICAgICAgfCBDb25zdF9i YXNlKENvbnN0X2ludCBuKSAtPiBVY29uc3RfaW50IG4KICAgICAgICAgfCBD b25zdF9iYXNlKENvbnN0X2NoYXIgYykgLT4gVWNvbnN0X2ludCAoQ2hhci5j b2RlIGMpCi0gICAgICAgIHwgQ29uc3RfcG9pbnRlciBuIC0+IFVjb25zdF9w dHIgbgotICAgICAgICB8IENvbnN0X2Jsb2NrICh0YWcsIGZpZWxkcykgLT4K KyAgICAgICAgfCBDb25zdF9wb2ludGVyIChuLCBfKSAtPiBVY29uc3RfcHRy IG4KKyAgICAgICAgfCBDb25zdF9ibG9jayAodGFnLCBfLCBmaWVsZHMpIC0+ CiAgICAgICAgICAgICBzdHIgKFVjb25zdF9ibG9jayAodGFnLCBMaXN0Lm1h cCB0cmFuc2wgZmllbGRzKSkKICAgICAgICAgfCBDb25zdF9mbG9hdF9hcnJh eSBzbCAtPgogICAgICAgICAgICAgKCogY29uc3RhbnQgZmxvYXQgYXJyYXlz IGFyZSByZWFsbHkgaW1tdXRhYmxlICopCmRpZmYgLS1naXQgYS9ieXRlY29t cC9lbWl0Y29kZS5tbCBiL2J5dGVjb21wL2VtaXRjb2RlLm1sCmluZGV4IDgx ZTAwYjcuLmUzYmEwMGIgMTAwNjQ0Ci0tLSBhL2J5dGVjb21wL2VtaXRjb2Rl Lm1sCisrKyBiL2J5dGVjb21wL2VtaXRjb2RlLm1sCkBAIC01MCw3ICs1MCw3 IEBAIGV4Y2VwdGlvbiBBc0ludAogbGV0IGNvbnN0X2FzX2ludCA9IGZ1bmN0 aW9uCiAgIHwgQ29uc3RfYmFzZShDb25zdF9pbnQgaSkgLT4gaQogICB8IENv bnN0X2Jhc2UoQ29uc3RfY2hhciBjKSAtPiBDaGFyLmNvZGUgYwotICB8IENv bnN0X3BvaW50ZXIgaSAtPiBpCisgIHwgQ29uc3RfcG9pbnRlciAoaSwgXykg LT4gaQogICB8IF8gLT4gcmFpc2UgQXNJbnQKIAogbGV0IGlzX2ltbWVkIGkg PSBpbW1lZF9taW4gPD0gaSAmJiBpIDw9IGltbWVkX21heApAQCAtMjEwLDEx ICsyMTAsMTEgQEAgbGV0IGVtaXRfaW5zdHIgPSBmdW5jdGlvbgogICAgICAg ICAgIGVsc2UgKG91dCBvcENPTlNUSU5UOyBvdXRfaW50IGkpCiAgICAgICB8 IENvbnN0X2Jhc2UoQ29uc3RfY2hhciBjKSAtPgogICAgICAgICAgIG91dCBv cENPTlNUSU5UOyBvdXRfaW50IChDaGFyLmNvZGUgYykKLSAgICAgIHwgQ29u c3RfcG9pbnRlciBpIC0+CisgICAgICB8IENvbnN0X3BvaW50ZXIgKGksIF8p IC0+CiAgICAgICAgICAgaWYgaSA+PSAwICYmIGkgPD0gMwogICAgICAgICAg IHRoZW4gb3V0IChvcENPTlNUMCArIGkpCiAgICAgICAgICAgZWxzZSAob3V0 IG9wQ09OU1RJTlQ7IG91dF9pbnQgaSkKLSAgICAgIHwgQ29uc3RfYmxvY2so dCwgW10pIC0+CisgICAgICB8IENvbnN0X2Jsb2NrKHQsIF8sIFtdKSAtPgog ICAgICAgICAgIGlmIHQgPSAwIHRoZW4gb3V0IG9wQVRPTTAgZWxzZSAob3V0 IG9wQVRPTTsgb3V0X2ludCB0KQogICAgICAgfCBfIC0+CiAgICAgICAgICAg b3V0IG9wR0VUR0xPQkFMOyBzbG90X2Zvcl9saXRlcmFsIHNjCkBAIC0zMzYs MTEgKzMzNiwxMSBAQCBsZXQgcmVjIGVtaXQgPSBmdW5jdGlvbgogICAgICAg ICAgIGVsc2UgKG91dCBvcFBVU0hDT05TVElOVDsgb3V0X2ludCBpKQogICAg ICAgfCBDb25zdF9iYXNlKENvbnN0X2NoYXIgYykgLT4KICAgICAgICAgICBv dXQgb3BQVVNIQ09OU1RJTlQ7IG91dF9pbnQoQ2hhci5jb2RlIGMpCi0gICAg ICB8IENvbnN0X3BvaW50ZXIgaSAtPgorICAgICAgfCBDb25zdF9wb2ludGVy IChpLCBfKSAtPgogICAgICAgICAgIGlmIGkgPj0gMCAmJiBpIDw9IDMKICAg ICAgICAgICB0aGVuIG91dCAob3BQVVNIQ09OU1QwICsgaSkKICAgICAgICAg ICBlbHNlIChvdXQgb3BQVVNIQ09OU1RJTlQ7IG91dF9pbnQgaSkKLSAgICAg IHwgQ29uc3RfYmxvY2sodCwgW10pIC0+CisgICAgICB8IENvbnN0X2Jsb2Nr KHQsIF8sIFtdKSAtPgogICAgICAgICAgIGlmIHQgPSAwIHRoZW4gb3V0IG9w UFVTSEFUT00wIGVsc2UgKG91dCBvcFBVU0hBVE9NOyBvdXRfaW50IHQpCiAg ICAgICB8IF8gLT4KICAgICAgICAgICBvdXQgb3BQVVNIR0VUR0xPQkFMOyBz bG90X2Zvcl9saXRlcmFsIHNjCmRpZmYgLS1naXQgYS9ieXRlY29tcC9sYW1i ZGEubWwgYi9ieXRlY29tcC9sYW1iZGEubWwKaW5kZXggNzc4MzM2OC4uMTcy NDliMyAxMDA2NDQKLS0tIGEvYnl0ZWNvbXAvbGFtYmRhLm1sCisrKyBiL2J5 dGVjb21wL2xhbWJkYS5tbApAQCAtMTU0LDEwICsxNTQsMjMgQEAgYW5kIHJh aXNlX2tpbmQgPQogICB8IFJhaXNlX3JlcmFpc2UKICAgfCBSYWlzZV9ub3Ry YWNlCiAKKwordHlwZSBwb2ludGVyX2luZm8gPSAKKyAgfCBOdWxsQ29uc3Ry dWN0b3Igb2Ygc3RyaW5nCisgIHwgTnVsbFZhcmlhbnQgb2Ygc3RyaW5nIAor ICB8IE5BCisKK3R5cGUgdGFnX2luZm8gPSAKKyAgfCBDb25zdHJ1Y3RvciBv ZiBzdHJpbmcKKyAgfCBUdXBsZQorICB8IFZhcmlhbnQgb2Ygc3RyaW5nIAor ICB8IFJlY29yZCAKKyAgfCBOQQorCiB0eXBlIHN0cnVjdHVyZWRfY29uc3Rh bnQgPQogICAgIENvbnN0X2Jhc2Ugb2YgY29uc3RhbnQKLSAgfCBDb25zdF9w b2ludGVyIG9mIGludAotICB8IENvbnN0X2Jsb2NrIG9mIGludCAqIHN0cnVj dHVyZWRfY29uc3RhbnQgbGlzdAorICB8IENvbnN0X3BvaW50ZXIgb2YgaW50 ICogcG9pbnRlcl9pbmZvCisgIHwgQ29uc3RfYmxvY2sgb2YgaW50ICogdGFn X2luZm8gKiBzdHJ1Y3R1cmVkX2NvbnN0YW50IGxpc3QKICAgfCBDb25zdF9m bG9hdF9hcnJheSBvZiBzdHJpbmcgbGlzdAogICB8IENvbnN0X2ltbXN0cmlu ZyBvZiBzdHJpbmcKIApAQCAtMjI2LDcgKzIzOSw3IEBAIGFuZCBsYW1iZGFf ZXZlbnRfa2luZCA9CiAgIHwgTGV2X2FmdGVyIG9mIFR5cGVzLnR5cGVfZXhw cgogICB8IExldl9mdW5jdGlvbgogCi1sZXQgY29uc3RfdW5pdCA9IENvbnN0 X3BvaW50ZXIgMAorbGV0IGNvbnN0X3VuaXQgPSBDb25zdF9wb2ludGVyICgw LCBOQSkKIAogbGV0IGxhbWJkYV91bml0ID0gTGNvbnN0IGNvbnN0X3VuaXQK IApAQCAtNTQ5LDcgKzU2Miw3IEBAIGxldCBsYW1fb2ZfbG9jIGtpbmQgbG9j ID0KICAgICAgIGxvY19zdGFydC5MZXhpbmcucG9zX2NudW0gKyBjbnVtIGlu CiAgIG1hdGNoIGtpbmQgd2l0aAogICB8IExvY19QT1MgLT4KLSAgICBMY29u c3QgKENvbnN0X2Jsb2NrICgwLCBbCisgICAgTGNvbnN0IChDb25zdF9ibG9j ayAoMCwgTkEsIFsKICAgICAgICAgICBDb25zdF9pbW1zdHJpbmcgZmlsZTsK ICAgICAgICAgICBDb25zdF9iYXNlIChDb25zdF9pbnQgbG51bSk7CiAgICAg ICAgICAgQ29uc3RfYmFzZSAoQ29uc3RfaW50IGNudW0pOwpkaWZmIC0tZ2l0 IGEvYnl0ZWNvbXAvbGFtYmRhLm1saSBiL2J5dGVjb21wL2xhbWJkYS5tbGkK aW5kZXggZWJhOTU5My4uNGNkODgwYSAxMDA2NDQKLS0tIGEvYnl0ZWNvbXAv bGFtYmRhLm1saQorKysgYi9ieXRlY29tcC9sYW1iZGEubWxpCkBAIC0xNTQs MTAgKzE1NCwyMiBAQCBhbmQgcmFpc2Vfa2luZCA9CiAgIHwgUmFpc2VfcmVy YWlzZQogICB8IFJhaXNlX25vdHJhY2UKIAordHlwZSBwb2ludGVyX2luZm8g PSAKKyAgfCBOdWxsQ29uc3RydWN0b3Igb2Ygc3RyaW5nCisgIHwgTnVsbFZh cmlhbnQgb2Ygc3RyaW5nIAorICB8IE5BCisKK3R5cGUgdGFnX2luZm8gPSAK KyAgfCBDb25zdHJ1Y3RvciBvZiBzdHJpbmcKKyAgfCBUdXBsZQorICB8IFZh cmlhbnQgb2Ygc3RyaW5nIAorICB8IFJlY29yZCAKKyAgfCBOQQorCiB0eXBl IHN0cnVjdHVyZWRfY29uc3RhbnQgPQogICAgIENvbnN0X2Jhc2Ugb2YgY29u c3RhbnQKLSAgfCBDb25zdF9wb2ludGVyIG9mIGludAotICB8IENvbnN0X2Js b2NrIG9mIGludCAqIHN0cnVjdHVyZWRfY29uc3RhbnQgbGlzdAorICB8IENv bnN0X3BvaW50ZXIgb2YgaW50ICogcG9pbnRlcl9pbmZvCisgIHwgQ29uc3Rf YmxvY2sgb2YgaW50ICogdGFnX2luZm8gKiBzdHJ1Y3R1cmVkX2NvbnN0YW50 IGxpc3QKICAgfCBDb25zdF9mbG9hdF9hcnJheSBvZiBzdHJpbmcgbGlzdAog ICB8IENvbnN0X2ltbXN0cmluZyBvZiBzdHJpbmcKIApkaWZmIC0tZ2l0IGEv Ynl0ZWNvbXAvbWF0Y2hpbmcubWwgYi9ieXRlY29tcC9tYXRjaGluZy5tbApp bmRleCAxYmRlZWY4Li5mYjVmYzY4IDEwMDY0NAotLS0gYS9ieXRlY29tcC9t YXRjaGluZy5tbAorKysgYi9ieXRlY29tcC9tYXRjaGluZy5tbApAQCAtMzAw MCw3ICszMDAwLDcgQEAgbGV0IHBhcnRpYWxfZnVuY3Rpb24gbG9jICgpID0K ICAgbGV0IChmbmFtZSwgbGluZSwgY2hhcikgPSBMb2NhdGlvbi5nZXRfcG9z X2luZm8gbG9jLkxvY2F0aW9uLmxvY19zdGFydCBpbgogICBMcHJpbShQcmFp c2UgUmFpc2VfcmVndWxhciwgW0xwcmltKFBtYWtlYmxvY2soMCwgSW1tdXRh YmxlKSwKICAgICAgICAgICBbdHJhbnNsX25vcm1hbF9wYXRoIFByZWRlZi5w YXRoX21hdGNoX2ZhaWx1cmU7Ci0gICAgICAgICAgIExjb25zdChDb25zdF9i bG9jaygwLAorICAgICAgICAgICBMY29uc3QoQ29uc3RfYmxvY2soMCwgTkEs CiAgICAgICAgICAgICAgIFtDb25zdF9iYXNlKENvbnN0X3N0cmluZyAoZm5h bWUsIE5vbmUpKTsKICAgICAgICAgICAgICAgIENvbnN0X2Jhc2UoQ29uc3Rf aW50IGxpbmUpOwogICAgICAgICAgICAgICAgQ29uc3RfYmFzZShDb25zdF9p bnQgY2hhcildKSldKV0pCmRpZmYgLS1naXQgYS9ieXRlY29tcC9wcmludGxh bWJkYS5tbCBiL2J5dGVjb21wL3ByaW50bGFtYmRhLm1sCmluZGV4IDU5MTgy MmYzLi4zOTIyOTNkIDEwMDY0NAotLS0gYS9ieXRlY29tcC9wcmludGxhbWJk YS5tbAorKysgYi9ieXRlY29tcC9wcmludGxhbWJkYS5tbApAQCAtMjYsMTAg KzI2LDEwIEBAIGxldCByZWMgc3RydWN0X2NvbnN0IHBwZiA9IGZ1bmN0aW9u CiAgIHwgQ29uc3RfYmFzZShDb25zdF9pbnQzMiBuKSAtPiBmcHJpbnRmIHBw ZiAiJWxpbCIgbgogICB8IENvbnN0X2Jhc2UoQ29uc3RfaW50NjQgbikgLT4g ZnByaW50ZiBwcGYgIiVMaUwiIG4KICAgfCBDb25zdF9iYXNlKENvbnN0X25h dGl2ZWludCBuKSAtPiBmcHJpbnRmIHBwZiAiJW5pbiIgbgotICB8IENvbnN0 X3BvaW50ZXIgbiAtPiBmcHJpbnRmIHBwZiAiJWlhIiBuCi0gIHwgQ29uc3Rf YmxvY2sodGFnLCBbXSkgLT4KKyAgfCBDb25zdF9wb2ludGVyIChuLCBfKSAt PiBmcHJpbnRmIHBwZiAiJWlhIiBuCisgIHwgQ29uc3RfYmxvY2sodGFnLCBf LCBbXSkgLT4KICAgICAgIGZwcmludGYgcHBmICJbJWldIiB0YWcKLSAgfCBD b25zdF9ibG9jayh0YWcsIHNjMTo6c2NsKSAtPgorICB8IENvbnN0X2Jsb2Nr KHRhZywgXywgc2MxOjpzY2wpIC0+CiAgICAgICBsZXQgc2NvbnN0cyBwcGYg c2NsID0KICAgICAgICAgTGlzdC5pdGVyIChmdW4gc2MgLT4gZnByaW50ZiBw cGYgIkAgJWEiIHN0cnVjdF9jb25zdCBzYykgc2NsIGluCiAgICAgICBmcHJp bnRmIHBwZiAiQFs8MT5bJWk6QCBAWyVhJWFAXV1AXSIgdGFnIHN0cnVjdF9j b25zdCBzYzEgc2NvbnN0cyBzY2wKZGlmZiAtLWdpdCBhL2J5dGVjb21wL3N5 bXRhYmxlLm1sIGIvYnl0ZWNvbXAvc3ltdGFibGUubWwKaW5kZXggYTBjZTI3 My4uNTdhNTY3ZSAxMDA2NDQKLS0tIGEvYnl0ZWNvbXAvc3ltdGFibGUubWwK KysrIGIvYnl0ZWNvbXAvc3ltdGFibGUubWwKQEAgLTE0Miw3ICsxNDIsNyBA QCBsZXQgaW5pdCAoKSA9CiAgICAgICAgIHRyeSBMaXN0LmFzc29jIG5hbWUg UHJlZGVmLmJ1aWx0aW5fdmFsdWVzCiAgICAgICAgIHdpdGggTm90X2ZvdW5k IC0+IGZhdGFsX2Vycm9yICJTeW10YWJsZS5pbml0IiBpbgogICAgICAgbGV0 IGMgPSBzbG90X2Zvcl9zZXRnbG9iYWwgaWQgaW4KLSAgICAgIGxldCBjc3Qg PSBDb25zdF9ibG9jayhPYmoub2JqZWN0X3RhZywKKyAgICAgIGxldCBjc3Qg PSBDb25zdF9ibG9jayhPYmoub2JqZWN0X3RhZywgTkEsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgW0NvbnN0X2Jhc2UoQ29uc3Rfc3RyaW5nIChu YW1lLCBOb25lKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENv bnN0X2Jhc2UoQ29uc3RfaW50ICgtaS0xKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBdKQpAQCAtMjEzLDkgKzIxMyw5IEBAIGxldCByZWMgdHJh bnNsX2NvbnN0ID0gZnVuY3Rpb24KICAgfCBDb25zdF9iYXNlKENvbnN0X2lu dDMyIGkpIC0+IE9iai5yZXByIGkKICAgfCBDb25zdF9iYXNlKENvbnN0X2lu dDY0IGkpIC0+IE9iai5yZXByIGkKICAgfCBDb25zdF9iYXNlKENvbnN0X25h dGl2ZWludCBpKSAtPiBPYmoucmVwciBpCi0gIHwgQ29uc3RfcG9pbnRlciBp IC0+IE9iai5yZXByIGkKKyAgfCBDb25zdF9wb2ludGVyIChpLCBfKSAtPiBP YmoucmVwciBpCiAgIHwgQ29uc3RfaW1tc3RyaW5nIHMgLT4gT2JqLnJlcHIg cwotICB8IENvbnN0X2Jsb2NrKHRhZywgZmllbGRzKSAtPgorICB8IENvbnN0 X2Jsb2NrKHRhZywgXywgZmllbGRzKSAtPgogICAgICAgbGV0IGJsb2NrID0g T2JqLm5ld19ibG9jayB0YWcgKExpc3QubGVuZ3RoIGZpZWxkcykgaW4KICAg ICAgIGxldCBwb3MgPSByZWYgMCBpbgogICAgICAgTGlzdC5pdGVyCmRpZmYg LS1naXQgYS9ieXRlY29tcC90cmFuc2xjbGFzcy5tbCBiL2J5dGVjb21wL3Ry YW5zbGNsYXNzLm1sCmluZGV4IGYxNzJlOWEuLjZlZTY1NzkgMTAwNjQ0Ci0t LSBhL2J5dGVjb21wL3RyYW5zbGNsYXNzLm1sCisrKyBiL2J5dGVjb21wL3Ry YW5zbGNsYXNzLm1sCkBAIC00OCw5ICs0OCw5IEBAIGxldCBsZmllbGQgdiBp ID0gTHByaW0oUGZpZWxkIGksIFtMdmFyIHZdKQogbGV0IHRyYW5zbF9sYWJl bCBsID0gc2hhcmUgKENvbnN0X2ltbXN0cmluZyBsKQogCiBsZXQgdHJhbnNs X21ldGhfbGlzdCBsc3QgPQotICBpZiBsc3QgPSBbXSB0aGVuIExjb25zdCAo Q29uc3RfcG9pbnRlciAwKSBlbHNlCisgIGlmIGxzdCA9IFtdIHRoZW4gTGNv bnN0IChDb25zdF9wb2ludGVyICgwLCBOQSkpIGVsc2UKICAgc2hhcmUgKENv bnN0X2Jsb2NrCi0gICAgICAgICAgICAoMCwgTGlzdC5tYXAgKGZ1biBsYWIg LT4gQ29uc3RfaW1tc3RyaW5nIGxhYikgbHN0KSkKKyAgICAgICAgICAgICgw LCBOQSwgTGlzdC5tYXAgKGZ1biBsYWIgLT4gQ29uc3RfaW1tc3RyaW5nIGxh YikgbHN0KSkKIAogbGV0IHNldF9pbnN0X3ZhciBvYmogaWQgZXhwciA9CiAg IGxldCBraW5kID0gaWYgVHlwZW9wdC5tYXliZV9wb2ludGVyIGV4cHIgdGhl biBQYWRkcmFycmF5IGVsc2UgUGludGFycmF5IGluCkBAIC0zNTgsNyArMzU4 LDcgQEAgbGV0IHJlYyBidWlsZF9jbGFzc19pbml0IGNsYSBjc3RyIHN1cGVy IGluaF9pbml0IGNsX2luaXQgbXN1YnN0IHRvcCBjbCA9CiAgICAgICAgICAg KGluaF9pbml0LAogICAgICAgICAgICBMbGV0IChTdHJpY3QsIGluaCwKICAg ICAgICAgICAgICAgICAgbWthcHBsKG9vX3ByaW0gImluaGVyaXRzIiwgbmFy cm93X2FyZ3MgQAotICAgICAgICAgICAgICAgICAgICAgICAgW2xwYXRoOyBM Y29uc3QoQ29uc3RfcG9pbnRlcihpZiB0b3AgdGhlbiAxIGVsc2UgMCkpXSks CisgICAgICAgICAgICAgICAgICAgICAgICBbbHBhdGg7IExjb25zdChDb25z dF9wb2ludGVyKChpZiB0b3AgdGhlbiAxIGVsc2UgMCksIE5BKSldKSwKICAg ICAgICAgICAgICAgICAgTGxldChTdHJpY3RPcHQsIG9ial9pbml0LCBsZmll bGQgaW5oIDAsIGNsX2luaXQpKSkKICAgICAgIHwgXyAtPgogICAgICAgICAg IGxldCBjb3JlIGNsX2luaXQgPQpAQCAtNTAzLDcgKzUwMyw3IEBAIGxldCBy ZWMgYnVpbHRpbl9tZXRocyBzZWxmIGVudiBlbnYyIGJvZHkgPQogICAgIHwg THByaW0oUGFycmF5cmVmdSBfLCBbTHZhciBzOyBMdmFyIG5dKSB3aGVuIExp c3QubWVtIHMgc2VsZiAtPgogICAgICAgICAidmFyIiwgW0x2YXIgbl0KICAg ICB8IExwcmltKFBmaWVsZCBuLCBbTHZhciBlXSkgd2hlbiBJZGVudC5zYW1l IGUgZW52IC0+Ci0gICAgICAgICJlbnYiLCBbTHZhciBlbnYyOyBMY29uc3Qo Q29uc3RfcG9pbnRlciBuKV0KKyAgICAgICAgImVudiIsIFtMdmFyIGVudjI7 IExjb25zdChDb25zdF9wb2ludGVyIChuLCBOQSkpXQogICAgIHwgTHNlbmQo U2VsZiwgbWV0LCBMdmFyIHMsIFtdLCBfKSB3aGVuIExpc3QubWVtIHMgc2Vs ZiAtPgogICAgICAgICAibWV0aCIsIFttZXRdCiAgICAgfCBfIC0+IHJhaXNl IE5vdF9mb3VuZApAQCAtNTc0LDcgKzU3NCw3IEBAIG1vZHVsZSBNID0gc3Ry dWN0CiAgICAgfCAic2VuZF9lbnYiICAgLT4gU2VuZEVudgogICAgIHwgInNl bmRfbWV0aCIgIC0+IFNlbmRNZXRoCiAgICAgfCBfIC0+IGFzc2VydCBmYWxz ZQotICAgIGluIExjb25zdChDb25zdF9wb2ludGVyKE9iai5tYWdpYyB0YWcp KSA6OiBhcmdzCisgICAgaW4gTGNvbnN0KENvbnN0X3BvaW50ZXIoT2JqLm1h Z2ljIHRhZywgTkEpKSA6OiBhcmdzCiBlbmQKIG9wZW4gTQogCmRpZmYgLS1n aXQgYS9ieXRlY29tcC90cmFuc2xjb3JlLm1sIGIvYnl0ZWNvbXAvdHJhbnNs Y29yZS5tbAppbmRleCBlN2Y1YTNhLi5mMTQ1MDUwIDEwMDY0NAotLS0gYS9i eXRlY29tcC90cmFuc2xjb3JlLm1sCisrKyBiL2J5dGVjb21wL3RyYW5zbGNv cmUubWwKQEAgLTY0OCw3ICs2NDgsNyBAQCBsZXQgYXNzZXJ0X2ZhaWxlZCBl eHAgPQogICBMcHJpbShQcmFpc2UgUmFpc2VfcmVndWxhciwgW2V2ZW50X2Fm dGVyIGV4cAogICAgIChMcHJpbShQbWFrZWJsb2NrKDAsIEltbXV0YWJsZSks CiAgICAgICAgICAgW3RyYW5zbF9ub3JtYWxfcGF0aCBQcmVkZWYucGF0aF9h c3NlcnRfZmFpbHVyZTsKLSAgICAgICAgICAgTGNvbnN0KENvbnN0X2Jsb2Nr KDAsCisgICAgICAgICAgIExjb25zdChDb25zdF9ibG9jaygwLCBOQSwKICAg ICAgICAgICAgICAgW0NvbnN0X2Jhc2UoQ29uc3Rfc3RyaW5nIChmbmFtZSwg Tm9uZSkpOwogICAgICAgICAgICAgICAgQ29uc3RfYmFzZShDb25zdF9pbnQg bGluZSk7CiAgICAgICAgICAgICAgICBDb25zdF9iYXNlKENvbnN0X2ludCBj aGFyKV0pKV0pKV0pCkBAIC03NzksNyArNzc5LDcgQEAgYW5kIHRyYW5zbF9l eHAwIGUgPQogICB8IFRleHBfdHVwbGUgZWwgLT4KICAgICAgIGxldCBsbCA9 IHRyYW5zbF9saXN0IGVsIGluCiAgICAgICBiZWdpbiB0cnkKLSAgICAgICAg TGNvbnN0KENvbnN0X2Jsb2NrKDAsIExpc3QubWFwIGV4dHJhY3RfY29uc3Rh bnQgbGwpKQorICAgICAgICBMY29uc3QoQ29uc3RfYmxvY2soMCwgTkEsIExp c3QubWFwIGV4dHJhY3RfY29uc3RhbnQgbGwpKQogICAgICAgd2l0aCBOb3Rf Y29uc3RhbnQgLT4KICAgICAgICAgTHByaW0oUG1ha2VibG9jaygwLCBJbW11 dGFibGUpLCBsbCkKICAgICAgIGVuZApAQCAtNzkwLDEwICs3OTAsMTAgQEAg YW5kIHRyYW5zbF9leHAwIGUgPQogICAgICAgICB8IF8gLT4gYXNzZXJ0IGZh bHNlCiAgICAgICBlbmQgZWxzZSBiZWdpbiBtYXRjaCBjc3RyLmNzdHJfdGFn IHdpdGgKICAgICAgICAgQ3N0cl9jb25zdGFudCBuIC0+Ci0gICAgICAgICAg TGNvbnN0KENvbnN0X3BvaW50ZXIgbikKKyAgICAgICAgICBMY29uc3QoQ29u c3RfcG9pbnRlciAobiwgTkEpKQogICAgICAgfCBDc3RyX2Jsb2NrIG4gLT4K ICAgICAgICAgICBiZWdpbiB0cnkKLSAgICAgICAgICAgIExjb25zdChDb25z dF9ibG9jayhuLCBMaXN0Lm1hcCBleHRyYWN0X2NvbnN0YW50IGxsKSkKKyAg ICAgICAgICAgIExjb25zdChDb25zdF9ibG9jayhuLCBOQSwgTGlzdC5tYXAg ZXh0cmFjdF9jb25zdGFudCBsbCkpCiAgICAgICAgICAgd2l0aCBOb3RfY29u c3RhbnQgLT4KICAgICAgICAgICAgIExwcmltKFBtYWtlYmxvY2sobiwgSW1t dXRhYmxlKSwgbGwpCiAgICAgICAgICAgZW5kCkBAIC04MDcsMTEgKzgwNywx MSBAQCBhbmQgdHJhbnNsX2V4cDAgZSA9CiAgIHwgVGV4cF92YXJpYW50KGws IGFyZykgLT4KICAgICAgIGxldCB0YWcgPSBCdHlwZS5oYXNoX3ZhcmlhbnQg bCBpbgogICAgICAgYmVnaW4gbWF0Y2ggYXJnIHdpdGgKLSAgICAgICAgTm9u ZSAtPiBMY29uc3QoQ29uc3RfcG9pbnRlciB0YWcpCisgICAgICAgIE5vbmUg LT4gTGNvbnN0KENvbnN0X3BvaW50ZXIgKHRhZywgTkEpKQogICAgICAgfCBT b21lIGFyZyAtPgogICAgICAgICAgIGxldCBsYW0gPSB0cmFuc2xfZXhwIGFy ZyBpbgogICAgICAgICAgIHRyeQotICAgICAgICAgICAgTGNvbnN0KENvbnN0 X2Jsb2NrKDAsIFtDb25zdF9iYXNlKENvbnN0X2ludCB0YWcpOworICAgICAg ICAgICAgTGNvbnN0KENvbnN0X2Jsb2NrKDAsIE5BLCBbQ29uc3RfYmFzZShD b25zdF9pbnQgdGFnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZXh0cmFjdF9jb25zdGFudCBsYW1dKSkKICAgICAgICAgICB3aXRo IE5vdF9jb25zdGFudCAtPgogICAgICAgICAgICAgTHByaW0oUG1ha2VibG9j aygwLCBJbW11dGFibGUpLApAQCAtODQ5LDcgKzg0OSw3IEBAIGFuZCB0cmFu c2xfZXhwMCBlID0KICAgICAgICAgbGV0IG1hc3RlciA9CiAgICAgICAgICAg bWF0Y2gga2luZCB3aXRoCiAgICAgICAgICAgfCBQYWRkcmFycmF5IHwgUGlu dGFycmF5IC0+Ci0gICAgICAgICAgICAgIExjb25zdChDb25zdF9ibG9jaygw LCBjbCkpCisgICAgICAgICAgICAgIExjb25zdChDb25zdF9ibG9jaygwLCBO QSwgY2wpKQogICAgICAgICAgIHwgUGZsb2F0YXJyYXkgLT4KICAgICAgICAg ICAgICAgTGNvbnN0KENvbnN0X2Zsb2F0X2FycmF5KExpc3QubWFwIGV4dHJh Y3RfZmxvYXQgY2wpKQogICAgICAgICAgIHwgUGdlbmFycmF5IC0+CkBAIC0x MTU0LDggKzExNTQsOCBAQCBhbmQgdHJhbnNsX3JlY29yZCBlbnYgYWxsX2xh YmVscyByZXByZXMgbGJsX2V4cHJfbGlzdCBvcHRfaW5pdF9leHByID0KICAg ICAgICAgaWYgbXV0ID0gTXV0YWJsZSB0aGVuIHJhaXNlIE5vdF9jb25zdGFu dDsKICAgICAgICAgbGV0IGNsID0gTGlzdC5tYXAgZXh0cmFjdF9jb25zdGFu dCBsbCBpbgogICAgICAgICBtYXRjaCByZXByZXMgd2l0aAotICAgICAgICB8 IFJlY29yZF9yZWd1bGFyIC0+IExjb25zdChDb25zdF9ibG9jaygwLCBjbCkp Ci0gICAgICAgIHwgUmVjb3JkX2lubGluZWQgdGFnIC0+IExjb25zdChDb25z dF9ibG9jayh0YWcsIGNsKSkKKyAgICAgICAgfCBSZWNvcmRfcmVndWxhciAt PiBMY29uc3QoQ29uc3RfYmxvY2soMCwgTkEsIGNsKSkKKyAgICAgICAgfCBS ZWNvcmRfaW5saW5lZCB0YWcgLT4gTGNvbnN0KENvbnN0X2Jsb2NrKHRhZywg TkEsIGNsKSkKICAgICAgICAgfCBSZWNvcmRfZmxvYXQgLT4KICAgICAgICAg ICAgIExjb25zdChDb25zdF9mbG9hdF9hcnJheShMaXN0Lm1hcCBleHRyYWN0 X2Zsb2F0IGNsKSkKICAgICAgICAgfCBSZWNvcmRfZXh0ZW5zaW9uIC0+CmRp ZmYgLS1naXQgYS9ieXRlY29tcC90cmFuc2xtb2QubWwgYi9ieXRlY29tcC90 cmFuc2xtb2QubWwKaW5kZXggNGZmNzBiNy4uODk2ZWFhZSAxMDA2NDQKLS0t IGEvYnl0ZWNvbXAvdHJhbnNsbW9kLm1sCisrKyBiL2J5dGVjb21wL3RyYW5z bG1vZC5tbApAQCAtMTg5LDcgKzE4OSw3IEBAIGxldCBtb2RfcHJpbSBuYW1l ID0KIAogbGV0IHVuZGVmaW5lZF9sb2NhdGlvbiBsb2MgPQogICBsZXQgKGZu YW1lLCBsaW5lLCBjaGFyKSA9IExvY2F0aW9uLmdldF9wb3NfaW5mbyBsb2Mu TG9jYXRpb24ubG9jX3N0YXJ0IGluCi0gIExjb25zdChDb25zdF9ibG9jaygw LAorICBMY29uc3QoQ29uc3RfYmxvY2soMCwgTkEsCiAgICAgICAgICAgICAg ICAgICAgICBbQ29uc3RfYmFzZShDb25zdF9zdHJpbmcgKGZuYW1lLCBOb25l KSk7CiAgICAgICAgICAgICAgICAgICAgICAgQ29uc3RfYmFzZShDb25zdF9p bnQgbGluZSk7CiAgICAgICAgICAgICAgICAgICAgICAgQ29uc3RfYmFzZShD b25zdF9pbnQgY2hhcildKSkKQEAgLTIwMCw5ICsyMDAsOSBAQCBsZXQgaW5p dF9zaGFwZSBtb2RsID0KICAgICAgIE10eV9pZGVudCBfIC0+CiAgICAgICAg IHJhaXNlIE5vdF9mb3VuZAogICAgIHwgTXR5X2FsaWFzIF8gLT4KLSAgICAg ICAgQ29uc3RfYmxvY2sgKDEsIFtDb25zdF9wb2ludGVyIDBdKQorICAgICAg ICBDb25zdF9ibG9jayAoMSwgTkEsIFtDb25zdF9wb2ludGVyICgwLCBOQSld KQogICAgIHwgTXR5X3NpZ25hdHVyZSBzZyAtPgotICAgICAgICBDb25zdF9i bG9jaygwLCBbQ29uc3RfYmxvY2soMCwgaW5pdF9zaGFwZV9zdHJ1Y3QgZW52 IHNnKV0pCisgICAgICAgIENvbnN0X2Jsb2NrKDAsIE5BLCBbQ29uc3RfYmxv Y2soMCwgTkEsIGluaXRfc2hhcGVfc3RydWN0IGVudiBzZyldKQogICAgIHwg TXR5X2Z1bmN0b3IoaWQsIGFyZywgcmVzKSAtPgogICAgICAgICByYWlzZSBO b3RfZm91bmQgKCogY2FuIHdlIGRvIGJldHRlcj8gKikKICAgYW5kIGluaXRf c2hhcGVfc3RydWN0IGVudiBzZyA9CkBAIC0yMTIsOSArMjEyLDkgQEAgbGV0 IGluaXRfc2hhcGUgbW9kbCA9CiAgICAgICAgIGxldCBpbml0X3YgPQogICAg ICAgICAgIG1hdGNoIEN0eXBlLmV4cGFuZF9oZWFkIGVudiB2ZGVzYy52YWxf dHlwZSB3aXRoCiAgICAgICAgICAgICB7ZGVzYyA9IFRhcnJvdyhfLF8sXyxf KX0gLT4KLSAgICAgICAgICAgICAgQ29uc3RfcG9pbnRlciAwICgqIGNhbWxp bnRlcm5hbE1vZC5GdW5jdGlvbiAqKQorICAgICAgICAgICAgICBDb25zdF9w b2ludGVyICgwLCBOQSkgKCogY2FtbGludGVybmFsTW9kLkZ1bmN0aW9uICop CiAgICAgICAgICAgfCB7ZGVzYyA9IFRjb25zdHIocCwgXywgXyl9IHdoZW4g UGF0aC5zYW1lIHAgUHJlZGVmLnBhdGhfbGF6eV90IC0+Ci0gICAgICAgICAg ICAgIENvbnN0X3BvaW50ZXIgMSAoKiBjYW1saW50ZXJuYWxNb2QuTGF6eSAq KQorICAgICAgICAgICAgICBDb25zdF9wb2ludGVyICgxLCBOQSkgKCogY2Ft bGludGVybmFsTW9kLkxhenkgKikKICAgICAgICAgICB8IF8gLT4gcmFpc2Ug Tm90X2ZvdW5kIGluCiAgICAgICAgIGluaXRfdiA6OiBpbml0X3NoYXBlX3N0 cnVjdCBlbnYgcmVtCiAgICAgfCBTaWdfdHlwZShpZCwgdGRlY2wsIF8pIDo6 IHJlbSAtPgpAQCAtMjI3LDcgKzIyNyw3IEBAIGxldCBpbml0X3NoYXBlIG1v ZGwgPQogICAgIHwgU2lnX21vZHR5cGUoaWQsIG1pbmZvKSA6OiByZW0gLT4K ICAgICAgICAgaW5pdF9zaGFwZV9zdHJ1Y3QgKEVudi5hZGRfbW9kdHlwZSBp ZCBtaW5mbyBlbnYpIHJlbQogICAgIHwgU2lnX2NsYXNzKGlkLCBjZGVjbCwg XykgOjogcmVtIC0+Ci0gICAgICAgIENvbnN0X3BvaW50ZXIgMiAoKiBjYW1s aW50ZXJuYWxNb2QuQ2xhc3MgKikKKyAgICAgICAgQ29uc3RfcG9pbnRlciAo MiwgTkEpICgqIGNhbWxpbnRlcm5hbE1vZC5DbGFzcyAqKQogICAgICAgICA6 OiBpbml0X3NoYXBlX3N0cnVjdCBlbnYgcmVtCiAgICAgfCBTaWdfY2xhc3Nf dHlwZShpZCwgY3R5cCwgXykgOjogcmVtIC0+CiAgICAgICAgIGluaXRfc2hh cGVfc3RydWN0IGVudiByZW0KZGlmZiAtLWdpdCBhL2J5dGVjb21wL3RyYW5z bG9iai5tbCBiL2J5dGVjb21wL3RyYW5zbG9iai5tbAppbmRleCAwMjczMWVj Li4zN2EwNTE2IDEwMDY0NAotLS0gYS9ieXRlY29tcC90cmFuc2xvYmoubWwK KysrIGIvYnl0ZWNvbXAvdHJhbnNsb2JqLm1sCkBAIC0zMSw3ICszMSw3IEBA IGxldCBjb25zdHMgOiAoc3RydWN0dXJlZF9jb25zdGFudCwgSWRlbnQudCkg SGFzaHRibC50ID0gSGFzaHRibC5jcmVhdGUgMTcKIAogbGV0IHNoYXJlIGMg PQogICBtYXRjaCBjIHdpdGgKLSAgICBDb25zdF9ibG9jayAobiwgbCkgd2hl biBsIDw+IFtdIC0+CisgICAgQ29uc3RfYmxvY2sgKG4sIF8sIGwpIHdoZW4g bCA8PiBbXSAtPgogICAgICAgYmVnaW4gdHJ5CiAgICAgICAgIEx2YXIgKEhh c2h0YmwuZmluZCBjb25zdHMgYykKICAgICAgIHdpdGggTm90X2ZvdW5kIC0+ CmRpZmYgLS1naXQgYS90b29scy9kdW1wb2JqLm1sIGIvdG9vbHMvZHVtcG9i ai5tbAppbmRleCA3ZmQzZTQzLi42ODU1OWIwIDEwMDY0NAotLS0gYS90b29s cy9kdW1wb2JqLm1sCisrKyBiL3Rvb2xzL2R1bXBvYmoubWwKQEAgLTg4LDgg Kzg4LDggQEAgbGV0IHJlYyBwcmludF9zdHJ1Y3RfY29uc3QgPSBmdW5jdGlv bgogICB8IENvbnN0X2Jhc2UoQ29uc3RfaW50MzIgaSkgLT4gcHJpbnRmICIl bGRsIiBpCiAgIHwgQ29uc3RfYmFzZShDb25zdF9uYXRpdmVpbnQgaSkgLT4g cHJpbnRmICIlbmRuIiBpCiAgIHwgQ29uc3RfYmFzZShDb25zdF9pbnQ2NCBp KSAtPiBwcmludGYgIiVMZEwiIGkKLSAgfCBDb25zdF9wb2ludGVyIG4gLT4g cHJpbnRmICIlZGEiIG4KLSAgfCBDb25zdF9ibG9jayh0YWcsIGFyZ3MpIC0+ CisgIHwgQ29uc3RfcG9pbnRlciAobiwgXykgLT4gcHJpbnRmICIlZGEiIG4K KyAgfCBDb25zdF9ibG9jayh0YWcsIF8sIGFyZ3MpIC0+CiAgICAgICBwcmlu dGYgIjwlZD4iIHRhZzsKICAgICAgIGJlZ2luIG1hdGNoIGFyZ3Mgd2l0aAog ICAgICAgICBbXSAtPiAoKQotLSAKMi4xLjAKCg== --001a113f9a62ff3e60051ccd5c22--