From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16578 invoked by alias); 18 Jan 2019 04:04:17 -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 16489 invoked by uid 89); 18 Jan 2019 04:04:15 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: mail-lj1-f171.google.com Received: from mail-lj1-f171.google.com (HELO mail-lj1-f171.google.com) (209.85.208.171) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 18 Jan 2019 04:04:13 +0000 Received: by mail-lj1-f171.google.com with SMTP id k19-v6so10432826lji.11 for ; Thu, 17 Jan 2019 20:04:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:from:date:message-id:subject:to:cc; bh=u12QNmDCDWTCqD6mdxpW6m1vQG+T2YqvhI38u9TqT9g=; b=e7zUV5v7l8sZ0NtiLxu6w4dJJHT9PHZKQcAFgB8GhS9Jdr4KYngW8mAm7YToaS3tWR oNsdW6xJiM5+84UQkbUJ8A1jBzhrosAuoAMwWvZI4PGxHfkc3h7xtB9sVh/MpTPeBhVt HWktkP5yNmaBBFFFI7Ea+7HlNe7Q66MRLRNUg= MIME-Version: 1.0 From: Kugan Vivekanandarajah Date: Fri, 18 Jan 2019 04:04:00 -0000 Message-ID: Subject: [SVE ACLE] Implements svdot To: GCC Patches Cc: richard.sandiford@arm.com, Prathamesh Kulkarni Content-Type: multipart/mixed; boundary="00000000000077adb0057fb39ae9" X-IsSubscribed: yes X-SW-Source: 2019-01/txt/msg01047.txt.bz2 --00000000000077adb0057fb39ae9 Content-Type: text/plain; charset="UTF-8" Content-length: 106 I committed the following patch which implements svdot to aarch64/sve-acle-branch. branch Thanks, Kugan --00000000000077adb0057fb39ae9 Content-Type: application/x-patch; name="0001-SVE-ACLE-Implements-svdot.patch" Content-Disposition: attachment; filename="0001-SVE-ACLE-Implements-svdot.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jr1ifcf30 Content-length: 43123 RnJvbSBiNzVjZDhiYThmOTExYzEzNzM4MDY3N2I4NTg4MmMyMmE2NDY3YmY2 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLdWdhbiBWaXZla2Fu YW5kYXJhamFoIDxrdWdhbi52aXZla2FuYW5kYXJhamFoQGxpbmFyby5vcmc+ CkRhdGU6IEZyaSwgMTggSmFuIDIwMTkgMDk6MDc6MTAgKzExMDAKU3ViamVj dDogW1BBVENIXSBbU1ZFIEFDTEVdIEltcGxlbWVudHMgc3Zkb3QKCkNoYW5n ZS1JZDogSTlkOWY3N2Y4MTRhNjJlMDNkYjJjY2Q3NDlmNDFiZDM1ZmVhMTYw MzUKLS0tCiBnY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC1zdmUtYnVpbHRp bnMuYyAgICAgICAgICB8IDE0OCArKysrKysrKysrKysrKysrKysrKysKIGdj Yy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LXN2ZS1idWlsdGlucy5kZWYgICAg ICAgIHwgICAxICsKIGdjYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LXN2ZS5t ZCAgICAgICAgICAgICAgICAgIHwgIDE0ICsrCiBnY2MvY29uZmlnL2FhcmNo NjQvaXRlcmF0b3JzLm1kICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQog Li4uL2FhcmNoNjQvc3ZlLWFjbGUvZ2VuZXJhbC1jKysvZG90XzEuQyAgICAg ICAgICAgfCAgIDkgKysKIC4uLi9hYXJjaDY0L3N2ZS1hY2xlL2dlbmVyYWwt YysrL2RvdF8yLkMgICAgICAgICAgIHwgIDE3ICsrKwogLi4uL2djYy50YXJn ZXQvYWFyY2g2NC9zdmUtYWNsZS9hc20vZG90X3MzMi5jICAgICAgfCAxMTEg KysrKysrKysrKysrKysrKwogLi4uL2djYy50YXJnZXQvYWFyY2g2NC9zdmUt YWNsZS9hc20vZG90X3M2NC5jICAgICAgfCAxMTEgKysrKysrKysrKysrKysr KwogLi4uL2djYy50YXJnZXQvYWFyY2g2NC9zdmUtYWNsZS9hc20vZG90X3Uz Mi5jICAgICAgfCAxMTEgKysrKysrKysrKysrKysrKwogLi4uL2djYy50YXJn ZXQvYWFyY2g2NC9zdmUtYWNsZS9hc20vZG90X3U2NC5jICAgICAgfCAxMTEg KysrKysrKysrKysrKysrKwogLi4uL2FhcmNoNjQvc3ZlLWFjbGUvYXNtL3Rl c3Rfc3ZlX2FjbGUuaCAgICAgICAgICAgfCAgNDggKysrKysrKwogLi4uL2dj Yy50YXJnZXQvYWFyY2g2NC9zdmUtYWNsZS9nZW5lcmFsLWMvZG90XzEuYyAg fCAgMTMgKysKIC4uLi9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlLWFjbGUvZ2Vu ZXJhbC1jL2RvdF8yLmMgIHwgIDE1ICsrKwogMTMgZmlsZXMgY2hhbmdlZCwg NzE0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBnY2MvdGVzdHN1aXRlL2crKy50YXJnZXQvYWFyY2g2NC9zdmUt YWNsZS9nZW5lcmFsLWMrKy9kb3RfMS5DCiBjcmVhdGUgbW9kZSAxMDA2NDQg Z2NjL3Rlc3RzdWl0ZS9nKysudGFyZ2V0L2FhcmNoNjQvc3ZlLWFjbGUvZ2Vu ZXJhbC1jKysvZG90XzIuQwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS1hY2xlL2FzbS9kb3RfczMy LmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvYWFyY2g2NC9zdmUtYWNsZS9hc20vZG90X3M2NC5jCiBjcmVhdGUgbW9k ZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3Zl LWFjbGUvYXNtL2RvdF91MzIuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS1hY2xlL2FzbS9kb3Rf dTY0LmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvYWFyY2g2NC9zdmUtYWNsZS9nZW5lcmFsLWMvZG90XzEuYwogY3Jl YXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJj aDY0L3N2ZS1hY2xlL2dlbmVyYWwtYy9kb3RfMi5jCgpkaWZmIC0tZ2l0IGEv Z2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtc3ZlLWJ1aWx0aW5zLmMgYi9n Y2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC1zdmUtYnVpbHRpbnMuYwppbmRl eCAzNWVkNTMxLi5mMDgwYTY3IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2Fh cmNoNjQvYWFyY2g2NC1zdmUtYnVpbHRpbnMuYworKysgYi9nY2MvY29uZmln L2FhcmNoNjQvYWFyY2g2NC1zdmUtYnVpbHRpbnMuYwpAQCAtMTE1LDYgKzEx NSwxMCBAQCBlbnVtIGZ1bmN0aW9uX3NoYXBlIHsKICAgICAgc3Y8dDA+X3Qg c3Zmb29bX25fdDBdKHN2PHQwPl90LCBzdjx0MD5fdCwgPHQwPl90KS4gICov CiAgIFNIQVBFX3Rlcm5hcnlfb3B0X24sCiAKKyAgLyogc3Y8dDA+X3Qgc3Zm b29bX3QwXShzdjx0MD5fdCwgc3Y8dDAucXVhcnRlcj5fdCwgc3Y8dDAucXVh cnRlcj5fdCkKKyAgICAgc3Y8dDA+X3Qgc3Zmb29bX25fdDBdKHN2PHQwPl90 LCBzdjx0MC5xdWFydGVyPl90LCA8dDAucXVhcnRlcj5fdCkuICAqLworICBT SEFQRV90ZXJuYXJ5X3FxX29wdF9uLAorCiAgIC8qIHN2PHQwPl90IHN2Zm9v W19uX3QwXSkoc3Y8dDA+X3QsIHVpbnQ2NF90KQogCiAgICAgIFRoZSBmaW5h bCBhcmd1bWVudCBtdXN0IGJlIGFuIGludGVnZXIgY29uc3RhbnQgZXhwcmVz c2lvbiBpbiB0aGUKQEAgLTE2MSw2ICsxNjUsNyBAQCBlbnVtIGZ1bmN0aW9u IHsKICAgRlVOQ19zdmFzcmQsCiAgIEZVTkNfc3ZkaXYsCiAgIEZVTkNfc3Zk aXZyLAorICBGVU5DX3N2ZG90LAogICBGVU5DX3N2ZHVwLAogICBGVU5DX3N2 ZW9yLAogICBGVU5DX3N2aW5kZXgsCkBAIC0yNjEsNiArMjY2LDggQEAgc3Ry dWN0IEdUWSgoKSkgZnVuY3Rpb25faW5zdGFuY2UgewogCiAgIHRyZWUgc2Nh bGFyX3R5cGUgKHVuc2lnbmVkIGludCkgY29uc3Q7CiAgIHRyZWUgdmVjdG9y X3R5cGUgKHVuc2lnbmVkIGludCkgY29uc3Q7CisgIHRyZWUgcXVhcnRlcl92 ZWN0b3JfdHlwZSAodW5zaWduZWQgaW50IGkpIGNvbnN0OworICB0cmVlIHF1 YXJ0ZXJfc2NhbGFyX3R5cGUgKHVuc2lnbmVkIGludCBpKSBjb25zdDsKIAog ICAvKiBUaGUgZXhwbGljaXQgImVudW0icyBhcmUgcmVxdWlyZWQgZm9yIGdl bmd0eXBlLiAgKi8KICAgZW51bSBncm91cF9pZCBncm91cDsKQEAgLTMyMSw3 ICszMjgsOSBAQCBwcml2YXRlOgogICB2b2lkIHNpZ18wMDAgKGNvbnN0IGZ1 bmN0aW9uX2luc3RhbmNlICYsIHZlYzx0cmVlPiAmKTsKICAgdm9pZCBzaWdf bl8wMDAgKGNvbnN0IGZ1bmN0aW9uX2luc3RhbmNlICYsIHZlYzx0cmVlPiAm KTsKICAgdm9pZCBzaWdfMDAwMCAoY29uc3QgZnVuY3Rpb25faW5zdGFuY2Ug JiwgdmVjPHRyZWU+ICYpOworICB2b2lkIHNpZ19xcV8wMDAwIChjb25zdCBm dW5jdGlvbl9pbnN0YW5jZSAmLCB2ZWM8dHJlZT4gJik7CiAgIHZvaWQgc2ln X25fMDAwMCAoY29uc3QgZnVuY3Rpb25faW5zdGFuY2UgJiwgdmVjPHRyZWU+ ICYpOworICB2b2lkIHNpZ19xcV9uXzAwMDAgKGNvbnN0IGZ1bmN0aW9uX2lu c3RhbmNlICYsIHZlYzx0cmVlPiAmKTsKICAgdm9pZCBzaWdfbl8wMGkgKGNv bnN0IGZ1bmN0aW9uX2luc3RhbmNlICYsIHZlYzx0cmVlPiAmKTsKIAogICB2 b2lkIGFwcGx5X3ByZWRpY2F0aW9uIChjb25zdCBmdW5jdGlvbl9pbnN0YW5j ZSAmLCB2ZWM8dHJlZT4gJik7CkBAIC0zNjEsNiArMzcwLDcgQEAgcHVibGlj OgogCiBwcml2YXRlOgogICB0cmVlIHJlc29sdmVfdW5pZm9ybSAodW5zaWdu ZWQgaW50KTsKKyAgdHJlZSByZXNvbHZlX2RvdCAoKTsKICAgdHJlZSByZXNv bHZlX3VuaWZvcm1faW1tICh1bnNpZ25lZCBpbnQsIHVuc2lnbmVkIGludCk7 CiAKICAgYm9vbCBjaGVja19maXJzdF92ZWN0b3JfYXJndW1lbnQgKHVuc2ln bmVkIGludCwgdW5zaWduZWQgaW50ICYsCkBAIC00NTksNiArNDY5LDcgQEAg cHJpdmF0ZToKICAgcnR4IGV4cGFuZF9hbmQgKCk7CiAgIHJ0eCBleHBhbmRf YXNyZCAoKTsKICAgcnR4IGV4cGFuZF9kaXYgKGJvb2wpOworICBydHggZXhw YW5kX2RvdCAoKTsKICAgcnR4IGV4cGFuZF9kdXAgKCk7CiAgIHJ0eCBleHBh bmRfZW9yICgpOwogICBydHggZXhwYW5kX2luZGV4ICgpOwpAQCAtNjE4LDYg KzYyOSw3IEBAIERFRl9TVkVfVFlQRVNfQVJSQVkgKGFsbF9pbnRlZ2VyKTsK IERFRl9TVkVfVFlQRVNfQVJSQVkgKGFsbF9kYXRhKTsKIERFRl9TVkVfVFlQ RVNfQVJSQVkgKGFsbF9zZGlfYW5kX2Zsb2F0KTsKIERFRl9TVkVfVFlQRVNf QVJSQVkgKGFsbF9zaWduZWRfYW5kX2Zsb2F0KTsKK0RFRl9TVkVfVFlQRVNf QVJSQVkgKHNkaSk7CiAKIC8qIFVzZWQgYnkgZnVuY3Rpb25zIGluIGFhcmNo NjQtc3ZlLWJ1aWx0aW5zLmRlZiB0aGF0IGhhdmUgbm8gZ292ZXJuaW5nCiAg ICBwcmVkaWNhdGUuICAqLwpAQCAtNjY4LDYgKzY4MCw0MyBAQCBmaW5kX3Zl Y3Rvcl90eXBlIChjb25zdF90cmVlIHR5cGUpCiAgIHJldHVybiBOVU1fVkVD VE9SX1RZUEVTOwogfQogCisvKiBSZXR1cm4gdGhlIHR5cGUgc3VmZml4IGFz c29jaWF0ZWQgd2l0aCBpbnRlZ2VyIGVsZW1lbnRzIHRoYXQgaGF2ZQorICAg RUxFTV9CSVRTIGJpdHMgYW5kIHRoZSBzaWduZWRuZXNzIGdpdmVuIGJ5IFVO U0lHTkVEX1AuICBSZXR1cm4KKyAgIE5VTV9UWVBFX1NVRkZJWEVTIGlmIG5v IHN1Y2ggZWxlbWVudCBleGlzdHMuICAqLworc3RhdGljIHR5cGVfc3VmZml4 CittYXliZV9maW5kX2ludGVnZXJfdHlwZV9zdWZmaXggKGJvb2wgdW5zaWdu ZWRfcCwgdW5zaWduZWQgaW50IGVsZW1fYml0cykKK3sKKyAgZm9yICh1bnNp Z25lZCBpbnQgaSA9IDA7IGkgPCBOVU1fVFlQRV9TVUZGSVhFUzsgKytpKQor ICAgIHsKKyAgICAgIGlmICh0eXBlX3N1ZmZpeGVzW2ldLmludGVnZXJfcAor CSAgJiYgdHlwZV9zdWZmaXhlc1tpXS51bnNpZ25lZF9wID09IHVuc2lnbmVk X3AKKwkgICYmIHR5cGVfc3VmZml4ZXNbaV0uZWxlbV9iaXRzID09IGVsZW1f Yml0cykKKwlyZXR1cm4gdHlwZV9zdWZmaXggKGkpOworICAgIH0KKyAgcmV0 dXJuIE5VTV9UWVBFX1NVRkZJWEVTOworfQorCisvKiBSZXR1cm4gdGhlIHR5 cGUgc3VmZml4IGZvciBlbGVtZW50cyB0aGF0IGFyZSBhIHF1YXJ0ZXIgdGhl IHNpemUgb2YgaW50ZWdlcgorICAgdHlwZSBzdWZmaXggVFlQRS4gIFJldHVy biBOVU1fVFlQRV9TVUZGSVhFUyBpZiBubyBzdWNoIGVsZW1lbnQgZXhpc3Rz LiAgKi8KK3N0YXRpYyB0eXBlX3N1ZmZpeAorbWF5YmVfZmluZF9xdWFydGVy X3R5cGVfc3VmZml4ICh0eXBlX3N1ZmZpeCB0eXBlKQoreworICByZXR1cm4g bWF5YmVfZmluZF9pbnRlZ2VyX3R5cGVfc3VmZml4ICh0eXBlX3N1ZmZpeGVz W3R5cGVdLnVuc2lnbmVkX3AsCisJCQkJICAgdHlwZV9zdWZmaXhlc1t0eXBl XS5lbGVtX2JpdHMgLyA0KTsKK30KKworLyogU2FtZSBhcyBtYXliZV9maW5k X3F1YXJ0ZXJfdHlwZV9zdWZmaXggYnV0IGFzc2VydHMgaWYgbm8gc3VjaCBl bGVtZW50CisgICBleGlzdHMuICAqLworc3RhdGljIHR5cGVfc3VmZml4Citm aW5kX3F1YXJ0ZXJfdHlwZV9zdWZmaXggKHR5cGVfc3VmZml4IHR5cGUpCit7 CisgIHR5cGVfc3VmZml4IHJldAorICAgID0gbWF5YmVfZmluZF9pbnRlZ2Vy X3R5cGVfc3VmZml4ICh0eXBlX3N1ZmZpeGVzW3R5cGVdLnVuc2lnbmVkX3As CisJCQkJICAgICAgdHlwZV9zdWZmaXhlc1t0eXBlXS5lbGVtX2JpdHMgLyA0 KTsKKyAgZ2NjX2Fzc2VydCAocmV0ICE9IE5VTV9UWVBFX1NVRkZJWEVTKTsK KyAgcmV0dXJuIHJldDsKK30KKwogLyogUmVwb3J0IHRoYXQgTE9DQVRJT04g aGFzIGEgY2FsbCB0byBERUNMIGluIHdoaWNoIGFyZ3VtZW50IEFSR05PCiAg ICB3YXMgbm90IGFuIGludGVnZXIgY29uc3RhbnQgZXhwcmVzc2lvbi4gICov CiBzdGF0aWMgdm9pZApAQCAtNzQyLDYgKzc5MSwyMiBAQCBmdW5jdGlvbl9p bnN0YW5jZTo6dmVjdG9yX3R5cGUgKHVuc2lnbmVkIGludCBpKSBjb25zdAog ICByZXR1cm4gYWNsZV92ZWN0b3JfdHlwZXNbdHlwZV9zdWZmaXhlc1t0eXBl c1tpXV0udHlwZV07CiB9CiAKKy8qIFJldHVybiB0aGUgcXVhcnRlciBzaXpl IHZlY3RvciB0eXBlIGFzc29jaWF0ZWQgd2l0aCB0eXBlIHN1ZmZpeCBJLiAg Ki8KK3RyZWUKK2Z1bmN0aW9uX2luc3RhbmNlOjpxdWFydGVyX3ZlY3Rvcl90 eXBlICh1bnNpZ25lZCBpbnQgaSkgY29uc3QKK3sKKyAgdHlwZV9zdWZmaXgg cXVhcnRlcl90eXBlID0gZmluZF9xdWFydGVyX3R5cGVfc3VmZml4ICh0eXBl c1tpXSk7CisgIHJldHVybiBhY2xlX3ZlY3Rvcl90eXBlc1t0eXBlX3N1ZmZp eGVzW3F1YXJ0ZXJfdHlwZV0udHlwZV07Cit9CisKKy8qIFJldHVybiB0aGUg cXVhcnRlciBzaXplIHNjYWxhciB0eXBlIGFzc29jaWF0ZWQgd2l0aCB0eXBl IHN1ZmZpeCBJLiAgKi8KK3RyZWUKK2Z1bmN0aW9uX2luc3RhbmNlOjpxdWFy dGVyX3NjYWxhcl90eXBlICh1bnNpZ25lZCBpbnQgaSkgY29uc3QKK3sKKyAg dHlwZV9zdWZmaXggcXVhcnRlcl90eXBlID0gZmluZF9xdWFydGVyX3R5cGVf c3VmZml4ICh0eXBlc1tpXSk7CisgIHJldHVybiBzY2FsYXJfdHlwZXNbdHlw ZV9zdWZmaXhlc1txdWFydGVyX3R5cGVdLnR5cGVdOworfQorCiBpbmxpbmUg aGFzaHZhbF90CiByZWdpc3RlcmVkX2Z1bmN0aW9uX2hhc2hlcjo6aGFzaCAo dmFsdWVfdHlwZSB2YWx1ZSkKIHsKQEAgLTgxMSw2ICs4NzYsMTIgQEAgYXJt X3N2ZV9oX2J1aWxkZXI6OmJ1aWxkIChjb25zdCBmdW5jdGlvbl9ncm91cCAm Z3JvdXApCiAgICAgICBidWlsZF9hbGwgKCZhcm1fc3ZlX2hfYnVpbGRlcjo6 c2lnX25fMDAwMCwgZ3JvdXAsIE1PREVfbik7CiAgICAgICBicmVhazsKIAor ICAgIGNhc2UgU0hBUEVfdGVybmFyeV9xcV9vcHRfbjoKKyAgICAgIGFkZF9v dmVybG9hZGVkX2Z1bmN0aW9ucyAoZ3JvdXAsIE1PREVfbm9uZSk7CisgICAg ICBidWlsZF9hbGwgKCZhcm1fc3ZlX2hfYnVpbGRlcjo6c2lnX3FxXzAwMDAs IGdyb3VwLCBNT0RFX25vbmUpOworICAgICAgYnVpbGRfYWxsICgmYXJtX3N2 ZV9oX2J1aWxkZXI6OnNpZ19xcV9uXzAwMDAsIGdyb3VwLCBNT0RFX24pOwor ICAgICAgYnJlYWs7CisKICAgICBjYXNlIFNIQVBFX2luaGVyZW50OgogICAg ICAgLyogTm8gb3ZlcmxvYWRlZCBmdW5jdGlvbnMgaGVyZS4gICovCiAgICAg ICBidWlsZF9hbGwgKCZhcm1fc3ZlX2hfYnVpbGRlcjo6c2lnX2luaGVyZW50 LCBncm91cCwgTU9ERV9ub25lKTsKQEAgLTkwOCw2ICs5NzksMjAgQEAgYXJt X3N2ZV9oX2J1aWxkZXI6OnNpZ18wMDAwIChjb25zdCBmdW5jdGlvbl9pbnN0 YW5jZSAmaW5zdGFuY2UsCiAgICAgdHlwZXMucXVpY2tfcHVzaCAoaW5zdGFu Y2UudmVjdG9yX3R5cGUgKDApKTsKIH0KIAorLyogRGVzY3JpYmUgdGhlIHNp Z25hdHVyZQorICAgInN2PHQwPl90IHN2Zm9vW190MF0oc3Y8dDA+X3QsIHN2 PHQwLnF1YXJ0ZXI+X3QsIHN2PHQwLnF1YXJ0ZXI+X3QpIgorICAgZm9yIElO U1RBTkNFIGluIFRZUEVTLiAgKi8KK3ZvaWQKK2FybV9zdmVfaF9idWlsZGVy OjpzaWdfcXFfMDAwMCAoY29uc3QgZnVuY3Rpb25faW5zdGFuY2UgJmluc3Rh bmNlLAorCQkJCXZlYzx0cmVlPiAmdHlwZXMpCit7CisgIHRyZWUgcXVhcnRl cl90eXBlID0gaW5zdGFuY2UucXVhcnRlcl92ZWN0b3JfdHlwZSAoMCk7Cisg IHR5cGVzLnF1aWNrX3B1c2ggKGluc3RhbmNlLnZlY3Rvcl90eXBlICgwKSk7 CisgIHR5cGVzLnF1aWNrX3B1c2ggKGluc3RhbmNlLnZlY3Rvcl90eXBlICgw KSk7CisgIHR5cGVzLnF1aWNrX3B1c2ggKHF1YXJ0ZXJfdHlwZSk7CisgIHR5 cGVzLnF1aWNrX3B1c2ggKHF1YXJ0ZXJfdHlwZSk7Cit9CisKIC8qIERlc2Ny aWJlIHRoZSBzaWduYXR1cmUgInN2PHQwPl90IHN2Zm9vW19uX3QwXShzdjx0 MD5fdCwgPHQwPl90KSIKICAgIGZvciBJTlNUQU5DRSBpbiBUWVBFUy4gICov CiB2b2lkCkBAIC05MzAsNiArMTAxNSwxOSBAQCBhcm1fc3ZlX2hfYnVpbGRl cjo6c2lnX25fMDAwMCAoY29uc3QgZnVuY3Rpb25faW5zdGFuY2UgJmluc3Rh bmNlLAogICB0eXBlcy5xdWlja19wdXNoIChpbnN0YW5jZS5zY2FsYXJfdHlw ZSAoMCkpOwogfQogCisvKiBEZXNjcmliZSB0aGUgc2lnbmF0dXJlCisgICAi c3Y8dDA+X3Qgc3Zmb29bX25fdDBdKHN2PHQwPl90LCBzdjx0MC5xdWFydGVy Pl90LCA8dDAucXVhcnRlcj5fdCkiCisgICBmb3IgSU5TVEFOQ0UgaW4gVFlQ RVMuICAqLwordm9pZAorYXJtX3N2ZV9oX2J1aWxkZXI6OnNpZ19xcV9uXzAw MDAgKGNvbnN0IGZ1bmN0aW9uX2luc3RhbmNlICZpbnN0YW5jZSwKKwkJCQkg IHZlYzx0cmVlPiAmdHlwZXMpCit7CisgIGZvciAodW5zaWduZWQgaW50IGkg PSAwOyBpIDwgMjsgKytpKQorICAgIHR5cGVzLnF1aWNrX3B1c2ggKGluc3Rh bmNlLnZlY3Rvcl90eXBlICgwKSk7CisgIHR5cGVzLnF1aWNrX3B1c2ggKGlu c3RhbmNlLnF1YXJ0ZXJfdmVjdG9yX3R5cGUgKDApKTsKKyAgdHlwZXMucXVp Y2tfcHVzaCAoaW5zdGFuY2UucXVhcnRlcl9zY2FsYXJfdHlwZSAoMCkpOwor fQorCiAvKiBEZXNjcmliZSB0aGUgc2lnbmF0dXJlICJzdjx0MD5fdCBzdmZv b1tfbl90MF0oc3Y8dDA+X3QsIHVpbnQ2NF90KSIKICAgIGZvciBJTlNUQU5D RSBpbiBUWVBFUy4gICovCiB2b2lkCkBAIC0xMDg4LDYgKzExODYsNyBAQCBh cm1fc3ZlX2hfYnVpbGRlcjo6Z2V0X2F0dHJpYnV0ZXMgKGNvbnN0IGZ1bmN0 aW9uX2luc3RhbmNlICZpbnN0YW5jZSkKICAgICBjYXNlIEZVTkNfc3Zhc3Jk OgogICAgIGNhc2UgRlVOQ19zdmRpdjoKICAgICBjYXNlIEZVTkNfc3ZkaXZy OgorICAgIGNhc2UgRlVOQ19zdmRvdDoKICAgICBjYXNlIEZVTkNfc3ZkdXA6 CiAgICAgY2FzZSBGVU5DX3N2ZW9yOgogICAgIGNhc2UgRlVOQ19zdmluZGV4 OgpAQCAtMTE0NSw2ICsxMjQ0LDcgQEAgYXJtX3N2ZV9oX2J1aWxkZXI6Omdl dF9leHBsaWNpdF90eXBlcyAoZnVuY3Rpb25fc2hhcGUgc2hhcGUpCiAgICAg Y2FzZSBTSEFQRV91bmFyeToKICAgICBjYXNlIFNIQVBFX2JpbmFyeV9vcHRf bjoKICAgICBjYXNlIFNIQVBFX3Rlcm5hcnlfb3B0X246CisgICAgY2FzZSBT SEFQRV90ZXJuYXJ5X3FxX29wdF9uOgogICAgIGNhc2UgU0hBUEVfc2hpZnRf cmlnaHRfaW1tOgogICAgICAgcmV0dXJuIDA7CiAgICAgfQpAQCAtMTIxOCw2 ICsxMzE4LDggQEAgZnVuY3Rpb25fcmVzb2x2ZXI6OnJlc29sdmUgKCkKICAg ICAgIHJldHVybiByZXNvbHZlX3VuaWZvcm0gKDMpOwogICAgIGNhc2UgU0hB UEVfc2hpZnRfcmlnaHRfaW1tOgogICAgICAgcmV0dXJuIHJlc29sdmVfdW5p Zm9ybV9pbW0gKDIsIDEpOworICAgIGNhc2UgU0hBUEVfdGVybmFyeV9xcV9v cHRfbjoKKyAgICAgIHJldHVybiByZXNvbHZlX2RvdCAoKTsKICAgICBjYXNl IFNIQVBFX3VuYXJ5X246CiAgICAgICByZXR1cm4gTlVMTF9UUkVFOwogICAg IGNhc2UgU0hBUEVfYmluYXJ5X3NjYWxhcjoKQEAgLTEyNTIsNiArMTM1NCwz NyBAQCBmdW5jdGlvbl9yZXNvbHZlcjo6cmVzb2x2ZV91bmlmb3JtICh1bnNp Z25lZCBpbnQgbm9wcykKICAgcmV0dXJuIHJlcXVpcmVfZm9ybSAobV9yZm4u aW5zdGFuY2UubW9kZSwgZ2V0X3R5cGVfc3VmZml4ICh0eXBlKSk7CiB9CiAK Ky8qIFJlc29sdmUgZnVuY3Rpb25zIGxpa2Ugc3Zkb3QgaW4gd2hpY2ggdGhl IGVsZW1lbnRzIG9mIHRoZSByZXN1bHQgYW5kCisgICB0aGUgZmlyc3QgYXJn dW1lbnQgYXJlIGZvdXIgdGltZXMgd2lkZXIgdGhhbiB0aGUgZWxlbWVudHMg b2YgdGhlIG90aGVyCisgICBhcmd1bWVudHMuICBUaGUgZmluYWwgYXJndW1l bnQgY2FuIGJlIGEgdmVjdG9yIG9yIGEgc2NhbGFyLiAgKi8KK3RyZWUKK2Z1 bmN0aW9uX3Jlc29sdmVyOjpyZXNvbHZlX2RvdCAoKQoreworICAvKiBDaGVj ayB0aGF0IHdlIGhhdmUgdGhlIHJpZ2h0IG51bWJlciBvZiBhcmd1bWVudHMu ICAqLworICB1bnNpZ25lZCBpbnQgaSwgbmFyZ3M7CisgIHZlY3Rvcl90eXBl IHR5cGU7CisKKyAgaWYgKCFjaGVja19maXJzdF92ZWN0b3JfYXJndW1lbnQg KDMsIGksIG5hcmdzLCB0eXBlKSkKKyAgICByZXR1cm4gZXJyb3JfbWFya19u b2RlOworCisgIC8qIEhhbmRsZSBzdWJzZXF1ZW50IGFyZ3VtZW50cy4gICov CisgIHR5cGVfc3VmZml4IHRzID0gbWF5YmVfZmluZF9xdWFydGVyX3R5cGVf c3VmZml4IChnZXRfdHlwZV9zdWZmaXggKHR5cGUpKTsKKyAgaWYgKHRzICE9 IE5VTV9UWVBFX1NVRkZJWEVTKQorICAgIHsKKyAgICAgIHZlY3Rvcl90eXBl IGFyZ190eXBlID0gdHlwZV9zdWZmaXhlc1t0c10udHlwZTsKKyAgICAgIGlm ICghY2hlY2tfYXJndW1lbnQgKDEsIGFyZ190eXBlKSkKKwlyZXR1cm4gZXJy b3JfbWFya19ub2RlOworCisgICAgICAvKiBBbGxvdyB0aGUgZmluYWwgYXJn dW1lbnQgdG8gYmUgc2NhbGFyLCBpZiBhbiBfbiBmb3JtIGV4aXN0cy4gICov CisgICAgICBpZiAoc2NhbGFyX2FyZ3VtZW50X3AgKDIpKQorCXJldHVybiBy ZXF1aXJlX25fZm9ybSAoZ2V0X3R5cGVfc3VmZml4ICh0eXBlKSk7CisgICAg ICBlbHNlIGlmICghY2hlY2tfYXJndW1lbnQgKDIsIGFyZ190eXBlKSkKKwly ZXR1cm4gZXJyb3JfbWFya19ub2RlOworICAgIH0KKworICByZXR1cm4gcmVx dWlyZV9mb3JtIChtX3Jmbi5pbnN0YW5jZS5tb2RlLCBnZXRfdHlwZV9zdWZm aXggKHR5cGUpKTsKK30KKwogLyogTGlrZSByZXNvbHZlX3VuaWZvcm0sIGV4 Y2VwdCB0aGF0IHRoZSBmaW5hbCBOSU1NIGFyZ3VtZW50cyBoYXZlCiAgICB0 eXBlIHVpbnQ2NF90IGFuZCBtdXN0IGJlIGludGVnZXIgY29uc3RhbnQgZXhw cmVzc2lvbnMuICAqLwogdHJlZQpAQCAtMTUxOSw2ICsxNjUyLDcgQEAgZnVu Y3Rpb25fY2hlY2tlcjo6Y2hlY2sgKCkKICAgICBjYXNlIFNIQVBFX2JpbmFy eV9vcHRfbjoKICAgICBjYXNlIFNIQVBFX2JpbmFyeV9zY2FsYXI6CiAgICAg Y2FzZSBTSEFQRV90ZXJuYXJ5X29wdF9uOgorICAgIGNhc2UgU0hBUEVfdGVy bmFyeV9xcV9vcHRfbjoKICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAg Z2NjX3VucmVhY2hhYmxlICgpOwpAQCAtMTcwNCw2ICsxODM4LDcgQEAgZ2lt cGxlX2ZvbGRlcjo6Zm9sZCAoKQogICAgIGNhc2UgRlVOQ19zdmFzcmQ6CiAg ICAgY2FzZSBGVU5DX3N2ZGl2OgogICAgIGNhc2UgRlVOQ19zdmRpdnI6Cisg ICAgY2FzZSBGVU5DX3N2ZG90OgogICAgIGNhc2UgRlVOQ19zdmR1cDoKICAg ICBjYXNlIEZVTkNfc3Zlb3I6CiAgICAgY2FzZSBGVU5DX3N2aW5kZXg6CkBA IC0xODAwLDYgKzE5MzUsOSBAQCBmdW5jdGlvbl9leHBhbmRlcjo6ZXhwYW5k ICgpCiAgICAgY2FzZSBGVU5DX3N2ZGl2cjoKICAgICAgIHJldHVybiBleHBh bmRfZGl2ICh0cnVlKTsKIAorICAgIGNhc2UgRlVOQ19zdmRvdDoKKyAgICAg IHJldHVybiBleHBhbmRfZG90ICgpOworCiAgICAgY2FzZSBGVU5DX3N2ZHVw OgogICAgICAgcmV0dXJuIGV4cGFuZF9kdXAgKCk7CiAKQEAgLTE5MzAsNiAr MjA2OCwxNiBAQCBmdW5jdGlvbl9leHBhbmRlcjo6ZXhwYW5kX2RpdiAoYm9v bCByZXZlcnNlZF9wKQogICByZXR1cm4gZXhwYW5kX3NpZ25lZF9wcmVkX29w IChESVYsIFVESVYsIFVOU1BFQ19DT05EX0RJViwgbWVyZ2VfYXJnbm8pOwog fQogCisvKiBFeHBhbmQgYSBjYWxsIHRvIHN2ZG90LiAgKi8KK3J0eAorZnVu Y3Rpb25fZXhwYW5kZXI6OmV4cGFuZF9kb3QgKCkKK3sKKyAgaWYgKHR5cGVf c3VmZml4ZXNbbV9maS50eXBlc1swXV0udW5zaWduZWRfcCkKKyAgICByZXR1 cm4gZXhwYW5kX3ZpYV91bnByZWRfZGlyZWN0X29wdGFiICh1ZG90X3Byb2Rf b3B0YWIpOworICBlbHNlCisgICAgcmV0dXJuIGV4cGFuZF92aWFfdW5wcmVk X2RpcmVjdF9vcHRhYiAoc2RvdF9wcm9kX29wdGFiKTsKK30KKwogLyogRXhw YW5kIGEgY2FsbCB0byBzdmR1cC4gICovCiBydHgKIGZ1bmN0aW9uX2V4cGFu ZGVyOjpleHBhbmRfZHVwICgpCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2Fh cmNoNjQvYWFyY2g2NC1zdmUtYnVpbHRpbnMuZGVmIGIvZ2NjL2NvbmZpZy9h YXJjaDY0L2FhcmNoNjQtc3ZlLWJ1aWx0aW5zLmRlZgppbmRleCBiODU1ZTk1 Li4wOTc3ZDRhIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2FhcmNoNjQvYWFy Y2g2NC1zdmUtYnVpbHRpbnMuZGVmCisrKyBiL2djYy9jb25maWcvYWFyY2g2 NC9hYXJjaDY0LXN2ZS1idWlsdGlucy5kZWYKQEAgLTY3LDYgKzY3LDcgQEAg REVGX1NWRV9GVU5DVElPTiAoc3ZhbmQsIGJpbmFyeV9vcHRfbiwgYWxsX2lu dGVnZXIsIG14eikKIERFRl9TVkVfRlVOQ1RJT04gKHN2YXNyZCwgc2hpZnRf cmlnaHRfaW1tLCBhbGxfc2lnbmVkLCBteHopCiBERUZfU1ZFX0ZVTkNUSU9O IChzdmRpdiwgYmluYXJ5X29wdF9uLCBhbGxfc2RpX2FuZF9mbG9hdCwgbXh6 KQogREVGX1NWRV9GVU5DVElPTiAoc3ZkaXZyLCBiaW5hcnlfb3B0X24sIGFs bF9zZGlfYW5kX2Zsb2F0LCBteHopCitERUZfU1ZFX0ZVTkNUSU9OIChzdmRv dCwgdGVybmFyeV9xcV9vcHRfbiwgc2RpLCBub25lKQogREVGX1NWRV9GVU5D VElPTiAoc3ZkdXAsIHVuYXJ5X24sIGFsbF9kYXRhLCBteHpub25lKQogREVG X1NWRV9GVU5DVElPTiAoc3Zlb3IsIGJpbmFyeV9vcHRfbiwgYWxsX2ludGVn ZXIsIG14eikKIERFRl9TVkVfRlVOQ1RJT04gKHN2aW5kZXgsIGJpbmFyeV9z Y2FsYXIsIGFsbF9kYXRhLCBub25lKQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZp Zy9hYXJjaDY0L2FhcmNoNjQtc3ZlLm1kIGIvZ2NjL2NvbmZpZy9hYXJjaDY0 L2FhcmNoNjQtc3ZlLm1kCmluZGV4IDQyYTc3ZGQuLmNiZjlhN2YgMTAwNjQ0 Ci0tLSBhL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LXN2ZS5tZAorKysg Yi9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC1zdmUubWQKQEAgLTM4Mzks MyArMzgzOSwxNyBAQAogICAgaW5zclx0JTAuPFZldHlwZT4sICU8dndjb3Jl PjIKICAgIGluc3JcdCUwLjxWZXR5cGU+LCAlPFZldHlwZT4yIgogKQorCis7 OyBVbnByZWRpY2F0ZWQgRE9UIHByb2R1Y3QuCisoZGVmaW5lX2luc24gIjxz dXI+ZG90X3Byb2Q8bW9kZT4iCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNW RV9TREkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj13LCA/JnciKQorCShwbHVz OlNWRV9TREkgKHVuc3BlYzpTVkVfU0RJIFsobWF0Y2hfb3BlcmFuZDo8VlNJ MlFJPiAyICJyZWdpc3Rlcl9vcGVyYW5kIiAidywgdyIpCisJCQkJICAgICAg IChtYXRjaF9vcGVyYW5kOjxWU0kyUUk+IDMgInJlZ2lzdGVyX29wZXJhbmQi ICJ3LCB3IildCisJCSAgICAgICBET1RQUk9EKQorCShtYXRjaF9vcGVyYW5k OlNWRV9TREkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAsIHciKSkpXQorICAi VEFSR0VUX1NWRSIKKyAgIkAKKyAgIDxzdXI+ZG90XFx0JTAuPFZldHlwZT4s ICUyLjxWZXR5cGVfZm91cnRoPiwgJTMuPFZldHlwZV9mb3VydGg+CisgICBt b3ZwcmZ4XHQlMCwgJTFcOzxzdXI+ZG90XFx0JTAuPFZldHlwZT4sICUyLjxW ZXR5cGVfZm91cnRoPiwgJTMuPFZldHlwZV9mb3VydGg+IgorICBbKHNldF9h dHRyICJtb3ZwcmZ4IiAiKix5ZXMiKV0KKykKZGlmZiAtLWdpdCBhL2djYy9j b25maWcvYWFyY2g2NC9pdGVyYXRvcnMubWQgYi9nY2MvY29uZmlnL2FhcmNo NjQvaXRlcmF0b3JzLm1kCmluZGV4IGZlMWE5MmYuLjE0ZDY4MTEgMTAwNjQ0 Ci0tLSBhL2djYy9jb25maWcvYWFyY2g2NC9pdGVyYXRvcnMubWQKKysrIGIv Z2NjL2NvbmZpZy9hYXJjaDY0L2l0ZXJhdG9ycy5tZApAQCAtNjYyLDYgKzY2 Miw5IEBACiAJCQkgIChRSSAiYiIpICAgKEhJICJoIikKIAkJCSAgKFNJICJz IikgICAoREkgImQiKV0pCiAKKzs7IE1vZGUgdG8gb25lIGZvdXJ0aCBpbmRp dmlkdWFsIGVsZW1lbnQgdHlwZSBtYXBwaW5nIHVzZWQgaW4gaW5zdHJ1Y3Rp b24gRE9ULgorKGRlZmluZV9tb2RlX2F0dHIgVmV0eXBlX2ZvdXJ0aCBbKFZO eDRTSSAiYiIpIChWTngyREkgImgiKV0pCisKIDs7IEVxdWl2YWxlbnQgb2Yg InNpemUiIGZvciBhIHZlY3RvciBlbGVtZW50LgogKGRlZmluZV9tb2RlX2F0 dHIgVmVzaXplIFsoVk54MTZRSSAiYiIpCiAJCQkgIChWTng4SEkgICJoIikg KFZOeDhIRiAgImgiKQpAQCAtMTAyOSw3ICsxMDMyLDggQEAKIAkJICAgICAg KFY0SEYgInYiKSAoVjhIRiAgInYiKV0pCiAKIChkZWZpbmVfbW9kZV9hdHRy IHZzaTJxaSBbKFYyU0kgInY4cWkiKSAoVjRTSSAidjE2cWkiKV0pCi0oZGVm aW5lX21vZGVfYXR0ciBWU0kyUUkgWyhWMlNJICJWOFFJIikgKFY0U0kgIlYx NlFJIildKQorKGRlZmluZV9tb2RlX2F0dHIgVlNJMlFJIFsoVjJTSSAiVjhR SSIpIChWNFNJICJWMTZRSSIpCisJCQkgIChWTng0U0kgIlZOeDE2UUkiKSAo Vk54MkRJICJWTng4SEkiKV0pCiAKIAogOzsgUmVnaXN0ZXIgc3VmZml4IGZv ciBET1RQUk9EIGlucHV0IHR5cGVzIGZyb20gdGhlIHJldHVybiB0eXBlLgpk aWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nKysudGFyZ2V0L2FhcmNoNjQv c3ZlLWFjbGUvZ2VuZXJhbC1jKysvZG90XzEuQyBiL2djYy90ZXN0c3VpdGUv ZysrLnRhcmdldC9hYXJjaDY0L3N2ZS1hY2xlL2dlbmVyYWwtYysrL2RvdF8x LkMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzA5Yzkz MAotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZysrLnRhcmdl dC9hYXJjaDY0L3N2ZS1hY2xlL2dlbmVyYWwtYysrL2RvdF8xLkMKQEAgLTAs MCArMSw5IEBACisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLworCisjcHJhZ21h IEdDQyBhYXJjaDY0ICJhcm1fc3ZlLmgiIC8qIHsgZGctbWVzc2FnZSAiaW5p dGlhbGl6aW5nIGFyZ3VtZW50IDIiIH0gKi8KKworc3Z1aW50MzJfdAorZjEg KHN2dWludDMyX3QgeCwgc3ZpbnQ4X3QgeSwgc3Z1aW50OF90IHopCit7Cisg IHJldHVybiBzdmRvdF91MzIgKHgsIHksIHopOyAvKiB7IGRnLWVycm9yICJj YW5ub3QgY29udmVydCAnc3ZpbnQ4X3QnIHRvICdzdnVpbnQ4X3QnIiB9ICov Cit9CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2crKy50YXJnZXQvYWFy Y2g2NC9zdmUtYWNsZS9nZW5lcmFsLWMrKy9kb3RfMi5DIGIvZ2NjL3Rlc3Rz dWl0ZS9nKysudGFyZ2V0L2FhcmNoNjQvc3ZlLWFjbGUvZ2VuZXJhbC1jKysv ZG90XzIuQwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45 ODRiNDVmCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nKysu dGFyZ2V0L2FhcmNoNjQvc3ZlLWFjbGUvZ2VuZXJhbC1jKysvZG90XzIuQwpA QCAtMCwwICsxLDE3IEBACisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLworCisj cHJhZ21hIEdDQyBhYXJjaDY0ICJhcm1fc3ZlLmgiCisvKiB7IGRnLW1lc3Nh Z2Uge25vdGU6IGNhbmRpZGF0ZTogJ3N2dWludDMyX3Qgc3Zkb3RcKHN2dWlu dDMyX3QsIHN2dWludDhfdCwgc3Z1aW50OF90XCknfSAiIiB7IHRhcmdldCAq LSotKiB9IDMgfSAqLworLyogeyBkZy1tZXNzYWdlIHtub3RlOiAqY2FuZGlk YXRlIGV4cGVjdHMgMyBhcmd1bWVudHMsIDIgcHJvdmlkZWR9ICIiIHsgdGFy Z2V0ICotKi0qIH0gMyB9ICovCisvKiB7IGRnLW1lc3NhZ2Uge25vdGU6ICpu byBrbm93biBjb252ZXJzaW9uIGZvciBhcmd1bWVudCAyIGZyb20gJ3N2dWlu dDMyX3QnIHRvICdzdnVpbnQ4X3QnfSAiIiB7IHRhcmdldCAqLSotKiB9IDMg fSAqLworLyogeyBkZy1tZXNzYWdlIHtub3RlOiAqbm8ga25vd24gY29udmVy c2lvbiBmb3IgYXJndW1lbnQgMSBmcm9tICdpbnQnIHRvICdzdnVpbnQzMl90 J30gIiIgeyB0YXJnZXQgKi0qLSogfSAzIH0gKi8KKy8qIHsgZGctbWVzc2Fn ZSB7bm90ZTogKm5vIGtub3duIGNvbnZlcnNpb24gZm9yIGFyZ3VtZW50IDIg ZnJvbSAnc3ZpbnQ4X3QnIHRvICdzdnVpbnQ4X3QnfSAiIiB7IHRhcmdldCAq LSotKiB9IDMgfSAqLworCit2b2lkCitmMSAoc3Z1aW50MzJfdCB4LCBzdmlu dDhfdCB5LCBzdnVpbnQ4X3QgeikKK3sKKyAgc3Zkb3QgKHgsIHkpOyAvKiB7 IGRnLWVycm9yIHtubyBtYXRjaGluZyBmdW5jdGlvbiBmb3IgY2FsbCB0byAn c3Zkb3RcKHN2dWludDMyX3QmLCBzdmludDhfdCZcKSd9IH0gKi8KKyAgc3Zk b3QgKHgsIHgsIHgpOyAvKiB7IGRnLWVycm9yIHtubyBtYXRjaGluZyBmdW5j dGlvbiBmb3IgY2FsbCB0byAnc3Zkb3RcKHN2dWludDMyX3QmLCBzdnVpbnQz Ml90Jiwgc3Z1aW50MzJfdCZcKSd9IH0gKi8KKyAgc3Zkb3QgKDEsIHosIHop OyAvKiB7IGRnLWVycm9yIHtubyBtYXRjaGluZyBmdW5jdGlvbiBmb3IgY2Fs bCB0byAnc3Zkb3RcKGludCwgc3Z1aW50OF90Jiwgc3Z1aW50OF90JlwpJ30g fSAqLworICBzdmRvdCAoeCwgeSwgeik7IC8qIHsgZGctZXJyb3Ige25vIG1h dGNoaW5nIGZ1bmN0aW9uIGZvciBjYWxsIHRvICdzdmRvdFwoc3Z1aW50MzJf dCYsIHN2aW50OF90Jiwgc3Z1aW50OF90JlwpJ30gfSAqLworfQpkaWZmIC0t Z2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlLWFj bGUvYXNtL2RvdF9zMzIuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9h YXJjaDY0L3N2ZS1hY2xlL2FzbS9kb3RfczMyLmMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uNTk5YTkyNgotLS0gL2Rldi9udWxsCisr KyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS1hY2xl L2FzbS9kb3RfczMyLmMKQEAgLTAsMCArMSwxMTEgQEAKKy8qIHsgZGctZG8g Y29tcGlsZSB9ICovCisvKiB7IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24t Ym9kaWVzICIqKiIgIiIgIi1EQ0hFQ0tfQVNNIiB9IH0gKi8KKworI2luY2x1 ZGUgInRlc3Rfc3ZlX2FjbGUuaCIKKworLyoKKyoqIGRvdF9zMzJfdGllZDE6 CisqKglzZG90CXowXC5zLCB6MTZcLmIsIHoxN1wuYgorKioJcmV0CisqLwor VEVTVF9EVUFMX1ogKGRvdF9zMzJfdGllZDEsIHN2aW50MzJfdCwgc3ZpbnQ4 X3QsCisJICAgICB6MCA9IHN2ZG90X3MzMiAoejAsIHoxNiwgejE3KSwKKwkg ICAgIHowID0gc3Zkb3QgKHowLCB6MTYsIHoxNykpCisKKy8qCisqKiBkb3Rf czMyX3RpZWQyOgorKioJbW92CSh6WzAtOV0rKVwuZCwgejE2XC5kCisqKglt b3ZwcmZ4CXoxNiwgejAKKyoqCXNkb3QJejE2XC5zLCBcMVwuYiwgejE3XC5i CisqKglyZXQKKyovCitURVNUX0RVQUxfWiAoZG90X3MzMl90aWVkMiwgc3Zp bnQzMl90LCBzdmludDhfdCwKKwkgICAgIHoxNl9yZXMgPSBzdmRvdF9zMzIg KHowLCB6MTYsIHoxNyksCisJICAgICB6MTZfcmVzID0gc3Zkb3QgKHowLCB6 MTYsIHoxNykpCisKKy8qCisqKiBkb3RfczMyX3RpZWQzOgorKioJbW92CSh6 WzAtOV0rKVwuZCwgejE3XC5kCisqKgltb3ZwcmZ4CXoxNywgejAKKyoqCXNk b3QJejE3XC5zLCB6MTZcLmIsIFwxXC5iCisqKglyZXQKKyovCitURVNUX0RV QUxfWiAoZG90X3MzMl90aWVkMywgc3ZpbnQzMl90LCBzdmludDhfdCwKKwkg ICAgIHoxN19yZXMgPSBzdmRvdF9zMzIgKHowLCB6MTYsIHoxNyksCisJICAg ICB6MTdfcmVzID0gc3Zkb3QgKHowLCB6MTYsIHoxNykpCisKKy8qCisqKiBk b3RfczMyX3VudGllZDoKKyoqCW1vdnByZngJejAsIHoxCisqKglzZG90CXow XC5zLCB6MTZcLmIsIHoxN1wuYgorKioJcmV0CisqLworVEVTVF9EVUFMX1og KGRvdF9zMzJfdW50aWVkLCBzdmludDMyX3QsIHN2aW50OF90LAorCSAgICAg ejAgPSBzdmRvdF9zMzIgKHoxLCB6MTYsIHoxNyksCisJICAgICB6MCA9IHN2 ZG90ICh6MSwgejE2LCB6MTcpKQorCisvKgorKiogZG90X3cwX3MzMl90aWVk MToKKyoqCW1vdgkoelswLTldK1wuYiksIHcwCisqKglzZG90CXowXC5zLCB6 MTZcLmIsIFwxCisqKglyZXQKKyovCitURVNUX0RVQUxfWlMgKGRvdF93MF9z MzJfdGllZDEsIHN2aW50MzJfdCwgc3ZpbnQ4X3QsIGludDhfdCwKKwkgICAg ICB6MCA9IHN2ZG90X25fczMyICh6MCwgejE2LCB4MCksCisJICAgICAgejAg PSBzdmRvdCAoejAsIHoxNiwgeDApKQorCisvKgorKiogZG90X3cwX3MzMl90 aWVkMjoKKyoqCW1vdgkoelswLTldK1wuYiksIHcwCisqKgltb3YJKHpbMC05 XSspXC5kLCB6MTZcLmQKKyoqCW1vdnByZngJejE2LCB6MAorKioJc2RvdAl6 MTZcLnMsIFwyXC5iLCBcMQorKioJcmV0CisqLworVEVTVF9EVUFMX1pTIChk b3RfdzBfczMyX3RpZWQyLCBzdmludDMyX3QsIHN2aW50OF90LCBpbnQ4X3Qs CisJICAgICAgejE2X3JlcyA9IHN2ZG90X25fczMyICh6MCwgejE2LCB4MCks CisJICAgICAgejE2X3JlcyA9IHN2ZG90ICh6MCwgejE2LCB4MCkpCisKKy8q CisqKiBkb3RfdzBfczMyX3VudGllZDoKKyoqCW1vdgkoelswLTldK1wuYiks IHcwCisqKgltb3ZwcmZ4CXowLCB6MQorKioJc2RvdAl6MFwucywgejE2XC5i LCBcMQorKioJcmV0CisqLworVEVTVF9EVUFMX1pTIChkb3RfdzBfczMyX3Vu dGllZCwgc3ZpbnQzMl90LCBzdmludDhfdCwgaW50OF90LAorCSAgICAgIHow ID0gc3Zkb3Rfbl9zMzIgKHoxLCB6MTYsIHgwKSwKKwkgICAgICB6MCA9IHN2 ZG90ICh6MSwgejE2LCB4MCkpCisKKy8qCisqKiBkb3RfYjBfczMyX3VudGll ZDoKKyoqCW1vdgkoelswLTldK1wuYiksIGIwCisqKgltb3ZwcmZ4CXoxLCB6 MAorKioJc2RvdAl6MVwucywgejE2XC5iLCBcMQorKioJcmV0CisqLworVEVT VF9EVUFMX1pTIChkb3RfYjBfczMyX3VudGllZCwgc3ZpbnQzMl90LCBzdmlu dDhfdCwgaW50OF90LAorCSAgICAgIHoxID0gc3Zkb3Rfbl9zMzIgKHowLCB6 MTYsIGQwKSwKKwkgICAgICB6MSA9IHN2ZG90ICh6MCwgejE2LCBkMCkpCisK Ky8qCisqKiBkb3RfMl9zMzJfdW50aWVkOgorKioJbW92CSh6WzAtOV0rXC5i KSwgIzIKKyoqCW1vdnByZngJejAsIHoxCisqKglzZG90CXowXC5zLCB6MTZc LmIsIFwxCisqKglyZXQKKyovCitURVNUX0RVQUxfWiAoZG90XzJfczMyX3Vu dGllZCwgc3ZpbnQzMl90LCBzdmludDhfdCwKKwkgICAgIHowID0gc3Zkb3Rf bl9zMzIgKHoxLCB6MTYsIDIpLAorCSAgICAgejAgPSBzdmRvdCAoejEsIHox NiwgMikpCisKKy8qCisqKiBkb3RfbTFfczMyOgorKioJbW92CSh6WzAtOV0r XC5iKSwgIy0xCisqKglzZG90CXowXC5zLCB6MTZcLmIsIFwxCisqKglyZXQK KyovCitURVNUX0RVQUxfWiAoZG90X20xX3MzMiwgc3ZpbnQzMl90LCBzdmlu dDhfdCwKKwkgICAgIHowID0gc3Zkb3Rfbl9zMzIgKHowLCB6MTYsIC0xKSwK KwkgICAgIHowID0gc3Zkb3QgKHowLCB6MTYsIC0xKSkKKwpkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlLWFjbGUv YXNtL2RvdF9zNjQuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJj aDY0L3N2ZS1hY2xlL2FzbS9kb3RfczY0LmMKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uNGJjZGRlOQotLS0gL2Rldi9udWxsCisrKyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS1hY2xlL2Fz bS9kb3RfczY0LmMKQEAgLTAsMCArMSwxMTEgQEAKKy8qIHsgZGctZG8gY29t cGlsZSB9ICovCisvKiB7IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24tYm9k aWVzICIqKiIgIiIgIi1EQ0hFQ0tfQVNNIiB9IH0gKi8KKworI2luY2x1ZGUg InRlc3Rfc3ZlX2FjbGUuaCIKKworLyoKKyoqIGRvdF9zNjRfdGllZDE6Cisq KglzZG90CXowXC5kLCB6MTZcLmgsIHoxN1wuaAorKioJcmV0CisqLworVEVT VF9EVUFMX1ogKGRvdF9zNjRfdGllZDEsIHN2aW50NjRfdCwgc3ZpbnQxNl90 LAorCSAgICAgejAgPSBzdmRvdF9zNjQgKHowLCB6MTYsIHoxNyksCisJICAg ICB6MCA9IHN2ZG90ICh6MCwgejE2LCB6MTcpKQorCisvKgorKiogZG90X3M2 NF90aWVkMjoKKyoqCW1vdgkoelswLTldKylcLmQsIHoxNlwuZAorKioJbW92 cHJmeAl6MTYsIHowCisqKglzZG90CXoxNlwuZCwgXDFcLmgsIHoxN1wuaAor KioJcmV0CisqLworVEVTVF9EVUFMX1ogKGRvdF9zNjRfdGllZDIsIHN2aW50 NjRfdCwgc3ZpbnQxNl90LAorCSAgICAgejE2X3JlcyA9IHN2ZG90X3M2NCAo ejAsIHoxNiwgejE3KSwKKwkgICAgIHoxNl9yZXMgPSBzdmRvdCAoejAsIHox NiwgejE3KSkKKworLyoKKyoqIGRvdF9zNjRfdGllZDM6CisqKgltb3YJKHpb MC05XSspXC5kLCB6MTdcLmQKKyoqCW1vdnByZngJejE3LCB6MAorKioJc2Rv dAl6MTdcLmQsIHoxNlwuaCwgXDFcLmgKKyoqCXJldAorKi8KK1RFU1RfRFVB TF9aIChkb3RfczY0X3RpZWQzLCBzdmludDY0X3QsIHN2aW50MTZfdCwKKwkg ICAgIHoxN19yZXMgPSBzdmRvdF9zNjQgKHowLCB6MTYsIHoxNyksCisJICAg ICB6MTdfcmVzID0gc3Zkb3QgKHowLCB6MTYsIHoxNykpCisKKy8qCisqKiBk b3RfczY0X3VudGllZDoKKyoqCW1vdnByZngJejAsIHoxCisqKglzZG90CXow XC5kLCB6MTZcLmgsIHoxN1wuaAorKioJcmV0CisqLworVEVTVF9EVUFMX1og KGRvdF9zNjRfdW50aWVkLCBzdmludDY0X3QsIHN2aW50MTZfdCwKKwkgICAg IHowID0gc3Zkb3RfczY0ICh6MSwgejE2LCB6MTcpLAorCSAgICAgejAgPSBz dmRvdCAoejEsIHoxNiwgejE3KSkKKworLyoKKyoqIGRvdF93MF9zNjRfdGll ZDE6CisqKgltb3YJKHpbMC05XStcLmgpLCB3MAorKioJc2RvdAl6MFwuZCwg ejE2XC5oLCBcMQorKioJcmV0CisqLworVEVTVF9EVUFMX1pTIChkb3RfdzBf czY0X3RpZWQxLCBzdmludDY0X3QsIHN2aW50MTZfdCwgaW50MTZfdCwKKwkg ICAgICB6MCA9IHN2ZG90X25fczY0ICh6MCwgejE2LCB4MCksCisJICAgICAg ejAgPSBzdmRvdCAoejAsIHoxNiwgeDApKQorCisvKgorKiogZG90X3cwX3M2 NF90aWVkMjoKKyoqCW1vdgkoelswLTldK1wuaCksIHcwCisqKgltb3YJKHpb MC05XSspXC5kLCB6MTZcLmQKKyoqCW1vdnByZngJejE2LCB6MAorKioJc2Rv dAl6MTZcLmQsIFwyXC5oLCBcMQorKioJcmV0CisqLworVEVTVF9EVUFMX1pT IChkb3RfdzBfczY0X3RpZWQyLCBzdmludDY0X3QsIHN2aW50MTZfdCwgaW50 MTZfdCwKKwkgICAgICB6MTZfcmVzID0gc3Zkb3Rfbl9zNjQgKHowLCB6MTYs IHgwKSwKKwkgICAgICB6MTZfcmVzID0gc3Zkb3QgKHowLCB6MTYsIHgwKSkK KworLyoKKyoqIGRvdF93MF9zNjRfdW50aWVkOgorKioJbW92CSh6WzAtOV0r XC5oKSwgdzAKKyoqCW1vdnByZngJejAsIHoxCisqKglzZG90CXowXC5kLCB6 MTZcLmgsIFwxCisqKglyZXQKKyovCitURVNUX0RVQUxfWlMgKGRvdF93MF9z NjRfdW50aWVkLCBzdmludDY0X3QsIHN2aW50MTZfdCwgaW50MTZfdCwKKwkg ICAgICB6MCA9IHN2ZG90X25fczY0ICh6MSwgejE2LCB4MCksCisJICAgICAg ejAgPSBzdmRvdCAoejEsIHoxNiwgeDApKQorCisvKgorKiogZG90X2gwX3M2 NF91bnRpZWQ6CisqKgltb3YJKHpbMC05XStcLmgpLCBoMAorKioJbW92cHJm eAl6MSwgejAKKyoqCXNkb3QJejFcLmQsIHoxNlwuaCwgXDEKKyoqCXJldAor Ki8KK1RFU1RfRFVBTF9aUyAoZG90X2gwX3M2NF91bnRpZWQsIHN2aW50NjRf dCwgc3ZpbnQxNl90LCBpbnQxNl90LAorCSAgICAgIHoxID0gc3Zkb3Rfbl9z NjQgKHowLCB6MTYsIGQwKSwKKwkgICAgICB6MSA9IHN2ZG90ICh6MCwgejE2 LCBkMCkpCisKKy8qCisqKiBkb3RfMl9zNjRfdW50aWVkOgorKioJbW92CSh6 WzAtOV0rXC5oKSwgIzIKKyoqCW1vdnByZngJejAsIHoxCisqKglzZG90CXow XC5kLCB6MTZcLmgsIFwxCisqKglyZXQKKyovCitURVNUX0RVQUxfWiAoZG90 XzJfczY0X3VudGllZCwgc3ZpbnQ2NF90LCBzdmludDE2X3QsCisJICAgICB6 MCA9IHN2ZG90X25fczY0ICh6MSwgejE2LCAyKSwKKwkgICAgIHowID0gc3Zk b3QgKHoxLCB6MTYsIDIpKQorCisvKgorKiogZG90X20xX3M2NDoKKyoqCW1v dgkoelswLTldKylcLmIsICMtMQorKioJc2RvdAl6MFwuZCwgejE2XC5oLCBc MVwuaAorKioJcmV0CisqLworVEVTVF9EVUFMX1ogKGRvdF9tMV9zNjQsIHN2 aW50NjRfdCwgc3ZpbnQxNl90LAorCSAgICAgejAgPSBzdmRvdF9uX3M2NCAo ejAsIHoxNiwgLTEpLAorCSAgICAgejAgPSBzdmRvdCAoejAsIHoxNiwgLTEp KQorCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFy Y2g2NC9zdmUtYWNsZS9hc20vZG90X3UzMi5jIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L2FhcmNoNjQvc3ZlLWFjbGUvYXNtL2RvdF91MzIuYwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MzFiNDlkCi0tLSAv ZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNo NjQvc3ZlLWFjbGUvYXNtL2RvdF91MzIuYwpAQCAtMCwwICsxLDExMSBAQAor LyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctZmluYWwgeyBjaGVj ay1mdW5jdGlvbi1ib2RpZXMgIioqIiAiIiAiLURDSEVDS19BU00iIH0gfSAq LworCisjaW5jbHVkZSAidGVzdF9zdmVfYWNsZS5oIgorCisvKgorKiogZG90 X3UzMl90aWVkMToKKyoqCXVkb3QJejBcLnMsIHoxNlwuYiwgejE3XC5iCisq KglyZXQKKyovCitURVNUX0RVQUxfWiAoZG90X3UzMl90aWVkMSwgc3Z1aW50 MzJfdCwgc3Z1aW50OF90LAorCSAgICAgejAgPSBzdmRvdF91MzIgKHowLCB6 MTYsIHoxNyksCisJICAgICB6MCA9IHN2ZG90ICh6MCwgejE2LCB6MTcpKQor CisvKgorKiogZG90X3UzMl90aWVkMjoKKyoqCW1vdgkoelswLTldKylcLmQs IHoxNlwuZAorKioJbW92cHJmeAl6MTYsIHowCisqKgl1ZG90CXoxNlwucywg XDFcLmIsIHoxN1wuYgorKioJcmV0CisqLworVEVTVF9EVUFMX1ogKGRvdF91 MzJfdGllZDIsIHN2dWludDMyX3QsIHN2dWludDhfdCwKKwkgICAgIHoxNl9y ZXMgPSBzdmRvdF91MzIgKHowLCB6MTYsIHoxNyksCisJICAgICB6MTZfcmVz ID0gc3Zkb3QgKHowLCB6MTYsIHoxNykpCisKKy8qCisqKiBkb3RfdTMyX3Rp ZWQzOgorKioJbW92CSh6WzAtOV0rKVwuZCwgejE3XC5kCisqKgltb3ZwcmZ4 CXoxNywgejAKKyoqCXVkb3QJejE3XC5zLCB6MTZcLmIsIFwxXC5iCisqKgly ZXQKKyovCitURVNUX0RVQUxfWiAoZG90X3UzMl90aWVkMywgc3Z1aW50MzJf dCwgc3Z1aW50OF90LAorCSAgICAgejE3X3JlcyA9IHN2ZG90X3UzMiAoejAs IHoxNiwgejE3KSwKKwkgICAgIHoxN19yZXMgPSBzdmRvdCAoejAsIHoxNiwg ejE3KSkKKworLyoKKyoqIGRvdF91MzJfdW50aWVkOgorKioJbW92cHJmeAl6 MCwgejEKKyoqCXVkb3QJejBcLnMsIHoxNlwuYiwgejE3XC5iCisqKglyZXQK KyovCitURVNUX0RVQUxfWiAoZG90X3UzMl91bnRpZWQsIHN2dWludDMyX3Qs IHN2dWludDhfdCwKKwkgICAgIHowID0gc3Zkb3RfdTMyICh6MSwgejE2LCB6 MTcpLAorCSAgICAgejAgPSBzdmRvdCAoejEsIHoxNiwgejE3KSkKKworLyoK KyoqIGRvdF93MF91MzJfdGllZDE6CisqKgltb3YJKHpbMC05XStcLmIpLCB3 MAorKioJdWRvdAl6MFwucywgejE2XC5iLCBcMQorKioJcmV0CisqLworVEVT VF9EVUFMX1pTIChkb3RfdzBfdTMyX3RpZWQxLCBzdnVpbnQzMl90LCBzdnVp bnQ4X3QsIHVpbnQ4X3QsCisJICAgICAgejAgPSBzdmRvdF9uX3UzMiAoejAs IHoxNiwgeDApLAorCSAgICAgIHowID0gc3Zkb3QgKHowLCB6MTYsIHgwKSkK KworLyoKKyoqIGRvdF93MF91MzJfdGllZDI6CisqKgltb3YJKHpbMC05XStc LmIpLCB3MAorKioJbW92CSh6WzAtOV0rKVwuZCwgejE2XC5kCisqKgltb3Zw cmZ4CXoxNiwgejAKKyoqCXVkb3QJejE2XC5zLCBcMlwuYiwgXDEKKyoqCXJl dAorKi8KK1RFU1RfRFVBTF9aUyAoZG90X3cwX3UzMl90aWVkMiwgc3Z1aW50 MzJfdCwgc3Z1aW50OF90LCB1aW50OF90LAorCSAgICAgIHoxNl9yZXMgPSBz dmRvdF9uX3UzMiAoejAsIHoxNiwgeDApLAorCSAgICAgIHoxNl9yZXMgPSBz dmRvdCAoejAsIHoxNiwgeDApKQorCisvKgorKiogZG90X3cwX3UzMl91bnRp ZWQ6CisqKgltb3YJKHpbMC05XStcLmIpLCB3MAorKioJbW92cHJmeAl6MCwg ejEKKyoqCXVkb3QJejBcLnMsIHoxNlwuYiwgXDEKKyoqCXJldAorKi8KK1RF U1RfRFVBTF9aUyAoZG90X3cwX3UzMl91bnRpZWQsIHN2dWludDMyX3QsIHN2 dWludDhfdCwgdWludDhfdCwKKwkgICAgICB6MCA9IHN2ZG90X25fdTMyICh6 MSwgejE2LCB4MCksCisJICAgICAgejAgPSBzdmRvdCAoejEsIHoxNiwgeDAp KQorCisvKgorKiogZG90X2IwX3UzMl91bnRpZWQ6CisqKgltb3YJKHpbMC05 XStcLmIpLCBiMAorKioJbW92cHJmeAl6MSwgejAKKyoqCXVkb3QJejFcLnMs IHoxNlwuYiwgXDEKKyoqCXJldAorKi8KK1RFU1RfRFVBTF9aUyAoZG90X2Iw X3UzMl91bnRpZWQsIHN2dWludDMyX3QsIHN2dWludDhfdCwgdWludDhfdCwK KwkgICAgICB6MSA9IHN2ZG90X25fdTMyICh6MCwgejE2LCBkMCksCisJICAg ICAgejEgPSBzdmRvdCAoejAsIHoxNiwgZDApKQorCisvKgorKiogZG90XzJf dTMyX3VudGllZDoKKyoqCW1vdgkoelswLTldK1wuYiksICMyCisqKgltb3Zw cmZ4CXowLCB6MQorKioJdWRvdAl6MFwucywgejE2XC5iLCBcMQorKioJcmV0 CisqLworVEVTVF9EVUFMX1ogKGRvdF8yX3UzMl91bnRpZWQsIHN2dWludDMy X3QsIHN2dWludDhfdCwKKwkgICAgIHowID0gc3Zkb3Rfbl91MzIgKHoxLCB6 MTYsIDIpLAorCSAgICAgejAgPSBzdmRvdCAoejEsIHoxNiwgMikpCisKKy8q CisqKiBkb3RfbTFfdTMyOgorKioJbW92CSh6WzAtOV0rXC5iKSwgIy0xCisq Kgl1ZG90CXowXC5zLCB6MTZcLmIsIFwxCisqKglyZXQKKyovCitURVNUX0RV QUxfWiAoZG90X20xX3UzMiwgc3Z1aW50MzJfdCwgc3Z1aW50OF90LAorCSAg ICAgejAgPSBzdmRvdF9uX3UzMiAoejAsIHoxNiwgLTEpLAorCSAgICAgejAg PSBzdmRvdCAoejAsIHoxNiwgLTEpKQorCmRpZmYgLS1naXQgYS9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUtYWNsZS9hc20vZG90X3U2 NC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlLWFj bGUvYXNtL2RvdF91NjQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi44ZjIyYWQ1Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlLWFjbGUvYXNtL2RvdF91NjQu YwpAQCAtMCwwICsxLDExMSBAQAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8K Ky8qIHsgZGctZmluYWwgeyBjaGVjay1mdW5jdGlvbi1ib2RpZXMgIioqIiAi IiAiLURDSEVDS19BU00iIH0gfSAqLworCisjaW5jbHVkZSAidGVzdF9zdmVf YWNsZS5oIgorCisvKgorKiogZG90X3U2NF90aWVkMToKKyoqCXVkb3QJejBc LmQsIHoxNlwuaCwgejE3XC5oCisqKglyZXQKKyovCitURVNUX0RVQUxfWiAo ZG90X3U2NF90aWVkMSwgc3Z1aW50NjRfdCwgc3Z1aW50MTZfdCwKKwkgICAg IHowID0gc3Zkb3RfdTY0ICh6MCwgejE2LCB6MTcpLAorCSAgICAgejAgPSBz dmRvdCAoejAsIHoxNiwgejE3KSkKKworLyoKKyoqIGRvdF91NjRfdGllZDI6 CisqKgltb3YJKHpbMC05XSspXC5kLCB6MTZcLmQKKyoqCW1vdnByZngJejE2 LCB6MAorKioJdWRvdAl6MTZcLmQsIFwxXC5oLCB6MTdcLmgKKyoqCXJldAor Ki8KK1RFU1RfRFVBTF9aIChkb3RfdTY0X3RpZWQyLCBzdnVpbnQ2NF90LCBz dnVpbnQxNl90LAorCSAgICAgejE2X3JlcyA9IHN2ZG90X3U2NCAoejAsIHox NiwgejE3KSwKKwkgICAgIHoxNl9yZXMgPSBzdmRvdCAoejAsIHoxNiwgejE3 KSkKKworLyoKKyoqIGRvdF91NjRfdGllZDM6CisqKgltb3YJKHpbMC05XSsp XC5kLCB6MTdcLmQKKyoqCW1vdnByZngJejE3LCB6MAorKioJdWRvdAl6MTdc LmQsIHoxNlwuaCwgXDFcLmgKKyoqCXJldAorKi8KK1RFU1RfRFVBTF9aIChk b3RfdTY0X3RpZWQzLCBzdnVpbnQ2NF90LCBzdnVpbnQxNl90LAorCSAgICAg ejE3X3JlcyA9IHN2ZG90X3U2NCAoejAsIHoxNiwgejE3KSwKKwkgICAgIHox N19yZXMgPSBzdmRvdCAoejAsIHoxNiwgejE3KSkKKworLyoKKyoqIGRvdF91 NjRfdW50aWVkOgorKioJbW92cHJmeAl6MCwgejEKKyoqCXVkb3QJejBcLmQs IHoxNlwuaCwgejE3XC5oCisqKglyZXQKKyovCitURVNUX0RVQUxfWiAoZG90 X3U2NF91bnRpZWQsIHN2dWludDY0X3QsIHN2dWludDE2X3QsCisJICAgICB6 MCA9IHN2ZG90X3U2NCAoejEsIHoxNiwgejE3KSwKKwkgICAgIHowID0gc3Zk b3QgKHoxLCB6MTYsIHoxNykpCisKKy8qCisqKiBkb3RfdzBfdTY0X3RpZWQx OgorKioJbW92CSh6WzAtOV0rXC5oKSwgdzAKKyoqCXVkb3QJejBcLmQsIHox NlwuaCwgXDEKKyoqCXJldAorKi8KK1RFU1RfRFVBTF9aUyAoZG90X3cwX3U2 NF90aWVkMSwgc3Z1aW50NjRfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QsCisJ ICAgICAgejAgPSBzdmRvdF9uX3U2NCAoejAsIHoxNiwgeDApLAorCSAgICAg IHowID0gc3Zkb3QgKHowLCB6MTYsIHgwKSkKKworLyoKKyoqIGRvdF93MF91 NjRfdGllZDI6CisqKgltb3YJKHpbMC05XStcLmgpLCB3MAorKioJbW92CSh6 WzAtOV0rKVwuZCwgejE2XC5kCisqKgltb3ZwcmZ4CXoxNiwgejAKKyoqCXVk b3QJejE2XC5kLCBcMlwuaCwgXDEKKyoqCXJldAorKi8KK1RFU1RfRFVBTF9a UyAoZG90X3cwX3U2NF90aWVkMiwgc3Z1aW50NjRfdCwgc3Z1aW50MTZfdCwg dWludDE2X3QsCisJICAgICAgejE2X3JlcyA9IHN2ZG90X25fdTY0ICh6MCwg ejE2LCB4MCksCisJICAgICAgejE2X3JlcyA9IHN2ZG90ICh6MCwgejE2LCB4 MCkpCisKKy8qCisqKiBkb3RfdzBfdTY0X3VudGllZDoKKyoqCW1vdgkoelsw LTldK1wuaCksIHcwCisqKgltb3ZwcmZ4CXowLCB6MQorKioJdWRvdAl6MFwu ZCwgejE2XC5oLCBcMQorKioJcmV0CisqLworVEVTVF9EVUFMX1pTIChkb3Rf dzBfdTY0X3VudGllZCwgc3Z1aW50NjRfdCwgc3Z1aW50MTZfdCwgdWludDE2 X3QsCisJICAgICAgejAgPSBzdmRvdF9uX3U2NCAoejEsIHoxNiwgeDApLAor CSAgICAgIHowID0gc3Zkb3QgKHoxLCB6MTYsIHgwKSkKKworLyoKKyoqIGRv dF9oMF91NjRfdW50aWVkOgorKioJbW92CSh6WzAtOV0rXC5oKSwgaDAKKyoq CW1vdnByZngJejEsIHowCisqKgl1ZG90CXoxXC5kLCB6MTZcLmgsIFwxCisq KglyZXQKKyovCitURVNUX0RVQUxfWlMgKGRvdF9oMF91NjRfdW50aWVkLCBz dnVpbnQ2NF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCwKKwkgICAgICB6MSA9 IHN2ZG90X25fdTY0ICh6MCwgejE2LCBkMCksCisJICAgICAgejEgPSBzdmRv dCAoejAsIHoxNiwgZDApKQorCisvKgorKiogZG90XzJfdTY0X3VudGllZDoK KyoqCW1vdgkoelswLTldK1wuaCksICMyCisqKgltb3ZwcmZ4CXowLCB6MQor KioJdWRvdAl6MFwuZCwgejE2XC5oLCBcMQorKioJcmV0CisqLworVEVTVF9E VUFMX1ogKGRvdF8yX3U2NF91bnRpZWQsIHN2dWludDY0X3QsIHN2dWludDE2 X3QsCisJICAgICB6MCA9IHN2ZG90X25fdTY0ICh6MSwgejE2LCAyKSwKKwkg ICAgIHowID0gc3Zkb3QgKHoxLCB6MTYsIDIpKQorCisvKgorKiogZG90X20x X3U2NDoKKyoqCW1vdgkoelswLTldKylcLmIsICMtMQorKioJdWRvdAl6MFwu ZCwgejE2XC5oLCBcMVwuaAorKioJcmV0CisqLworVEVTVF9EVUFMX1ogKGRv dF9tMV91NjQsIHN2dWludDY0X3QsIHN2dWludDE2X3QsCisJICAgICB6MCA9 IHN2ZG90X25fdTY0ICh6MCwgejE2LCAtMSksCisJICAgICB6MCA9IHN2ZG90 ICh6MCwgejE2LCAtMSkpCisKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9hYXJjaDY0L3N2ZS1hY2xlL2FzbS90ZXN0X3N2ZV9hY2xl LmggYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUtYWNs ZS9hc20vdGVzdF9zdmVfYWNsZS5oCmluZGV4IGY5MWYyNmYuLjA3YjExMGMg MTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0 L3N2ZS1hY2xlL2FzbS90ZXN0X3N2ZV9hY2xlLmgKKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlLWFjbGUvYXNtL3Rlc3Rfc3Zl X2FjbGUuaApAQCAtMjYsNiArMjYsOCBAQAogICAgICBhc20gdm9sYXRpbGUg KCIiIDo6ICJyIiAoWE4pKQogIyAgZGVmaW5lIEJJTkRfT1VUUFVUX0QoRE4p IFwKICAgICAgYXNtIHZvbGF0aWxlICgiIiA6OiAidyIgKEROKSkKKyMgIGRl ZmluZSBERUNMQVJFX1JFU1VMVChUWVBFLCBaTikgXAorICAgICByZWdpc3Rl ciBUWVBFIFpOIyNfcmVzIGFzbSAoI1pOKQogI2Vsc2UKICMgIGRlZmluZSBC SU5EX0lOUFVUX1ooVFlQRSwgWk4pIFRZUEUgWk4KICMgIGRlZmluZSBCSU5E X0lOUFVUX1AoUE4pIHN2Ym9vbF90IFBOCkBAIC0zNSw2ICszNyw3IEBACiAj ICBkZWZpbmUgQklORF9PVVRQVVRfUChQTikgKHZvaWQpIFBOCiAjICBkZWZp bmUgQklORF9PVVRQVVRfWChYTikgKHZvaWQpIFhOCiAjICBkZWZpbmUgQklO RF9PVVRQVVRfRChETikgKHZvaWQpIEROCisjICBkZWZpbmUgREVDTEFSRV9S RVNVTFQoVFlQRSwgWk4pIFRZUEUgWk4jI19yZXMKICNlbmRpZgogCiAjaWYg ZGVmaW5lZCAoVEVTVF9PVkVSTE9BRFMpCkBAIC01Miw2ICs1NSwxNiBAQAog ICBCSU5EX0lOUFVUX1ogKFRZUEUsIHozKTsJCQlcCiAgIEJJTkRfSU5QVVRf WiAoVFlQRSwgejQpCiAKKyNkZWZpbmUgQklORF9JTlBVVF9aU19GUk9NX1ox NihUWVBFKQkJXAorICBCSU5EX0lOUFVUX1ogKFRZUEUsIHoxNik7CQkJXAor ICBCSU5EX0lOUFVUX1ogKFRZUEUsIHoxNyk7CQkJXAorICBCSU5EX0lOUFVU X1ogKFRZUEUsIHoxOCkJCQlcCisKKyNkZWZpbmUgREVDTEFSRV9SRVNVTFRf WlNfRlJPTV9aMTYoVFlQRSkJXAorICBERUNMQVJFX1JFU1VMVCAoVFlQRSwg ejE2KTsJCQlcCisgIERFQ0xBUkVfUkVTVUxUIChUWVBFLCB6MTcpOwkJCVwK KyAgREVDTEFSRV9SRVNVTFQgKFRZUEUsIHoxOCkKKwogI2RlZmluZSBCSU5E X09VVFBVVF9aUwkJCQlcCiAgIEJJTkRfT1VUUFVUX1ogKHowKTsJCQkJXAog ICBCSU5EX09VVFBVVF9aICh6MSk7CQkJCVwKQEAgLTczLDYgKzg2LDExIEBA CiAgIEJJTkRfT1VUUFVUX1AgKHAzKTsJCQkJXAogICBCSU5EX09VVFBVVF9Q IChwNCkKIAorI2RlZmluZSBCSU5EX1JFU1VMVF9aU19GUk9NX1oxNgkJCVwK KyAgQklORF9PVVRQVVRfWiAoejE2X3Jlcyk7CQkJXAorICBCSU5EX09VVFBV VF9aICh6MTdfcmVzKTsJCQlcCisgIEJJTkRfT1VUUFVUX1ogKHoxOF9yZXMp CisKICNpZmRlZiBfX2NwbHVzcGx1cwogI2RlZmluZSBTVEFSVChOQU1FKSBl eHRlcm4gIkMiIHZvaWQgTkFNRSAodm9pZCk7IHZvaWQgTkFNRSAodm9pZCkK ICNlbHNlCkBAIC04OSw2ICsxMDcsMTkgQEAKICAgICBCSU5EX09VVFBVVF9Q IChwMCk7CQkJCQlcCiAgIH0KIAorI2RlZmluZSBURVNUX0RVQUxfWihOQU1F LCBUWVBFMSwgVFlQRTIsIENPREUxLCBDT0RFMikJXAorICBTVEFSVCAoTkFN RSkJCQkJCQlcCisgIHsJCQkJCQkJXAorICAgIEJJTkRfSU5QVVRfWlMgKFRZ UEUxKTsJCQkJXAorICAgIEJJTkRfSU5QVVRfWlNfRlJPTV9aMTYgKFRZUEUy KTsJCQlcCisgICAgREVDTEFSRV9SRVNVTFRfWlNfRlJPTV9aMTYgKFRZUEUx KTsJCQlcCisgICAgQklORF9JTlBVVF9QIChwMCk7CQkJCQlcCisgICAgSU5W T0tFIChDT0RFMSwgQ09ERTIpOwkJCQlcCisgICAgQklORF9PVVRQVVRfWlM7 CQkJCQlcCisgICAgQklORF9PVVRQVVRfUCAocDApOwkJCQkJXAorICAgIEJJ TkRfUkVTVUxUX1pTX0ZST01fWjE2OwkJCQlcCisgIH0KKwogI2RlZmluZSBU RVNUX1VOSUZPUk1fWlMoTkFNRSwgWlRZUEUsIFNUWVBFLCBDT0RFMSwgQ09E RTIpCVwKICAgU1RBUlQgKE5BTUUpCQkJCQkJCVwKICAgewkJCQkJCQkJXApA QCAtMTAzLDYgKzEzNCwyMyBAQAogICAgIEJJTkRfT1VUUFVUX1AgKHAwKTsJ CQkJCQlcCiAgIH0KIAorI2RlZmluZSBURVNUX0RVQUxfWlMoTkFNRSwgWlRZ UEUxLCBaVFlQRTIsIFNUWVBFLCBDT0RFMSwgQ09ERTIpCVwKKyAgU1RBUlQg KE5BTUUpCQkJCQkJCVwKKyAgewkJCQkJCQkJXAorICAgIEJJTkRfSU5QVVRf WlMgKFpUWVBFMSk7CQkJCQlcCisgICAgQklORF9JTlBVVF9aU19GUk9NX1ox NiAoWlRZUEUyKTsJCQkJXAorICAgIERFQ0xBUkVfUkVTVUxUX1pTX0ZST01f WjE2IChaVFlQRTEpOwkJCVwKKyAgICBCSU5EX0lOUFVUX1AgKHAwKTsJCQkJ CQlcCisgICAgQklORF9JTlBVVF9YIChTVFlQRSwgeDApOwkJCQkJXAorICAg IEJJTkRfSU5QVVRfRCAoU1RZUEUsIGQwKTsJCQkJCVwKKyAgICBJTlZPS0Ug KENPREUxLCBDT0RFMik7CQkJCQlcCisgICAgQklORF9PVVRQVVRfWlM7CQkJ CQkJXAorICAgIEJJTkRfT1VUUFVUX1ggKHgwKTsJCQkJCQlcCisgICAgQklO RF9PVVRQVVRfRCAoZDApOwkJCQkJCVwKKyAgICBCSU5EX09VVFBVVF9QIChw MCk7CQkJCQkJXAorICAgIEJJTkRfUkVTVUxUX1pTX0ZST01fWjE2OwkJCQkJ XAorICB9CisKICNkZWZpbmUgVEVTVF9QKE5BTUUsIENPREUxLCBDT0RFMikJ XAogICBTVEFSVCAoTkFNRSkJCQkJXAogICB7CQkJCQlcCmRpZmYgLS1naXQg YS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUtYWNsZS9n ZW5lcmFsLWMvZG90XzEuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9h YXJjaDY0L3N2ZS1hY2xlL2dlbmVyYWwtYy9kb3RfMS5jCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIyNWQ2ZDkKLS0tIC9kZXYvbnVs bAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUt YWNsZS9nZW5lcmFsLWMvZG90XzEuYwpAQCAtMCwwICsxLDEzIEBACisKKy8q IHsgZGctZG8gY29tcGlsZSB9ICovCisKKyNwcmFnbWEgR0NDIGFhcmNoNjQg ImFybV9zdmUuaCIgLyogeyBkZy1tZXNzYWdlICJub3RlOiBleHBlY3RlZCAn c3Z1aW50OF90JyBidXQgYXJndW1lbnQgaXMgb2YgdHlwZSAnc3Z1aW50MzJf dCciIH0gKi8KKworc3ZpbnQzMl90CitmMSAoc3Zib29sX3QgcGcsIHN2dWlu dDMyX3QgeCwgc3Z1aW50OF90IHksIHN2dWludDhfdCB6KQoreworICBzdmRv dF91MzIgKHgsIHksIHgpOyAvKiB7IGRnLWVycm9yICJpbmNvbXBhdGlibGUg dHlwZSBmb3IgYXJndW1lbnQgMyBvZiAnc3Zkb3RfdTMyJyIgfSAqLworICBz dmRvdF91MzIgKHgpOyAvKiB7IGRnLWVycm9yICJ0b28gZmV3IGFyZ3VtZW50 cyB0byBmdW5jdGlvbiAnc3Zkb3RfdTMyJyIgfSAqLworICBzdmRvdF91MzIg KHgsIHksIHosIHgpOyAvKiB7IGRnLWVycm9yICJ0b28gbWFueSBhcmd1bWVu dHMgdG8gZnVuY3Rpb24gJ3N2ZG90X3UzMiciIH0gKi8KKyAgcmV0dXJuIHN2 ZG90X3UzMiAoeCwgeSwgeik7IC8qIHsgZGctZXJyb3IgImluY29tcGF0aWJs ZSB0eXBlcyB3aGVuIHJldHVybmluZyB0eXBlICdzdnVpbnQzMl90JyBidXQg J3N2aW50MzJfdCcgd2FzIGV4cGVjdGVkIiB9ICovCit9CmRpZmYgLS1naXQg YS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUtYWNsZS9n ZW5lcmFsLWMvZG90XzIuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9h YXJjaDY0L3N2ZS1hY2xlL2dlbmVyYWwtYy9kb3RfMi5jCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiMWI0MWEKLS0tIC9kZXYvbnVs bAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUt YWNsZS9nZW5lcmFsLWMvZG90XzIuYwpAQCAtMCwwICsxLDE1IEBACisKKy8q IHsgZGctZG8gY29tcGlsZSB9ICovCisKKyNwcmFnbWEgR0NDIGFhcmNoNjQg ImFybV9zdmUuaCIKKwordm9pZAorZjEgKHN2dWludDMyX3QgeCwgc3Z1aW50 OF90IHksIHN2aW50OF90IHopCit7CisgIHN2ZG90ICh4KTsgLyogeyBkZy1l cnJvciAidG9vIGZldyBhcmd1bWVudHMgdG8gZnVuY3Rpb24gJ3N2ZG90JyIg fSAqLworICBzdmRvdCAoeCwgeSwgeSwgeSk7IC8qIHsgZGctZXJyb3IgInRv byBtYW55IGFyZ3VtZW50cyB0byBmdW5jdGlvbiAnc3Zkb3QnIiB9ICovCisg IHN2ZG90ICh4LCB5LCB6KTsgLyogeyBkZy1lcnJvciAicGFzc2luZyAnc3Zp bnQ4X3QnIHRvIGFyZ3VtZW50IDMgb2YgJ3N2ZG90Jywgd2hpY2ggZXhwZWN0 cyAnc3Z1aW50OF90JyIgfSAqLworICBzdmRvdCAoeCwgeCwgeCk7IC8qIHsg ZGctZXJyb3IgInBhc3NpbmcgJ3N2dWludDMyX3QnIHRvIGFyZ3VtZW50IDIg b2YgJ3N2ZG90Jywgd2hpY2ggZXhwZWN0cyAnc3Z1aW50OF90JyIgfSAqLwor ICBzdmRvdCAoMSwgeSwgeSk7IC8qIHsgZGctZXJyb3IgInBhc3NpbmcgJ2lu dCcgdG8gYXJndW1lbnQgMSBvZiAnc3Zkb3QnLCB3aGljaCBleHBlY3RzIGFu IFNWRSB2ZWN0b3IgdHlwZSIgfSAqLworICBzdmRvdCAoeSwgeSwgeSk7IC8q IHsgZGctZXJyb3IgIidzdmRvdCcgaGFzIG5vIGZvcm0gdGhhdCB0YWtlcyAn c3Z1aW50OF90JyBhcmd1bWVudHMiIH0gKi8KK30KLS0gCjIuNy40Cgo= --00000000000077adb0057fb39ae9--