From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbguseast1.qq.com (smtpbguseast1.qq.com [54.204.34.129]) by sourceware.org (Postfix) with ESMTPS id D5AF1385800A for ; Thu, 11 Jan 2024 09:17:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D5AF1385800A Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivai.ai Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivai.ai ARC-Filter: OpenARC Filter v1.0.0 sourceware.org D5AF1385800A Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=54.204.34.129 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704964673; cv=none; b=pjuZPBkBHoLqoHCHYVUeSyqc0lCqU8n46xoJ/9OMqUUx2uVDkRIIvy4qD5TpzisIfbPCAL5iz+w4EuQv7lx5WvVOONwnYrvG6YmZb1jKRRcmKkaqa/WoWhYE8rJtKc/nlv7lpt3B7XHJsOw94yPJv/x/Xm1oE02/lJaw6xJKDdw= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704964673; c=relaxed/simple; bh=77O1qiU0DXiwoy1DoSyP8pj26JkcloGWJm2Uot4tmGQ=; h=Date:From:To:Subject:Mime-Version:Message-ID; b=VbfE71o27yVZOcWm2NBpZeRbA6Gw8cSHfB6ZqHBKjEdWYbJ7WtEiO8CLqoB9VlddxH3DpeXNErGMbwcHlhyquuXz/xN9DHMSaBiht1r90GLh5kG3TjgXAC9Tic/RQSQIj79pLfjvG0IHqAMOXa8eDrejNavC671PPNlJ0JwThqY= ARC-Authentication-Results: i=1; server2.sourceware.org X-QQ-mid: bizesmtp89t1704964646tmaai15e Received: from LAPTOP-EPITNQBU ( [121.35.183.89]) by bizesmtp.qq.com (ESMTP) with id ; Thu, 11 Jan 2024 17:17:24 +0800 (CST) X-QQ-SSF: 00400000000000G0V000000A0000000 X-QQ-FEAT: k8Irs33ik7s4svlF2giHFlbJZc5aJAcucCaVvQcpnu6VPKgIO9Vevtvm5MJJN 2JC0RfCZW2dMKfkqJv+9CDTY4NlytGRVLskoui51p410Vs/nLFcIx8sukEYDvVRXW+/Qk7S QABCBl+LStvOHixiiuACqy4eQuCHvtowy/yVQFIEo75X9dXf3QPTbAjkEX1ZZBJtu+ZFrCO jLy/NVLZ/VHRm6rphkguTwOdEX2T6ZjWF5WkRbaRMZQ8/Szy0DAl1CLeSMqUuhyOT/whE/9 9xOWO1N+cG3pyXFlV8XJP5jWG1+egVTFzAXGCBuQFcd5JGwYWOCsJtqQlbegUBKrHwkgTTT Dur7yC/PoSwrFT9wSxeW2sCObKqUChZ3DwGIc3dzLpf6ckBBsTkaYlQFn16ew/CyuyvfSj7 MAMksptHv0ntkQJ09cuEz0W2/4phBZMgmRYPlTAu6to= X-QQ-GoodBg: 2 X-BIZMAIL-ID: 2022411821151598456 Date: Thu, 11 Jan 2024 17:17:24 +0800 From: "juzhe.zhong@rivai.ai" To: cooper.joshua , gcc-patches Cc: "Jim Wilson" , palmer , andrew , philipp.tomsich , jeffreyalaw , christoph.muellner , jinma , cooper.qu Subject: =?UTF-8?B?UmU6IFJl77yaW1BBVENIIHY1XSBSSVNDLVY6IEFkZCBzdXBwb3J0IGZvciB4dGhlYWR2ZWN0b3Itc3BlY2lmaWMgaW50cmluc2ljcy4=?= References: , X-Priority: 3 X-GUID: F8B4E2E5-CA4B-48E0-BBF8-CF4F833618A2 X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: <0DCA10082832D0E1+202401111717242848100@rivai.ai> Content-Type: multipart/alternative; boundary="----=_001_NextPart435221366034_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-9.9 required=5.0 tests=BAYES_00,BODY_8BITS,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SCC_5_SHORT_WORD_LINES,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE 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. ------=_001_NextPart435221366034_=---- Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 WW91IG1lYW4gd2hpY2ggcGF0dGVybiBvcHRpbWl6ZWQgc2V4dC92emV4dCBw YXR0ZXJuPw0KDQpJIGRpZG4ndCBzZWUgdGhlYWR2ZWN0b3Itc3BlY2lmaWMg ZXh0ZW5zaW9uIHBhdHRlcm5zLiBDb3VsZCB5b3Ugc2hvdyBtZT8NCg0KDQoN Cg0KanV6aGUuemhvbmdAcml2YWkuYWkNCiANCuWPkeS7tuS6uu+8miBqb3No dWENCuWPkemAgeaXtumXtO+8miAyMDI0LTAxLTExIDE3OjE0DQrmlLbku7bk urrvvJoganV6aGUuemhvbmdAcml2YWkuYWk7IGdjYy1wYXRjaGVzDQrmioTp gIHvvJogSmltIFdpbHNvbjsgcGFsbWVyOyBhbmRyZXc7IHBoaWxpcHAudG9t c2ljaDsgamVmZnJleWFsYXc7IGNocmlzdG9waC5tdWVsbG5lcjsgamlubWE7 IGNvb3Blci5xdQ0K5Li76aKY77yaIFJl77yaW1BBVENIIHY1XSBSSVNDLVY6 IEFkZCBzdXBwb3J0IGZvciB4dGhlYWR2ZWN0b3Itc3BlY2lmaWMgaW50cmlu c2ljcy4NClRvIGJlIHNwZWNpZmljLCBpbiBDU0UgcGFzcywgdGhlIGluaXRp YWwgcGF0dGVybiB3aWxsIGJlIG9wdGltaXplZCBpbnRvIHRoZSBzZXh0L3pl eHQgcGF0dGVybi4NCiANCiANCiANCiANCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0K5Y+R5Lu25Lq677yaam9zaHVhIDxjb29wZXIuam9zaHVhQGxpbnV4LmFs aWJhYmEuY29tPg0K5Y+R6YCB5pe26Ze077yaMjAyNOW5tDHmnIgxMeaXpSjm mJ/mnJ/lm5spIDE3OjExDQrmlLbku7bkurrvvJoianV6aGUuemhvbmdAcml2 YWkuYWkiPGp1emhlLnpob25nQHJpdmFpLmFpPjsgImdjYy1wYXRjaGVzIjxn Y2MtcGF0Y2hlc0BnY2MuZ251Lm9yZz4NCuaKhOOAgOmAge+8mkppbSBXaWxz b248amltLndpbHNvbi5nY2NAZ21haWwuY29tPjsgcGFsbWVyPHBhbG1lckBk YWJiZWx0LmNvbT47IGFuZHJldzxhbmRyZXdAc2lmaXZlLmNvbT47ICJwaGls aXBwLnRvbXNpY2giPHBoaWxpcHAudG9tc2ljaEB2cnVsbC5ldT47IGplZmZy ZXlhbGF3PGplZmZyZXlhbGF3QGdtYWlsLmNvbT47ICJjaHJpc3RvcGgubXVl bGxuZXIiPGNocmlzdG9waC5tdWVsbG5lckB2cnVsbC5ldT47IGppbm1hPGpp bm1hQGxpbnV4LmFsaWJhYmEuY29tPjsgImNvb3Blci5xdSI8Y29vcGVyLnF1 QGxpbnV4LmFsaWJhYmEuY29tPg0K5Li744CA6aKY77yaUmXvvJpbUEFUQ0gg djVdIFJJU0MtVjogQWRkIHN1cHBvcnQgZm9yIHh0aGVhZHZlY3Rvci1zcGVj aWZpYyBpbnRyaW5zaWNzLg0KIA0KIA0Kc2V4dC96ZXh0IHdpbGwgYmUgZ2Vu ZXJhdGVkIGluIE8yIGV2ZW4gd2l0aG91dCBjb3JyZXNwb25kaW5nIGludHJp bnNpY3MuDQogDQogDQogDQogDQogDQogDQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCuWPkeS7tuS6uu+8mmp1emhlLnpob25nQHJpdmFpLmFpIDxqdXpoZS56 aG9uZ0ByaXZhaS5haT4NCuWPkemAgeaXtumXtO+8mjIwMjTlubQx5pyIMTHm l6Uo5pif5pyf5ZubKSAxNzowNw0K5pS25Lu25Lq677yaImNvb3Blci5qb3No dWEiPGNvb3Blci5qb3NodWFAbGludXguYWxpYmFiYS5jb20+OyAiZ2NjLXBh dGNoZXMiPGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnPg0K5oqEIOmAge+8mkpp bSBXaWxzb248amltLndpbHNvbi5nY2NAZ21haWwuY29tPjsgcGFsbWVyPHBh bG1lckBkYWJiZWx0LmNvbT47IGFuZHJldzxhbmRyZXdAc2lmaXZlLmNvbT47 ICJwaGlsaXBwLnRvbXNpY2giPHBoaWxpcHAudG9tc2ljaEB2cnVsbC5ldT47 IGplZmZyZXlhbGF3PGplZmZyZXlhbGF3QGdtYWlsLmNvbT47ICJjaHJpc3Rv cGgubXVlbGxuZXIiPGNocmlzdG9waC5tdWVsbG5lckB2cnVsbC5ldT47ICJj b29wZXIuam9zaHVhIjxjb29wZXIuam9zaHVhQGxpbnV4LmFsaWJhYmEuY29t PjsgamlubWE8amlubWFAbGludXguYWxpYmFiYS5jb20+OyAiY29vcGVyLnF1 Ijxjb29wZXIucXVAbGludXguYWxpYmFiYS5jb20+DQrkuLsg6aKY77yaUmU6 IFtQQVRDSCB2NV0gUklTQy1WOiBBZGQgc3VwcG9ydCBmb3IgeHRoZWFkdmVj dG9yLXNwZWNpZmljIGludHJpbnNpY3MuDQogDQogDQplbnVtIHJlcXVpcmVk X2V4dA0Kew0KICBWRUNUT1JfRVhULCAgIC8qIFZlY3RvciBleHRlbnNpb24g Ki8NCisgIFhUSEVBRFZFQ1RPUl9FWFQsICAgLyogWFRoZWFkVmVjdG9yIGV4 dGVuc2lvbiAqLw0KICBaVkJCX0VYVCwgICAgLyogQ3J5dG8gdmVjdG9yIFp2 YmIgc3ViLWV4dCAqLw0KICBaVkJCX09SX1pWS0JfRVhULCAvKiBDcnl0byB2 ZWN0b3IgWnZiYiBvciB6dmtiIHN1Yi1leHQgKi8NCiAgWlZCQ19FWFQsICAg IC8qIENyeXB0byB2ZWN0b3IgWnZiYyBzdWItZXh0ICovDQogDQogDQogDQpB ZGQgdGhlYWR2ZWN0b3IgdG8gdGhlIGVuZCBvZiB0aGUgZW51bS4NCiANCiAN CisgICAgICBjYXNlIFhUSEVBRFZFQ1RPUl9FWFQ6DQorIHJldHVybiBUQVJH RVRfWFRIRUFEVkVDVE9SOw0KIA0KIA0KIA0KU2FtZS4NCiANCiANCisgICIm JiByZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5kc1swXSwgPE1PREU+bW9kZSkN CisgICAmJiByZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5kc1szXSwgPE1PREU+ bW9kZSkNCisgICAmJiBzYXRpc2ZpZXNfY29uc3RyYWludF92dSAob3BlcmFu ZHNbMl0pDQorICAgJiYgSU5UVkFMIChvcGVyYW5kc1s3XSkgPT0gcmlzY3Zf dmVjdG9yOjpWTE1BWCINCiANCiANCiANCllvdSBjYW4gdXNlIHdob2xlX3Jl Z190b19yZWdfbW92ZV9wDQogDQogDQogDQogDQpCdHcsIEkgcmV2aWV3IGFn YWluIDogICBSSVNDLVY6IEhhbmRsZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIFhU aGVhZHZlY3RvciBhbmQgVmVjdG9yDQogDQogDQogICAgKGFueV9leHRlbmQ6 VldFWFRJICAgICAgKG1hdGNoX29wZXJhbmQ6PFZfRE9VQkxFX1RSVU5DPiAz ICJyZWdpc3Rlcl9vcGVyYW5kIiAgICJXMjEsVzIxLFcyMSxXMjEsVzQyLFc0 MixXNDIsVzQyLFc4NCxXODQsVzg0LFc4NCwgICB2ciwgICB2ciIpKSAgICAo bWF0Y2hfb3BlcmFuZDpWV0VYVEkgMiAidmVjdG9yX21lcmdlX29wZXJhbmQi ICAgICAgICAgICAiIHZ1LCB2dSwgIDAsICAwLCB2dSwgdnUsICAwLCAgMCwg dnUsIHZ1LCAgMCwgIDAsICAgdnUsICAgIDAiKSkpXS0gICJUQVJHRVRfVkVD VE9SIisgICJUQVJHRVRfVkVDVE9SICYmICFUQVJHRVRfWFRIRUFEVkVDVE9S IiAgICJ2PHN6PmV4dC52ZjJcdCUwLCUzJXAxIiAgIFsoc2V0X2F0dHIgInR5 cGUiICJ2ZXh0IikgICAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+IilAQCAt MzcxMyw3ICszNzQ0LDcgQEAgICAgKGFueV9leHRlbmQ6VlFFWFRJICAgICAg KG1hdGNoX29wZXJhbmQ6PFZfUVVBRF9UUlVOQz4gMyAicmVnaXN0ZXJfb3Bl cmFuZCIgICAiVzQzLFc0MyxXNDMsVzQzLFc4NixXODYsVzg2LFc4NiwgICB2 ciwgICB2ciIpKSAgICAobWF0Y2hfb3BlcmFuZDpWUUVYVEkgMiAidmVjdG9y X21lcmdlX29wZXJhbmQiICAgICAgICAgIiB2dSwgdnUsICAwLCAgMCwgdnUs IHZ1LCAgMCwgIDAsICAgdnUsICAgIDAiKSkpXS0gICJUQVJHRVRfVkVDVE9S IisgICJUQVJHRVRfVkVDVE9SICYmICFUQVJHRVRfWFRIRUFEVkVDVE9SIiAg ICJ2PHN6PmV4dC52ZjRcdCUwLCUzJXAxIiAgIFsoc2V0X2F0dHIgInR5cGUi ICJ2ZXh0IikgICAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+IilAQCAtMzcz NCw3ICszNzY1LDcgQEAgICAgKGFueV9leHRlbmQ6Vk9FWFRJICAgICAgKG1h dGNoX29wZXJhbmQ6PFZfT0NUX1RSVU5DPiAzICJyZWdpc3Rlcl9vcGVyYW5k IiAgICJXODcsVzg3LFc4NyxXODcsICAgdnIsICAgdnIiKSkgICAgKG1hdGNo X29wZXJhbmQ6Vk9FWFRJIDIgInZlY3Rvcl9tZXJnZV9vcGVyYW5kIiAgICAg ICAgIiB2dSwgdnUsICAwLCAgMCwgICB2dSwgICAgMCIpKSldLSAgIlRBUkdF VF9WRUNUT1IiKyAgIlRBUkdFVF9WRUNUT1IgJiYgIVRBUkdFVF9YVEhFQURW RUNUT1IiICAgInY8c3o+ZXh0LnZmOFx0JTAsJTMlcDEiICAgWyhzZXRfYXR0 ciAidHlwZSIgInZleHQiKSAgICAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4i KQ0KV2h5IGRvIHlvdSBhZGQgdGhlc2UgIVRBUkdFUlRfWFRIRUFEVkVDUlRP UiA/DQogDQogDQpqdXpoZS56aG9uZ0ByaXZhaS5haQ0KIA0KRnJvbTogSnVu IFNoYSAoSm9zaHVhKQ0KRGF0ZTogMjAyNC0wMS0xMSAxNjo0Ng0KVG86IGdj Yy1wYXRjaGVzDQpDQzogamltLndpbHNvbi5nY2M7IHBhbG1lcjsgYW5kcmV3 OyBwaGlsaXBwLnRvbXNpY2g7IGplZmZyZXlhbGF3OyBjaHJpc3RvcGgubXVl bGxuZXI7IGp1emhlLnpob25nOyBKdW4gU2hhIChKb3NodWEpOyBKaW4gTWE7 IFhpYW5taWFvIFF1DQpTdWJqZWN0OiBbUEFUQ0ggdjVdIFJJU0MtVjogQWRk IHN1cHBvcnQgZm9yIHh0aGVhZHZlY3Rvci1zcGVjaWZpYyBpbnRyaW5zaWNz Lg0KIA0KVGhpcyBwYXRjaCBvbmx5IGludm9sdmVzIHRoZSBnZW5lcmF0aW9u IG9mIHh0aGVhZHZlY3Rvcg0Kc3BlY2lhbCBsb2FkL3N0b3JlIGluc3RydWN0 aW9ucyBhbmQgdmV4dCBpbnN0cnVjdGlvbnMuDQpnY2MvQ2hhbmdlTG9nOg0K KiBjb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmNj DQooY2xhc3MgdGhfbG9hZHN0b3JlX3dpZHRoKTogRGVmaW5lIG5ldyBidWls dGluIGJhc2VzLg0KKGNsYXNzIHRoX2V4dHJhY3QpOiBEZWZpbmUgbmV3IGJ1 aWx0aW4gYmFzZXMuDQooQkFTRSk6IERlZmluZSBuZXcgYnVpbHRpbiBiYXNl cy4NCiogY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNl cy5oOg0KRGVmaW5lIG5ldyBidWlsdGluIGNsYXNzLg0KKiBjb25maWcvcmlz Y3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5jYw0KKHN0cnVjdCB0 aF9sb2Fkc3RvcmVfd2lkdGhfZGVmKTogRGVmaW5lIG5ldyBidWlsdGluIHNo YXBlcy4NCihzdHJ1Y3QgdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGhfZGVm KToNCkRlZmluZSBuZXcgYnVpbHRpbiBzaGFwZXMuDQooc3RydWN0IHRoX2V4 dHJhY3RfZGVmKTogRGVmaW5lIG5ldyBidWlsdGluIHNoYXBlcy4NCihTSEFQ RSk6IERlZmluZSBuZXcgYnVpbHRpbiBzaGFwZXMuDQoqIGNvbmZpZy9yaXNj di9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmg6DQpEZWZpbmUgbmV3 IGJ1aWx0aW4gc2hhcGVzLg0KKiBjb25maWcvcmlzY3YvcmlzY3YtdmVjdG9y LWJ1aWx0aW5zLmNjIChERUZfUlZWX0ZVTkNUSU9OKToNCiogY29uZmlnL3Jp c2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oIChlbnVtIHJlcXVpcmVkX2V4 dCk6DQooc3RydWN0IGZ1bmN0aW9uX2dyb3VwX2luZm8pOg0KKiBjb25maWcv cmlzY3YvdC1yaXNjdjogQWRkIHRoZWFkLXZlY3Rvci1idWlsdGlucy1mdW5j dGlvbnMuZGVmDQoqIGNvbmZpZy9yaXNjdi90aGVhZC12ZWN0b3IubWQNCihA cHJlZF9tb3Zfd2lkdGg8dmxtZW1fb3BfYXR0cj48bW9kZT4pOiBBZGQgbmV3 IHBhdHRlcm5zLg0KKCpwcmVkX21vdl93aWR0aDx2bG1lbV9vcF9hdHRyPjxt b2RlPik6IExpa2V3aXNlLg0KKEBwcmVkX3N0b3JlX3dpZHRoPHZsbWVtX29w X2F0dHI+PG1vZGU+KTogTGlrZXdpc2UuDQooQHByZWRfc3RyaWRlZF9sb2Fk X3dpZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+KTogTGlrZXdpc2UuDQooQHBy ZWRfc3RyaWRlZF9zdG9yZV93aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2RlPik6 IExpa2V3aXNlLg0KKEBwcmVkX2luZGV4ZWRfbG9hZF93aWR0aDx2bG1lbV9v cF9hdHRyPjxtb2RlPik6IExpa2V3aXNlLg0KKEBwcmVkX2luZGV4ZWRfPHZs bWVtX29yZGVyX2F0dHI+c3RvcmVfd2lkdGg8dmxtZW1fb3BfYXR0cj48bW9k ZT4pOg0KKEBwcmVkX3RoX2V4dHJhY3Q8bW9kZT4pOiBMaWtld2lzZS4NCigq cHJlZF90aF9leHRyYWN0PG1vZGU+KTogTGlrZXdpc2UuDQoqIGNvbmZpZy9y aXNjdi90aGVhZC12ZWN0b3ItYnVpbHRpbnMtZnVuY3Rpb25zLmRlZjogTmV3 IGZpbGUuDQpnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoNCiogZ2NjLnRhcmdl dC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsYi12c2IuYzogTmV3IHRlc3Qu DQoqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGJ1LXZz Yi5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFk dmVjdG9yL3ZsaC12c2guYzogTmV3IHRlc3QuDQoqIGdjYy50YXJnZXQvcmlz Y3YvcnZ2L3h0aGVhZHZlY3Rvci92bGh1LXZzaC5jOiBOZXcgdGVzdC4NCiog Z2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsdy12c3cuYzog TmV3IHRlc3QuDQoqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rv ci92bHd1LXZzdy5jOiBOZXcgdGVzdC4NCkNvLWF1dGhvcmVkLWJ5OiBKaW4g TWEgPGppbm1hQGxpbnV4LmFsaWJhYmEuY29tPg0KQ28tYXV0aG9yZWQtYnk6 IFhpYW5taWFvIFF1IDxjb29wZXIucXVAbGludXguYWxpYmFiYS5jb20+DQpD by1hdXRob3JlZC1ieTogQ2hyaXN0b3BoIE3DvGxsbmVyIDxjaHJpc3RvcGgu bXVlbGxuZXJAdnJ1bGwuZXU+DQotLS0NCi4uLi9yaXNjdi9yaXNjdi12ZWN0 b3ItYnVpbHRpbnMtYmFzZXMuY2MgICAgICB8IDEzOSArKysrKysrKysrDQou Li4vcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmggICAgICAg fCAgMzEgKysrDQouLi4vcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNo YXBlcy5jYyAgICAgfCAxNjAgKysrKysrKysrKysNCi4uLi9yaXNjdi9yaXNj di12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmggICAgICB8ICAgMyArDQpnY2Mv Y29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5jYyAgICAgfCAg NzAgKysrKysNCmdjYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0 aW5zLmggICAgICB8ICAgMyArDQpnY2MvY29uZmlnL3Jpc2N2L3QtcmlzY3Yg ICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKw0KLi4uL3Jpc2N2L3RoZWFk LXZlY3Rvci1idWlsdGlucy1mdW5jdGlvbnMuZGVmIHwgIDM5ICsrKw0KZ2Nj L2NvbmZpZy9yaXNjdi90aGVhZC12ZWN0b3IubWQgICAgICAgICAgICAgIHwg MjUzICsrKysrKysrKysrKysrKysrKw0KLi4uL3Jpc2N2L3J2di94dGhlYWR2 ZWN0b3IvdmxiLXZzYi5jICAgICAgICAgIHwgIDY4ICsrKysrDQouLi4vcmlz Y3YvcnZ2L3h0aGVhZHZlY3Rvci92bGJ1LXZzYi5jICAgICAgICAgfCAgNjgg KysrKysNCi4uLi9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsaC12c2guYyAg ICAgICAgICB8ICA2OCArKysrKw0KLi4uL3Jpc2N2L3J2di94dGhlYWR2ZWN0 b3IvdmxodS12c2guYyAgICAgICAgIHwgIDY4ICsrKysrDQouLi4vcmlzY3Yv cnZ2L3h0aGVhZHZlY3Rvci92bHctdnN3LmMgICAgICAgICAgfCAgNjggKysr KysNCi4uLi9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsd3UtdnN3LmMgICAg ICAgICB8ICA2OCArKysrKw0KMTUgZmlsZXMgY2hhbmdlZCwgMTEwNyBpbnNl cnRpb25zKCspDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL2NvbmZpZy9yaXNj di90aGVhZC12ZWN0b3ItYnVpbHRpbnMtZnVuY3Rpb25zLmRlZg0KY3JlYXRl IG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYveHRoZWFkdmVjdG9yL3ZsYi12c2IuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0 IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVj dG9yL3ZsYnUtdnNiLmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGgtdnNo LmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGh1LXZzaC5jDQpjcmVhdGUg bW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di94dGhlYWR2ZWN0b3Ivdmx3LXZzdy5jDQpjcmVhdGUgbW9kZSAxMDA2NDQg Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0 b3Ivdmx3dS12c3cuYw0KZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3Yv cmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmNjIGIvZ2NjL2NvbmZpZy9y aXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMuY2MNCmluZGV4IDQ2 ZjFhMWRhMzNlLi4zZWJhNzk0Mzc1NyAxMDA2NDQNCi0tLSBhL2djYy9jb25m aWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmNjDQorKysg Yi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNl cy5jYw0KQEAgLTIxMjUsNiArMjEyNSw4MyBAQCBwdWJsaWM6DQogIH0NCn07 DQorLyogSW1wbGVtZW50cw0KKyAqIHRoLnZsKGIvaC93KVt1XS52L3RoLnZz KGIvaC93KVt1XS52L3RoLnZscyhiL2gvdylbdV0udi90aC52c3MoYi9oL3cp W3VdLnYvDQorICogdGgudmx4KGIvaC93KVt1XS52L3RoLnZzW3VdeChiL2gv dykudg0KKyAqIGNvZGVnZW4uICAqLw0KK3RlbXBsYXRlPGJvb2wgU1RPUkVf UCwgbHN0X3R5cGUgTFNUX1RZUEUsIGludCBVTlNQRUM+DQorY2xhc3MgdGhf bG9hZHN0b3JlX3dpZHRoIDogcHVibGljIGZ1bmN0aW9uX2Jhc2UNCit7DQor cHVibGljOg0KKyAgYm9vbCBhcHBseV90YWlsX3BvbGljeV9wICgpIGNvbnN0 IG92ZXJyaWRlIHsgcmV0dXJuICFTVE9SRV9QOyB9DQorICBib29sIGFwcGx5 X21hc2tfcG9saWN5X3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIVNU T1JFX1A7IH0NCisNCisgIHVuc2lnbmVkIGludCBjYWxsX3Byb3BlcnRpZXMg KGNvbnN0IGZ1bmN0aW9uX2luc3RhbmNlICYpIGNvbnN0IG92ZXJyaWRlDQor ICB7DQorICAgIGlmIChTVE9SRV9QKQ0KKyAgICAgIHJldHVybiBDUF9XUklU RV9NRU1PUlk7DQorICAgIGVsc2UNCisgICAgICByZXR1cm4gQ1BfUkVBRF9N RU1PUlk7DQorICB9DQorDQorICBib29sIGNhbl9iZV9vdmVybG9hZGVkX3Ag KGVudW0gcHJlZGljYXRpb25fdHlwZV9pbmRleCBwcmVkKSBjb25zdCBvdmVy cmlkZQ0KKyAgew0KKyAgICBpZiAoU1RPUkVfUCB8fCBMU1RfVFlQRSA9PSBM U1RfSU5ERVhFRCkNCisgICAgICByZXR1cm4gdHJ1ZTsNCisgICAgcmV0dXJu IHByZWQgIT0gUFJFRF9UWVBFX25vbmU7DQorICB9DQorDQorICBydHggZXhw YW5kIChmdW5jdGlvbl9leHBhbmRlciAmZSkgY29uc3Qgb3ZlcnJpZGUNCisg IHsNCisgICAgZ2NjX2Fzc2VydCAoVEFSR0VUX1hUSEVBRFZFQ1RPUik7DQor ICAgIGlmIChMU1RfVFlQRSA9PSBMU1RfSU5ERVhFRCkNCisgICAgICB7DQor IGlmIChTVE9SRV9QKQ0KKyAgIHJldHVybiBlLnVzZV9leGFjdF9pbnNuICgN CisgICAgIGNvZGVfZm9yX3ByZWRfaW5kZXhlZF9zdG9yZV93aWR0aCAoVU5T UEVDLCBVTlNQRUMsDQorICAgICAgICAgICAgZS52ZWN0b3JfbW9kZSAoKSkp Ow0KKyBlbHNlDQorICAgcmV0dXJuIGUudXNlX2V4YWN0X2luc24gKA0KKyAg ICAgY29kZV9mb3JfcHJlZF9pbmRleGVkX2xvYWRfd2lkdGggKFVOU1BFQywg ZS52ZWN0b3JfbW9kZSAoKSkpOw0KKyAgICAgIH0NCisgICAgZWxzZSBpZiAo TFNUX1RZUEUgPT0gTFNUX1NUUklERUQpDQorICAgICAgew0KKyBpZiAoU1RP UkVfUCkNCisgICByZXR1cm4gZS51c2VfY29udGlndW91c19zdG9yZV9pbnNu ICgNCisgICAgIGNvZGVfZm9yX3ByZWRfc3RyaWRlZF9zdG9yZV93aWR0aCAo VU5TUEVDLCBlLnZlY3Rvcl9tb2RlICgpKSk7DQorIGVsc2UNCisgICByZXR1 cm4gZS51c2VfY29udGlndW91c19sb2FkX2luc24gKA0KKyAgICAgY29kZV9m b3JfcHJlZF9zdHJpZGVkX2xvYWRfd2lkdGggKFVOU1BFQywgZS52ZWN0b3Jf bW9kZSAoKSkpOw0KKyAgICAgIH0NCisgICAgZWxzZQ0KKyAgICAgIHsNCisg aWYgKFNUT1JFX1ApDQorICAgcmV0dXJuIGUudXNlX2NvbnRpZ3VvdXNfc3Rv cmVfaW5zbiAoDQorICAgICBjb2RlX2Zvcl9wcmVkX3N0b3JlX3dpZHRoIChV TlNQRUMsIGUudmVjdG9yX21vZGUgKCkpKTsNCisgZWxzZQ0KKyAgIHJldHVy biBlLnVzZV9jb250aWd1b3VzX2xvYWRfaW5zbiAoDQorICAgICBjb2RlX2Zv cl9wcmVkX21vdl93aWR0aCAoVU5TUEVDLCBlLnZlY3Rvcl9tb2RlICgpKSk7 DQorICAgICAgfQ0KKyAgfQ0KK307DQorDQorLyogSW1wbGVtZW50cyB2ZXh0 Lngudi4gICovDQorY2xhc3MgdGhfZXh0cmFjdCA6IHB1YmxpYyBmdW5jdGlv bl9iYXNlDQorew0KK3B1YmxpYzoNCisgIGJvb2wgYXBwbHlfdmxfcCAoKSBj b25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQ0KKyAgYm9vbCBhcHBs eV90YWlsX3BvbGljeV9wICgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZh bHNlOyB9DQorICBib29sIGFwcGx5X21hc2tfcG9saWN5X3AgKCkgY29uc3Qg b3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCisgIGJvb2wgdXNlX21hc2tf cHJlZGljYXRpb25fcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxz ZTsgfQ0KKyAgYm9vbCBoYXNfbWVyZ2Vfb3BlcmFuZF9wICgpIGNvbnN0IG92 ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9DQorDQorICBydHggZXhwYW5kIChm dW5jdGlvbl9leHBhbmRlciAmZSkgY29uc3Qgb3ZlcnJpZGUNCisgIHsNCisg ICAgZ2NjX2Fzc2VydCAoVEFSR0VUX1hUSEVBRFZFQ1RPUik7DQorICAgIHJl dHVybiBlLnVzZV9leGFjdF9pbnNuIChjb2RlX2Zvcl9wcmVkX3RoX2V4dHJh Y3QgKGUudmVjdG9yX21vZGUgKCkpKTsNCisgIH0NCit9Ow0KKw0KLyogQmVs b3cgaW1wbGVtZW50cyBhcmUgdmVjdG9yIGNyeXB0byAqLw0KLyogSW1wbGVt ZW50cyB2YW5kbi5bdnYsdnhdICovDQpjbGFzcyB2YW5kbiA6IHB1YmxpYyBm dW5jdGlvbl9iYXNlDQpAQCAtMjU4Nyw2ICsyNjY0LDM3IEBAIHN0YXRpYyBD T05TVEVYUFIgY29uc3Qgc2VnX2luZGV4ZWRfbG9hZDxVTlNQRUNfT1JERVJF RD4gdmxveHNlZ19vYmo7DQpzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHNlZ19p bmRleGVkX3N0b3JlPFVOU1BFQ19VTk9SREVSRUQ+IHZzdXhzZWdfb2JqOw0K c3RhdGljIENPTlNURVhQUiBjb25zdCBzZWdfaW5kZXhlZF9zdG9yZTxVTlNQ RUNfT1JERVJFRD4gdnNveHNlZ19vYmo7DQpzdGF0aWMgQ09OU1RFWFBSIGNv bnN0IHZsc2VnZmYgdmxzZWdmZl9vYmo7DQorc3RhdGljIENPTlNURVhQUiBj b25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9VTklUX1NUUklE RSwgVU5TUEVDX1RIX1ZMQj4gdmxiX29iajsNCitzdGF0aWMgQ09OU1RFWFBS IGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX1VOSVRfU1RS SURFLCBVTlNQRUNfVEhfVkxCVT4gdmxidV9vYmo7DQorc3RhdGljIENPTlNU RVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9VTklU X1NUUklERSwgVU5TUEVDX1RIX1ZMSD4gdmxoX29iajsNCitzdGF0aWMgQ09O U1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX1VO SVRfU1RSSURFLCBVTlNQRUNfVEhfVkxIVT4gdmxodV9vYmo7DQorc3RhdGlj IENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExT VF9VTklUX1NUUklERSwgVU5TUEVDX1RIX1ZMVz4gdmx3X29iajsNCitzdGF0 aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxzZSwg TFNUX1VOSVRfU1RSSURFLCBVTlNQRUNfVEhfVkxXVT4gdmx3dV9vYmo7DQor c3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8dHJ1 ZSwgTFNUX1VOSVRfU1RSSURFLCBVTlNQRUNfVEhfVkxCPiB2c2Jfb2JqOw0K K3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPHRy dWUsIExTVF9VTklUX1NUUklERSwgVU5TUEVDX1RIX1ZMSD4gdnNoX29iajsN CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDx0 cnVlLCBMU1RfVU5JVF9TVFJJREUsIFVOU1BFQ19USF9WTFc+IHZzd19vYmo7 DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8 ZmFsc2UsIExTVF9TVFJJREVELCBVTlNQRUNfVEhfVkxTQj4gdmxzYl9vYmo7 DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8 ZmFsc2UsIExTVF9TVFJJREVELCBVTlNQRUNfVEhfVkxTQlU+IHZsc2J1X29i ajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0 aDxmYWxzZSwgTFNUX1NUUklERUQsIFVOU1BFQ19USF9WTFNIPiB2bHNoX29i ajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0 aDxmYWxzZSwgTFNUX1NUUklERUQsIFVOU1BFQ19USF9WTFNIVT4gdmxzaHVf b2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dp ZHRoPGZhbHNlLCBMU1RfU1RSSURFRCwgVU5TUEVDX1RIX1ZMU1c+IHZsc3df b2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dp ZHRoPGZhbHNlLCBMU1RfU1RSSURFRCwgVU5TUEVDX1RIX1ZMU1dVPiB2bHN3 dV9vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVf d2lkdGg8dHJ1ZSwgTFNUX1NUUklERUQsIFVOU1BFQ19USF9WTFNCPiB2c3Ni X29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93 aWR0aDx0cnVlLCBMU1RfU1RSSURFRCwgVU5TUEVDX1RIX1ZMU0g+IHZzc2hf b2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dp ZHRoPHRydWUsIExTVF9TVFJJREVELCBVTlNQRUNfVEhfVkxTVz4gdnNzd19v Ymo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lk dGg8ZmFsc2UsIExTVF9JTkRFWEVELCBVTlNQRUNfVEhfVkxYQj4gdmx4Yl9v Ymo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lk dGg8ZmFsc2UsIExTVF9JTkRFWEVELCBVTlNQRUNfVEhfVkxYQlU+IHZseGJ1 X29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93 aWR0aDxmYWxzZSwgTFNUX0lOREVYRUQsIFVOU1BFQ19USF9WTFhIPiB2bHho X29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93 aWR0aDxmYWxzZSwgTFNUX0lOREVYRUQsIFVOU1BFQ19USF9WTFhIVT4gdmx4 aHVfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3Jl X3dpZHRoPGZhbHNlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZMWFc+IHZs eHdfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3Jl X3dpZHRoPGZhbHNlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZMWFdVPiB2 bHh3dV9vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3Rv cmVfd2lkdGg8dHJ1ZSwgTFNUX0lOREVYRUQsIFVOU1BFQ19USF9WTFhCPiB2 c3hiX29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9y ZV93aWR0aDx0cnVlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZMWEg+IHZz eGhfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3Jl X3dpZHRoPHRydWUsIExTVF9JTkRFWEVELCBVTlNQRUNfVEhfVkxYVz4gdnN4 d19vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVf d2lkdGg8dHJ1ZSwgTFNUX0lOREVYRUQsIFVOU1BFQ19USF9WU1VYQj4gdnN1 eGJfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3Jl X3dpZHRoPHRydWUsIExTVF9JTkRFWEVELCBVTlNQRUNfVEhfVlNVWEg+IHZz dXhoX29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9y ZV93aWR0aDx0cnVlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZTVVhXPiB2 c3V4d19vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9leHRyYWN0 IHZleHRfeF92X29iajsNCi8qIENyeXB0byBWZWN0b3IgKi8NCnN0YXRpYyBD T05TVEVYUFIgY29uc3QgdmFuZG4gdmFuZG5fb2JqOw0KQEAgLTI4NzgsNiAr Mjk4NiwzNyBAQCBCQVNFICh2bG94c2VnKQ0KQkFTRSAodnN1eHNlZykNCkJB U0UgKHZzb3hzZWcpDQpCQVNFICh2bHNlZ2ZmKQ0KK0JBU0UgKHZsYikNCitC QVNFICh2bGgpDQorQkFTRSAodmx3KQ0KK0JBU0UgKHZsYnUpDQorQkFTRSAo dmxodSkNCitCQVNFICh2bHd1KQ0KK0JBU0UgKHZzYikNCitCQVNFICh2c2gp DQorQkFTRSAodnN3KQ0KK0JBU0UgKHZsc2IpDQorQkFTRSAodmxzaCkNCitC QVNFICh2bHN3KQ0KK0JBU0UgKHZsc2J1KQ0KK0JBU0UgKHZsc2h1KQ0KK0JB U0UgKHZsc3d1KQ0KK0JBU0UgKHZzc2IpDQorQkFTRSAodnNzaCkNCitCQVNF ICh2c3N3KQ0KK0JBU0UgKHZseGIpDQorQkFTRSAodmx4aCkNCitCQVNFICh2 bHh3KQ0KK0JBU0UgKHZseGJ1KQ0KK0JBU0UgKHZseGh1KQ0KK0JBU0UgKHZs eHd1KQ0KK0JBU0UgKHZzeGIpDQorQkFTRSAodnN4aCkNCitCQVNFICh2c3h3 KQ0KK0JBU0UgKHZzdXhiKQ0KK0JBU0UgKHZzdXhoKQ0KK0JBU0UgKHZzdXh3 KQ0KK0JBU0UgKHZleHRfeF92KQ0KLyogQ3J5cHRvIHZlY3RvciAqLw0KQkFT RSAodmFuZG4pDQpCQVNFICh2YnJldikNCmRpZmYgLS1naXQgYS9nY2MvY29u ZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5oIGIvZ2Nj L2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMuaA0K aW5kZXggMTEyMmUzODAxYTcuLjU2NWEwMzExZDJiIDEwMDY0NA0KLS0tIGEv Z2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMu aA0KKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRp bnMtYmFzZXMuaA0KQEAgLTI5OSw2ICsyOTksMzcgQEAgZXh0ZXJuIGNvbnN0 IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZsb3hzZWc7DQpleHRlcm4gY29uc3Qg ZnVuY3Rpb25fYmFzZSAqY29uc3QgdnN1eHNlZzsNCmV4dGVybiBjb25zdCBm dW5jdGlvbl9iYXNlICpjb25zdCB2c294c2VnOw0KZXh0ZXJuIGNvbnN0IGZ1 bmN0aW9uX2Jhc2UgKmNvbnN0IHZsc2VnZmY7DQorZXh0ZXJuIGNvbnN0IGZ1 bmN0aW9uX2Jhc2UgKmNvbnN0IHZsYjsNCitleHRlcm4gY29uc3QgZnVuY3Rp b25fYmFzZSAqY29uc3QgdmxoOw0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9i YXNlICpjb25zdCB2bHc7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2Ug KmNvbnN0IHZsYnU7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNv bnN0IHZsaHU7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0 IHZsd3U7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZz YjsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdnNoOw0K K2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2c3c7DQorZXh0 ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZsc2I7DQorZXh0ZXJu IGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZsc2g7DQorZXh0ZXJuIGNv bnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZsc3c7DQorZXh0ZXJuIGNvbnN0 IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZsc2J1Ow0KK2V4dGVybiBjb25zdCBm dW5jdGlvbl9iYXNlICpjb25zdCB2bHNodTsNCitleHRlcm4gY29uc3QgZnVu Y3Rpb25fYmFzZSAqY29uc3Qgdmxzd3U7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0 aW9uX2Jhc2UgKmNvbnN0IHZzc2I7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9u X2Jhc2UgKmNvbnN0IHZzc2g7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jh c2UgKmNvbnN0IHZzc3c7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2Ug KmNvbnN0IHZseGI7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNv bnN0IHZseGg7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0 IHZseHc7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZs eGJ1Ow0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bHho dTsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qgdmx4d3U7 DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZzeGI7DQor ZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZzeGg7DQorZXh0 ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZzeHc7DQorZXh0ZXJu IGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZzdXhiOw0KK2V4dGVybiBj b25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2c3V4aDsNCitleHRlcm4gY29u c3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdnN1eHc7DQorZXh0ZXJuIGNvbnN0 IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZleHRfeF92Ow0KLyogQmVsb3cgZnVu Y3Rpb25fYmFzZSBhcmUgVmVjdHJvIENyeXB0byovDQpleHRlcm4gY29uc3Qg ZnVuY3Rpb25fYmFzZSAqY29uc3QgdmFuZG47DQpleHRlcm4gY29uc3QgZnVu Y3Rpb25fYmFzZSAqY29uc3QgdmJyZXY7DQpkaWZmIC0tZ2l0IGEvZ2NjL2Nv bmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmNjIGIv Z2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVz LmNjDQppbmRleCAxZTRmNGQ1M2RlNi4uOGU5MGIxN2E5NGIgMTAwNjQ0DQot LS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1z aGFwZXMuY2MNCisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9y LWJ1aWx0aW5zLXNoYXBlcy5jYw0KQEAgLTIxMSw2ICsyMTEsMTQ2IEBAIHN0 cnVjdCBpbmRleGVkX2xvYWRzdG9yZV9kZWYgOiBwdWJsaWMgZnVuY3Rpb25f c2hhcGUNCiAgfQ0KfTsNCisvKiBBZGQgb25lIGZ1bmN0aW9uIGluc3RhbmNl IGZvciBHUk9VUCwgdXNpbmcgb3BlcmFuZCBzdWZmaXggYXQgaW5kZXggT0ks DQorICAgbW9kZSBzdWZmaXggYXQgaW5kZXggUEFJUiAmJiBiaSBhbmQgcHJl ZGljYXRpb24gc3VmZml4IGF0IGluZGV4IHByZWRfaWR4LiAgKi8NCitzdGF0 aWMgdm9pZA0KK2J1aWxkX3RoX2xvYWRzdG9yZSAoZnVuY3Rpb25fYnVpbGRl ciAmYiwgY29uc3QgZnVuY3Rpb25fZ3JvdXBfaW5mbyAmZ3JvdXAsDQorICAg ICAgdW5zaWduZWQgaW50IHByZWRfaWR4LCB1bnNpZ25lZCBpbnQgdmVjX3R5 cGVfaWR4KQ0KK3sNCisgIGF1dG9fdmVjPHRyZWUsIDU+IGFyZ3VtZW50X3R5 cGVzOw0KKyAgZnVuY3Rpb25faW5zdGFuY2UgZnVuY3Rpb25faW5zdGFuY2Ug KGdyb3VwLmJhc2VfbmFtZSwgKmdyb3VwLmJhc2UsDQorICAgICAgICAgICAq Z3JvdXAuc2hhcGUsDQorICAgICAgICAgICBncm91cC5vcHNfaW5mb3MudHlw ZXNbdmVjX3R5cGVfaWR4XSwNCisgICAgICAgICAgIGdyb3VwLnByZWRzW3By ZWRfaWR4XSwgJmdyb3VwLm9wc19pbmZvcyk7DQorICB0cmVlIHJldHVybl90 eXBlID0gZ3JvdXAub3BzX2luZm9zLnJldC5nZXRfdHJlZV90eXBlICgNCisg ICAgZ3JvdXAub3BzX2luZm9zLnR5cGVzW3ZlY190eXBlX2lkeF0uaW5kZXgp Ow0KKyAgYi5hbGxvY2F0ZV9hcmd1bWVudF90eXBlcyAoZnVuY3Rpb25faW5z dGFuY2UsIGFyZ3VtZW50X3R5cGVzKTsNCisgIGIuYXBwbHlfcHJlZGljYXRp b24gKGZ1bmN0aW9uX2luc3RhbmNlLCByZXR1cm5fdHlwZSwgYXJndW1lbnRf dHlwZXMpOw0KKw0KKyAgaWYgKFRBUkdFVF9YVEhFQURWRUNUT1IgJiYgIWNo ZWNrX3R5cGUgKHJldHVybl90eXBlLCBhcmd1bWVudF90eXBlcykpDQorICAg IHJldHVybjsNCisNCisgIHRyZWUgdHlwZSA9IGJ1aWx0aW5fdHlwZXNbZ3Jv dXAub3BzX2luZm9zLnR5cGVzW3ZlY190eXBlX2lkeF0uaW5kZXhdLnZlY3Rv cjsNCisgIGlmIChzdHJzdHIgKGdyb3VwLmJhc2VfbmFtZSwgImwiKQ0KKyAg ICAgICYmIHN0cnN0ciAoZ3JvdXAuYmFzZV9uYW1lLCAidSIpDQorICAgICAg JiYgIVRZUEVfVU5TSUdORUQgKFRSRUVfVFlQRSAodHlwZSkpKQ0KKyAgICBy ZXR1cm47DQorDQorICBpZiAoc3Ryc3RyIChncm91cC5iYXNlX25hbWUsICJs IikNCisgICAgICAmJiAhc3Ryc3RyIChncm91cC5iYXNlX25hbWUsICJ1IikN CisgICAgICAmJiBUWVBFX1VOU0lHTkVEIChUUkVFX1RZUEUgKHR5cGUpKSkN CisgICAgcmV0dXJuOw0KKw0KKyAgbWFjaGluZV9tb2RlIG1vZGUgPSBUWVBF X01PREUgKHR5cGUpOw0KKyAgaW50IHNldyA9IEdFVF9NT0RFX0JJVFNJWkUg KEdFVF9NT0RFX0lOTkVSIChtb2RlKSk7DQorICBpZiAoc3Ryc3RyIChncm91 cC5iYXNlX25hbWUsICJoIikgJiYgc2V3ID09IDgpDQorICAgIHJldHVybjsN CisNCisgIGlmIChzdHJzdHIgKGdyb3VwLmJhc2VfbmFtZSwgInciKSAmJiAo c2V3ID09IDggfHwgc2V3ID09MTYpKQ0KKyAgICByZXR1cm47DQorDQorICBi LmFkZF9vdmVybG9hZGVkX2Z1bmN0aW9uIChmdW5jdGlvbl9pbnN0YW5jZSwg Kmdyb3VwLnNoYXBlKTsNCisgIGIuYWRkX3VuaXF1ZV9mdW5jdGlvbiAoZnVu Y3Rpb25faW5zdGFuY2UsICgqZ3JvdXAuc2hhcGUpLCByZXR1cm5fdHlwZSwN CisgICAgYXJndW1lbnRfdHlwZXMpOw0KK30NCisNCisvKiB0aF9sb2Fkc3Rv cmVfd2lkdGhfZGVmIGNsYXNzLiAgKi8NCitzdHJ1Y3QgdGhfbG9hZHN0b3Jl X3dpZHRoX2RlZiA6IHB1YmxpYyBidWlsZF9iYXNlDQorew0KKyAgIHZvaWQg YnVpbGQgKGZ1bmN0aW9uX2J1aWxkZXIgJmIsDQorICAgICAgIGNvbnN0IGZ1 bmN0aW9uX2dyb3VwX2luZm8gJmdyb3VwKSBjb25zdCBvdmVycmlkZQ0KKyAg ew0KKyAgICBmb3IgKHVuc2lnbmVkIGludCBwcmVkX2lkeCA9IDA7IGdyb3Vw LnByZWRzW3ByZWRfaWR4XSAhPSBOVU1fUFJFRF9UWVBFUzsNCisgICAgICAg KytwcmVkX2lkeCkNCisgICAgICB7DQorIGZvciAodW5zaWduZWQgaW50IHZl Y190eXBlX2lkeCA9IDA7DQorICAgICAgZ3JvdXAub3BzX2luZm9zLnR5cGVz W3ZlY190eXBlX2lkeF0uaW5kZXggIT0gTlVNX1ZFQ1RPUl9UWVBFUzsNCisg ICAgICArK3ZlY190eXBlX2lkeCkNCisgICB7DQorICAgICBidWlsZF90aF9s b2Fkc3RvcmUgKGIsIGdyb3VwLCBwcmVkX2lkeCwgdmVjX3R5cGVfaWR4KTsN CisgICB9DQorICAgICAgfQ0KKyAgfQ0KKw0KKyAgY2hhciAqZ2V0X25hbWUg KGZ1bmN0aW9uX2J1aWxkZXIgJmIsIGNvbnN0IGZ1bmN0aW9uX2luc3RhbmNl ICZpbnN0YW5jZSwNCisgICAgYm9vbCBvdmVybG9hZGVkX3ApIGNvbnN0IG92 ZXJyaWRlDQorICB7DQorICAgIC8qIFJldHVybiBudWxscHRyIGlmIGl0IGNh biBub3QgYmUgb3ZlcmxvYWRlZC4gICovDQorICAgIGlmIChvdmVybG9hZGVk X3AgJiYgIWluc3RhbmNlLmJhc2UtPmNhbl9iZV9vdmVybG9hZGVkX3AgKGlu c3RhbmNlLnByZWQpKQ0KKyAgICAgIHJldHVybiBudWxscHRyOw0KKw0KKyAg ICBiLmFwcGVuZF9uYW1lICgiX19yaXNjdl90aF8iKTsNCisgICAgYi5hcHBl bmRfbmFtZSAoaW5zdGFuY2UuYmFzZV9uYW1lKTsNCisNCisgICAgLyogdm9w X3YgLS0+IHZvcF92Xzx0eXBlPi4gICovDQorICAgIGlmICghb3ZlcmxvYWRl ZF9wKQ0KKyAgICAgIHsNCisgLyogdm9wIC0tPiB2b3Bfdi4gICovDQorIGIu YXBwZW5kX25hbWUgKG9wZXJhbmRfc3VmZml4ZXNbaW5zdGFuY2Uub3BfaW5m by0+b3BdKTsNCisgLyogdm9wX3YgLS0+IHZvcF92Xzx0eXBlPi4gICovDQor IGIuYXBwZW5kX25hbWUgKHR5cGVfc3VmZml4ZXNbaW5zdGFuY2UudHlwZS5p bmRleF0udmVjdG9yKTsNCisgICAgICB9DQorDQorICAgIC8qIEFjY29yZGlu ZyB0byBydnYtaW50cmluc2ljLWRvYywgaXQgZG9lcyBub3QgYWRkICJfbSIg c3VmZml4DQorICAgICAgIGZvciB2b3BfbSBDKysgb3ZlcmxvYWRlZCBBUEku ICAqLw0KKyAgICBpZiAob3ZlcmxvYWRlZF9wICYmIGluc3RhbmNlLnByZWQg PT0gUFJFRF9UWVBFX20pDQorICAgICAgcmV0dXJuIGIuZmluaXNoX25hbWUg KCk7DQorICAgIGIuYXBwZW5kX25hbWUgKHByZWRpY2F0aW9uX3N1ZmZpeGVz W2luc3RhbmNlLnByZWRdKTsNCisgICAgcmV0dXJuIGIuZmluaXNoX25hbWUg KCk7DQorICB9DQorfTsNCisNCisNCisvKiB0aF9pbmRleGVkX2xvYWRzdG9y ZV93aWR0aF9kZWYgY2xhc3MuICAqLw0KK3N0cnVjdCB0aF9pbmRleGVkX2xv YWRzdG9yZV93aWR0aF9kZWYgOiBwdWJsaWMgZnVuY3Rpb25fc2hhcGUNCit7 DQorICB2b2lkIGJ1aWxkIChmdW5jdGlvbl9idWlsZGVyICZiLA0KKyAgICAg ICBjb25zdCBmdW5jdGlvbl9ncm91cF9pbmZvICZncm91cCkgY29uc3Qgb3Zl cnJpZGUNCisgIHsNCisgICAgZm9yICh1bnNpZ25lZCBpbnQgcHJlZF9pZHgg PSAwOyBncm91cC5wcmVkc1twcmVkX2lkeF0gIT0gTlVNX1BSRURfVFlQRVM7 DQorICArK3ByZWRfaWR4KQ0KKyAgICAgIHsNCisgZm9yICh1bnNpZ25lZCBp bnQgdmVjX3R5cGVfaWR4ID0gMDsNCisgICAgICBncm91cC5vcHNfaW5mb3Mu dHlwZXNbdmVjX3R5cGVfaWR4XS5pbmRleCAhPSBOVU1fVkVDVE9SX1RZUEVT Ow0KKyAgICAgICsrdmVjX3R5cGVfaWR4KQ0KKyAgIHsNCisgICAgdHJlZSBp bmRleF90eXBlID0gZ3JvdXAub3BzX2luZm9zLmFyZ3NbMV0uZ2V0X3RyZWVf dHlwZSAoDQorICAgICAgIGdyb3VwLm9wc19pbmZvcy50eXBlc1t2ZWNfdHlw ZV9pZHhdLmluZGV4KTsNCisgICAgaWYgKCFpbmRleF90eXBlKQ0KKyAgICAg ICBjb250aW51ZTsNCisgICAgYnVpbGRfdGhfbG9hZHN0b3JlIChiLCBncm91 cCwgcHJlZF9pZHgsIHZlY190eXBlX2lkeCk7DQorICAgfQ0KKyAgICAgIH0N CisgIH0NCisNCisgIGNoYXIgKmdldF9uYW1lIChmdW5jdGlvbl9idWlsZGVy ICZiLCBjb25zdCBmdW5jdGlvbl9pbnN0YW5jZSAmaW5zdGFuY2UsDQorICAg IGJvb2wgb3ZlcmxvYWRlZF9wKSBjb25zdCBvdmVycmlkZQ0KKyAgew0KKw0K KyAgICAvKiBSZXR1cm4gbnVsbHB0ciBpZiBpdCBjYW4gbm90IGJlIG92ZXJs b2FkZWQuICAqLw0KKyAgICBpZiAob3ZlcmxvYWRlZF9wICYmICFpbnN0YW5j ZS5iYXNlLT5jYW5fYmVfb3ZlcmxvYWRlZF9wIChpbnN0YW5jZS5wcmVkKSkN CisgICAgICByZXR1cm4gbnVsbHB0cjsNCisNCisgICAgYi5hcHBlbmRfbmFt ZSAoIl9fcmlzY3ZfdGhfIik7DQorICAgIGIuYXBwZW5kX25hbWUgKGluc3Rh bmNlLmJhc2VfbmFtZSk7DQorICAgIC8qIHZvcF92IC0tPiB2b3Bfdl88dHlw ZT4uICAqLw0KKyAgICBpZiAoIW92ZXJsb2FkZWRfcCkNCisgICAgICB7DQor IC8qIHZvcCAtLT4gdm9wX3YuICAqLw0KKyBiLmFwcGVuZF9uYW1lIChvcGVy YW5kX3N1ZmZpeGVzW2luc3RhbmNlLm9wX2luZm8tPm9wXSk7DQorIC8qIHZv cF92IC0tPiB2b3Bfdl88dHlwZT4uICAqLw0KKyBiLmFwcGVuZF9uYW1lICh0 eXBlX3N1ZmZpeGVzW2luc3RhbmNlLnR5cGUuaW5kZXhdLnZlY3Rvcik7DQor ICAgICAgfQ0KKw0KKyAgICAvKiBBY2NvcmRpbmcgdG8gcnZ2LWludHJpbnNp Yy1kb2MsIGl0IGRvZXMgbm90IGFkZCAiX20iIHN1ZmZpeA0KKyAgICAgICBm b3Igdm9wX20gQysrIG92ZXJsb2FkZWQgQVBJLiAgKi8NCisgICAgaWYgKG92 ZXJsb2FkZWRfcCAmJiBpbnN0YW5jZS5wcmVkID09IFBSRURfVFlQRV9tKQ0K KyAgICAgIHJldHVybiBiLmZpbmlzaF9uYW1lICgpOw0KKyAgICBiLmFwcGVu ZF9uYW1lIChwcmVkaWNhdGlvbl9zdWZmaXhlc1tpbnN0YW5jZS5wcmVkXSk7 DQorICAgIHJldHVybiBiLmZpbmlzaF9uYW1lICgpOw0KKyAgfQ0KK307DQor DQovKiBhbHVfZGVmIGNsYXNzLiAgKi8NCnN0cnVjdCBhbHVfZGVmIDogcHVi bGljIGJ1aWxkX2Jhc2UNCnsNCkBAIC02MzIsNiArNzcyLDIzIEBAIHN0cnVj dCByZWR1Y19hbHVfZGVmIDogcHVibGljIGJ1aWxkX2Jhc2UNCiAgfQ0KfTsN CisvKiB0aF9leHRyYWN0X2RlZiBjbGFzcy4gICovDQorc3RydWN0IHRoX2V4 dHJhY3RfZGVmIDogcHVibGljIGJ1aWxkX2Jhc2UNCit7DQorICBjaGFyICpn ZXRfbmFtZSAoZnVuY3Rpb25fYnVpbGRlciAmYiwgY29uc3QgZnVuY3Rpb25f aW5zdGFuY2UgJmluc3RhbmNlLA0KKyAgICAgIGJvb2wgb3ZlcmxvYWRlZF9w KSBjb25zdCBvdmVycmlkZQ0KKyAgew0KKyAgICBiLmFwcGVuZF9uYW1lICgi X19yaXNjdl90aF8iKTsNCisgICAgYi5hcHBlbmRfbmFtZSAoaW5zdGFuY2Uu YmFzZV9uYW1lKTsNCisNCisgICAgaWYgKG92ZXJsb2FkZWRfcCkNCisgICAg ICByZXR1cm4gYi5maW5pc2hfbmFtZSAoKTsNCisgICAgYi5hcHBlbmRfbmFt ZSAodHlwZV9zdWZmaXhlc1tpbnN0YW5jZS50eXBlLmluZGV4XS52ZWN0b3Ip Ow0KKyAgICBiLmFwcGVuZF9uYW1lICh0eXBlX3N1ZmZpeGVzW2luc3RhbmNl LnR5cGUuaW5kZXhdLnNjYWxhcik7DQorICAgIHJldHVybiBiLmZpbmlzaF9u YW1lICgpOw0KKyAgfQ0KK307DQorDQovKiBzY2FsYXJfbW92ZV9kZWYgY2xh c3MuICAqLw0Kc3RydWN0IHNjYWxhcl9tb3ZlX2RlZiA6IHB1YmxpYyBidWls ZF9iYXNlDQp7DQpAQCAtMTA5NCw2ICsxMjUxLDggQEAgU0hBUEUodnNldHZs LCB2c2V0dmwpDQpTSEFQRSh2c2V0dmwsIHZzZXR2bG1heCkNClNIQVBFKGxv YWRzdG9yZSwgbG9hZHN0b3JlKQ0KU0hBUEUoaW5kZXhlZF9sb2Fkc3RvcmUs IGluZGV4ZWRfbG9hZHN0b3JlKQ0KK1NIQVBFKHRoX2xvYWRzdG9yZV93aWR0 aCwgdGhfbG9hZHN0b3JlX3dpZHRoKQ0KK1NIQVBFKHRoX2luZGV4ZWRfbG9h ZHN0b3JlX3dpZHRoLCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aCkNClNI QVBFKGFsdSwgYWx1KQ0KU0hBUEUoYWx1X2ZybSwgYWx1X2ZybSkNClNIQVBF KHdpZGVuX2FsdSwgd2lkZW5fYWx1KQ0KQEAgLTExMDYsNiArMTI2NSw3IEBA IFNIQVBFKG1vdmUsIG1vdmUpDQpTSEFQRShtYXNrX2FsdSwgbWFza19hbHUp DQpTSEFQRShyZWR1Y19hbHUsIHJlZHVjX2FsdSkNClNIQVBFKHJlZHVjX2Fs dV9mcm0sIHJlZHVjX2FsdV9mcm0pDQorU0hBUEUodGhfZXh0cmFjdCwgdGhf ZXh0cmFjdCkNClNIQVBFKHNjYWxhcl9tb3ZlLCBzY2FsYXJfbW92ZSkNClNI QVBFKHZ1bmRlZmluZWQsIHZ1bmRlZmluZWQpDQpTSEFQRShtaXNjLCBtaXNj KQ0KZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9y LWJ1aWx0aW5zLXNoYXBlcy5oIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12 ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmgNCmluZGV4IGFjMmEyOGNlMDE3Li5h NzYyNGQwZmFiZCAxMDA2NDQNCi0tLSBhL2djYy9jb25maWcvcmlzY3Yvcmlz Y3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5oDQorKysgYi9nY2MvY29uZmln L3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuaA0KQEAgLTI4 LDYgKzI4LDggQEAgZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25z dCB2c2V0dmw7DQpleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0 IHZzZXR2bG1heDsNCmV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29u c3QgbG9hZHN0b3JlOw0KZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpj b25zdCBpbmRleGVkX2xvYWRzdG9yZTsNCitleHRlcm4gY29uc3QgZnVuY3Rp b25fc2hhcGUgKmNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDsNCitleHRlcm4g Y29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IHRoX2luZGV4ZWRfbG9hZHN0 b3JlX3dpZHRoOw0KZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25z dCBhbHU7DQpleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IGFs dV9mcm07DQpleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IHdp ZGVuX2FsdTsNCkBAIC00MSw2ICs0Myw3IEBAIGV4dGVybiBjb25zdCBmdW5j dGlvbl9zaGFwZSAqY29uc3QgbWFza19hbHU7DQpleHRlcm4gY29uc3QgZnVu Y3Rpb25fc2hhcGUgKmNvbnN0IHJlZHVjX2FsdTsNCmV4dGVybiBjb25zdCBm dW5jdGlvbl9zaGFwZSAqY29uc3QgcmVkdWNfYWx1X2ZybTsNCmV4dGVybiBj b25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3Qgc2NhbGFyX21vdmU7DQorZXh0 ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCB0aF9leHRyYWN0Ow0K ZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCB2dW5kZWZpbmVk Ow0KZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCBtaXNjOw0K ZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCB2c2V0Ow0KZGlm ZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0 aW5zLmNjIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRp bnMuY2MNCmluZGV4IDI1ZTBiNmU1NmRlLi40NGI5ZmVjMTg5OCAxMDA2NDQN Ci0tLSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5z LmNjDQorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWls dGlucy5jYw0KQEAgLTkzNCw2ICs5MzQsMzIgQEAgc3RhdGljIENPTlNURVhQ UiBjb25zdCBydnZfYXJnX3R5cGVfaW5mbyBleHRfdmNyZWF0ZV9hcmdzW10N CiAgPSB7cnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3RvciksDQog ICAgICBydnZfYXJnX3R5cGVfaW5mb19lbmR9Ow0KKy8qIEEgbGlzdCBvZiBh cmdzIGZvciB2ZWN0b3JfdHlwZSBmdW5jIChjb25zdCBzY2FsYXJfdHlwZSAq LCBzaXplX3QpDQorICogZnVuY3Rpb24uICAqLw0KK3N0YXRpYyBDT05TVEVY UFIgY29uc3QgcnZ2X2FyZ190eXBlX2luZm8gc2NhbGFyX2NvbnN0X3B0cl9z aXplX2FyZ3NbXQ0KKyAgPSB7cnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNF X3NjYWxhcl9jb25zdF9wdHIpLA0KKyAgICAgcnZ2X2FyZ190eXBlX2luZm8g KFJWVl9CQVNFX3NpemUpLCBydnZfYXJnX3R5cGVfaW5mb19lbmR9Ow0KKw0K Ky8qIEEgbGlzdCBvZiBhcmdzIGZvciB2ZWN0b3JfdHlwZSBmdW5jIChjb25z dCBzY2FsYXJfdHlwZSAqLCBlZXc4X2luZGV4X3R5cGUpDQorICogZnVuY3Rp b24uICAqLw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X2FyZ190eXBl X2luZm8gc2NhbGFyX2NvbnN0X3B0cl9pbmRleF9hcmdzW10NCisgID0ge3J2 dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV9zY2FsYXJfY29uc3RfcHRyKSwN CisgICAgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV91bnNpZ25lZF92 ZWN0b3IpLCBydnZfYXJnX3R5cGVfaW5mb19lbmR9Ow0KKw0KKy8qIEEgbGlz dCBvZiBhcmdzIGZvciB2b2lkIGZ1bmMgKHNjYWxhcl90eXBlICosIGVldzhf aW5kZXhfdHlwZSwgdmVjdG9yX3R5cGUpDQorICogZnVuY3Rpb24uICAqLw0K K3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X2FyZ190eXBlX2luZm8gc2Nh bGFyX3B0cl9pbmRleF9hcmdzW10NCisgID0ge3J2dl9hcmdfdHlwZV9pbmZv IChSVlZfQkFTRV9zY2FsYXJfcHRyKSwNCisgICAgIHJ2dl9hcmdfdHlwZV9p bmZvIChSVlZfQkFTRV91bnNpZ25lZF92ZWN0b3IpLA0KKyAgICAgcnZ2X2Fy Z190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3RvciksIHJ2dl9hcmdfdHlwZV9p bmZvX2VuZH07DQorDQorLyogQSBsaXN0IG9mIGFyZ3MgZm9yIHZvaWQgZnVu YyAoc2NhbGFyX3R5cGUgKiwgc2l6ZV90LCB2ZWN0b3JfdHlwZSkNCisgKiBm dW5jdGlvbi4gICovDQorc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfYXJn X3R5cGVfaW5mbyBzY2FsYXJfcHRyX3NpemVfYXJnc1tdDQorICA9IHtydnZf YXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vfc2NhbGFyX3B0ciksDQorICAgICBy dnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vfc2l6ZSksIHJ2dl9hcmdfdHlw ZV9pbmZvIChSVlZfQkFTRV92ZWN0b3IpLA0KKyAgICAgcnZ2X2FyZ190eXBl X2luZm9fZW5kfTsNCisNCi8qIEEgbGlzdCBvZiBub25lIHByZWRzIHRoYXQg d2lsbCBiZSByZWdpc3RlcmVkIGZvciBpbnRyaW5zaWMgZnVuY3Rpb25zLiAg Ki8NCnN0YXRpYyBDT05TVEVYUFIgY29uc3QgcHJlZGljYXRpb25fdHlwZV9p bmRleCBub25lX3ByZWRzW10NCiAgPSB7UFJFRF9UWVBFX25vbmUsIE5VTV9Q UkVEX1RZUEVTfTsNCkBAIC0xNDU1LDYgKzE0ODEsMTQgQEAgc3RhdGljIENP TlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyBpdV9zaGlmdF92dnZfb3BzDQog ICAgICBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgLyog UmV0dXJuIHR5cGUgKi8NCiAgICAgIHNoaWZ0X3Z2X2FyZ3MgLyogQXJncyAq L307DQorLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3Igc2Nh bGFyX3R5cGUgZnVuYyAodmVjdG9yX3R5cGUsIHNpemVfdCkNCisgKiBmdW5j dGlvbiByZWdpc3RyYXRpb24uICovDQorc3RhdGljIENPTlNURVhQUiBjb25z dCBydnZfb3BfaW5mbyBpdV94X3NfdV9vcHMNCisgID0ge2l1X29wcywgICAg ICAgICAgLyogVHlwZXMgKi8NCisgICAgIE9QX1RZUEVfdngsICAgICAgICAv KiBTdWZmaXggKi8NCisgICAgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFT RV9zY2FsYXIpLCAvKiBSZXR1cm4gdHlwZSAqLw0KKyAgICAgdl9zaXplX2Fy Z3MgLyogQXJncyAqL307DQorDQovKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9y bWF0aW9uIGZvciB2ZWN0b3JfdHlwZSBmdW5jICh2ZWN0b3JfdHlwZSwgc2l6 ZV90KQ0KICAqIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi4gKi8NCnN0YXRpYyBD T05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8gaXVfc2hpZnRfdnZ4X29wcw0K QEAgLTI2MzgsNiArMjY3MiwzOCBAQCBzdGF0aWMgQ09OU1RFWFBSIGNvbnN0 IHJ2dl9vcF9pbmZvIGFsbF92X3ZjcmVhdGVfbG11bDRfeDJfb3BzDQogICAg ICBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmxtdWxfZXh0X3gyKSwg LyogUmV0dXJuIHR5cGUgKi8NCiAgICAgIGV4dF92Y3JlYXRlX2FyZ3MgLyog QXJncyAqL307DQorLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBm b3IgdmVjdG9yX3R5cGUgZnVuYyAoY29uc3Qgc2NhbGFyX3R5cGUgKiwNCisg KiBzaXplX3QpIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi4gICovDQorc3RhdGlj IENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyBhbGxfdl9zY2FsYXJfY29u c3RfcHRyX3NpemVfb3BzDQorICA9IHthbGxfb3BzLCAgICAgIC8qIFR5cGVz ICAqLw0KKyAgICAgT1BfVFlQRV92LCAgICAgIC8qIFN1ZmZpeCAgKi8NCisg ICAgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0b3IpLCAvKiBS ZXR1cm4gdHlwZSAgKi8NCisgICAgIHNjYWxhcl9jb25zdF9wdHJfc2l6ZV9h cmdzIC8qIEFyZ3MgKi99Ow0KKw0KKy8qIEEgc3RhdGljIG9wZXJhbmQgaW5m b3JtYXRpb24gZm9yIHZvaWQgZnVuYyAoc2NhbGFyX3R5cGUgKiwgc2l6ZV90 LA0KKyAqIHZlY3Rvcl90eXBlKSBmdW5jdGlvbiByZWdpc3RyYXRpb24uICAq Lw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8gYWxsX3Zf c2NhbGFyX3B0cl9zaXplX29wcw0KKyAgPSB7YWxsX29wcywgICAgLyogVHlw ZXMgICovDQorICAgICBPUF9UWVBFX3YsICAgIC8qIFN1ZmZpeCAgKi8NCisg ICAgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92b2lkKSwgLyogUmV0 dXJuIHR5cGUgICovDQorICAgICBzY2FsYXJfcHRyX3NpemVfYXJncyAvKiBB cmdzICovfTsNCisNCisvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9u IGZvciB2ZWN0b3JfdHlwZSBmdW5jIChjb25zdCBzY2FsYXJfdHlwZSAqLA0K KyAqIGluZGV4X3R5cGUpIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi4gICovDQor c3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyBhbGxfdl9zY2Fs YXJfY29uc3RfcHRyX2luZGV4X29wcw0KKyAgPSB7YWxsX29wcywgICAgICAv KiBUeXBlcyAgKi8NCisgICAgIE9QX1RZUEVfdiwgICAgICAvKiBTdWZmaXgg ICovDQorICAgICBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9y KSwgLyogUmV0dXJuIHR5cGUgICovDQorICAgICBzY2FsYXJfY29uc3RfcHRy X2luZGV4X2FyZ3MgLyogQXJncyAqL307DQorDQorLyogQSBzdGF0aWMgb3Bl cmFuZCBpbmZvcm1hdGlvbiBmb3Igdm9pZCBmdW5jIChzY2FsYXJfdHlwZSAq LCBpbmRleF90eXBlLA0KKyAqIHZlY3Rvcl90eXBlKSBmdW5jdGlvbiByZWdp c3RyYXRpb24uICAqLw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29w X2luZm8gYWxsX3Zfc2NhbGFyX3B0cl9pbmRleF9vcHMNCisgID0ge2FsbF9v cHMsICAgIC8qIFR5cGVzICAqLw0KKyAgICAgT1BfVFlQRV92LCAgICAvKiBT dWZmaXggICovDQorICAgICBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vf dm9pZCksIC8qIFJldHVybiB0eXBlICAqLw0KKyAgICAgc2NhbGFyX3B0cl9p bmRleF9hcmdzIC8qIEFyZ3MgKi99Ow0KKw0KLyogQSBzdGF0aWMgb3BlcmFu ZCBpbmZvcm1hdGlvbiBmb3IgdmVjdG9yX3R5cGUgZnVuYyAodmVjdG9yX3R5 cGUpLg0KICAgIFNvbWUgaW5zIGp1c3Qgc3VwcG9ydHMgU0VXPTMyLCBzdWNo IGFzIGNyeXB0byB2ZWN0b2wgWnZrZyBleHRlbnNpb24uDQogICogZnVuY3Rp b24gcmVnaXN0cmF0aW9uLiAgKi8NCkBAIC0yODE2LDYgKzI4ODIsMTAgQEAg c3RhdGljIGZ1bmN0aW9uX2dyb3VwX2luZm8gZnVuY3Rpb25fZ3JvdXBzW10g PSB7DQojZGVmaW5lIERFRl9SVlZfRlVOQ1RJT04oTkFNRSwgU0hBUEUsIFBS RURTLCBPUFNfSU5GTykgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICB7 I05BTUUsICZiYXNlczo6TkFNRSwgJnNoYXBlczo6U0hBUEUsIFBSRURTLCBP UFNfSU5GTywgUkVRVUlSRURfRVhURU5TSU9OU30sDQojaW5jbHVkZSAicmlz Y3YtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYiDQorI3VuZGVmIERF Rl9SVlZfRlVOQ1RJT04NCisjZGVmaW5lIERFRl9SVlZfRlVOQ1RJT04oTkFN RSwgU0hBUEUsIFBSRURTLCBPUFNfSU5GTykgICAgICAgICAgICAgICAgICAg ICAgICAgXA0KKyAgeyNOQU1FLCAmYmFzZXM6Ok5BTUUsICZzaGFwZXM6OlNI QVBFLCBQUkVEUywgT1BTX0lORk8sIFJFUVVJUkVEX0VYVEVOU0lPTlN9LA0K KyNpbmNsdWRlICJ0aGVhZC12ZWN0b3ItYnVpbHRpbnMtZnVuY3Rpb25zLmRl ZiINCn07DQovKiBUaGUgUlZWIHR5cGVzLCB3aXRoIHRoZWlyIGJ1aWx0LWlu DQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3It YnVpbHRpbnMuaCBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1 aWx0aW5zLmgNCmluZGV4IDU0Yzg4MjRmZjkyLi5hOGVlMzlhM2NiMiAxMDA2 NDQNCi0tLSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0 aW5zLmgNCisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1 aWx0aW5zLmgNCkBAIC0xMTQsNiArMTE0LDcgQEAgc3RhdGljIGNvbnN0IHVu c2lnbmVkIGludCBDUF9XUklURV9DU1IgPSAxVSA8PCA1Ow0KZW51bSByZXF1 aXJlZF9leHQNCnsNCiAgVkVDVE9SX0VYVCwgICAvKiBWZWN0b3IgZXh0ZW5z aW9uICovDQorICBYVEhFQURWRUNUT1JfRVhULCAgIC8qIFhUaGVhZFZlY3Rv ciBleHRlbnNpb24gKi8NCiAgWlZCQl9FWFQsICAgIC8qIENyeXRvIHZlY3Rv ciBadmJiIHN1Yi1leHQgKi8NCiAgWlZCQl9PUl9aVktCX0VYVCwgLyogQ3J5 dG8gdmVjdG9yIFp2YmIgb3IgenZrYiBzdWItZXh0ICovDQogIFpWQkNfRVhU LCAgICAvKiBDcnlwdG8gdmVjdG9yIFp2YmMgc3ViLWV4dCAqLw0KQEAgLTIz NCw2ICsyMzUsOCBAQCBzdHJ1Y3QgZnVuY3Rpb25fZ3JvdXBfaW5mbw0KICAg IHsNCiAgICAgIGNhc2UgVkVDVE9SX0VYVDoNCiAgICAgICAgcmV0dXJuIFRB UkdFVF9WRUNUT1I7DQorICAgICAgY2FzZSBYVEhFQURWRUNUT1JfRVhUOg0K KyByZXR1cm4gVEFSR0VUX1hUSEVBRFZFQ1RPUjsNCiAgICAgIGNhc2UgWlZC Ql9FWFQ6DQogICAgICAgIHJldHVybiBUQVJHRVRfWlZCQjsNCiAgICAgIGNh c2UgWlZCQl9PUl9aVktCX0VYVDoNCmRpZmYgLS1naXQgYS9nY2MvY29uZmln L3Jpc2N2L3QtcmlzY3YgYi9nY2MvY29uZmlnL3Jpc2N2L3QtcmlzY3YNCmlu ZGV4IDMyZGU2Yjg1MWMxLi4zODQ5NDMyMGQ4YiAxMDA2NDQNCi0tLSBhL2dj Yy9jb25maWcvcmlzY3YvdC1yaXNjdg0KKysrIGIvZ2NjL2NvbmZpZy9yaXNj di90LXJpc2N2DQpAQCAtMSw2ICsxLDcgQEANClJJU0NWX0JVSUxUSU5TX0gg PSAkKHNyY2RpcikvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlu cy5oIFwNCiAgICAgICQoc3JjZGlyKS9jb25maWcvcmlzY3YvcmlzY3YtdmVj dG9yLWJ1aWx0aW5zLmRlZiBcDQogICAgICAkKHNyY2RpcikvY29uZmlnL3Jp c2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1mdW5jdGlvbnMuZGVmIFwNCisg ICAgICAgJChzcmNkaXIpL2NvbmZpZy9yaXNjdi90aGVhZC12ZWN0b3ItYnVp bHRpbnMtZnVuY3Rpb25zLmRlZiBcDQogICAgICByaXNjdi12ZWN0b3ItdHlw ZS1pbmRleGVyLmdlbi5kZWYNCnJpc2N2LWJ1aWx0aW5zLm86ICQoc3JjZGly KS9jb25maWcvcmlzY3YvcmlzY3YtYnVpbHRpbnMuY2MgJChDT05GSUdfSCkg XA0KZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvdGhlYWQtdmVjdG9y LWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYgYi9nY2MvY29uZmlnL3Jpc2N2L3Ro ZWFkLXZlY3Rvci1idWlsdGlucy1mdW5jdGlvbnMuZGVmDQpuZXcgZmlsZSBt b2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLmZkM2JhMjliYWU5DQot LS0gL2Rldi9udWxsDQorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3RoZWFkLXZl Y3Rvci1idWlsdGlucy1mdW5jdGlvbnMuZGVmDQpAQCAtMCwwICsxLDM5IEBA DQorI2lmbmRlZiBERUZfUlZWX0ZVTkNUSU9ODQorI2RlZmluZSBERUZfUlZW X0ZVTkNUSU9OKE5BTUUsIFNIQVBFLCBQUkVEUywgT1BTX0lORk8pDQorI2Vu ZGlmDQorDQorI2RlZmluZSBSRVFVSVJFRF9FWFRFTlNJT05TIFhUSEVBRFZF Q1RPUl9FWFQNCitERUZfUlZWX0ZVTkNUSU9OICh2bGIsIHRoX2xvYWRzdG9y ZV93aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9v cHMpDQorREVGX1JWVl9GVU5DVElPTiAodmxoLCB0aF9sb2Fkc3RvcmVfd2lk dGgsIGZ1bGxfcHJlZHMsIGFsbF92X3NjYWxhcl9jb25zdF9wdHJfb3BzKQ0K K0RFRl9SVlZfRlVOQ1RJT04gKHZsdywgdGhfbG9hZHN0b3JlX3dpZHRoLCBm dWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX29wcykNCitERUZf UlZWX0ZVTkNUSU9OICh2bGJ1LCB0aF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxf cHJlZHMsIGFsbF92X3NjYWxhcl9jb25zdF9wdHJfb3BzKQ0KK0RFRl9SVlZf RlVOQ1RJT04gKHZsaHUsIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVk cywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9vcHMpDQorREVGX1JWVl9GVU5D VElPTiAodmx3dSwgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBh bGxfdl9zY2FsYXJfY29uc3RfcHRyX29wcykNCitERUZfUlZWX0ZVTkNUSU9O ICh2c2IsIHRoX2xvYWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBhbGxf dl9zY2FsYXJfcHRyX29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2c2gsIHRo X2xvYWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBhbGxfdl9zY2FsYXJf cHRyX29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2c3csIHRoX2xvYWRzdG9y ZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBhbGxfdl9zY2FsYXJfcHRyX29wcykN CitERUZfUlZWX0ZVTkNUSU9OICh2bHNiLCB0aF9sb2Fkc3RvcmVfd2lkdGgs IGZ1bGxfcHJlZHMsIGFsbF92X3NjYWxhcl9jb25zdF9wdHJfc2l6ZV9vcHMp DQorREVGX1JWVl9GVU5DVElPTiAodmxzaCwgdGhfbG9hZHN0b3JlX3dpZHRo LCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX3NpemVfb3Bz KQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZsc3csIHRoX2xvYWRzdG9yZV93aWR0 aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9zaXplX29w cykNCitERUZfUlZWX0ZVTkNUSU9OICh2bHNidSwgdGhfbG9hZHN0b3JlX3dp ZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29uc3RfcHRyX3NpemVf b3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZsc2h1LCB0aF9sb2Fkc3RvcmVf d2lkdGgsIGZ1bGxfcHJlZHMsIGFsbF92X3NjYWxhcl9jb25zdF9wdHJfc2l6 ZV9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodmxzd3UsIHRoX2xvYWRzdG9y ZV93aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9z aXplX29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2c3NiLCB0aF9sb2Fkc3Rv cmVfd2lkdGgsIG5vbmVfbV9wcmVkcywgYWxsX3Zfc2NhbGFyX3B0cl9zaXpl X29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2c3NoLCB0aF9sb2Fkc3RvcmVf d2lkdGgsIG5vbmVfbV9wcmVkcywgYWxsX3Zfc2NhbGFyX3B0cl9zaXplX29w cykNCitERUZfUlZWX0ZVTkNUSU9OICh2c3N3LCB0aF9sb2Fkc3RvcmVfd2lk dGgsIG5vbmVfbV9wcmVkcywgYWxsX3Zfc2NhbGFyX3B0cl9zaXplX29wcykN CitERUZfUlZWX0ZVTkNUSU9OICh2bHhiLCB0aF9pbmRleGVkX2xvYWRzdG9y ZV93aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9p bmRleF9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodmx4aCwgdGhfaW5kZXhl ZF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGFsbF92X3NjYWxhcl9j b25zdF9wdHJfaW5kZXhfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZseHcs IHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxf dl9zY2FsYXJfY29uc3RfcHRyX2luZGV4X29wcykNCitERUZfUlZWX0ZVTkNU SU9OICh2bHhidSwgdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxf cHJlZHMsIGFsbF92X3NjYWxhcl9jb25zdF9wdHJfaW5kZXhfb3BzKQ0KK0RF Rl9SVlZfRlVOQ1RJT04gKHZseGh1LCB0aF9pbmRleGVkX2xvYWRzdG9yZV93 aWR0aCwgZnVsbF9wcmVkcywgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9pbmRl eF9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodmx4d3UsIHRoX2luZGV4ZWRf bG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJfY29u c3RfcHRyX2luZGV4X29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2c3hiLCB0 aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBhbGxf dl9zY2FsYXJfcHRyX2luZGV4X29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2 c3hoLCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRz LCBhbGxfdl9zY2FsYXJfcHRyX2luZGV4X29wcykNCitERUZfUlZWX0ZVTkNU SU9OICh2c3h3LCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aCwgbm9uZV9t X3ByZWRzLCBhbGxfdl9zY2FsYXJfcHRyX2luZGV4X29wcykNCitERUZfUlZW X0ZVTkNUSU9OICh2c3V4YiwgdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgs IG5vbmVfbV9wcmVkcywgYWxsX3Zfc2NhbGFyX3B0cl9pbmRleF9vcHMpDQor REVGX1JWVl9GVU5DVElPTiAodnN1eGgsIHRoX2luZGV4ZWRfbG9hZHN0b3Jl X3dpZHRoLCBub25lX21fcHJlZHMsIGFsbF92X3NjYWxhcl9wdHJfaW5kZXhf b3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZzdXh3LCB0aF9pbmRleGVkX2xv YWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBhbGxfdl9zY2FsYXJfcHRy X2luZGV4X29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2ZXh0X3hfdiwgdGhf ZXh0cmFjdCwgbm9uZV9wcmVkcywgaXVfeF9zX3Vfb3BzKQ0KKyN1bmRlZiBS RVFVSVJFRF9FWFRFTlNJT05TDQorDQorI3VuZGVmIERFRl9SVlZfRlVOQ1RJ T04NCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rv ci5tZCBiL2djYy9jb25maWcvcmlzY3YvdGhlYWQtdmVjdG9yLm1kDQppbmRl eCA2OTZiODE1MjUyZC4uMGYzNzAwZDkyNjkgMTAwNjQ0DQotLS0gYS9nY2Mv Y29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci5tZA0KKysrIGIvZ2NjL2NvbmZp Zy9yaXNjdi90aGVhZC12ZWN0b3IubWQNCkBAIC0xLDcgKzEsOTUgQEANCihk ZWZpbmVfY19lbnVtICJ1bnNwZWMiIFsNCisgIFVOU1BFQ19USF9WTEINCisg IFVOU1BFQ19USF9WTEJVDQorICBVTlNQRUNfVEhfVkxIDQorICBVTlNQRUNf VEhfVkxIVQ0KKyAgVU5TUEVDX1RIX1ZMVw0KKyAgVU5TUEVDX1RIX1ZMV1UN CisNCisgIFVOU1BFQ19USF9WTFNCDQorICBVTlNQRUNfVEhfVkxTQlUNCisg IFVOU1BFQ19USF9WTFNIDQorICBVTlNQRUNfVEhfVkxTSFUNCisgIFVOU1BF Q19USF9WTFNXDQorICBVTlNQRUNfVEhfVkxTV1UNCisNCisgIFVOU1BFQ19U SF9WTFhCDQorICBVTlNQRUNfVEhfVkxYQlUNCisgIFVOU1BFQ19USF9WTFhI DQorICBVTlNQRUNfVEhfVkxYSFUNCisgIFVOU1BFQ19USF9WTFhXDQorICBV TlNQRUNfVEhfVkxYV1UNCisNCisgIFVOU1BFQ19USF9WU1VYQg0KKyAgVU5T UEVDX1RIX1ZTVVhIDQorICBVTlNQRUNfVEhfVlNVWFcNCisNCiAgVU5TUEVD X1RIX1ZXTERTVA0KXSkNCisoZGVmaW5lX2ludF9pdGVyYXRvciBVTlNQRUNf VEhfVkxNRU1fT1AgWw0KKyAgVU5TUEVDX1RIX1ZMQiBVTlNQRUNfVEhfVkxC VQ0KKyAgVU5TUEVDX1RIX1ZMSCBVTlNQRUNfVEhfVkxIVQ0KKyAgVU5TUEVD X1RIX1ZMVyBVTlNQRUNfVEhfVkxXVQ0KK10pDQorDQorKGRlZmluZV9pbnRf aXRlcmF0b3IgVU5TUEVDX1RIX1ZMU01FTV9PUCBbDQorICBVTlNQRUNfVEhf VkxTQiBVTlNQRUNfVEhfVkxTQlUNCisgIFVOU1BFQ19USF9WTFNIIFVOU1BF Q19USF9WTFNIVQ0KKyAgVU5TUEVDX1RIX1ZMU1cgVU5TUEVDX1RIX1ZMU1dV DQorXSkNCisNCisoZGVmaW5lX2ludF9pdGVyYXRvciBVTlNQRUNfVEhfVkxY TUVNX09QIFsNCisgIFVOU1BFQ19USF9WTFhCIFVOU1BFQ19USF9WTFhCVQ0K KyAgVU5TUEVDX1RIX1ZMWEggVU5TUEVDX1RIX1ZMWEhVDQorICBVTlNQRUNf VEhfVkxYVyBVTlNQRUNfVEhfVkxYV1UNCitdKQ0KKw0KKyhkZWZpbmVfaW50 X2F0dHIgdmxtZW1fb3BfYXR0ciBbDQorICAoVU5TUEVDX1RIX1ZMQiAiYiIp IChVTlNQRUNfVEhfVkxCVSAiYnUiKQ0KKyAgKFVOU1BFQ19USF9WTEggImgi KSAoVU5TUEVDX1RIX1ZMSFUgImh1IikNCisgIChVTlNQRUNfVEhfVkxXICJ3 IikgKFVOU1BFQ19USF9WTFdVICJ3dSIpDQorICAoVU5TUEVDX1RIX1ZMU0Ig ImIiKSAoVU5TUEVDX1RIX1ZMU0JVICJidSIpDQorICAoVU5TUEVDX1RIX1ZM U0ggImgiKSAoVU5TUEVDX1RIX1ZMU0hVICJodSIpDQorICAoVU5TUEVDX1RI X1ZMU1cgInciKSAoVU5TUEVDX1RIX1ZMU1dVICJ3dSIpDQorICAoVU5TUEVD X1RIX1ZMWEIgImIiKSAoVU5TUEVDX1RIX1ZMWEJVICJidSIpDQorICAoVU5T UEVDX1RIX1ZMWEggImgiKSAoVU5TUEVDX1RIX1ZMWEhVICJodSIpDQorICAo VU5TUEVDX1RIX1ZMWFcgInciKSAoVU5TUEVDX1RIX1ZMWFdVICJ3dSIpDQor ICAoVU5TUEVDX1RIX1ZTVVhCICJiIikNCisgIChVTlNQRUNfVEhfVlNVWEgg ImgiKQ0KKyAgKFVOU1BFQ19USF9WU1VYVyAidyIpDQorXSkNCisNCisoZGVm aW5lX2ludF9hdHRyIHZsbWVtX29yZGVyX2F0dHIgWw0KKyAgKFVOU1BFQ19U SF9WTFhCICIiKQ0KKyAgKFVOU1BFQ19USF9WTFhIICIiKQ0KKyAgKFVOU1BF Q19USF9WTFhXICIiKQ0KKyAgKFVOU1BFQ19USF9WU1VYQiAidSIpDQorICAo VU5TUEVDX1RIX1ZTVVhIICJ1IikNCisgIChVTlNQRUNfVEhfVlNVWFcgInUi KQ0KK10pDQorDQorKGRlZmluZV9pbnRfaXRlcmF0b3IgVU5TUEVDX1RIX1ZT TUVNX09QIFsNCisgIFVOU1BFQ19USF9WTEINCisgIFVOU1BFQ19USF9WTEgN CisgIFVOU1BFQ19USF9WTFcNCitdKQ0KKw0KKyhkZWZpbmVfaW50X2l0ZXJh dG9yIFVOU1BFQ19USF9WU1NNRU1fT1AgWw0KKyAgVU5TUEVDX1RIX1ZMU0IN CisgIFVOU1BFQ19USF9WTFNIDQorICBVTlNQRUNfVEhfVkxTVw0KK10pDQor DQorKGRlZmluZV9pbnRfaXRlcmF0b3IgVU5TUEVDX1RIX1ZTWE1FTV9PUCBb DQorICBVTlNQRUNfVEhfVkxYQg0KKyAgVU5TUEVDX1RIX1ZMWEgNCisgIFVO U1BFQ19USF9WTFhXDQorICBVTlNQRUNfVEhfVlNVWEINCisgIFVOU1BFQ19U SF9WU1VYSA0KKyAgVU5TUEVDX1RIX1ZTVVhXDQorXSkNCisNCihkZWZpbmVf bW9kZV9pdGVyYXRvciBWX1ZMU19WVCBbViBWTFMgVlRdKQ0KKGRlZmluZV9t b2RlX2l0ZXJhdG9yIFZfVkJfVkxTX1ZUIFtWIFZCIFZMUyBWVF0pDQpAQCAt MTAwLDMgKzE4OCwxNjggQEANCiAgfQ0KICBbKHNldF9hdHRyICJ0eXBlIiAi dmxkbSx2c3RtLHZtYWx1LHZtYWx1LHZtYWx1IikNCiAgICAoc2V0X2F0dHIg Im1vZGUiICI8TU9ERT4iKV0pDQorDQorKGRlZmluZV9leHBhbmQgIkBwcmVk X21vdl93aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2RlPiINCisgIFsoc2V0ICht YXRjaF9vcGVyYW5kOlZfVkxTIDAgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIikN CisgICAgKGlmX3RoZW5fZWxzZTpWX1ZMUw0KKyAgICAgICh1bnNwZWM6PFZN Pg0KKyBbKG1hdGNoX29wZXJhbmQ6PFZNPiAxICJ2ZWN0b3JfbWFza19vcGVy YW5kIikNCisgIChtYXRjaF9vcGVyYW5kIDQgInZlY3Rvcl9sZW5ndGhfb3Bl cmFuZCIpDQorICAobWF0Y2hfb3BlcmFuZCA1ICJjb25zdF9pbnRfb3BlcmFu ZCIpDQorICAobWF0Y2hfb3BlcmFuZCA2ICJjb25zdF9pbnRfb3BlcmFuZCIp DQorICAobWF0Y2hfb3BlcmFuZCA3ICJjb25zdF9pbnRfb3BlcmFuZCIpDQor ICAocmVnOlNJIFZMX1JFR05VTSkNCisgIChyZWc6U0kgVlRZUEVfUkVHTlVN KV0gVU5TUEVDX1RIX1ZMTUVNX09QKQ0KKyAgICAgIChtYXRjaF9vcGVyYW5k OlZfVkxTIDMgInZlY3Rvcl9tb3ZlX29wZXJhbmQiKQ0KKyAgICAgIChtYXRj aF9vcGVyYW5kOlZfVkxTIDIgInZlY3Rvcl9tZXJnZV9vcGVyYW5kIikpKV0N CisgICJUQVJHRVRfWFRIRUFEVkVDVE9SIg0KKyAge30pDQorDQorKGRlZmlu ZV9pbnNuX2FuZF9zcGxpdCAiKnByZWRfbW92X3dpZHRoPHZsbWVtX29wX2F0 dHI+PG1vZGU+Ig0KKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6Vl9WTFMgMCAi bm9uaW1tZWRpYXRlX29wZXJhbmQiICAgICAiPXZyLCAgICB2ciwgICAgdmQs ICAgICBtLCAgICB2ciwgICAgdnIiKQ0KKyAgICAoaWZfdGhlbl9lbHNlOlZf VkxTDQorICAgICAgKHVuc3BlYzo8Vk0+DQorIFsobWF0Y2hfb3BlcmFuZDo8 Vk0+IDEgInZlY3Rvcl9tYXNrX29wZXJhbmQiICAgICJ2bVdjMSwgICBXYzEs ICAgIHZtLCB2bVdjMSwgICBXYzEsICAgV2MxIikNCisgIChtYXRjaF9vcGVy YW5kIDQgInZlY3Rvcl9sZW5ndGhfb3BlcmFuZCIgICAgICAgIiAgIHJLLCAg ICBySywgICAgckssICAgIHJLLCAgICBySywgICAgcksiKQ0KKyAgKG1hdGNo X29wZXJhbmQgNSAiY29uc3RfaW50X29wZXJhbmQiICAgICIgICAgaSwgICAg IGksICAgICBpLCAgICAgaSwgICAgIGksICAgICBpIikNCisgIChtYXRjaF9v cGVyYW5kIDYgImNvbnN0X2ludF9vcGVyYW5kIiAgICAiICAgIGksICAgICBp LCAgICAgaSwgICAgIGksICAgICBpLCAgICAgaSIpDQorICAobWF0Y2hfb3Bl cmFuZCA3ICJjb25zdF9pbnRfb3BlcmFuZCIgICAgIiAgICBpLCAgICAgaSwg ICAgIGksICAgICBpLCAgICAgaSwgICAgIGkiKQ0KKyAgKHJlZzpTSSBWTF9S RUdOVU0pDQorICAocmVnOlNJIFZUWVBFX1JFR05VTSldIFVOU1BFQ19USF9W TE1FTV9PUCkNCisgICAgICAobWF0Y2hfb3BlcmFuZDpWX1ZMUyAzICJyZWdf b3JfbWVtX29wZXJhbmQiICAgICAgICIgICAgbSwgICAgIG0sICAgICBtLCAg ICB2ciwgICAgdnIsICAgIHZyIikNCisgICAgICAobWF0Y2hfb3BlcmFuZDpW X1ZMUyAyICJ2ZWN0b3JfbWVyZ2Vfb3BlcmFuZCIgICAgICIgICAgMCwgICAg dnUsICAgIHZ1LCAgICB2dSwgICAgdnUsICAgICAwIikpKV0NCisgICIoVEFS R0VUX1hUSEVBRFZFQ1RPUg0KKyAgICAmJiAocmVnaXN0ZXJfb3BlcmFuZCAo b3BlcmFuZHNbMF0sIDxNT0RFPm1vZGUpDQorIHx8IHJlZ2lzdGVyX29wZXJh bmQgKG9wZXJhbmRzWzNdLCA8TU9ERT5tb2RlKSkpIg0KKyAgIkANCisgICB2 bDx2bG1lbV9vcF9hdHRyPi52XHQlMCwlMyVwMQ0KKyAgIHZsPHZsbWVtX29w X2F0dHI+LnZcdCUwLCUzDQorICAgdmw8dmxtZW1fb3BfYXR0cj4udlx0JTAs JTMsJTEudA0KKyAgIHZzPHZsbWVtX29wX2F0dHI+LnZcdCUzLCUwJXAxDQor ICAgdm12LnYudlx0JTAsJTMNCisgICB2bXYudi52XHQlMCwlMyINCisgICIm JiByZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5kc1swXSwgPE1PREU+bW9kZSkN CisgICAmJiByZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5kc1szXSwgPE1PREU+ bW9kZSkNCisgICAmJiBzYXRpc2ZpZXNfY29uc3RyYWludF92dSAob3BlcmFu ZHNbMl0pDQorICAgJiYgSU5UVkFMIChvcGVyYW5kc1s3XSkgPT0gcmlzY3Zf dmVjdG9yOjpWTE1BWCINCisgIFsoc2V0IChtYXRjaF9kdXAgMCkgKG1hdGNo X2R1cCAzKSldDQorICAiIg0KKyAgWyhzZXRfYXR0ciAidHlwZSIgInZsZGUs dmxkZSx2bGRlLHZzdGUsdmltb3Ysdmltb3YiKQ0KKyAgIChzZXRfYXR0ciAi bW9kZSIgIjxNT0RFPiIpXSkNCisNCisoZGVmaW5lX2luc24gIkBwcmVkX3N0 b3JlX3dpZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+Ig0KKyAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6VkkgMCAibWVtb3J5X29wZXJhbmQiICAgIittIikNCisg KGlmX3RoZW5fZWxzZTpWSQ0KKyAgICh1bnNwZWM6PFZNPg0KKyAgICAgWyht YXRjaF9vcGVyYW5kOjxWTT4gMSAidmVjdG9yX21hc2tfb3BlcmFuZCIgInZt V2MxIikNCisgICAgICAobWF0Y2hfb3BlcmFuZCAzICJ2ZWN0b3JfbGVuZ3Ro X29wZXJhbmQiICAgICIgICBySyIpDQorICAgICAgKG1hdGNoX29wZXJhbmQg NCAiY29uc3RfaW50X29wZXJhbmQiICIgICAgaSIpDQorICAgICAgKHJlZzpT SSBWTF9SRUdOVU0pDQorICAgICAgKHJlZzpTSSBWVFlQRV9SRUdOVU0pXSBV TlNQRUNfVEhfVlNNRU1fT1ApDQorICAgKG1hdGNoX29wZXJhbmQ6VkkgMiAi cmVnaXN0ZXJfb3BlcmFuZCIgICIgICAgdnIiKQ0KKyAgIChtYXRjaF9kdXAg MCkpKV0NCisgICJUQVJHRVRfWFRIRUFEVkVDVE9SIg0KKyAgInZzPHZsbWVt X29wX2F0dHI+LnZcdCUyLCUwJXAxIg0KKyAgWyhzZXRfYXR0ciAidHlwZSIg InZzdGUiKQ0KKyAgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpDQorICAg KHNldCAoYXR0ciAiYXZsX3R5cGVfaWR4IikgKGNvbnN0X2ludCA0KSkNCisg ICAoc2V0X2F0dHIgInZsX29wX2lkeCIgIjMiKV0pDQorDQorKGRlZmluZV9p bnNuICJAcHJlZF9zdHJpZGVkX2xvYWRfd2lkdGg8dmxtZW1fb3BfYXR0cj48 bW9kZT4iDQorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWSSAwICJyZWdpc3Rl cl9vcGVyYW5kIiAgICAgICAiPXZyLCAgICB2ciwgICAgdmQiKQ0KKyAoaWZf dGhlbl9lbHNlOlZJDQorICAgKHVuc3BlYzo8Vk0+DQorICAgICBbKG1hdGNo X29wZXJhbmQ6PFZNPiAxICJ2ZWN0b3JfbWFza19vcGVyYW5kIiAidm1XYzEs ICAgV2MxLCAgICB2bSIpDQorICAgICAgKG1hdGNoX29wZXJhbmQgNSAidmVj dG9yX2xlbmd0aF9vcGVyYW5kIiAgICAiICAgckssICAgIHJLLCAgICBySyIp DQorICAgICAgKG1hdGNoX29wZXJhbmQgNiAiY29uc3RfaW50X29wZXJhbmQi ICIgICAgaSwgICAgIGksICAgICBpIikNCisgICAgICAobWF0Y2hfb3BlcmFu ZCA3ICJjb25zdF9pbnRfb3BlcmFuZCIgIiAgICBpLCAgICAgaSwgICAgIGki KQ0KKyAgICAgIChtYXRjaF9vcGVyYW5kIDggImNvbnN0X2ludF9vcGVyYW5k IiAiICAgIGksICAgICBpLCAgICAgaSIpDQorICAgICAgKHJlZzpTSSBWTF9S RUdOVU0pDQorICAgICAgKHJlZzpTSSBWVFlQRV9SRUdOVU0pXSBVTlNQRUNf VEhfVkxTTUVNX09QKQ0KKyAgICh1bnNwZWM6VkkNCisgICAgIFsobWF0Y2hf b3BlcmFuZDpWSSAzICJtZW1vcnlfb3BlcmFuZCIgICIgICAgbSwgICAgIG0s ICAgICBtIikNCisgICAgICAobWF0Y2hfb3BlcmFuZCA0ICJwbW9kZV9yZWdf b3JfMF9vcGVyYW5kIiAgICIgICBySiwgICAgckosICAgIHJKIildIFVOU1BF Q19USF9WTFNNRU1fT1ApDQorICAgKG1hdGNoX29wZXJhbmQ6VkkgMiAidmVj dG9yX21lcmdlX29wZXJhbmQiICAgICAgIiAgICAwLCAgICB2dSwgICAgdnUi KSkpXQ0KKyAgIlRBUkdFVF9YVEhFQURWRUNUT1IiDQorICAidmxzPHZsbWVt X29wX2F0dHI+LnZcdCUwLCUzLCV6NCVwMSINCisgIFsoc2V0X2F0dHIgInR5 cGUiICJ2bGRzIikNCisgICAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKV0p DQorDQorKGRlZmluZV9pbnNuICJAcHJlZF9zdHJpZGVkX3N0b3JlX3dpZHRo PHZsbWVtX29wX2F0dHI+PG1vZGU+Ig0KKyAgWyhzZXQgKG1hdGNoX29wZXJh bmQ6VkkgMCAibWVtb3J5X29wZXJhbmQiICAgIittIikNCisgKGlmX3RoZW5f ZWxzZTpWSQ0KKyAgICh1bnNwZWM6PFZNPg0KKyAgICAgWyhtYXRjaF9vcGVy YW5kOjxWTT4gMSAidmVjdG9yX21hc2tfb3BlcmFuZCIgInZtV2MxIikNCisg ICAgICAobWF0Y2hfb3BlcmFuZCA0ICJ2ZWN0b3JfbGVuZ3RoX29wZXJhbmQi ICAgICIgICBySyIpDQorICAgICAgKG1hdGNoX29wZXJhbmQgNSAiY29uc3Rf aW50X29wZXJhbmQiICIgICAgaSIpDQorICAgICAgKHJlZzpTSSBWTF9SRUdO VU0pDQorICAgICAgKHJlZzpTSSBWVFlQRV9SRUdOVU0pXSBVTlNQRUNfVEhf VlNTTUVNX09QKQ0KKyAgICh1bnNwZWM6VkkNCisgICAgIFsobWF0Y2hfb3Bl cmFuZCAyICJwbW9kZV9yZWdfb3JfMF9vcGVyYW5kIiAgICIgICBySiIpDQor ICAgICAgKG1hdGNoX29wZXJhbmQ6VkkgMyAicmVnaXN0ZXJfb3BlcmFuZCIg ICAgICAgIiAgIHZyIildIFVOU1BFQ19USF9WU1NNRU1fT1ApDQorICAgKG1h dGNoX2R1cCAwKSkpXQ0KKyAgIlRBUkdFVF9YVEhFQURWRUNUT1IiDQorICAi dnNzPHZsbWVtX29wX2F0dHI+LnZcdCUzLCUwLCV6MiVwMSINCisgIFsoc2V0 X2F0dHIgInR5cGUiICJ2c3RzIikNCisgICAoc2V0X2F0dHIgIm1vZGUiICI8 TU9ERT4iKQ0KKyAgIChzZXQgKGF0dHIgImF2bF90eXBlX2lkeCIpIChjb25z dF9pbnQgNSkpXSkNCisNCisoZGVmaW5lX2luc24gIkBwcmVkX2luZGV4ZWRf bG9hZF93aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2RlPiINCisgIFsoc2V0ICht YXRjaF9vcGVyYW5kOlZJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgIj12 ZCwgdnIsdmQsIHZyIikNCisgKGlmX3RoZW5fZWxzZTpWSQ0KKyAgICh1bnNw ZWM6PFZNPg0KKyAgICAgWyhtYXRjaF9vcGVyYW5kOjxWTT4gMSAidmVjdG9y X21hc2tfb3BlcmFuZCIgICIgdm0sV2MxLHZtLFdjMSIpDQorICAgICAgKG1h dGNoX29wZXJhbmQgNSAidmVjdG9yX2xlbmd0aF9vcGVyYW5kIiAgICAgIiBy SywgckssckssIHJLIikNCisgICAgICAobWF0Y2hfb3BlcmFuZCA2ICJjb25z dF9pbnRfb3BlcmFuZCIgICIgIGksICBpLCBpLCAgaSIpDQorICAgICAgKG1h dGNoX29wZXJhbmQgNyAiY29uc3RfaW50X29wZXJhbmQiICAiICBpLCAgaSwg aSwgIGkiKQ0KKyAgICAgIChtYXRjaF9vcGVyYW5kIDggImNvbnN0X2ludF9v cGVyYW5kIiAgIiAgaSwgIGksIGksICBpIikNCisgICAgICAocmVnOlNJIFZM X1JFR05VTSkNCisgICAgICAocmVnOlNJIFZUWVBFX1JFR05VTSldIFVOU1BF Q19USF9WTFhNRU1fT1ApDQorICAgKHVuc3BlYzpWSQ0KKyAgICAgWyhtYXRj aF9vcGVyYW5kIDMgInBtb2RlX3JlZ19vcl8wX29wZXJhbmQiICAgICIgckos IHJKLHJKLCBySiIpDQorICAgICAgKG1lbTpCTEsgKHNjcmF0Y2gpKQ0KKyAg ICAgIChtYXRjaF9vcGVyYW5kOlZJIDQgInJlZ2lzdGVyX29wZXJhbmQiICIg dnIsIHZyLHZyLCB2ciIpXSBVTlNQRUNfVEhfVkxYTUVNX09QKQ0KKyAgICht YXRjaF9vcGVyYW5kOlZJIDIgInZlY3Rvcl9tZXJnZV9vcGVyYW5kIiAgICAg ICAiIHZ1LCB2dSwgMCwgIDAiKSkpXQ0KKyAgIlRBUkdFVF9YVEhFQURWRUNU T1IiDQorICAidmx4PHZsbWVtX29wX2F0dHI+LnZcdCUwLCglejMpLCU0JXAx Ig0KKyAgWyhzZXRfYXR0ciAidHlwZSIgInZsZHV4IikNCisgICAoc2V0X2F0 dHIgIm1vZGUiICI8TU9ERT4iKV0pDQorDQorKGRlZmluZV9pbnNuICJAcHJl ZF9pbmRleGVkXzx2bG1lbV9vcmRlcl9hdHRyPnN0b3JlX3dpZHRoPHZsbWVt X29wX2F0dHI+PG1vZGU+Ig0KKyAgWyhzZXQgKG1lbTpCTEsgKHNjcmF0Y2gp KQ0KKyAodW5zcGVjOkJMSw0KKyAgIFsodW5zcGVjOjxWTT4NCisgICAgIFso bWF0Y2hfb3BlcmFuZDo8Vk0+IDAgInZlY3Rvcl9tYXNrX29wZXJhbmQiICJ2 bVdjMSIpDQorICAgICAgKG1hdGNoX29wZXJhbmQgNCAidmVjdG9yX2xlbmd0 aF9vcGVyYW5kIiAgICAiICAgcksiKQ0KKyAgICAgIChtYXRjaF9vcGVyYW5k IDUgImNvbnN0X2ludF9vcGVyYW5kIiAiICAgIGkiKQ0KKyAgICAgIChyZWc6 U0kgVkxfUkVHTlVNKQ0KKyAgICAgIChyZWc6U0kgVlRZUEVfUkVHTlVNKV0g VU5TUEVDX1RIX1ZTWE1FTV9PUCkNCisgICAgKG1hdGNoX29wZXJhbmQgMSAi cG1vZGVfcmVnX29yXzBfb3BlcmFuZCIgICAgICAiICBySiIpDQorICAgICht YXRjaF9vcGVyYW5kOlZJIDIgInJlZ2lzdGVyX29wZXJhbmQiICIgIHZyIikN CisgICAgKG1hdGNoX29wZXJhbmQ6VkkgMyAicmVnaXN0ZXJfb3BlcmFuZCIg ICIgIHZyIildIFVOU1BFQ19USF9WU1hNRU1fT1ApKV0NCisgICJUQVJHRVRf WFRIRUFEVkVDVE9SIg0KKyAgInZzPHZsbWVtX29yZGVyX2F0dHI+eDx2bG1l bV9vcF9hdHRyPi52XHQlMywoJXoxKSwlMiVwMCINCisgIFsoc2V0X2F0dHIg InR5cGUiICJ2c3R1eCIpDQorICAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+ IildKQ0KKw0KKyhkZWZpbmVfZXhwYW5kICJAcHJlZF90aF9leHRyYWN0PG1v ZGU+Ig0KKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6PFZFTD4gMCAicmVnaXN0 ZXJfb3BlcmFuZCIpDQorICh1bnNwZWM6PFZFTD4NCisgICBbKHZlY19zZWxl Y3Q6PFZFTD4NCisgICAgICAobWF0Y2hfb3BlcmFuZDpWX1ZMU0kgMSAicmVn aXN0ZXJfb3BlcmFuZCIpDQorICAgICAgKHBhcmFsbGVsIFsobWF0Y2hfb3Bl cmFuZDpESSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpXSkpDQorICAgIChy ZWc6U0kgVlRZUEVfUkVHTlVNKV0gVU5TUEVDX1ZQUkVESUNBVEUpKV0NCisg ICJUQVJHRVRfWFRIRUFEVkVDVE9SIg0KK3t9KQ0KKw0KKyhkZWZpbmVfaW5z biAiKnByZWRfdGhfZXh0cmFjdDxtb2RlPiINCisgIFsoc2V0IChtYXRjaF9v cGVyYW5kOjxWRUw+IDAgInJlZ2lzdGVyX29wZXJhbmQiICAgIj1yIikNCisg ICh1bnNwZWM6PFZFTD4NCisgICAgWyh2ZWNfc2VsZWN0OjxWRUw+DQorICAg ICAgIChtYXRjaF9vcGVyYW5kOlZfVkxTSSAxICJyZWdpc3Rlcl9vcGVyYW5k IiAidnIiKQ0KKyAgICAgICAocGFyYWxsZWwgWyhtYXRjaF9vcGVyYW5kOkRJ IDIgInJlZ2lzdGVyX29wZXJhbmQiICJyIildKSkNCisgICAgIChyZWc6U0kg VlRZUEVfUkVHTlVNKV0gVU5TUEVDX1ZQUkVESUNBVEUpKV0NCisgICJUQVJH RVRfWFRIRUFEVkVDVE9SIg0KKyAgInZleHQueC52XHQlMCwlMSwlMiINCisg IFsoc2V0X2F0dHIgInR5cGUiICJ2aW1vdnZ4IikNCisgICAoc2V0X2F0dHIg Im1vZGUiICI8TU9ERT4iKV0pDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxiLXZzYi5j IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2 ZWN0b3IvdmxiLXZzYi5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXgg MDAwMDAwMDAwMDAuLjNjMTJjMTI0NTk3DQotLS0gL2Rldi9udWxsDQorKysg Yi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZl Y3Rvci92bGItdnNiLmMNCkBAIC0wLDAgKzEsNjggQEANCisvKiB7IGRnLWRv IGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2MzJn Y3h0aGVhZHZlY3RvciAtbWFiaT1pbHAzMmQgLU8zIiB9ICovDQorLyogeyBk Zy1maW5hbCB7IGNoZWNrLWZ1bmN0aW9uLWJvZGllcyAiKioiICIiIH0gfSAq Lw0KKyNpbmNsdWRlICJyaXNjdl90aF92ZWN0b3IuaCINCisNCisvKg0KKyoq IGYxOg0KKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHR1LG1hDQor KiogdGgudmxiXC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgu dmxiXC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudmFkZFwu dnZcdHZbMC05XSssXHMqdlswLTldKyxccyp2WzAtOV0rDQorKiogdGgudmFk ZFwudnZcdHZbMC05XSssXHMqdlswLTldKyxccyp2WzAtOV0rDQorKiogdGgu dnNiXC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogcmV0DQorKi8N Cit2b2lkIGYxICh2b2lkICogaW4sIHZvaWQgKm91dCkNCit7DQorICAgIHZp bnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmxiX3ZfaTMybTEgKGluLCA0KTsN CisgICAgdmludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmxiX3ZfaTMybTFf dHUgKHYsIGluLCA0KTsNCisgICAgdmludDMybTFfdCB2MyA9IF9fcmlzY3Zf dmFkZF92dl9pMzJtMSAodjIsIHYyLCA0KTsNCisgICAgdmludDMybTFfdCB2 NCA9IF9fcmlzY3ZfdmFkZF92dl9pMzJtMV90dSAodjMsIHYyLCB2MiwgNCk7 DQorICAgIF9fcmlzY3ZfdGhfdnNiX3ZfaTMybTEgKG91dCwgdjQsIDQpOw0K K30NCisNCisvKg0KKyoqIGYyOg0KKyoqIHRoLnZzZXR2bGlcdFthLXgwLTld Kyx6ZXJvLGU4LG1mNCx0YSxtYQ0KKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBc KFthLXgwLTldK1wpDQorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEs dGEsbWENCisqKiB0aC52bGIudlx0dlswLTldKywwXChbYS14MC05XStcKSx2 MC50DQorKiogdGgudmFkZFwudnZcdHZbMC05XSssXHMqdlswLTldKyxccyp2 WzAtOV0rDQorKiogdGgudmFkZFwudnZcdHZbMS05XVswLTldPyxccyp2WzAt OV0rLFxzKnZbMC05XSssXHMqdjAudA0KKyoqIHRoLnZzYi52XHR2WzAtOV0r LDBcKFthLXgwLTldK1wpDQorKiogcmV0DQorKi8NCit2b2lkIGYyICh2b2lk ICogaW4sIHZvaWQgKm91dCkNCit7DQorICAgIHZib29sMzJfdCBtYXNrID0g Kih2Ym9vbDMyX3QqKWluOw0KKyAgICBhc20gdm9sYXRpbGUgKCIiOjo6Im1l bW9yeSIpOw0KKyAgICB2aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsYl92 X2kzMm0xIChpbiwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2 X3RoX3ZsYl92X2kzMm0xX20gKG1hc2ssIGluLCA0KTsNCisgICAgdmludDMy bTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92dl9pMzJtMSAodjIsIHYyLCA0KTsN CisgICAgdmludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92dl9pMzJtMV9t IChtYXNrLCB2MywgdjMsIDQpOw0KKyAgICBfX3Jpc2N2X3RoX3ZzYl92X2kz Mm0xIChvdXQsIHY0LCA0KTsNCit9DQorDQorLyoNCisqKiBmMzoNCisqKiB0 aC52c2V0dmxpXHRbYS14MC05XSssemVybyxlOCxtZjQsdGEsbWENCisqKiB0 aC52bG0udlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHRoLnZzZXRp dmxpXHR6ZXJvLDQsZTMyLG0xLHR1LG11DQorKiogdGgudmxiXC52XHR2WzAt OV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudmxiLnZcdHZbMC05XSssMFwo W2EteDAtOV0rXCksdjAudA0KKyoqIHRoLnZhZGRcLnZ2XHR2WzAtOV0rLFxz KnZbMC05XSssXHMqdlswLTldKw0KKyoqIHRoLnZhZGRcLnZ2XHR2WzEtOV1b MC05XT8sXHMqdlswLTldKyxccyp2WzAtOV0rLFxzKnYwLnQNCisqKiB0aC52 c2Iudlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHJldA0KKyovDQor dm9pZCBmMyAodm9pZCAqIGluLCB2b2lkICpvdXQpDQorew0KKyAgICB2Ym9v bDMyX3QgbWFzayA9ICoodmJvb2wzMl90KilpbjsNCisgICAgYXNtIHZvbGF0 aWxlICgiIjo6OiJtZW1vcnkiKTsNCisgICAgdmludDMybTFfdCB2ID0gX19y aXNjdl90aF92bGJfdl9pMzJtMSAoaW4sIDQpOw0KKyAgICB2aW50MzJtMV90 IHYyID0gX19yaXNjdl90aF92bGJfdl9pMzJtMV90dW11IChtYXNrLCB2LCBp biwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnZf aTMybTEgKHYyLCB2MiwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjQgPSBfX3Jp c2N2X3ZhZGRfdnZfaTMybTFfdHVtdSAobWFzaywgdjMsIHYyLCB2MiwgNCk7 DQorICAgIF9fcmlzY3ZfdGhfdnNiX3ZfaTMybTEgKG91dCwgdjQsIDQpOw0K K30NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnZ2L3h0aGVhZHZlY3Rvci92bGJ1LXZzYi5jIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxidS12c2Iu Yw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi4z MGJlZjM2OTM3NQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxidS12c2Iu Yw0KQEAgLTAsMCArMSw2OCBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICov DQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnYzMmdjeHRoZWFkdmVjdG9y IC1tYWJpPWlscDMyZCAtTzMiIH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgY2hl Y2stZnVuY3Rpb24tYm9kaWVzICIqKiIgIiIgfSB9ICovDQorI2luY2x1ZGUg InJpc2N2X3RoX3ZlY3Rvci5oIg0KKw0KKy8qDQorKiogZjE6DQorKiogdGgu dnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbWENCisqKiB0aC52bGJ1XC52 XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudmxidVwudlx0dlsw LTldKywwXChbYS14MC05XStcKQ0KKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0r LFxzKnZbMC05XSssXHMqLTE2DQorKiogdGgudmFkZFwudmlcdHZbMC05XSss XHMqdlswLTldKyxccyotMTYNCisqKiB0aC52c2JcLnZcdHZbMC05XSssMFwo W2EteDAtOV0rXCkNCisqKiByZXQNCisqLw0KK3ZvaWQgZjEgKHZvaWQgKiBp biwgdm9pZCAqb3V0LCB1aW50MzJfdCB4KQ0KK3sNCisgICAgdnVpbnQzMm0x X3QgdiA9IF9fcmlzY3ZfdGhfdmxidV92X3UzMm0xIChpbiwgNCk7DQorICAg IHZ1aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bGJ1X3ZfdTMybTFfdHUg KHYsIGluLCA0KTsNCisgICAgdnVpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3Zh ZGRfdnhfdTMybTEgKHYyLCAtMTYsIDQpOw0KKyAgICB2dWludDMybTFfdCB2 NCA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMV90dSAodjMsIHYyLCAtMTYsIDQp Ow0KKyAgICBfX3Jpc2N2X3RoX3ZzYl92X3UzMm0xIChvdXQsIHY0LCA0KTsN Cit9DQorDQorLyoNCisqKiBmMjoNCisqKiB0aC52c2V0dmxpXHRbYS14MC05 XSssemVybyxlOCxtZjQsdGEsbWENCisqKiB0aC52bG0udlx0dlswLTldKyww XChbYS14MC05XStcKQ0KKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0x LHRhLG1hDQorKiogdGgudmxidS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wp LHYwLnQNCisqKiB0aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxz Ki0xNg0KKyoqIHRoLnZhZGRcLnZpXHR2WzEtOV1bMC05XT8sXHMqdlswLTld KyxccyotMTYsXHMqdjAudA0KKyoqIHRoLnZzYi52XHR2WzAtOV0rLDBcKFth LXgwLTldK1wpDQorKiogcmV0DQorKi8NCit2b2lkIGYyICh2b2lkICogaW4s IHZvaWQgKm91dCwgdWludDMyX3QgeCkNCit7DQorICAgIHZib29sMzJfdCBt YXNrID0gKih2Ym9vbDMyX3QqKWluOw0KKyAgICBhc20gdm9sYXRpbGUgKCIi Ojo6Im1lbW9yeSIpOw0KKyAgICB2dWludDMybTFfdCB2ID0gX19yaXNjdl90 aF92bGJ1X3ZfdTMybTEgKGluLCA0KTsNCisgICAgdnVpbnQzMm0xX3QgdjIg PSBfX3Jpc2N2X3RoX3ZsYnVfdl91MzJtMV9tIChtYXNrLCBpbiwgNCk7DQor ICAgIHZ1aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xICh2 MiwgLTE2LCA0KTsNCisgICAgdnVpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3Zh ZGRfdnhfdTMybTFfbSAobWFzaywgdjMsIC0xNiwgNCk7DQorICAgIF9fcmlz Y3ZfdGhfdnNiX3ZfdTMybTEgKG91dCwgdjQsIDQpOw0KK30NCisNCisvKg0K KyoqIGYzOg0KKyoqIHRoLnZzZXR2bGlcdFthLXgwLTldKyx6ZXJvLGU4LG1m NCx0YSxtYQ0KKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wp DQorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbXUNCisqKiB0 aC52bGJ1XC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudmxi dS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpLHYwLnQNCisqKiB0aC52YWRk XC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNg0KKyoqIHRoLnZhZGRc LnZpXHR2WzEtOV1bMC05XT8sXHMqdlswLTldKyxccyotMTYsXHMqdjAudA0K KyoqIHRoLnZzYi52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogcmV0 DQorKi8NCit2b2lkIGYzICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMy X3QgeCkNCit7DQorICAgIHZib29sMzJfdCBtYXNrID0gKih2Ym9vbDMyX3Qq KWluOw0KKyAgICBhc20gdm9sYXRpbGUgKCIiOjo6Im1lbW9yeSIpOw0KKyAg ICB2dWludDMybTFfdCB2ID0gX19yaXNjdl90aF92bGJ1X3ZfdTMybTEgKGlu LCA0KTsNCisgICAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsYnVf dl91MzJtMV90dW11IChtYXNrLCB2LCBpbiwgNCk7DQorICAgIHZ1aW50MzJt MV90IHYzID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xICh2MiwgLTE2LCA0KTsN CisgICAgdnVpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTFf dHVtdSAobWFzaywgdjMsIHYyLCAtMTYsIDQpOw0KKyAgICBfX3Jpc2N2X3Ro X3ZzYl92X3UzMm0xIChvdXQsIHY0LCA0KTsNCit9DQpkaWZmIC0tZ2l0IGEv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0 b3IvdmxoLXZzaC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di94dGhlYWR2ZWN0b3IvdmxoLXZzaC5jDQpuZXcgZmlsZSBtb2RlIDEw MDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLjNjOGI1Y2NjMTZiDQotLS0gL2Rl di9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cnZ2L3h0aGVhZHZlY3Rvci92bGgtdnNoLmMNCkBAIC0wLDAgKzEsNjggQEAN CisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAi LW1hcmNoPXJ2MzJnY3h0aGVhZHZlY3RvciAtbWFiaT1pbHAzMmQgLU8zIiB9 ICovDQorLyogeyBkZy1maW5hbCB7IGNoZWNrLWZ1bmN0aW9uLWJvZGllcyAi KioiICIiIH0gfSAqLw0KKyNpbmNsdWRlICJyaXNjdl90aF92ZWN0b3IuaCIN CisNCisvKg0KKyoqIGYxOg0KKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMy LG0xLHR1LG1hDQorKiogdGgudmxoXC52XHR2WzAtOV0rLDBcKFthLXgwLTld K1wpDQorKiogdGgudmxoXC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQor KiogdGgudmFkZFwudmlcdHZbMC05XSssXHMqdlswLTldKyxccyotMTYNCisq KiB0aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNg0KKyoq IHRoLnZzaFwudlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHJldA0K KyovDQordm9pZCBmMSAodm9pZCAqIGluLCB2b2lkICpvdXQsIGludDMyX3Qg eCkNCit7DQorICAgIHZpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmxoX3Zf aTMybTEgKGluLCA0KTsNCisgICAgdmludDMybTFfdCB2MiA9IF9fcmlzY3Zf dGhfdmxoX3ZfaTMybTFfdHUgKHYsIGluLCA0KTsNCisgICAgdmludDMybTFf dCB2MyA9IF9fcmlzY3ZfdmFkZF92eF9pMzJtMSAodjIsIC0xNiwgNCk7DQor ICAgIHZpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhfaTMybTFfdHUg KHYzLCB2MiwgLTE2LCA0KTsNCisgICAgX19yaXNjdl90aF92c2hfdl9pMzJt MSAob3V0LCB2NCwgNCk7DQorfQ0KKw0KKy8qDQorKiogZjI6DQorKiogdGgu dnNldHZsaVx0W2EteDAtOV0rLHplcm8sZTgsbWY0LHRhLG1hDQorKiogdGgu dmxtLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiB0aC52c2V0aXZs aVx0emVybyw0LGUzMixtMSx0YSxtYQ0KKyoqIHRoLnZsaC52XHR2WzAtOV0r LDBcKFthLXgwLTldK1wpLHYwLnQNCisqKiB0aC52YWRkXC52aVx0dlswLTld Kyxccyp2WzAtOV0rLFxzKi0xNg0KKyoqIHRoLnZhZGRcLnZpXHR2WzEtOV1b MC05XT8sXHMqdlswLTldKyxccyotMTYsXHMqdjAudA0KKyoqIHRoLnZzaC52 XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogcmV0DQorKi8NCit2b2lk IGYyICh2b2lkICogaW4sIHZvaWQgKm91dCwgaW50MzJfdCB4KQ0KK3sNCisg ICAgdmJvb2wzMl90IG1hc2sgPSAqKHZib29sMzJfdCopaW47DQorICAgIGFz bSB2b2xhdGlsZSAoIiI6OjoibWVtb3J5Iik7DQorICAgIHZpbnQzMm0xX3Qg diA9IF9fcmlzY3ZfdGhfdmxoX3ZfaTMybTEgKGluLCA0KTsNCisgICAgdmlu dDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmxoX3ZfaTMybTFfbSAobWFzaywg aW4sIDQpOw0KKyAgICB2aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z4 X2kzMm0xICh2MiwgLTE2LCA0KTsNCisgICAgdmludDMybTFfdCB2NCA9IF9f cmlzY3ZfdmFkZF92eF9pMzJtMV9tIChtYXNrLCB2MywgLTE2LCA0KTsNCisg ICAgX19yaXNjdl90aF92c2hfdl9pMzJtMSAob3V0LCB2NCwgNCk7DQorfQ0K Kw0KKy8qDQorKiogZjM6DQorKiogdGgudnNldHZsaVx0W2EteDAtOV0rLHpl cm8sZTgsbWY0LHRhLG1hDQorKiogdGgudmxtLnZcdHZbMC05XSssMFwoW2Et eDAtOV0rXCkNCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxt dQ0KKyoqIHRoLnZsaFwudlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoq IHRoLnZsaC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpLHYwLnQNCisqKiB0 aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNg0KKyoqIHRo LnZhZGRcLnZpXHR2WzEtOV1bMC05XT8sXHMqdlswLTldKyxccyotMTYsXHMq djAudA0KKyoqIHRoLnZzaC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQor KiogcmV0DQorKi8NCit2b2lkIGYzICh2b2lkICogaW4sIHZvaWQgKm91dCwg aW50MzJfdCB4KQ0KK3sNCisgICAgdmJvb2wzMl90IG1hc2sgPSAqKHZib29s MzJfdCopaW47DQorICAgIGFzbSB2b2xhdGlsZSAoIiI6OjoibWVtb3J5Iik7 DQorICAgIHZpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmxoX3ZfaTMybTEg KGluLCA0KTsNCisgICAgdmludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmxo X3ZfaTMybTFfdHVtdSAobWFzaywgdiwgaW4sIDQpOw0KKyAgICB2aW50MzJt MV90IHYzID0gX19yaXNjdl92YWRkX3Z4X2kzMm0xICh2MiwgLTE2LCA0KTsN CisgICAgdmludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF9pMzJtMV90 dW11IChtYXNrLCB2MywgdjIsIC0xNiwgNCk7DQorICAgIF9fcmlzY3ZfdGhf dnNoX3ZfaTMybTEgKG91dCwgdjQsIDQpOw0KK30NCmRpZmYgLS1naXQgYS9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rv ci92bGh1LXZzaC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di94dGhlYWR2ZWN0b3IvdmxodS12c2guYw0KbmV3IGZpbGUgbW9kZSAx MDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi5iN2MwMDQwNGYxOA0KLS0tIC9k ZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di94dGhlYWR2ZWN0b3IvdmxodS12c2guYw0KQEAgLTAsMCArMSw2OCBA QA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRpb25z ICItbWFyY2g9cnYzMmdjeHRoZWFkdmVjdG9yIC1tYWJpPWlscDMyZCAtTzMi IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24tYm9kaWVz ICIqKiIgIiIgfSB9ICovDQorI2luY2x1ZGUgInJpc2N2X3RoX3ZlY3Rvci5o Ig0KKw0KKy8qDQorKiogZjE6DQorKiogdGgudnNldGl2bGlcdHplcm8sNCxl MzIsbTEsdHUsbWENCisqKiB0aC52bGh1XC52XHR2WzAtOV0rLDBcKFthLXgw LTldK1wpDQorKiogdGgudmxodVwudlx0dlswLTldKywwXChbYS14MC05XStc KQ0KKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2 DQorKiogdGgudmFkZFwudmlcdHZbMC05XSssXHMqdlswLTldKyxccyotMTYN CisqKiB0aC52c2hcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiBy ZXQNCisqLw0KK3ZvaWQgZjEgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCB1aW50 MzJfdCB4KQ0KK3sNCisgICAgdnVpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhf dmxodV92X3UzMm0xIChpbiwgNCk7DQorICAgIHZ1aW50MzJtMV90IHYyID0g X19yaXNjdl90aF92bGh1X3ZfdTMybTFfdHUgKHYsIGluLCA0KTsNCisgICAg dnVpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTEgKHYyLCAt MTYsIDQpOw0KKyAgICB2dWludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92 eF91MzJtMV90dSAodjMsIHYyLCAtMTYsIDQpOw0KKyAgICBfX3Jpc2N2X3Ro X3ZzaF92X3UzMm0xIChvdXQsIHY0LCA0KTsNCit9DQorDQorLyoNCisqKiBm MjoNCisqKiB0aC52c2V0dmxpXHRbYS14MC05XSssemVybyxlOCxtZjQsdGEs bWENCisqKiB0aC52bG0udlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoq IHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHRhLG1hDQorKiogdGgudmxo dS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpLHYwLnQNCisqKiB0aC52YWRk XC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNg0KKyoqIHRoLnZhZGRc LnZpXHR2WzEtOV1bMC05XT8sXHMqdlswLTldKyxccyotMTYsXHMqdjAudA0K KyoqIHRoLnZzaC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogcmV0 DQorKi8NCit2b2lkIGYyICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMy X3QgeCkNCit7DQorICAgIHZib29sMzJfdCBtYXNrID0gKih2Ym9vbDMyX3Qq KWluOw0KKyAgICBhc20gdm9sYXRpbGUgKCIiOjo6Im1lbW9yeSIpOw0KKyAg ICB2dWludDMybTFfdCB2ID0gX19yaXNjdl90aF92bGh1X3ZfdTMybTEgKGlu LCA0KTsNCisgICAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsaHVf dl91MzJtMV9tIChtYXNrLCBpbiwgNCk7DQorICAgIHZ1aW50MzJtMV90IHYz ID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xICh2MiwgLTE2LCA0KTsNCisgICAg dnVpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTFfbSAobWFz aywgdjMsIC0xNiwgNCk7DQorICAgIF9fcmlzY3ZfdGhfdnNoX3ZfdTMybTEg KG91dCwgdjQsIDQpOw0KK30NCisNCisvKg0KKyoqIGYzOg0KKyoqIHRoLnZz ZXR2bGlcdFthLXgwLTldKyx6ZXJvLGU4LG1mNCx0YSxtYQ0KKyoqIHRoLnZs bS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudnNldGl2bGlc dHplcm8sNCxlMzIsbTEsdHUsbXUNCisqKiB0aC52bGh1XC52XHR2WzAtOV0r LDBcKFthLXgwLTldK1wpDQorKiogdGgudmxodS52XHR2WzAtOV0rLDBcKFth LXgwLTldK1wpLHYwLnQNCisqKiB0aC52YWRkXC52aVx0dlswLTldKyxccyp2 WzAtOV0rLFxzKi0xNg0KKyoqIHRoLnZhZGRcLnZpXHR2WzEtOV1bMC05XT8s XHMqdlswLTldKyxccyotMTYsXHMqdjAudA0KKyoqIHRoLnZzaC52XHR2WzAt OV0rLDBcKFthLXgwLTldK1wpDQorKiogcmV0DQorKi8NCit2b2lkIGYzICh2 b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMyX3QgeCkNCit7DQorICAgIHZi b29sMzJfdCBtYXNrID0gKih2Ym9vbDMyX3QqKWluOw0KKyAgICBhc20gdm9s YXRpbGUgKCIiOjo6Im1lbW9yeSIpOw0KKyAgICB2dWludDMybTFfdCB2ID0g X19yaXNjdl90aF92bGh1X3ZfdTMybTEgKGluLCA0KTsNCisgICAgdnVpbnQz Mm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsaHVfdl91MzJtMV90dW11IChtYXNr LCB2LCBpbiwgNCk7DQorICAgIHZ1aW50MzJtMV90IHYzID0gX19yaXNjdl92 YWRkX3Z4X3UzMm0xICh2MiwgLTE2LCA0KTsNCisgICAgdnVpbnQzMm0xX3Qg djQgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTFfdHVtdSAobWFzaywgdjMsIHYy LCAtMTYsIDQpOw0KKyAgICBfX3Jpc2N2X3RoX3ZzaF92X3UzMm0xIChvdXQs IHY0LCA0KTsNCit9DQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Ivdmx3LXZzdy5jIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Iv dmx3LXZzdy5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAw MDAwMDAuLjE3YTUzMDEyYWNmDQotLS0gL2Rldi9udWxsDQorKysgYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92 bHctdnN3LmMNCkBAIC0wLDAgKzEsNjggQEANCisvKiB7IGRnLWRvIGNvbXBp bGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2MzJnY3h0aGVh ZHZlY3RvciAtbWFiaT1pbHAzMmQgLU8zIiB9ICovDQorLyogeyBkZy1maW5h bCB7IGNoZWNrLWZ1bmN0aW9uLWJvZGllcyAiKioiICIiIH0gfSAqLw0KKyNp bmNsdWRlICJyaXNjdl90aF92ZWN0b3IuaCINCisNCisvKg0KKyoqIGYxOg0K KyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHR1LG1hDQorKiogdGgu dmx3XC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudmx3XC52 XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudmFkZFwudnhcdHZb MC05XSssXHMqdlswLTldKyxccypbYS14MC05XSsNCisqKiB0aC52YWRkXC52 eFx0dlswLTldKyxccyp2WzAtOV0rLFxzKlthLXgwLTldKw0KKyoqIHRoLnZz d1wudlx0dlswLTldKywwXChbYS14MC05XStcKQ0KKyoqIHJldA0KKyovDQor dm9pZCBmMSAodm9pZCAqIGluLCB2b2lkICpvdXQsIGludDMyX3QgeCkNCit7 DQorICAgIHZpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmx3X3ZfaTMybTEg KGluLCA0KTsNCisgICAgdmludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmx3 X3ZfaTMybTFfdHUgKHYsIGluLCA0KTsNCisgICAgdmludDMybTFfdCB2MyA9 IF9fcmlzY3ZfdmFkZF92eF9pMzJtMSAodjIsIHgsIDQpOw0KKyAgICB2aW50 MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X2kzMm0xX3R1ICh2MywgdjIs IHgsIDQpOw0KKyAgICBfX3Jpc2N2X3RoX3Zzd192X2kzMm0xIChvdXQsIHY0 LCA0KTsNCit9DQorDQorLyoNCisqKiBmMjoNCisqKiB0aC52c2V0dmxpXHRb YS14MC05XSssemVybyxlOCxtZjQsdGEsbWENCisqKiB0aC52bG0udlx0dlsw LTldKywwXChbYS14MC05XStcKQ0KKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQs ZTMyLG0xLHRhLG1hDQorKiogdGgudmx3LnZcdHZbMC05XSssMFwoW2EteDAt OV0rXCksdjAudA0KKyoqIHRoLnZhZGRcLnZ4XHR2WzAtOV0rLFxzKnZbMC05 XSssXHMqW2EteDAtOV0rDQorKiogdGgudmFkZFwudnhcdHZbMS05XVswLTld Pyxccyp2WzAtOV0rLFxzKlthLXgwLTldKyxccyp2MC50DQorKiogdGgudnN3 LnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiByZXQNCisqLw0KK3Zv aWQgZjIgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCBpbnQzMl90IHgpDQorew0K KyAgICB2Ym9vbDMyX3QgbWFzayA9ICoodmJvb2wzMl90KilpbjsNCisgICAg YXNtIHZvbGF0aWxlICgiIjo6OiJtZW1vcnkiKTsNCisgICAgdmludDMybTFf dCB2ID0gX19yaXNjdl90aF92bHdfdl9pMzJtMSAoaW4sIDQpOw0KKyAgICB2 aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bHdfdl9pMzJtMV9tIChtYXNr LCBpbiwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRf dnhfaTMybTEgKHYyLCB4LCA0KTsNCisgICAgdmludDMybTFfdCB2NCA9IF9f cmlzY3ZfdmFkZF92eF9pMzJtMV9tIChtYXNrLCB2MywgeCwgNCk7DQorICAg IF9fcmlzY3ZfdGhfdnN3X3ZfaTMybTEgKG91dCwgdjQsIDQpOw0KK30NCisN CisvKg0KKyoqIGYzOg0KKyoqIHRoLnZzZXR2bGlcdFthLXgwLTldKyx6ZXJv LGU4LG1mNCx0YSxtYQ0KKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgw LTldK1wpDQorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbXUN CisqKiB0aC52bHdcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkNCisqKiB0 aC52bHcudlx0dlswLTldKywwXChbYS14MC05XStcKSx2MC50DQorKiogdGgu dmFkZFwudnhcdHZbMC05XSssXHMqdlswLTldKyxccypbYS14MC05XSsNCisq KiB0aC52YWRkXC52eFx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqW2Et eDAtOV0rLFxzKnYwLnQNCisqKiB0aC52c3cudlx0dlswLTldKywwXChbYS14 MC05XStcKQ0KKyoqIHJldA0KKyovDQordm9pZCBmMyAodm9pZCAqIGluLCB2 b2lkICpvdXQsIGludDMyX3QgeCkNCit7DQorICAgIHZib29sMzJfdCBtYXNr ID0gKih2Ym9vbDMyX3QqKWluOw0KKyAgICBhc20gdm9sYXRpbGUgKCIiOjo6 Im1lbW9yeSIpOw0KKyAgICB2aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3Zs d192X2kzMm0xIChpbiwgNCk7DQorICAgIHZpbnQzMm0xX3QgdjIgPSBfX3Jp c2N2X3RoX3Zsd192X2kzMm0xX3R1bXUgKG1hc2ssIHYsIGluLCA0KTsNCisg ICAgdmludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF9pMzJtMSAodjIs IHgsIDQpOw0KKyAgICB2aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z4 X2kzMm0xX3R1bXUgKG1hc2ssIHYzLCB2MiwgeCwgNCk7DQorICAgIF9fcmlz Y3ZfdGhfdnN3X3ZfaTMybTEgKG91dCwgdjQsIDQpOw0KK30NCmRpZmYgLS1n aXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVh ZHZlY3Rvci92bHd1LXZzdy5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Ivdmx3dS12c3cuYw0KbmV3IGZpbGUg bW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi5iMTg3Y2ZjODUyYg0K LS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Ivdmx3dS12c3cuYw0KQEAgLTAsMCAr MSw2OCBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1v cHRpb25zICItbWFyY2g9cnYzMmdjeHRoZWFkdmVjdG9yIC1tYWJpPWlscDMy ZCAtTzMiIH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24t Ym9kaWVzICIqKiIgIiIgfSB9ICovDQorI2luY2x1ZGUgInJpc2N2X3RoX3Zl Y3Rvci5oIg0KKw0KKy8qDQorKiogZjE6DQorKiogdGgudnNldGl2bGlcdHpl cm8sNCxlMzIsbTEsdHUsbWENCisqKiB0aC52bHd1XC52XHR2WzAtOV0rLDBc KFthLXgwLTldK1wpDQorKiogdGgudmx3dVwudlx0dlswLTldKywwXChbYS14 MC05XStcKQ0KKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSss XHMqLTE2DQorKiogdGgudmFkZFwudmlcdHZbMC05XSssXHMqdlswLTldKyxc cyotMTYNCisqKiB0aC52c3dcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkN CisqKiByZXQNCisqLw0KK3ZvaWQgZjEgKHZvaWQgKiBpbiwgdm9pZCAqb3V0 LCB1aW50MzJfdCB4KQ0KK3sNCisgICAgdnVpbnQzMm0xX3QgdiA9IF9fcmlz Y3ZfdGhfdmx3dV92X3UzMm0xIChpbiwgNCk7DQorICAgIHZ1aW50MzJtMV90 IHYyID0gX19yaXNjdl90aF92bHd1X3ZfdTMybTFfdHUgKHYsIGluLCA0KTsN CisgICAgdnVpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTEg KHYyLCAtMTYsIDQpOw0KKyAgICB2dWludDMybTFfdCB2NCA9IF9fcmlzY3Zf dmFkZF92eF91MzJtMV90dSAodjMsIHYyLCAtMTYsIDQpOw0KKyAgICBfX3Jp c2N2X3RoX3Zzd192X3UzMm0xIChvdXQsIHY0LCA0KTsNCit9DQorDQorLyoN CisqKiBmMjoNCisqKiB0aC52c2V0dmxpXHRbYS14MC05XSssemVybyxlOCxt ZjQsdGEsbWENCisqKiB0aC52bG0udlx0dlswLTldKywwXChbYS14MC05XStc KQ0KKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHRhLG1hDQorKiog dGgudmx3dS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpLHYwLnQNCisqKiB0 aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNg0KKyoqIHRo LnZhZGRcLnZpXHR2WzEtOV1bMC05XT8sXHMqdlswLTldKyxccyotMTYsXHMq djAudA0KKyoqIHRoLnZzdy52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQor KiogcmV0DQorKi8NCit2b2lkIGYyICh2b2lkICogaW4sIHZvaWQgKm91dCwg dWludDMyX3QgeCkNCit7DQorICAgIHZib29sMzJfdCBtYXNrID0gKih2Ym9v bDMyX3QqKWluOw0KKyAgICBhc20gdm9sYXRpbGUgKCIiOjo6Im1lbW9yeSIp Ow0KKyAgICB2dWludDMybTFfdCB2ID0gX19yaXNjdl90aF92bHd1X3ZfdTMy bTEgKGluLCA0KTsNCisgICAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3Ro X3Zsd3Vfdl91MzJtMV9tIChtYXNrLCBpbiwgNCk7DQorICAgIHZ1aW50MzJt MV90IHYzID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xICh2MiwgLTE2LCA0KTsN CisgICAgdnVpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTFf bSAobWFzaywgdjMsIC0xNiwgNCk7DQorICAgIF9fcmlzY3ZfdGhfdnN3X3Zf dTMybTEgKG91dCwgdjQsIDQpOw0KK30NCisNCisvKg0KKyoqIGYzOg0KKyoq IHRoLnZzZXR2bGlcdFthLXgwLTldKyx6ZXJvLGU4LG1mNCx0YSxtYQ0KKyoq IHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudnNl dGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbXUNCisqKiB0aC52bHd1XC52XHR2 WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogdGgudmx3dS52XHR2WzAtOV0r LDBcKFthLXgwLTldK1wpLHYwLnQNCisqKiB0aC52YWRkXC52aVx0dlswLTld Kyxccyp2WzAtOV0rLFxzKi0xNg0KKyoqIHRoLnZhZGRcLnZpXHR2WzEtOV1b MC05XT8sXHMqdlswLTldKyxccyotMTYsXHMqdjAudA0KKyoqIHRoLnZzdy52 XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpDQorKiogcmV0DQorKi8NCit2b2lk IGYzICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMyX3QgeCkNCit7DQor ICAgIHZib29sMzJfdCBtYXNrID0gKih2Ym9vbDMyX3QqKWluOw0KKyAgICBh c20gdm9sYXRpbGUgKCIiOjo6Im1lbW9yeSIpOw0KKyAgICB2dWludDMybTFf dCB2ID0gX19yaXNjdl90aF92bHd1X3ZfdTMybTEgKGluLCA0KTsNCisgICAg dnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3Zsd3Vfdl91MzJtMV90dW11 IChtYXNrLCB2LCBpbiwgNCk7DQorICAgIHZ1aW50MzJtMV90IHYzID0gX19y aXNjdl92YWRkX3Z4X3UzMm0xICh2MiwgLTE2LCA0KTsNCisgICAgdnVpbnQz Mm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTFfdHVtdSAobWFzaywg djMsIHYyLCAtMTYsIDQpOw0KKyAgICBfX3Jpc2N2X3RoX3Zzd192X3UzMm0x IChvdXQsIHY0LCA0KTsNCit9DQotLSANCjIuMTcuMQ0KIA0KIA0K ------=_001_NextPart435221366034_=------