From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qt1-x833.google.com (mail-qt1-x833.google.com [IPv6:2607:f8b0:4864:20::833]) by sourceware.org (Postfix) with ESMTPS id AFCC13858C53 for ; Tue, 1 Nov 2022 21:46:47 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org AFCC13858C53 Authentication-Results: sourceware.org; dmarc=fail (p=none dis=none) header.from=acm.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-qt1-x833.google.com with SMTP id cr19so10242833qtb.0 for ; Tue, 01 Nov 2022 14:46:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:from:to:content-language:user-agent:mime-version:date :message-id:sender:from:to:cc:subject:date:message-id:reply-to; bh=bAcQWlBmSoyRwOhu+GpTr/qGXMHbXfsUv8SnT6gtgwY=; b=YpIYMjufob0rw4qyPuxP1fQDyvhyboLfOPiN7mSJ7Y6wd+m8S+nApxuVBiHkiCcA0O nXbCUqY8C5nU0bNv3fDhSlLDJK/lV5RgyxJNvV4438nwE5iHFyuwThx/DA4fZSBeF6L+ ulbCQiUlbfTqchtIB79b0nnXiF9a+a72IblnxABEvnq0+nWE3SJgzbkTsPM3fLP1rcsN WinxL4zRyPAFVQt8NDSVogoogSklJTJTbxl3DhwdFku4gcn6hJ83uQQy2KDiiLxpBTLT xfmioDse6895CznrLf6uN/vnXC5r4yPO7yLLUtMm80mRxgS08zN/p9rc5dcWGBoW9F5U 7I5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=subject:from:to:content-language:user-agent:mime-version:date :message-id:sender:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=bAcQWlBmSoyRwOhu+GpTr/qGXMHbXfsUv8SnT6gtgwY=; b=a5k3v8ov4lBjlp5qG94gb4xT3kVzyGOQGJgoJuv1nE3ioQm0MECrTiln6B1H+pVeib t/GaDzuxAaV5MiwgcciRbNnlQU6mQ91UjZ9JoE40fYApkCub8PZ14GEeUHh3KOnCb1WE l2tiIrRmPtPbalVj5NsRQdv9E0MgvdI6pTTQPYmVxsHtBTTxzA/mRwuuOVlzpcDSWeVe T/bxK6uyl12JWDsUwJlkv3agnpCDwy40AbtyFQZpBqVUxg287xnD/7NjcHvntXMkh6aX yUDhr/Y+cuLB70yASmFYaRRvVsivGzvsTWOf9w/01++c970OoYxfPvrKr7bgi+1UQ/in MiOA== X-Gm-Message-State: ACrzQf2350submVN5/tBbXQS6FwpL41cw23cM9ayMeNueKtlgyApBPw8 hzKVKCaW5KmAW2guG0F0pm6G0YJFxh9Hzw== X-Google-Smtp-Source: AMsMyM5R16fCvXLmgvudUuH2jrsfrF6V7OZRNlmDtCACOJxaE3ORdIQxnxWJE8P54W0+fYyLcvzPTQ== X-Received: by 2002:ac8:7fc3:0:b0:39c:e908:5083 with SMTP id b3-20020ac87fc3000000b0039ce9085083mr16601950qtk.667.1667339206807; Tue, 01 Nov 2022 14:46:46 -0700 (PDT) Received: from ?IPV6:2601:19c:527f:bfd0::5? ([2601:19c:527f:bfd0::5]) by smtp.googlemail.com with ESMTPSA id h10-20020ac846ca000000b0039853b7b771sm5655517qto.80.2022.11.01.14.46.46 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 01 Nov 2022 14:46:46 -0700 (PDT) Sender: Nathan Sidwell Content-Type: multipart/mixed; boundary="------------r550viVo5K0TdQGnBOz3sVJJ" Message-ID: Date: Tue, 1 Nov 2022 17:46:45 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.0 Content-Language: en-US To: GCC Patches From: Nathan Sidwell Subject: c++: per-scope, per-signature lambda discriminators X-Spam-Status: No, score=-3038.7 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. --------------r550viVo5K0TdQGnBOz3sVJJ Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit This implements ABI-compliant lambda discriminators. Not only do we have per-scope counters, but we also distinguish by lambda signature. Only lambdas with the same signature will need non-zero discriminators. As the discriminator is signature-dependent, we have to process the lambda function's declaration before we can determine it. For templated and generic lambdas the signature is that of the uninstantiated lambda -- not separate for each instantiation. With this change, gcc and clang now produce the same lambda manglings for all these testcases. nathan -- Nathan Sidwell --------------r550viVo5K0TdQGnBOz3sVJJ Content-Type: text/x-patch; charset=UTF-8; name="0001-c-per-scope-per-signature-lambda-discriminators.patch" Content-Disposition: attachment; filename*0="0001-c-per-scope-per-signature-lambda-discriminators.patch" Content-Transfer-Encoding: base64 RnJvbSAyYjBlODFkNWNjMmY3ZTFkNzczZjZjNTAyYmQ2NWIwOTdmMzkyNjc1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOYXRoYW4gU2lkd2VsbCA8bmF0aGFuQGFjbS5vcmc+ CkRhdGU6IE1vbiwgMzEgT2N0IDIwMjIgMDY6MTE6MjggLTA0MDAKU3ViamVjdDogW1BBVENI XSBjKys6IHBlci1zY29wZSwgcGVyLXNpZ25hdHVyZSBsYW1iZGEgZGlzY3JpbWluYXRvcnMK ClRoaXMgaW1wbGVtZW50cyBBQkktY29tcGxpYW50IGxhbWJkYSBkaXNjcmltaW5hdG9ycy4g IE5vdCBvbmx5IGRvIHdlCmhhdmUgcGVyLXNjb3BlIGNvdW50ZXJzLCBidXQgd2UgYWxzbyBk aXN0aW5ndWlzaCBieSBsYW1iZGEgc2lnbmF0dXJlLgpPbmx5IGxhbWJkYXMgd2l0aCB0aGUg c2FtZSBzaWduYXR1cmUgd2lsbCBuZWVkIG5vbi16ZXJvCmRpc2NyaW1pbmF0b3JzLiAgQXMg dGhlIGRpc2NyaW1pbmF0b3IgaXMgc2lnbmF0dXJlLWRlcGVuZGVudCwgd2UgaGF2ZQp0byBw cm9jZXNzIHRoZSBsYW1iZGEgZnVuY3Rpb24ncyBkZWNsYXJhdGlvbiBiZWZvcmUgd2UgY2Fu IGRldGVybWluZQppdC4gIEZvciB0ZW1wbGF0ZWQgYW5kIGdlbmVyaWMgbGFtYmRhcyB0aGUg c2lnbmF0dXJlIGlzIHRoYXQgb2YgdGhlCnVuaW5zdGFudGlhdGVkIGxhbWJkYSAtLSBub3Qg c2VwYXJhdGUgZm9yIGVhY2ggaW5zdGFudGlhdGlvbi4KCldpdGggdGhpcyBjaGFuZ2UsIGdj YyBhbmQgY2xhbmcgbm93IHByb2R1Y2UgdGhlIHNhbWUgbGFtYmRhIG1hbmdsaW5ncwpmb3Ig YWxsIHRoZXNlIHRlc3RjYXNlcy4KCglnY2MvY3AvCgkqIGNwLXRyZWUuaCAoTEFNQkRBX0VY UFJfU0NPUEVfU0lHX0RJU0NSSU1JTkFUT1IpOiBOZXcuCgkoc3RydWN0IHRyZWVfbGFtYmRh X2V4cHIpOiBBZGQgZGlzY3JpbWluYXRvcl9zaWcgYml0ZmllbGQuCgkocmVjcmRfbGFtYmRh X3Njb3BlX3NpZ19kaXNjcmltaW5hdG9yKTogRGVjbGFyZS4KCSogbGFtYmRhLmNjIChzdHJ1 Y3QgbGFtYmRhX3NpZ19jb3VudCk6IE5ldy4KCShsYW1iZGFfZGlzY3JpbWluYXRvcik6IEFk ZCBzaWduYXR1cmUgdmVjdG9yLgoJKHN0YXJ0X2xhbWJkYV9zY29wZSk6IEFkanVzdC4KCShj b21wYXJlX2xhbWJkYV90ZW1wbGF0ZV9oZWFkLCBjb21wYXJlX2xhbWJkYV9zaWcpOiBOZXcu CgkocmVjb3JkX2xhbWJkYV9zY29wZV9zaWdfZGlzY3JpbWluYXRvcik6IE5ldy4KCSogbWFu Z2xlLmNjICh3cml0ZV9jbG9zdXJlX3R5cGUpOiBVc2UgdGhlIHNjb3BlLXNpZyBkaXNjcmlt aW5hdG9yIGZvcgoJQUJJID49IDE4LiAgRW1pdCBhYmkgbWFuZ2xpbmcgd2FybmluZyBpZiBu ZWVkZWQuCgkqIG1vZHVsZS5jYyAodHJlZXNfb3V0Ojpjb3JlX3ZhbHMpOiBTdHJlYW0gdGhl IG5ldyBkaXNjcmltaW5hdG9yLgoJKHRyZWVzX2luOjpjb3JlX3ZhbHMpOiBMaWtld2lzZS4K CSogcGFyc2VyLmNjIChjcF9wYXJzZXJfbGFtYmRhX2RlY2xhcmF0b3Jfb3B0KTogQ2FsbAoJ cmVjb3JkX2xhbWJkYV9zY29wZV9zaWdfZGlzY3JpbWluYXRvci4KCSogcHQuY2MgKHRzdWJz dF9sYW1iZGFfZXhwcik6IExpa2V3aXNlLgoJbGliY2MxLwoJKiBsaWJjcDFwbHVnaW4uY2Mg KHBsdWdpbl9zdGFydF9sYW1iZGFfY2xvc3VyZV9jbGFzc190eXBlKToKCUluaXRpYWxpemUg dGhlIHBlci1zY29wZSwgcGVyLXNpZ25hdHVyZSBkaXNjcmltaW5hdG9yLgoJZ2NjL3Rlc3Rz dWl0ZS8KCSogZysrLmRnL2FiaS9sYW1iZGEtc2lnMS0xOC5DOiBOZXcuCgkqIGcrKy5kZy9h YmkvbGFtYmRhLXNpZzEtMTh2czE3LkM6IE5ldy4KCSogZysrLmRnL2NwcDF5L2xhbWJkYS1t YW5nbGUtMS0xOC5DOiBOZXcuCi0tLQogZ2NjL2NwL2NwLXRyZWUuaCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICA3ICstCiBnY2MvY3AvbGFtYmRhLmNjICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAxNDggKysrKysrKysrKysrKysrKystCiBnY2MvY3AvbWFu Z2xlLmNjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDggKy0KIGdjYy9jcC9t b2R1bGUuY2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArCiBnY2MvY3Av cGFyc2VyLmNjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogZ2NjL2Nw L3B0LmNjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIGdjYy90 ZXN0c3VpdGUvZysrLmRnL2FiaS9sYW1iZGEtc2lnMS0xOC5DICAgICB8ICAzNCArKysrCiBn Y2MvdGVzdHN1aXRlL2crKy5kZy9hYmkvbGFtYmRhLXNpZzEtMTh2czE3LkMgfCAgNDAgKysr KysKIC4uLi9nKysuZGcvY3BwMXkvbGFtYmRhLW1hbmdsZS0xLTE4LkMgICAgICAgICB8ICAy NiArKysKIGxpYmNjMS9saWJjcDFwbHVnaW4uY2MgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgMSArCiAxMCBmaWxlcyBjaGFuZ2VkLCAyNjUgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlv bnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2crKy5kZy9hYmkvbGFt YmRhLXNpZzEtMTguQwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZysrLmRn L2FiaS9sYW1iZGEtc2lnMS0xOHZzMTcuQwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0 c3VpdGUvZysrLmRnL2NwcDF5L2xhbWJkYS1tYW5nbGUtMS0xOC5DCgpkaWZmIC0tZ2l0IGEv Z2NjL2NwL2NwLXRyZWUuaCBiL2djYy9jcC9jcC10cmVlLmgKaW5kZXggNGMwYmFjYjkxZGEu LmQxM2JiM2Q0YzBlIDEwMDY0NAotLS0gYS9nY2MvY3AvY3AtdHJlZS5oCisrKyBiL2djYy9j cC9jcC10cmVlLmgKQEAgLTE1MDEsOSArMTUwMSwxMiBAQCBlbnVtIGNwX2xhbWJkYV9kZWZh dWx0X2NhcHR1cmVfbW9kZV90eXBlIHsKICAgKCgoc3RydWN0IHRyZWVfbGFtYmRhX2V4cHIg KilMQU1CREFfRVhQUl9DSEVDSyAoTk9ERSkpLT5leHRyYV9zY29wZSkKIAogLyogTGFtYmRh cyBpbiB0aGUgc2FtZSBleHRyYSBzY29wZSBtaWdodCBuZWVkIGEgZGlzY3JpbWluYXRpbmcg Y291bnQuCi0gICBUaGlzIGlzIGEgc2luZ2xlIHBlci1zY29wZSBjb3VudC4gICovCisgICBG b3IgQUJJIDE3LCB3ZSBoYXZlIHNpbmdsZSBwZXItc2NvcGUgY291bnQsIGZvciBBQkkgMTgs IHdlIGhhdmUKKyAgIHBlci1zY29wZSwgcGVyLXNpZ25hdHVyZSBudW1iZXJpbmcuICAqLwog I2RlZmluZSBMQU1CREFfRVhQUl9TQ09QRV9PTkxZX0RJU0NSSU1JTkFUT1IoTk9ERSkgXAog ICAoKChzdHJ1Y3QgdHJlZV9sYW1iZGFfZXhwciAqKUxBTUJEQV9FWFBSX0NIRUNLIChOT0RF KSktPmRpc2NyaW1pbmF0b3Jfc2NvcGUpCisjZGVmaW5lIExBTUJEQV9FWFBSX1NDT1BFX1NJ R19ESVNDUklNSU5BVE9SKE5PREUpIFwKKyAgKCgoc3RydWN0IHRyZWVfbGFtYmRhX2V4cHIg KilMQU1CREFfRVhQUl9DSEVDSyAoTk9ERSkpLT5kaXNjcmltaW5hdG9yX3NpZykKIAogLyog RHVyaW5nIHBhcnNpbmcgb2YgdGhlIGxhbWJkYSwgYSB2ZWN0b3Igb2YgY2FwdHVyZSBwcm94 aWVzIHdoaWNoIG5lZWQKICAgIHRvIGJlIHB1c2hlZCBvbmNlIHdlJ3JlIGRvbmUgcHJvY2Vz c2luZyBhIG5lc3RlZCBsYW1iZGEuICAqLwpAQCAtMTUzMyw2ICsxNTM2LDcgQEAgc3RydWN0 IEdUWSAoKCkpIHRyZWVfbGFtYmRhX2V4cHIKICAgbG9jYXRpb25fdCBsb2N1czsKICAgZW51 bSBjcF9sYW1iZGFfZGVmYXVsdF9jYXB0dXJlX21vZGVfdHlwZSBkZWZhdWx0X2NhcHR1cmVf bW9kZSA6IDI7CiAgIHVuc2lnbmVkIGRpc2NyaW1pbmF0b3Jfc2NvcGUgOiAxNTsgLy8gUGVy LXNjb3BlIGRpc2NyaW1pbmF0b3IKKyAgdW5zaWduZWQgZGlzY3JpbWluYXRvcl9zaWcgOiAx NTsgLy8gUGVyLXNjb3BlLCBwZXItc2lnbmF0dXJlIGRpc2NyaW1pbmF0b3IKIH07CiAKIC8q IE5vbi16ZXJvIGlmIHRoaXMgdGVtcGxhdGUgc3BlY2lhbGl6YXRpb24gaGFzIGFjY2VzcyB2 aW9sYXRpb25zIHRoYXQKQEAgLTc3ODMsNiArNzc4Nyw3IEBAIGV4dGVybiB2b2lkIHN0YXJ0 X2xhbWJkYV9zY29wZQkJCSh0cmVlIGRlY2wpOwogZXh0ZXJuIHZvaWQgZmluaXNoX2xhbWJk YV9zY29wZQkJCSh2b2lkKTsKIGV4dGVybiB2b2lkIHJlY29yZF9sYW1iZGFfc2NvcGUJCQko dHJlZSBsYW1iZGEpOwogZXh0ZXJuIHZvaWQgcmVjb3JkX2xhbWJkYV9zY29wZV9kaXNjcmlt aW5hdG9yCSh0cmVlIGxhbWJkYSk7CitleHRlcm4gdm9pZCByZWNvcmRfbGFtYmRhX3Njb3Bl X3NpZ19kaXNjcmltaW5hdG9yICh0cmVlIGxhbWJkYSwgdHJlZSBmbik7CiBleHRlcm4gdHJl ZSBzdGFydF9sYW1iZGFfZnVuY3Rpb24JCSh0cmVlIGZuLCB0cmVlIGxhbWJkYV9leHByKTsK IGV4dGVybiB2b2lkIGZpbmlzaF9sYW1iZGFfZnVuY3Rpb24JCSh0cmVlIGJvZHkpOwogZXh0 ZXJuIGJvb2wgcmVnZW5lcmF0ZWRfbGFtYmRhX2ZuX3AJCSh0cmVlKTsKZGlmZiAtLWdpdCBh L2djYy9jcC9sYW1iZGEuY2MgYi9nY2MvY3AvbGFtYmRhLmNjCmluZGV4IGQyNjczZTJjZWVi Li5jN2E5MjY4MjUxYiAxMDA2NDQKLS0tIGEvZ2NjL2NwL2xhbWJkYS5jYworKysgYi9nY2Mv Y3AvbGFtYmRhLmNjCkBAIC0xNDQ3LDEzICsxNDQ3LDIxIEBAIGlzX2xhbWJkYV9pZ25vcmVk X2VudGl0eSAodHJlZSB2YWwpCiAvKiBMYW1iZGFzIHRoYXQgYXBwZWFyIGluIHZhcmlhYmxl IGluaXRpYWxpemVyIG9yIGRlZmF1bHQgYXJndW1lbnQKICAgIHNjb3BlIGdldCB0aGF0IGlu IHRoZWlyIG1hbmdsaW5nLCBzbyB3ZSBuZWVkIHRvIHJlY29yZCBpdC4gIEFsc28sCiAgICBt dWx0aXBsZSBsYW1iZGFzIGluIHRoZSBzYW1lIHNjb3BlIG1heSBuZWVkIGEgbWFuZ2xpbmcK LSAgIGRpc2NyaW1pbmF0b3IuICBSZWNvcmQgaW4gdGhlIHNhbWUgZGF0YSBzdHJ1Y3R1cmUu ICAqLworICAgZGlzY3JpbWluYXRvci4gIEluIEFCSSA8PSAxNywgdGhlcmUgaXMgYSBzaW5n bGUgcGVyLXNjb3BlIHNlcXVlbmNlCisgICBudW1iZXIuICBJbiBBQkkgPj0gMTgsIHRoZXJl IGFyZSBwZXItc2NvcGUgcGVyLXNpZ25hdHVyZSBzZXF1ZW5jZQorICAgbnVtYmVycy4gICov CitzdHJ1Y3QgR1RZKCgpKSBsYW1iZGFfc2lnX2NvdW50Cit7CisgIHRyZWUgZm47IC8vIFRo ZSBsYW1iZGEgZm4gd2hvc2Ugc2lnIHRoaXMgaXMuCisgIHVuc2lnbmVkIGNvdW50OworfTsK IHN0cnVjdCBHVFkoKCkpIGxhbWJkYV9kaXNjcmltaW5hdG9yCiB7CiAgIHRyZWUgc2NvcGU7 CiAgIHVuc2lnbmVkIG5lc3Rpbmc7IC8vIEluc2lkZSBhIGZ1bmN0aW9uLCBWQVJfREVDTHMg Z2V0IHRoZSBmdW5jdGlvbgogICAJCSAgICAvLyBhcyBzY29wZS4gVGhpcyBjb3VudHMgdGhh dCBuZXN0aW5nLgogICB1bnNpZ25lZCBjb3VudDsgICAvLyBUaGUgcGVyLXNjb3BlIGNvdW50 ZXIuCisgIHZlYzxsYW1iZGFfc2lnX2NvdW50LCB2YV9nYz4gKmRpc2NyaW1pbmF0b3JzOyAv LyBQZXItc2lnbmF0dXJlIGNvdW50ZXJzCiB9OwogLy8gVGhlIGN1cnJlbnQgc2NvcGUuCiBz dGF0aWMgR1RZKCgpKSBsYW1iZGFfZGlzY3JpbWluYXRvciBsYW1iZGFfc2NvcGU7CkBAIC0x NDc1LDYgKzE0ODMsNyBAQCBzdGFydF9sYW1iZGFfc2NvcGUgKHRyZWUgZGVjbCkKICAgICAg IGxhbWJkYV9zY29wZS5zY29wZSA9IGRlY2w7CiAgICAgICBsYW1iZGFfc2NvcGUubmVzdGlu ZyA9IDA7CiAgICAgICBsYW1iZGFfc2NvcGUuY291bnQgPSAwOworICAgICAgbGFtYmRhX3Nj b3BlLmRpc2NyaW1pbmF0b3JzID0gbnVsbHB0cjsKICAgICB9CiB9CiAKQEAgLTE1MDQsNiAr MTUxMywxMTYgQEAgcmVjb3JkX2xhbWJkYV9zY29wZSAodHJlZSBsYW1iZGEpCiAgICAgfQog fQogCisvLyBDb21wYXJlIGxhbWJkYSB0ZW1wbGF0ZSBoZWFkcyBUTVBMX0EgYW5kIFRNUExf QiwgdXNlZCBmb3IgYm90aAorLy8gdGVtcGxhdGVkIGxhbWJkYXMsIGFuZCB0ZW1wbGF0ZSB0 ZW1wbGF0ZSBwYXJhbWV0ZXJzIG9mIHNhaWQgbGFtYmRhLgorCitzdGF0aWMgYm9vbAorY29t cGFyZV9sYW1iZGFfdGVtcGxhdGVfaGVhZCAodHJlZSB0bXBsX2EsIHRyZWUgdG1wbF9iKQor eworICAvLyBXZSBvbmx5IG5lZWQgb25lIGxldmVsIG9mIHRlbXBsYXRlIHBhcm1zCisgIHRy ZWUgaW5uZXJfYSA9IElOTkVSTU9TVF9URU1QTEFURV9QQVJNUyAoREVDTF9URU1QTEFURV9Q QVJNUyAodG1wbF9hKSk7CisgIHRyZWUgaW5uZXJfYiA9IElOTkVSTU9TVF9URU1QTEFURV9Q QVJNUyAoREVDTF9URU1QTEFURV9QQVJNUyAodG1wbF9iKSk7CisKKyAgLy8gV2Ugb25seSBj b21wYXJlIGV4cGxpY2l0IHRlbXBsYXRlIHBhcm1zLCBpZ25vcmluZyB0cmFpbGluZworICAv LyBzeW50aGV0aWMgb25lcy4KKyAgaW50IGxlbl9hID0gVFJFRV9WRUNfTEVOR1RIIChpbm5l cl9hKTsKKyAgaW50IGxlbl9iID0gVFJFRV9WRUNfTEVOR1RIIChpbm5lcl9iKTsKKyAgCisg IGZvciAoaW50IGl4ID0gMCwgbGVuID0gTUFYIChsZW5fYSwgbGVuX2IpOyBpeCAhPSBsZW47 IGl4KyspCisgICAgeworICAgICAgdHJlZSBwYXJtX2EgPSBOVUxMX1RSRUU7CisgICAgICBp ZiAoaXggPCBsZW5fYSkKKwl7CisJICBwYXJtX2EgPSBUUkVFX1ZFQ19FTFQgKGlubmVyX2Es IGl4KTsKKwkgIGlmIChwYXJtX2EgPT0gZXJyb3JfbWFya19ub2RlKQorCSAgICByZXR1cm4g ZmFsc2U7CisJICBwYXJtX2EgPSBUUkVFX1ZBTFVFIChwYXJtX2EpOworCSAgaWYgKERFQ0xf VklSVFVBTF9QIChwYXJtX2EpKQorCSAgICBwYXJtX2EgPSBOVUxMX1RSRUU7CisJfQorICAg ICAgCisgICAgICB0cmVlIHBhcm1fYiA9IE5VTExfVFJFRTsKKyAgICAgIGlmIChpeCA8IGxl bl9iKQorCXsKKwkgIHBhcm1fYiA9IFRSRUVfVkVDX0VMVCAoaW5uZXJfYiwgaXgpOworCSAg aWYgKHBhcm1fYiA9PSBlcnJvcl9tYXJrX25vZGUpCisJICAgIHJldHVybiBmYWxzZTsKKwkg IHBhcm1fYiA9IFRSRUVfVkFMVUUgKHBhcm1fYik7CisJICBpZiAoREVDTF9WSVJUVUFMX1Ag KHBhcm1fYikpCisJICAgIHBhcm1fYiA9IE5VTExfVFJFRTsKKwl9CisKKyAgICAgIGlmICgh cGFybV9hICYmICFwYXJtX2IpCisJLy8gd2UncmUgZG9uZQorCWJyZWFrOworCisgICAgICBp ZiAoIShwYXJtX2EgJiYgcGFybV9iKSkKKwlyZXR1cm4gZmFsc2U7CisKKyAgICAgIGlmIChU UkVFX0NPREUgKHBhcm1fYSkgIT0gVFJFRV9DT0RFIChwYXJtX2IpKQorCXJldHVybiBmYWxz ZTsKKworICAgICAgaWYgKFRSRUVfQ09ERSAocGFybV9hKSA9PSBQQVJNX0RFQ0wpCisJewor CSAgaWYgKFRFTVBMQVRFX1BBUk1fUEFSQU1FVEVSX1BBQ0sgKERFQ0xfSU5JVElBTCAocGFy bV9hKSkKKwkgICAgICAhPSBURU1QTEFURV9QQVJNX1BBUkFNRVRFUl9QQUNLIChERUNMX0lO SVRJQUwgKHBhcm1fYikpKQorCSAgICByZXR1cm4gZmFsc2U7CisKKwkgIGlmICghc2FtZV90 eXBlX3AgKFRSRUVfVFlQRSAocGFybV9hKSwgVFJFRV9UWVBFIChwYXJtX2IpKSkKKwkgICAg cmV0dXJuIGZhbHNlOworCX0KKyAgICAgIGVsc2UgCisJeworCSAgaWYgKFRFTVBMQVRFX1RZ UEVfUEFSQU1FVEVSX1BBQ0sgKFRSRUVfVFlQRSAocGFybV9hKSkKKwkgICAgICAhPSBURU1Q TEFURV9UWVBFX1BBUkFNRVRFUl9QQUNLIChUUkVFX1RZUEUgKHBhcm1fYikpKQorCSAgICBy ZXR1cm4gZmFsc2U7CisKKwkgIGlmIChUUkVFX0NPREUgKHBhcm1fYSkgIT0gVEVNUExBVEVf REVDTCkKKwkgICAgZ2NjX2NoZWNraW5nX2Fzc2VydCAoVFJFRV9DT0RFIChwYXJtX2EpID09 IFRZUEVfREVDTCk7CisJICBlbHNlIGlmICghY29tcGFyZV9sYW1iZGFfdGVtcGxhdGVfaGVh ZCAocGFybV9hLCBwYXJtX2IpKQorCSAgICByZXR1cm4gZmFsc2U7CisJfQorICAgIH0KKwor ICByZXR1cm4gdHJ1ZTsKK30KKworLy8gQ29tcGFyZSBsYW1iZGEgc2lnbmF0dXJlcyBGTl9B IGFuZCBGTl9CLCB0aGV5IG1heSBiZSBURU1QTEFURV9ERUNMcyB0b28uCisKK3N0YXRpYyBi b29sCitjb21wYXJlX2xhbWJkYV9zaWcgKHRyZWUgZm5fYSwgdHJlZSBmbl9iKQoreworICBp ZiAoVFJFRV9DT0RFIChmbl9hKSA9PSBURU1QTEFURV9ERUNMCisgICAgICAmJiBUUkVFX0NP REUgKGZuX2IpID09IFRFTVBMQVRFX0RFQ0wpCisgICAgeworICAgICAgaWYgKCFjb21wYXJl X2xhbWJkYV90ZW1wbGF0ZV9oZWFkIChmbl9hLCBmbl9iKSkKKwlyZXR1cm4gZmFsc2U7Cisg ICAgICBmbl9hID0gREVDTF9URU1QTEFURV9SRVNVTFQgKGZuX2EpOworICAgICAgZm5fYiA9 IERFQ0xfVEVNUExBVEVfUkVTVUxUIChmbl9iKTsKKyAgICB9CisgIGVsc2UgaWYgKFRSRUVf Q09ERSAoZm5fYSkgPT0gVEVNUExBVEVfREVDTAorCSAgIHx8IFRSRUVfQ09ERSAoZm5fYikg PT0gVEVNUExBVEVfREVDTCkKKyAgICByZXR1cm4gZmFsc2U7CisKKyAgaWYgKGZuX2EgPT0g ZXJyb3JfbWFya19ub2RlCisgICAgICB8fCBmbl9iID09IGVycm9yX21hcmtfbm9kZSkKKyAg ICByZXR1cm4gZmFsc2U7CisKKyAgZm9yICh0cmVlIGFyZ3NfYSA9IFRSRUVfQ0hBSU4gKFRZ UEVfQVJHX1RZUEVTIChUUkVFX1RZUEUgKGZuX2EpKSksCisJIGFyZ3NfYiA9IFRSRUVfQ0hB SU4gKFRZUEVfQVJHX1RZUEVTIChUUkVFX1RZUEUgKGZuX2IpKSk7CisgICAgICAgYXJnc19h IHx8IGFyZ3NfYjsKKyAgICAgICBhcmdzX2EgPSBUUkVFX0NIQUlOIChhcmdzX2EpLCBhcmdz X2IgPSBUUkVFX0NIQUlOIChhcmdzX2IpKQorICAgIHsKKyAgICAgIGlmICghYXJnc19hIHx8 ICFhcmdzX2IpCisJcmV0dXJuIGZhbHNlOworICAgICAgLy8gVGhpcyBjaGVjayBhbHNvIGRl YWxzIHdpdGggZGlmZmVyaW5nIHZhcmFkaWNuZXNzCisgICAgICBpZiAoIXNhbWVfdHlwZV9w IChUUkVFX1ZBTFVFIChhcmdzX2EpLCBUUkVFX1ZBTFVFIChhcmdzX2IpKSkKKwlyZXR1cm4g ZmFsc2U7CisgICAgfQorCisgIHJldHVybiB0cnVlOworfQorCiAvLyBSZWNvcmQgdGhlIHBl ci1zY29wZSBkaXNjcmltaW5hdG9yIG9mIExBTUJEQS4gIElmIHRoZSBleHRyYSBzY29wZQog Ly8gaXMgZW1wdHksIHdlIG11c3QgdXNlIHRoZSBlbXB0eSBzY29wZSBjb3VudGVyLCB3aGlj aCBtaWdodCBub3QgYmUKIC8vIHRoZSBsaXZlIG9uZS4KQEAgLTE1MTcsNiArMTYzNiwzMyBA QCByZWNvcmRfbGFtYmRhX3Njb3BlX2Rpc2NyaW1pbmF0b3IgKHRyZWUgbGFtYmRhKQogICBM QU1CREFfRVhQUl9TQ09QRV9PTkxZX0RJU0NSSU1JTkFUT1IgKGxhbWJkYSkgPSBzbG90LT5j b3VudCsrOwogfQogCisvLyBSZWNvcmQgdGhlIHBlci1zY29wZSBwZXItc2lnbmF0dXJlIGRp c2NyaW1pbmF0b3Igb2YgTEFNQkRBLiAgSWYgdGhlCisvLyBleHRyYSBzY29wZSBpcyBlbXB0 eSwgd2UgbXVzdCB1c2UgdGhlIGVtcHR5IHNjb3BlIGNvdW50ZXIsIHdoaWNoCisvLyBtaWdo dCBub3QgYmUgdGhlIGxpdmUgb25lLgorCit2b2lkCityZWNvcmRfbGFtYmRhX3Njb3BlX3Np Z19kaXNjcmltaW5hdG9yICh0cmVlIGxhbWJkYSwgdHJlZSBmbikKK3sKKyAgYXV0byAqc2xv dCA9ICh2ZWNfc2FmZV9pc19lbXB0eSAobGFtYmRhX3Njb3BlX3N0YWNrKQorCQl8fCBMQU1C REFfRVhQUl9FWFRSQV9TQ09QRSAobGFtYmRhKQorCQk/ICZsYW1iZGFfc2NvcGUgOiBsYW1i ZGFfc2NvcGVfc3RhY2stPmJlZ2luICgpKTsKKyAgZ2NjX2NoZWNraW5nX2Fzc2VydCAoTEFN QkRBX0VYUFJfRVhUUkFfU0NPUEUgKGxhbWJkYSkgPT0gc2xvdC0+c2NvcGUpOworCisgIC8v IEEgbGluZWFyIHNlYXJjaCwgd2UncmUgbm90IGV4cGVjdGluZyB0aGlzIHRvIGJlIGEgYmln IGxpc3QsIGFuZAorICAvLyB0aGlzIGF2b2lkcyBuZWVkaW5nIGEgc2lnbmF0dXJlIGhhc2gg ZnVuY3Rpb24uCisgIGxhbWJkYV9zaWdfY291bnQgKnNpZzsKKyAgaWYgKHVuc2lnbmVkIGl4 ID0gdmVjX3NhZmVfbGVuZ3RoIChzbG90LT5kaXNjcmltaW5hdG9ycykpCisgICAgZm9yIChz aWcgPSBzbG90LT5kaXNjcmltaW5hdG9ycy0+YmVnaW4gKCk7IGl4LS07IHNpZysrKQorICAg ICAgaWYgKGNvbXBhcmVfbGFtYmRhX3NpZyAoZm4sIHNpZy0+Zm4pKQorCWdvdG8gZm91bmQ7 CisgIHsKKyAgICBsYW1iZGFfc2lnX2NvdW50IGluaXQgPSB7Zm4sIDB9OworICAgIHNpZyA9 IHZlY19zYWZlX3B1c2ggKHNsb3QtPmRpc2NyaW1pbmF0b3JzLCBpbml0KTsKKyAgfQorIGZv dW5kOgorICBMQU1CREFfRVhQUl9TQ09QRV9TSUdfRElTQ1JJTUlOQVRPUiAobGFtYmRhKSA9 IHNpZy0+Y291bnQrKzsKK30KKwogdHJlZQogc3RhcnRfbGFtYmRhX2Z1bmN0aW9uICh0cmVl IGZjbywgdHJlZSBsYW1iZGFfZXhwcikKIHsKZGlmZiAtLWdpdCBhL2djYy9jcC9tYW5nbGUu Y2MgYi9nY2MvY3AvbWFuZ2xlLmNjCmluZGV4IGE2MmM5NzU2YzkxLi5lOTc0MjhlOGYzMCAx MDA2NDQKLS0tIGEvZ2NjL2NwL21hbmdsZS5jYworKysgYi9nY2MvY3AvbWFuZ2xlLmNjCkBA IC0xODEwLDcgKzE4MTAsMTMgQEAgd3JpdGVfY2xvc3VyZV90eXBlX25hbWUgKGNvbnN0IHRy ZWUgdHlwZSkKIAogICB3cml0ZV9tZXRob2RfcGFybXMgKHBhcm1zLCAvKm1ldGhvZF9wPSov MSwgZm4pOwogICB3cml0ZV9jaGFyICgnRScpOwotICB3cml0ZV9jb21wYWN0X251bWJlciAo TEFNQkRBX0VYUFJfU0NPUEVfT05MWV9ESVNDUklNSU5BVE9SIChsYW1iZGEpKTsKKyAgaWYg KChMQU1CREFfRVhQUl9TQ09QRV9TSUdfRElTQ1JJTUlOQVRPUiAobGFtYmRhKQorICAgICAg ICE9IExBTUJEQV9FWFBSX1NDT1BFX09OTFlfRElTQ1JJTUlOQVRPUiAobGFtYmRhKSkKKyAg ICAgICYmIGFiaV93YXJuX29yX2NvbXBhdF92ZXJzaW9uX2Nyb3NzZXMgKDE4KSkKKyAgICBH Lm5lZWRfYWJpX3dhcm5pbmcgPSB0cnVlOworICB3cml0ZV9jb21wYWN0X251bWJlciAoYWJp X3ZlcnNpb25fYXRfbGVhc3QgKDE4KQorCQkJPyBMQU1CREFfRVhQUl9TQ09QRV9TSUdfRElT Q1JJTUlOQVRPUiAobGFtYmRhKQorCQkJOiBMQU1CREFfRVhQUl9TQ09QRV9PTkxZX0RJU0NS SU1JTkFUT1IgKGxhbWJkYSkpOwogfQogCiAvKiBDb252ZXJ0IE5VTUJFUiB0byBhc2NpaSB1 c2luZyBiYXNlIEJBU0UgYW5kIGdlbmVyYXRpbmcgYXQgbGVhc3QKZGlmZiAtLWdpdCBhL2dj Yy9jcC9tb2R1bGUuY2MgYi9nY2MvY3AvbW9kdWxlLmNjCmluZGV4IGRmMDViNTI0MTM2Li4w ZTlhZjMxOGJhNCAxMDA2NDQKLS0tIGEvZ2NjL2NwL21vZHVsZS5jYworKysgYi9nY2MvY3Av bW9kdWxlLmNjCkBAIC02MzI4LDYgKzYzMjgsNyBAQCB0cmVlc19vdXQ6OmNvcmVfdmFscyAo dHJlZSB0KQogCXsKIAkgIFdVICgoKGxhbmdfdHJlZV9ub2RlICopdCktPmxhbWJkYV9leHBy ZXNzaW9uLmRlZmF1bHRfY2FwdHVyZV9tb2RlKTsKIAkgIFdVICgoKGxhbmdfdHJlZV9ub2Rl ICopdCktPmxhbWJkYV9leHByZXNzaW9uLmRpc2NyaW1pbmF0b3Jfc2NvcGUpOworCSAgV1Ug KCgobGFuZ190cmVlX25vZGUgKil0KS0+bGFtYmRhX2V4cHJlc3Npb24uZGlzY3JpbWluYXRv cl9zaWcpOwogCX0KICAgICAgIGJyZWFrOwogCkBAIC02ODIwLDYgKzY4MjEsNyBAQCB0cmVl c19pbjo6Y29yZV92YWxzICh0cmVlIHQpCiAgICAgICBSVUMgKGNwX2xhbWJkYV9kZWZhdWx0 X2NhcHR1cmVfbW9kZV90eXBlLAogCSAgICgobGFuZ190cmVlX25vZGUgKil0KS0+bGFtYmRh X2V4cHJlc3Npb24uZGVmYXVsdF9jYXB0dXJlX21vZGUpOwogICAgICAgUlUgKCgobGFuZ190 cmVlX25vZGUgKil0KS0+bGFtYmRhX2V4cHJlc3Npb24uZGlzY3JpbWluYXRvcl9zY29wZSk7 CisgICAgICBSVSAoKChsYW5nX3RyZWVfbm9kZSAqKXQpLT5sYW1iZGFfZXhwcmVzc2lvbi5k aXNjcmltaW5hdG9yX3NpZyk7CiAgICAgICBicmVhazsKIAogICAgIGNhc2UgT1ZFUkxPQUQ6 CmRpZmYgLS1naXQgYS9nY2MvY3AvcGFyc2VyLmNjIGIvZ2NjL2NwL3BhcnNlci5jYwppbmRl eCBlMGUzY2YzZWFmNi4uZmQ1OWRlNDkxY2QgMTAwNjQ0Ci0tLSBhL2djYy9jcC9wYXJzZXIu Y2MKKysrIGIvZ2NjL2NwL3BhcnNlci5jYwpAQCAtMTE3MTIsNiArMTE3MTIsNyBAQCBjcF9w YXJzZXJfbGFtYmRhX2RlY2xhcmF0b3Jfb3B0IChjcF9wYXJzZXIqIHBhcnNlciwgdHJlZSBs YW1iZGFfZXhwcikKICAgICAgIGZjbyA9IGZpbmlzaF9mdWxseV9pbXBsaWNpdF90ZW1wbGF0 ZSAocGFyc2VyLCBmY28pOwogCiAgICAgZmluaXNoX21lbWJlcl9kZWNsYXJhdGlvbiAoZmNv KTsKKyAgICByZWNvcmRfbGFtYmRhX3Njb3BlX3NpZ19kaXNjcmltaW5hdG9yIChsYW1iZGFf ZXhwciwgZmNvKTsKIAogICAgIG9ic3RhY2tfZnJlZSAoJmRlY2xhcmF0b3Jfb2JzdGFjaywg cCk7CiAKZGlmZiAtLWdpdCBhL2djYy9jcC9wdC5jYyBiL2djYy9jcC9wdC5jYwppbmRleCBm YzYyNzljMDBhMy4uYzNmYzU2YTEzZmYgMTAwNjQ0Ci0tLSBhL2djYy9jcC9wdC5jYworKysg Yi9nY2MvY3AvcHQuY2MKQEAgLTE5OTEyLDYgKzE5OTEyLDcgQEAgdHN1YnN0X2xhbWJkYV9l eHByICh0cmVlIHQsIHRyZWUgYXJncywgdHN1YnN0X2ZsYWdzX3QgY29tcGxhaW4sIHRyZWUg aW5fZGVjbCkKIAkgIGdvdG8gb3V0OwogCX0KICAgICAgIGZpbmlzaF9tZW1iZXJfZGVjbGFy YXRpb24gKGluc3QpOworICAgICAgcmVjb3JkX2xhbWJkYV9zY29wZV9zaWdfZGlzY3JpbWlu YXRvciAociwgaW5zdCk7CiAKICAgICAgIHRyZWUgZm4gPSBvbGR0bXBsID8gREVDTF9URU1Q TEFURV9SRVNVTFQgKGluc3QpIDogaW5zdDsKIApkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0 ZS9nKysuZGcvYWJpL2xhbWJkYS1zaWcxLTE4LkMgYi9nY2MvdGVzdHN1aXRlL2crKy5kZy9h YmkvbGFtYmRhLXNpZzEtMTguQwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uODg2OTJlZGFhZWYKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2cr Ky5kZy9hYmkvbGFtYmRhLXNpZzEtMTguQwpAQCAtMCwwICsxLDM0IEBACisvLyB7IGRnLWRv IGNvbXBpbGUgeyB0YXJnZXQgYysrMjAgfSB9CisvLyB7IGRnLW9wdGlvbnMgLWZhYmktdmVy c2lvbj0xOCB9CisKKyNpbmNsdWRlICJsYW1iZGEtc2lnMS5oIgorCisvLyB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXIge19aWk4xWElmTGowRUUyRm5FdkVOS1VsZkVfY2xFZjp9IH0g fQorLy8geyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyIHtfWlpOMVhJZkxqMEVFMkZuRXZF TktVbGZFMF9jbEVmOn0gfSB9CisKKy8vIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciB7 X1paTjFYSWZMajBFRTJGbkV2RU5LVWxUeWZUX0VfY2xJaUVFRGFmUzFfOn0gfSB9CisvLyB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIge19aWk4xWElmTGowRUUyRm5FdkVOS1VsVHlm VF9FMF9jbElpRUVEYWZTMV86fSB9IH0KKworLy8geyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyIHtfWlpOMVhJZkxqMEVFMkZuRXZFTktVbFR5VF9FX2NsSWlFRURhUzFfOn0gfSB9Cisv LyB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIge19aWk4xWElmTGowRUUyRm5FdkVOS1Vs VHlUX0UwX2NsSWlFRURhUzFfOn0gfSB9CisKKy8vIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt YmxlciB7X1paTjFYSWZMajFFRTJGbkV2RU5LVWxmRV9jbEVmOn0gfSB9CisvLyB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXIge19aWk4xWElmTGoxRUUyRm5FdkVOS1VsZkUwX2NsRWY6 fSB9IH0KKy8vIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciB7X1paTjFYSWZMajFFRTJG bkV2RU5LVWxmRTFfY2xFZjp9IH0gfQorCisvLyB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXIge19aWk4xWElmTGoxRUUyRm5FdkVOS1VsVHlmVF9FX2NsSWlFRURhZlMxXzp9IH0gfQor Ly8geyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyIHtfWlpOMVhJZkxqMUVFMkZuRXZFTktV bFR5ZlRfRTBfY2xJaUVFRGFmUzFfOn0gfSB9CisvLyB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXIge19aWk4xWElmTGoxRUUyRm5FdkVOS1VsVHlmVF9FMV9jbElpRUVEYWZTMV86fSB9 IH0KKworLy8geyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyIHtfWlpOMVhJZkxqMUVFMkZu RXZFTktVbFR5VF9FX2NsSWlFRURhUzFfOn0gfSB9CisvLyB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXIge19aWk4xWElmTGoxRUUyRm5FdkVOS1VsVHlUX0UwX2NsSWlFRURhUzFfOn0g fSB9CisvLyB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIge19aWk4xWElmTGoxRUUyRm5F dkVOS1VsVHlUX0UxX2NsSWlFRURhUzFfOn0gfSB9CisKKy8vIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlciB7X1paTjFYSWlMajBFRTJGbkV2RU5LVWxpRV9jbEVpOn0gfSB9CisvLyB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIge19aWk4xWElpTGowRUUyRm5FdkVOS1VsaUUw X2NsRWk6fSB9IH0KKworLy8geyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyIHtfWlpOMVhJ aUxqMEVFMkZuRXZFTktVbFR5aVRfRV9jbElpRUVEYWlTMV86fSB9IH0KKy8vIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlciB7X1paTjFYSWlMajBFRTJGbkV2RU5LVWxUeWlUX0UwX2Ns SWlFRURhaVMxXzp9IH0gfQorCisvLyB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIge19a Wk4xWElpTGowRUUyRm5FdkVOS1VsVHlUX0VfY2xJaUVFRGFTMV86fSB9IH0KKy8vIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlciB7X1paTjFYSWlMajBFRTJGbkV2RU5LVWxUeVRfRTBf Y2xJaUVFRGFTMV86fSB9IH0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZysrLmRnL2Fi aS9sYW1iZGEtc2lnMS0xOHZzMTcuQyBiL2djYy90ZXN0c3VpdGUvZysrLmRnL2FiaS9sYW1i ZGEtc2lnMS0xOHZzMTcuQwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MC4uYjE5MWZiM2FiMGYKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2crKy5k Zy9hYmkvbGFtYmRhLXNpZzEtMTh2czE3LkMKQEAgLTAsMCArMSw0MCBAQAorLy8geyBkZy1k byBjb21waWxlIHsgdGFyZ2V0IGMrKzIwIH0gfQorLy8geyBkZy1vcHRpb25zIHstZmFiaS12 ZXJzaW9uPTE4IC1XYWJpPTE3fSB9CisKKyNpbmNsdWRlICJsYW1iZGEtc2lnMS5oIgorCisv LyB7IGRnLXJlZ2V4cCB7W15cbl0qbGFtYmRhLXNpZzEuaDpbOjAtOV0qIHdhcm5pbmc6IHRo ZSBtYW5nbGVkIG5hbWUgW15cbl0qIFwoJ19aWk4xWElmTGoxRUUyRm5FdkVOS1VsZlRfRTdf Y2xJaUVFRGFmUzFfJ1wpIGFuZCAnLWZhYmktdmVyc2lvbj0xOCcgXCgnX1paTjFYSWZMajFF RTJGbkV2RU5LVWxUeWZUX0UxX2NsSWlFRURhZlMxXydcKSBbXlxuXSpcbn0gfQorLy8geyBk Zy1yZWdleHAge1teXG5dKmxhbWJkYS1zaWcxLmg6WzowLTldKiB3YXJuaW5nOiB0aGUgbWFu Z2xlZCBuYW1lIFteXG5dKiBcKCdfWlpOMVhJZkxqMUVFMkZuRXZFTktVbFRfRTVfY2xJaUVF RGFTMV8nXCkgYW5kICctZmFiaS12ZXJzaW9uPTE4JyBcKCdfWlpOMVhJZkxqMUVFMkZuRXZF TktVbFR5VF9FMV9jbElpRUVEYVMxXydcKSBbXlxuXSpcbn0gfQorLy8geyBkZy1yZWdleHAg e1teXG5dKmxhbWJkYS1zaWcxLmg6WzowLTldKiB3YXJuaW5nOiB0aGUgbWFuZ2xlZCBuYW1l IFteXG5dKiBcKCdfWlpOMVhJZkxqMUVFMkZuRXZFTktVbGZFNl9jdlBGdmZFRXYnXCkgYW5k ICctZmFiaS12ZXJzaW9uPTE4JyBcKCdfWlpOMVhJZkxqMUVFMkZuRXZFTktVbGZFMV9jdlBG dmZFRXYnXCkgW15cbl0qXG59IH0KKy8vIHsgZGctcmVnZXhwIHtbXlxuXSpsYW1iZGEtc2ln MS5oOls6MC05XSogd2FybmluZzogdGhlIG1hbmdsZWQgbmFtZSBbXlxuXSogXCgnX1paTjFY SWZMajFFRTJGbkV2RU5VbGZFNl80X0ZVTkVmJ1wpIGFuZCAnLWZhYmktdmVyc2lvbj0xOCcg XCgnX1paTjFYSWZMajFFRTJGbkV2RU5VbGZFMV80X0ZVTkVmJ1wpIFteXG5dKlxufSB9Cisv LyB7IGRnLXJlZ2V4cCB7W15cbl0qbGFtYmRhLXNpZzEuaDpbOjAtOV0qIHdhcm5pbmc6IHRo ZSBtYW5nbGVkIG5hbWUgW15cbl0qIFwoJ19aWk4xWElmTGoxRUUyRm5FdkVOS1VsZkU2X2Ns RWYnXCkgYW5kICctZmFiaS12ZXJzaW9uPTE4JyBcKCdfWlpOMVhJZkxqMUVFMkZuRXZFTktV bGZFMV9jbEVmJ1wpIFteXG5dKlxufSB9CisvLyB7IGRnLXJlZ2V4cCB7W15cbl0qbGFtYmRh LXNpZzEuaDpbOjAtOV0qIHdhcm5pbmc6IHRoZSBtYW5nbGVkIG5hbWUgW15cbl0qIFwoJ19a Wk4xWElmTGoxRUUyRm5FdkVOS1VsZlRfRTRfY2xJaUVFRGFmUzFfJ1wpIGFuZCAnLWZhYmkt dmVyc2lvbj0xOCcgXCgnX1paTjFYSWZMajFFRTJGbkV2RU5LVWxUeWZUX0UwX2NsSWlFRURh ZlMxXydcKSBbXlxuXSpcbn0gfQorLy8geyBkZy1yZWdleHAge1teXG5dKmxhbWJkYS1zaWcx Lmg6WzowLTldKiB3YXJuaW5nOiB0aGUgbWFuZ2xlZCBuYW1lIFteXG5dKiBcKCdfWlpOMVhJ ZkxqMUVFMkZuRXZFTktVbFRfRTJfY2xJaUVFRGFTMV8nXCkgYW5kICctZmFiaS12ZXJzaW9u PTE4JyBcKCdfWlpOMVhJZkxqMUVFMkZuRXZFTktVbFR5VF9FMF9jbElpRUVEYVMxXydcKSBb XlxuXSpcbn0gfQorLy8geyBkZy1yZWdleHAge1teXG5dKmxhbWJkYS1zaWcxLmg6WzowLTld KiB3YXJuaW5nOiB0aGUgbWFuZ2xlZCBuYW1lIFteXG5dKiBcKCdfWlpOMVhJZkxqMUVFMkZu RXZFTktVbGZFM19jdlBGdmZFRXYnXCkgYW5kICctZmFiaS12ZXJzaW9uPTE4JyBcKCdfWlpO MVhJZkxqMUVFMkZuRXZFTktVbGZFMF9jdlBGdmZFRXYnXCkgW15cbl0qXG59IH0KKy8vIHsg ZGctcmVnZXhwIHtbXlxuXSpsYW1iZGEtc2lnMS5oOls6MC05XSogd2FybmluZzogdGhlIG1h bmdsZWQgbmFtZSBbXlxuXSogXCgnX1paTjFYSWZMajFFRTJGbkV2RU5VbGZFM180X0ZVTkVm J1wpIGFuZCAnLWZhYmktdmVyc2lvbj0xOCcgXCgnX1paTjFYSWZMajFFRTJGbkV2RU5VbGZF MF80X0ZVTkVmJ1wpIFteXG5dKlxufSB9CisvLyB7IGRnLXJlZ2V4cCB7W15cbl0qbGFtYmRh LXNpZzEuaDpbOjAtOV0qIHdhcm5pbmc6IHRoZSBtYW5nbGVkIG5hbWUgW15cbl0qIFwoJ19a Wk4xWElmTGoxRUUyRm5FdkVOS1VsZkUzX2NsRWYnXCkgYW5kICctZmFiaS12ZXJzaW9uPTE4 JyBcKCdfWlpOMVhJZkxqMUVFMkZuRXZFTktVbGZFMF9jbEVmJ1wpIFteXG5dKlxufSB9Cisv LyB7IGRnLXJlZ2V4cCB7W15cbl0qbGFtYmRhLXNpZzEuaDpbOjAtOV0qIHdhcm5pbmc6IHRo ZSBtYW5nbGVkIG5hbWUgW15cbl0qIFwoJ19aWk4xWElmTGoxRUUyRm5FdkVOS1VsZlRfRTFf Y2xJaUVFRGFmUzFfJ1wpIGFuZCAnLWZhYmktdmVyc2lvbj0xOCcgXCgnX1paTjFYSWZMajFF RTJGbkV2RU5LVWxUeWZUX0VfY2xJaUVFRGFmUzFfJ1wpIFteXG5dKlxufSB9CisvLyB7IGRn LXJlZ2V4cCB7W15cbl0qbGFtYmRhLXNpZzEuaDpbOjAtOV0qIHdhcm5pbmc6IHRoZSBtYW5n bGVkIG5hbWUgW15cbl0qIFwoJ19aWk4xWElmTGoxRUUyRm5FdkVOS1VsVF9FX2NsSWlFRURh UzFfJ1wpIGFuZCAnLWZhYmktdmVyc2lvbj0xOCcgXCgnX1paTjFYSWZMajFFRTJGbkV2RU5L VWxUeVRfRV9jbElpRUVEYVMxXydcKSBbXlxuXSpcbn0gfQorLy8geyBkZy1yZWdleHAge1te XG5dKmxhbWJkYS1zaWcxLmg6WzowLTldKiB3YXJuaW5nOiB0aGUgbWFuZ2xlZCBuYW1lIFte XG5dKiBcKCdfWlpOMVhJZkxqMUVFMkZuRXZFTktVbGZFMF9jdlBGdmZFRXYnXCkgYW5kICct ZmFiaS12ZXJzaW9uPTE4JyBcKCdfWlpOMVhJZkxqMUVFMkZuRXZFTktVbGZFX2N2UEZ2ZkVF didcKSBbXlxuXSpcbn0gfQorLy8geyBkZy1yZWdleHAge1teXG5dKmxhbWJkYS1zaWcxLmg6 WzowLTldKiB3YXJuaW5nOiB0aGUgbWFuZ2xlZCBuYW1lIFteXG5dKiBcKCdfWlpOMVhJZkxq MUVFMkZuRXZFTlVsZkUwXzRfRlVORWYnXCkgYW5kICctZmFiaS12ZXJzaW9uPTE4JyBcKCdf WlpOMVhJZkxqMUVFMkZuRXZFTlVsZkVfNF9GVU5FZidcKSBbXlxuXSpcbn0gfQorLy8geyBk Zy1yZWdleHAge1teXG5dKmxhbWJkYS1zaWcxLmg6WzowLTldKiB3YXJuaW5nOiB0aGUgbWFu Z2xlZCBuYW1lIFteXG5dKiBcKCdfWlpOMVhJZkxqMUVFMkZuRXZFTktVbGZFMF9jbEVmJ1wp IGFuZCAnLWZhYmktdmVyc2lvbj0xOCcgXCgnX1paTjFYSWZMajFFRTJGbkV2RU5LVWxmRV9j bEVmJ1wpIFteXG5dKlxufSB9CisvLyB7IGRnLXJlZ2V4cCB7W15cbl0qbGFtYmRhLXNpZzEu aDpbOjAtOV0qIHdhcm5pbmc6IHRoZSBtYW5nbGVkIG5hbWUgW15cbl0qIFwoJ19aWk4xWElm TGowRUUyRm5FdkVOS1VsZlRfRTRfY2xJaUVFRGFmUzFfJ1wpIGFuZCAnLWZhYmktdmVyc2lv bj0xOCcgXCgnX1paTjFYSWZMajBFRTJGbkV2RU5LVWxUeWZUX0UwX2NsSWlFRURhZlMxXydc KSBbXlxuXSpcbn0gfQorLy8geyBkZy1yZWdleHAge1teXG5dKmxhbWJkYS1zaWcxLmg6Wzow LTldKiB3YXJuaW5nOiB0aGUgbWFuZ2xlZCBuYW1lIFteXG5dKiBcKCdfWlpOMVhJZkxqMEVF MkZuRXZFTktVbFRfRTJfY2xJaUVFRGFTMV8nXCkgYW5kICctZmFiaS12ZXJzaW9uPTE4JyBc KCdfWlpOMVhJZkxqMEVFMkZuRXZFTktVbFR5VF9FMF9jbElpRUVEYVMxXydcKSBbXlxuXSpc bn0gfQorLy8geyBkZy1yZWdleHAge1teXG5dKmxhbWJkYS1zaWcxLmg6WzowLTldKiB3YXJu aW5nOiB0aGUgbWFuZ2xlZCBuYW1lIFteXG5dKiBcKCdfWlpOMVhJZkxqMEVFMkZuRXZFTktV bGZFM19jdlBGdmZFRXYnXCkgYW5kICctZmFiaS12ZXJzaW9uPTE4JyBcKCdfWlpOMVhJZkxq MEVFMkZuRXZFTktVbGZFMF9jdlBGdmZFRXYnXCkgW15cbl0qXG59IH0KKy8vIHsgZGctcmVn ZXhwIHtbXlxuXSpsYW1iZGEtc2lnMS5oOls6MC05XSogd2FybmluZzogdGhlIG1hbmdsZWQg bmFtZSBbXlxuXSogXCgnX1paTjFYSWZMajBFRTJGbkV2RU5VbGZFM180X0ZVTkVmJ1wpIGFu ZCAnLWZhYmktdmVyc2lvbj0xOCcgXCgnX1paTjFYSWZMajBFRTJGbkV2RU5VbGZFMF80X0ZV TkVmJ1wpIFteXG5dKlxufSB9CisvLyB7IGRnLXJlZ2V4cCB7W15cbl0qbGFtYmRhLXNpZzEu aDpbOjAtOV0qIHdhcm5pbmc6IHRoZSBtYW5nbGVkIG5hbWUgW15cbl0qIFwoJ19aWk4xWElm TGowRUUyRm5FdkVOS1VsZkUzX2NsRWYnXCkgYW5kICctZmFiaS12ZXJzaW9uPTE4JyBcKCdf WlpOMVhJZkxqMEVFMkZuRXZFTktVbGZFMF9jbEVmJ1wpIFteXG5dKlxufSB9CisvLyB7IGRn LXJlZ2V4cCB7W15cbl0qbGFtYmRhLXNpZzEuaDpbOjAtOV0qIHdhcm5pbmc6IHRoZSBtYW5n bGVkIG5hbWUgW15cbl0qIFwoJ19aWk4xWElmTGowRUUyRm5FdkVOS1VsZlRfRTFfY2xJaUVF RGFmUzFfJ1wpIGFuZCAnLWZhYmktdmVyc2lvbj0xOCcgXCgnX1paTjFYSWZMajBFRTJGbkV2 RU5LVWxUeWZUX0VfY2xJaUVFRGFmUzFfJ1wpIFteXG5dKlxufSB9CisvLyB7IGRnLXJlZ2V4 cCB7W15cbl0qbGFtYmRhLXNpZzEuaDpbOjAtOV0qIHdhcm5pbmc6IHRoZSBtYW5nbGVkIG5h bWUgW15cbl0qIFwoJ19aWk4xWElmTGowRUUyRm5FdkVOS1VsVF9FX2NsSWlFRURhUzFfJ1wp IGFuZCAnLWZhYmktdmVyc2lvbj0xOCcgXCgnX1paTjFYSWZMajBFRTJGbkV2RU5LVWxUeVRf RV9jbElpRUVEYVMxXydcKSBbXlxuXSpcbn0gfQorLy8geyBkZy1yZWdleHAge1teXG5dKmxh bWJkYS1zaWcxLmg6WzowLTldKiB3YXJuaW5nOiB0aGUgbWFuZ2xlZCBuYW1lIFteXG5dKiBc KCdfWlpOMVhJZkxqMEVFMkZuRXZFTktVbGZFMF9jdlBGdmZFRXYnXCkgYW5kICctZmFiaS12 ZXJzaW9uPTE4JyBcKCdfWlpOMVhJZkxqMEVFMkZuRXZFTktVbGZFX2N2UEZ2ZkVFdidcKSBb XlxuXSpcbn0gfQorLy8geyBkZy1yZWdleHAge1teXG5dKmxhbWJkYS1zaWcxLmg6WzowLTld KiB3YXJuaW5nOiB0aGUgbWFuZ2xlZCBuYW1lIFteXG5dKiBcKCdfWlpOMVhJZkxqMEVFMkZu RXZFTlVsZkUwXzRfRlVORWYnXCkgYW5kICctZmFiaS12ZXJzaW9uPTE4JyBcKCdfWlpOMVhJ ZkxqMEVFMkZuRXZFTlVsZkVfNF9GVU5FZidcKSBbXlxuXSpcbn0gfQorLy8geyBkZy1yZWdl eHAge1teXG5dKmxhbWJkYS1zaWcxLmg6WzowLTldKiB3YXJuaW5nOiB0aGUgbWFuZ2xlZCBu YW1lIFteXG5dKiBcKCdfWlpOMVhJZkxqMEVFMkZuRXZFTktVbGZFMF9jbEVmJ1wpIGFuZCAn LWZhYmktdmVyc2lvbj0xOCcgXCgnX1paTjFYSWZMajBFRTJGbkV2RU5LVWxmRV9jbEVmJ1wp IFteXG5dKlxufSB9CisvLyB7IGRnLXJlZ2V4cCB7W15cbl0qbGFtYmRhLXNpZzEuaDpbOjAt OV0qIHdhcm5pbmc6IHRoZSBtYW5nbGVkIG5hbWUgW15cbl0qIFwoJ19aWk4xWElpTGowRUUy Rm5FdkVOS1VsaVRfRTRfY2xJaUVFRGFpUzFfJ1wpIGFuZCAnLWZhYmktdmVyc2lvbj0xOCcg XCgnX1paTjFYSWlMajBFRTJGbkV2RU5LVWxUeWlUX0UwX2NsSWlFRURhaVMxXydcKSBbXlxu XSpcbn0gfQorLy8geyBkZy1yZWdleHAge1teXG5dKmxhbWJkYS1zaWcxLmg6WzowLTldKiB3 YXJuaW5nOiB0aGUgbWFuZ2xlZCBuYW1lIFteXG5dKiBcKCdfWlpOMVhJaUxqMEVFMkZuRXZF TktVbFRfRTJfY2xJaUVFRGFTMV8nXCkgYW5kICctZmFiaS12ZXJzaW9uPTE4JyBcKCdfWlpO MVhJaUxqMEVFMkZuRXZFTktVbFR5VF9FMF9jbElpRUVEYVMxXydcKSBbXlxuXSpcbn0gfQor Ly8geyBkZy1yZWdleHAge1teXG5dKmxhbWJkYS1zaWcxLmg6WzowLTldKiB3YXJuaW5nOiB0 aGUgbWFuZ2xlZCBuYW1lIFteXG5dKiBcKCdfWlpOMVhJaUxqMEVFMkZuRXZFTktVbGlFM19j dlBGdmlFRXYnXCkgYW5kICctZmFiaS12ZXJzaW9uPTE4JyBcKCdfWlpOMVhJaUxqMEVFMkZu RXZFTktVbGlFMF9jdlBGdmlFRXYnXCkgW15cbl0qXG59IH0KKy8vIHsgZGctcmVnZXhwIHtb XlxuXSpsYW1iZGEtc2lnMS5oOls6MC05XSogd2FybmluZzogdGhlIG1hbmdsZWQgbmFtZSBb XlxuXSogXCgnX1paTjFYSWlMajBFRTJGbkV2RU5VbGlFM180X0ZVTkVpJ1wpIGFuZCAnLWZh YmktdmVyc2lvbj0xOCcgXCgnX1paTjFYSWlMajBFRTJGbkV2RU5VbGlFMF80X0ZVTkVpJ1wp IFteXG5dKlxufSB9CisvLyB7IGRnLXJlZ2V4cCB7W15cbl0qbGFtYmRhLXNpZzEuaDpbOjAt OV0qIHdhcm5pbmc6IHRoZSBtYW5nbGVkIG5hbWUgW15cbl0qIFwoJ19aWk4xWElpTGowRUUy Rm5FdkVOS1VsaUUzX2NsRWknXCkgYW5kICctZmFiaS12ZXJzaW9uPTE4JyBcKCdfWlpOMVhJ aUxqMEVFMkZuRXZFTktVbGlFMF9jbEVpJ1wpIFteXG5dKlxufSB9CisvLyB7IGRnLXJlZ2V4 cCB7W15cbl0qbGFtYmRhLXNpZzEuaDpbOjAtOV0qIHdhcm5pbmc6IHRoZSBtYW5nbGVkIG5h bWUgW15cbl0qIFwoJ19aWk4xWElpTGowRUUyRm5FdkVOS1VsaVRfRTFfY2xJaUVFRGFpUzFf J1wpIGFuZCAnLWZhYmktdmVyc2lvbj0xOCcgXCgnX1paTjFYSWlMajBFRTJGbkV2RU5LVWxU eWlUX0VfY2xJaUVFRGFpUzFfJ1wpIFteXG5dKlxufSB9CisvLyB7IGRnLXJlZ2V4cCB7W15c bl0qbGFtYmRhLXNpZzEuaDpbOjAtOV0qIHdhcm5pbmc6IHRoZSBtYW5nbGVkIG5hbWUgW15c bl0qIFwoJ19aWk4xWElpTGowRUUyRm5FdkVOS1VsVF9FX2NsSWlFRURhUzFfJ1wpIGFuZCAn LWZhYmktdmVyc2lvbj0xOCcgXCgnX1paTjFYSWlMajBFRTJGbkV2RU5LVWxUeVRfRV9jbElp RUVEYVMxXydcKSBbXlxuXSpcbn0gfQorLy8geyBkZy1yZWdleHAge1teXG5dKmxhbWJkYS1z aWcxLmg6WzowLTldKiB3YXJuaW5nOiB0aGUgbWFuZ2xlZCBuYW1lIFteXG5dKiBcKCdfWlpO MVhJaUxqMEVFMkZuRXZFTktVbGlFMF9jdlBGdmlFRXYnXCkgYW5kICctZmFiaS12ZXJzaW9u PTE4JyBcKCdfWlpOMVhJaUxqMEVFMkZuRXZFTktVbGlFX2N2UEZ2aUVFdidcKSBbXlxuXSpc bn0gfQorLy8geyBkZy1yZWdleHAge1teXG5dKmxhbWJkYS1zaWcxLmg6WzowLTldKiB3YXJu aW5nOiB0aGUgbWFuZ2xlZCBuYW1lIFteXG5dKiBcKCdfWlpOMVhJaUxqMEVFMkZuRXZFTlVs aUUwXzRfRlVORWknXCkgYW5kICctZmFiaS12ZXJzaW9uPTE4JyBcKCdfWlpOMVhJaUxqMEVF MkZuRXZFTlVsaUVfNF9GVU5FaSdcKSBbXlxuXSpcbn0gfQorLy8geyBkZy1yZWdleHAge1te XG5dKmxhbWJkYS1zaWcxLmg6WzowLTldKiB3YXJuaW5nOiB0aGUgbWFuZ2xlZCBuYW1lIFte XG5dKiBcKCdfWlpOMVhJaUxqMEVFMkZuRXZFTktVbGlFMF9jbEVpJ1wpIGFuZCAnLWZhYmkt dmVyc2lvbj0xOCcgXCgnX1paTjFYSWlMajBFRTJGbkV2RU5LVWxpRV9jbEVpJ1wpIFteXG5d KlxufSB9CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2crKy5kZy9jcHAxeS9sYW1iZGEt bWFuZ2xlLTEtMTguQyBiL2djYy90ZXN0c3VpdGUvZysrLmRnL2NwcDF5L2xhbWJkYS1tYW5n bGUtMS0xOC5DCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yMmFk MTVlYTMzYwotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZysrLmRnL2NwcDF5 L2xhbWJkYS1tYW5nbGUtMS0xOC5DCkBAIC0wLDAgKzEsMjYgQEAKKy8vIHsgZGctZG8gY29t cGlsZSB7IHRhcmdldCBjKysxNCB9IH0KKy8vIHsgZGctYWRkaXRpb25hbC1vcHRpb25zIC1m YWJpLXZlcnNpb249MTggfQorCisvLyBQUnMgNzg2MjEKKworI2luY2x1ZGUgImxhbWJkYS1t YW5nbGUtMS5oIgorCisvLyBXZSBlcnJvbmVvdXNseSBtYW5nbGVkIGxhbWJkYSBhdXRvIHBh cm1zIGFzLWlmIHRlbXBsYXRlIHBhcmFtZXRlcnMgKFQ8bj5fKSwKKy8vIHJhdGhlciB0aGFu IGF1dG8gKERhKS4gRml4ZWQgaW4gYWJpIHZlcnNpb24gMTEKKworLy8gQUJJIDE4IHVzZXMg cGVyLXNjb3BlIHBlci1zaWduYXR1cmUgbGFtYmRhIGRpc2NyaW1pbmF0b3IKKworLy8geyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJfWjdmb3J3YXJkSVozRm9vdkVVbFJUX0VfRU9T MF9TMV86IiB9IH0KKy8vIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAiX1o3Zm9yd2Fy ZElaM0Zvb3ZFVWxSaVJUX0VfRU9TMV9TMl86IiB9IH0KKy8vIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlciAiX1o3Zm9yd2FyZElaM0Zvb3ZFVWxSVF9SMVhJaUVFX0VPUzBfUzFfOiIg fSB9CisvLyB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgIl9aN2ZvcndhcmRJWjNGb292 RVVsUEE1X1RfRV9FT1MwX1JTMF86IiB9IH0KKy8vIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt YmxlciAiX1ozZWF0SVozRm9vdkVVbFJUX0VfRXZTMV86IiB9IH0KKy8vIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlciAiX1ozZWF0SVozRm9vdkVVbFJpUlRfRV9FdlMyXzoiIH0gfQor Ly8geyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJfWjNlYXRJWjNGb292RVVsUlRfUjFY SWlFRV9FdlMxXzoiIH0gfQorLy8geyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJfWjNl YXRJWjNGb292RVVsUEE1X1RfRV9FdlJTMF86IiB9IH0KKy8vIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlciAiX1ozZWF0SVBpWjNGb292RVVsUGZTMV9FX0V2UlRfUlQwXzoiIH0gfQor Ly8geyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJfWjNlYXRJUGlaM0Zvb3ZFVWxQVF9Q VDBfRV9FdlJTMV9SUzNfOiIgfSB9CisvLyB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIg Il9aM2VhdElaM0Zvb3ZFVWxQVF9QVDBfRV9aM0Zvb3ZFVWxTMV9TM19FMF9FdlJTMF9SUzJf OiIgfSB9CisvLyB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgIl9aM2VhdElQaVozQmFy SXNFdnZFVWxQc1BmUzNfRV9FdlJUX1JUMF86IiB9IH0KKy8vIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlciAiX1ozZWF0SVBpWjNCYXJJc0V2dkVVbFBzUFRfUFQwX0VfRXZSUzNfUlM1 XzoiIH0gfQorLy8geyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJfWjNlYXRJUGlaM0Jh cklzRXZ2RVVsUHNEcFBUX0VfRXZSVF9SVDBfOiIgfSB9CmRpZmYgLS1naXQgYS9saWJjYzEv bGliY3AxcGx1Z2luLmNjIGIvbGliY2MxL2xpYmNwMXBsdWdpbi5jYwppbmRleCBiMGYwY2I5 NjYyNi4uZTIzMmFhY2VlZjkgMTAwNjQ0Ci0tLSBhL2xpYmNjMS9saWJjcDFwbHVnaW4uY2MK KysrIGIvbGliY2MxL2xpYmNwMXBsdWdpbi5jYwpAQCAtMTY1Niw2ICsxNjU2LDcgQEAgcGx1 Z2luX3N0YXJ0X2Nsb3N1cmVfY2xhc3NfdHlwZSAoY2MxX3BsdWdpbjo6Y29ubmVjdGlvbiAq c2VsZiwKICAgLyogSW5zdGVhZCBvZiBjYWxsaW5nIHJlY29yZF9sYW1iZGFfc2NvcGUsIGRv IHRoaXM6ICAqLwogICBMQU1CREFfRVhQUl9FWFRSQV9TQ09QRSAobGFtYmRhX2V4cHIpID0g ZXh0cmFfc2NvcGU7CiAgIExBTUJEQV9FWFBSX1NDT1BFX09OTFlfRElTQ1JJTUlOQVRPUiAo bGFtYmRhX2V4cHIpID0gZGlzY3JpbWluYXRvcjsKKyAgTEFNQkRBX0VYUFJfU0NPUEVfU0lH X0RJU0NSSU1JTkFUT1IgKGxhbWJkYV9leHByKSA9IGRpc2NyaW1pbmF0b3I7CiAKICAgdHJl ZSBkZWNsID0gVFlQRV9OQU1FICh0eXBlKTsKICAgZGV0ZXJtaW5lX3Zpc2liaWxpdHkgKGRl Y2wpOwotLSAKMi4zOC4xCgo= --------------r550viVo5K0TdQGnBOz3sVJJ--