From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbgsg1.qq.com (smtpbgsg1.qq.com [54.254.200.92]) by sourceware.org (Postfix) with ESMTPS id 277073858D28 for ; Fri, 3 Nov 2023 08:18:44 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 277073858D28 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 277073858D28 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=54.254.200.92 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1698999536; cv=none; b=MK2Jj/HcGKpK+UstpqWk4hxoAJbG0dKqaX9nDXcL2wAAVrsAtMebdDMtP+Z6IriKN0Y7Fx+aH+YdxTvvG0B0O/Hb+7mnh1L6RJtBlhtBbj1PaijAHY3y4VD6Jm4S4caQ8F3ZcQsbeAURHVrh3wbdgXXN29x8yTUS1M1Zrf84gAA= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1698999536; c=relaxed/simple; bh=s7aeQxzMORxC/qp+w0SVEi6BAj1yBvI6PxfZc85yqzw=; h=Date:From:To:Subject:Mime-Version:Message-ID; b=PR81SxlhyMgFPWeYu21xGPuL/e5EC2tBwuQkV5PpIkkuHWsc3ucH0cuGjleBq/4cw0HyszveyNTeTDMVerDV9GmzdWfXrpDrVgH+7dBVYkL3am/sLmydXWQ8cdUgtgK1AeovmrTmQILWwikTuiYpma4GNFJ/AV8yMcj4cbyHnX4= ARC-Authentication-Results: i=1; server2.sourceware.org X-QQ-mid: bizesmtp64t1698999519t9rgcoqk Received: from LAPTOP-EPITNQBU ( [113.104.224.227]) by bizesmtp.qq.com (ESMTP) with id ; Fri, 03 Nov 2023 16:18:38 +0800 (CST) X-QQ-SSF: 01400000000000G0V000000A0000000 X-QQ-FEAT: kUim6XnhvqXEN8xaWqXzykjoN0tmImkR00yFZVYmt6ymMQg3g4wszJdgJvKia XSIrGfgIQP/IRHB/mzJO2omxcASw3h7is+2IZsoTr5RV283R+xMAaQgoLMUKacxK17fCfW1 UolhAgU3/TTQc8Lo672iXjW1WLtNXV3Raao5ORW5e0z48UdhXIm05MvDaGf+bhwt5yNiiL5 L95gbWyqagyVPGVuJWkS8plILYMR4qd+CI6r5C6gtJ7kgCNMlsVBQ6NBCx9EHOmmVS8TlXN 4JWQsxiinp+vjAevSU47InkTdHCK82XtfU0Fk7xhsLWZPYY1CcBkmIgl1IVkpxvc51BHkID 62DAPqOVexl8YUJ567SNCMX1syywlftjThiqTyUkXbKoA/w8xPuWjEcvNljRtRGUG7Y81RP +rraA6pDqE8+LRErb1QRk0RqPOxNvSbc X-QQ-GoodBg: 2 X-BIZMAIL-ID: 14216238018863050711 Date: Fri, 3 Nov 2023 16:18:37 +0800 From: "juzhe.zhong@rivai.ai" To: rguenther Cc: gcc-patches , jeffreyalaw , richard.sandiford , "Robin Dapp" Subject: Re: Re: [PATCH V2] OPTABS/IFN: Add mask_len_strided_load/mask_len_strided_store OPTABS/IFN References: <20231031095920.3210489-1-juzhe.zhong@rivai.ai>, , , , <2EC9495F0895B1C1+2023110222294128409312@rivai.ai>, , <00BCCA92EA523E3A+202311031510234830671@rivai.ai>, X-Priority: 3 X-GUID: 9E1A91B3-F78D-43A0-AD08-3CB224F1E663 X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: Content-Type: multipart/alternative; boundary="----=_001_NextPart737553031482_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,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_NextPart737553031482_=---- Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: base64 SGksIFJpY2hpLg0KDQpJcyB0aGlzIGZvbGxvd2luZyByZWFzb25hYmxlID8N Cg0KZGlmZiAtLWdpdCBhL2djYy9kb2MvbWQudGV4aSBiL2djYy9kb2MvbWQu dGV4aQ0KaW5kZXggZmFiMjUxMzEwNWEuLjhkMWNkYWQxNjA3IDEwMDY0NA0K LS0tIGEvZ2NjL2RvYy9tZC50ZXhpDQorKysgYi9nY2MvZG9jL21kLnRleGkN CkBAIC01MDk0LDYgKzUwOTQsMjAgQEAgQml0IEB2YXJ7aX0gb2YgdGhlIG1h c2sgaXMgc2V0IGlmIGVsZW1lbnQgQHZhcntpfSBvZiB0aGUgcmVzdWx0IHNo b3VsZA0KIGJlIGxvYWRlZCBmcm9tIG1lbW9yeSBhbmQgY2xlYXIgaWYgZWxl bWVudCBAdmFye2l9IG9mIHRoZSByZXN1bHQgc2hvdWxkIGJlIHVuZGVmaW5l ZC4NCiBNYXNrIGVsZW1lbnRzIEB2YXJ7aX0gd2l0aCBAdmFye2l9ID4gKG9w ZXJhbmQgNiArIG9wZXJhbmQgNykgYXJlIGlnbm9yZWQuDQoNCitAY2luZGV4 IEBjb2Rle21hc2tfbGVuX3N0cmlkZWRfbG9hZEB2YXJ7bX19IGluc3RydWN0 aW9uIHBhdHRlcm4NCitAaXRlbSBAc2FtcHttYXNrX2xlbl9zdHJpZGVkX2xv YWRAdmFye219fQ0KK0xvYWQgc2V2ZXJhbCBzZXBhcmF0ZSBtZW1vcnkgbG9j YXRpb25zIGludG8gYSBkZXN0aW5hdGlvbiB2ZWN0b3Igb2YgbW9kZSBAdmFy e219Lg0KK09wZXJhbmQgMCBpcyBhIGRlc3RpbmF0aW9uIHZlY3RvciBvZiBt b2RlIEB2YXJ7bX0uDQorT3BlcmFuZCAxIGlzIGEgc2NhbGFyIGJhc2UgYWRk cmVzcyBhbmQgb3BlcmFuZCAyIGlzIGEgc2NhbGFyIHN0cmlkZSBvZiBQbW9k ZS4NCitvcGVyYW5kIDMgaXMgbWFzayBvcGVyYW5kLCBvcGVyYW5kIDQgaXMg bGVuZ3RoIG9wZXJhbmQgYW5kIG9wZXJhbmQgNSBpcyBiaWFzIG9wZXJhbmQu DQorVGhlIGluc3RydWN0aW9uIGNhbiBiZSBzZWVuIGFzIGEgc3BlY2lhbCBj YXNlIG9mIEBjb2Rle21hc2tfbGVuX2dhdGhlcl9sb2FkQHZhcnttfUB2YXJ7 bn19DQord2l0aCBhbiBvZmZzZXQgdmVjdG9yIHRoYXQgaXMgYSBAY29kZXt2 ZWNfc2VyaWVzfSB3aXRoIG9wZXJhbmQgMSBhcyBiYXNlIGFuZCBvcGVyYW5k IDIgYXMgc3RlcC4NCitGb3IgZWFjaCBlbGVtZW50IGluZGV4IGkgbG9hZCBh ZGRyZXNzIGlzIG9wZXJhbmQgMSArIEB2YXJ7aX0gKiBvcGVyYW5kIDIuDQor U2ltaWxhciB0byBtYXNrX2xlbl9sb2FkLCB0aGUgaW5zdHJ1Y3Rpb24gbG9h ZHMgYXQgbW9zdCAob3BlcmFuZCA0ICsgb3BlcmFuZCA1KSBlbGVtZW50cyBm cm9tIG1lbW9yeS4NCitCaXQgQHZhcntpfSBvZiB0aGUgbWFzayAob3BlcmFu ZCAzKSBpcyBzZXQgaWYgZWxlbWVudCBAdmFye2l9IG9mIHRoZSByZXN1bHQg c2hvdWxkDQorYmUgbG9hZGVkIGZyb20gbWVtb3J5IGFuZCBjbGVhciBpZiBl bGVtZW50IEB2YXJ7aX0gb2YgdGhlIHJlc3VsdCBzaG91bGQgYmUgemVyby4N CitNYXNrIGVsZW1lbnRzIEB2YXJ7aX0gd2l0aCBAdmFye2l9ID4gKG9wZXJh bmQgNCArIG9wZXJhbmQgNSkgYXJlIGlnbm9yZWQuDQorDQogQGNpbmRleCBA Y29kZXtzY2F0dGVyX3N0b3JlQHZhcnttfUB2YXJ7bn19IGluc3RydWN0aW9u IHBhdHRlcm4NCiBAaXRlbSBAc2FtcHtzY2F0dGVyX3N0b3JlQHZhcnttfUB2 YXJ7bn19DQogU3RvcmUgYSB2ZWN0b3Igb2YgbW9kZSBAdmFye219IGludG8g c2V2ZXJhbCBkaXN0aW5jdCBtZW1vcnkgbG9jYXRpb25zLg0KQEAgLTUxMzEs NiArNTE0NSwxOSBAQCBhdCBtb3N0IChvcGVyYW5kIDYgKyBvcGVyYW5kIDcp IGVsZW1lbnRzIG9mIChvcGVyYW5kIDQpIHRvIG1lbW9yeS4NCiBCaXQgQHZh cntpfSBvZiB0aGUgbWFzayBpcyBzZXQgaWYgZWxlbWVudCBAdmFye2l9IG9m IChvcGVyYW5kIDQpIHNob3VsZCBiZSBzdG9yZWQuDQogTWFzayBlbGVtZW50 cyBAdmFye2l9IHdpdGggQHZhcntpfSA+IChvcGVyYW5kIDYgKyBvcGVyYW5k IDcpIGFyZSBpZ25vcmVkLg0KDQorQGNpbmRleCBAY29kZXttYXNrX2xlbl9z dHJpZGVkX3N0b3JlQHZhcnttfX0gaW5zdHJ1Y3Rpb24gcGF0dGVybg0KK0Bp dGVtIEBzYW1we21hc2tfbGVuX3N0cmlkZWRfc3RvcmVAdmFye219fQ0KK1N0 b3JlIGEgdmVjdG9yIG9mIG1vZGUgbSBpbnRvIHNldmVyYWwgZGlzdGluY3Qg bWVtb3J5IGxvY2F0aW9ucy4NCitPcGVyYW5kIDAgaXMgYSBzY2FsYXIgYmFz ZSBhZGRyZXNzIGFuZCBvcGVyYW5kIDEgaXMgc2NhbGFyIHN0cmlkZSBvZiBQ bW9kZS4NCitPcGVyYW5kIDIgaXMgdGhlIHZlY3RvciBvZiB2YWx1ZXMgdGhh dCBzaG91bGQgYmUgc3RvcmVkLCB3aGljaCBpcyBvZiBtb2RlIEB2YXJ7bX0u DQorb3BlcmFuZCAzIGlzIG1hc2sgb3BlcmFuZCwgb3BlcmFuZCA0IGlzIGxl bmd0aCBvcGVyYW5kIGFuZCBvcGVyYW5kIDUgaXMgYmlhcyBvcGVyYW5kLg0K K1RoZSBpbnN0cnVjdGlvbiBjYW4gYmUgc2VlbiBhcyBhIHNwZWNpYWwgY2Fz ZSBvZiBAY29kZXttYXNrX2xlbl9zY2F0dGVyX3N0b3JlQHZhcnttfUB2YXJ7 bn19DQord2l0aCBhbiBvZmZzZXQgdmVjdG9yIHRoYXQgaXMgYSBAY29kZXt2 ZWNfc2VyaWVzfSB3aXRoIG9wZXJhbmQgMSBhcyBiYXNlIGFuZCBvcGVyYW5k IDEgYXMgc3RlcC4NCitGb3IgZWFjaCBlbGVtZW50IGluZGV4IGkgc3RvcmUg YWRkcmVzcyBpcyBvcGVyYW5kIDAgKyBAdmFye2l9ICogb3BlcmFuZCAxLg0K K1NpbWlsYXIgdG8gbWFza19sZW5fc3RvcmUsIHRoZSBpbnN0cnVjdGlvbiBz dG9yZXMgYXQgbW9zdCAob3BlcmFuZCA0ICsgb3BlcmFuZCA1KSBlbGVtZW50 cyBvZiBtYXNrIChvcGVyYW5kIDMpIHRvIG1lbW9yeS4NCitCaXQgQHZhcntp fSBvZiB0aGUgbWFzayBpcyBzZXQgaWYgZWxlbWVudCBAdmFye2l9IG9mIChv cGVyYW5kIDMpIHNob3VsZCBiZSBzdG9yZWQuDQorTWFzayBlbGVtZW50cyBA dmFye2l9IHdpdGggQHZhcntpfSA+IChvcGVyYW5kIDQgKyBvcGVyYW5kIDUp IGFyZSBpZ25vcmVkLg0KKw0KIEBjaW5kZXggQGNvZGV7dmVjX3NldEB2YXJ7 bX19IGluc3RydWN0aW9uIHBhdHRlcm4NCiBAaXRlbSBAc2FtcHt2ZWNfc2V0 QHZhcnttfX0NCiBTZXQgZ2l2ZW4gZmllbGQgaW4gdGhlIHZlY3RvciB2YWx1 ZS4gIE9wZXJhbmQgMCBpcyB0aGUgdmVjdG9yIHRvIG1vZGlmeSwNCg0KVGhh bmtzLg0KDQoNCg0KanV6aGUuemhvbmdAcml2YWkuYWkNCiANCkZyb206IFJp Y2hhcmQgQmllbmVyDQpEYXRlOiAyMDIzLTExLTAzIDE1OjQwDQpUbzoganV6 aGUuemhvbmdAcml2YWkuYWkNCkNDOiBnY2MtcGF0Y2hlczsgamVmZnJleWFs YXc7IHJpY2hhcmQuc2FuZGlmb3JkOyBSb2JpbiBEYXBwDQpTdWJqZWN0OiBS ZTogUmU6IFtQQVRDSCBWMl0gT1BUQUJTL0lGTjogQWRkIG1hc2tfbGVuX3N0 cmlkZWRfbG9hZC9tYXNrX2xlbl9zdHJpZGVkX3N0b3JlIE9QVEFCUy9JRk4N Ck9uIEZyaSwgMyBOb3YgMjAyMywganV6aGUuemhvbmdAcml2YWkuYWkgd3Jv dGU6DQogDQo+IEhpLCBSaWNoaS4NCj4gDQo+IFRoZSBmb2xsb3dpbmcgaXMg c3RyaWRlZCBsb2FkL3N0b3JlIGRvYzoNCj4gDQo+IGRpZmYgLS1naXQgYS9n Y2MvZG9jL21kLnRleGkgYi9nY2MvZG9jL21kLnRleGkNCj4gaW5kZXggZmFi MjUxMzEwNWEuLjRmMDgyMWEyOTFkIDEwMDY0NA0KPiAtLS0gYS9nY2MvZG9j L21kLnRleGkNCj4gKysrIGIvZ2NjL2RvYy9tZC50ZXhpDQo+IEBAIC01MDk0 LDYgKzUwOTQsMjIgQEAgQml0IEB2YXJ7aX0gb2YgdGhlIG1hc2sgaXMgc2V0 IGlmIGVsZW1lbnQgQHZhcntpfSBvZiB0aGUgcmVzdWx0IHNob3VsZA0KPiAg YmUgbG9hZGVkIGZyb20gbWVtb3J5IGFuZCBjbGVhciBpZiBlbGVtZW50IEB2 YXJ7aX0gb2YgdGhlIHJlc3VsdCBzaG91bGQgYmUgdW5kZWZpbmVkLg0KPiAg TWFzayBlbGVtZW50cyBAdmFye2l9IHdpdGggQHZhcntpfSA+IChvcGVyYW5k IDYgKyBvcGVyYW5kIDcpIGFyZSBpZ25vcmVkLg0KPiANCj4gK0BjaW5kZXgg QGNvZGV7bWFza19sZW5fc3RyaWRlZF9sb2FkQHZhcnttfX0gaW5zdHJ1Y3Rp b24gcGF0dGVybg0KPiArQGl0ZW0gQHNhbXB7bWFza19sZW5fc3RyaWRlZF9s b2FkQHZhcnttfX0NCj4gK0xvYWQgc2V2ZXJhbCBzZXBhcmF0ZSBtZW1vcnkg bG9jYXRpb25zIGludG8gYSBkZXN0aW5hdGlvbiB2ZWN0b3Igb2YgbW9kZSBA dmFye219Lg0KPiArT3BlcmFuZCAwIGlzIGEgZGVzdGluYXRpb24gdmVjdG9y IG9mIG1vZGUgQHZhcnttfS4NCj4gK09wZXJhbmQgMSBpcyBhIHNjYWxhciBi YXNlIGFkZHJlc3MgYW5kIG9wZXJhbmQgMiBpcyBhIHNjYWxhciBzdHJpZGUg b2YgUG1vZGUuDQo+ICtvcGVyYW5kIDMgaW5kaWNhdGVzIHN0cmlkZSBvcGVy YW5kIGlzIHNpZ25lZCBvciB1bnNpZ25lZCBudW1iZXIgYW5kIG9wZXJhbmQg NCBpcyBtYXNrIG9wZXJhbmQuDQogDQp3ZSBkb24ndCBuZWVkIG9wZXJhbmQg Mw0KIA0KPiArb3BlcmFuZCA1IGlzIGxlbmd0aCBvcGVyYW5kIGFuZCBvcGVy YW5kIDYgaXMgYmlhcyBvcGVyYW5kLg0KPiArVGhlIGluc3RydWN0aW9uIGNh biBiZSBzZWVuIGFzIGEgc3BlY2lhbCBjYXNlIG9mIEBjb2Rle21hc2tfbGVu X2dhdGhlcl9sb2FkQHZhcnttfUB2YXJ7bn19DQo+ICt3aXRoIGFuIG9mZnNl dCB2ZWN0b3IgdGhhdCBpcyBhIEBjb2Rle3ZlY19zZXJpZXN9IHdpdGggb3Bl cmFuZCAxIGFzIGJhc2UgYW5kIG9wZXJhbmQgMiBhcyBzdGVwLg0KPiArRm9y IGVhY2ggZWxlbWVudCBpbmRleCBpIGxvYWQgYWRkcmVzcyBpcyBvcGVyYW5k IDEgKyBAdmFye2l9ICogb3BlcmFuZCAyLg0KPiArb3BlcmFuZCAyIGNhbiBi ZSBuZWdhdGl2ZSBzdHJpZGUgaWYgb3BlcmFuZCAzIGlzIDAuDQo+ICtTaW1p bGFyIHRvIG1hc2tfbGVuX2xvYWQsIHRoZSBpbnN0cnVjdGlvbiBsb2FkcyBh dCBtb3N0IChvcGVyYW5kIDUgKyBvcGVyYW5kIDYpIGVsZW1lbnRzIGZyb20g bWVtb3J5Lg0KPiArQml0IEB2YXJ7aX0gb2YgdGhlIG1hc2sgKG9wZXJhbmQg NCkgaXMgc2V0IGlmIGVsZW1lbnQgQHZhcntpfSBvZiB0aGUgcmVzdWx0IHNo b3VsZA0KIA0KRWxlbWVudCBAdmFye2l9LiAgSSB0aGluayB3ZSBkb24ndCB3 YW50IHRvIGRvY3VtZW50ICd1bmRlZmluZWQnIGJ1dA0KcmF0aGVyIG1hdGNo IG1hc2tfZ2F0aGVyX2xvYWQgYW5kIHNheSB0aGUgcmVzdWx0IHNob3VsZCBi ZSB6ZXJvLg0KIA0KU2ltaWxhciBhZGp1c3RtZW50cyBiZWxvdy4NCiANCj4g K2JlIGxvYWRlZCBmcm9tIG1lbW9yeSBhbmQgY2xlYXIgaWYgZWxlbWVudCBA dmFye2l9IG9mIHRoZSByZXN1bHQgc2hvdWxkIGJlIHVuZGVmaW5lZC4NCj4g K01hc2sgZWxlbWVudHMgQHZhcntpfSB3aXRoIEB2YXJ7aX0gPiAob3BlcmFu ZCA1ICsgb3BlcmFuZCA2KSBhcmUgaWdub3JlZC4NCj4gKw0KPiAgQGNpbmRl eCBAY29kZXtzY2F0dGVyX3N0b3JlQHZhcnttfUB2YXJ7bn19IGluc3RydWN0 aW9uIHBhdHRlcm4NCj4gIEBpdGVtIEBzYW1we3NjYXR0ZXJfc3RvcmVAdmFy e219QHZhcntufX0NCj4gIFN0b3JlIGEgdmVjdG9yIG9mIG1vZGUgQHZhcntt fSBpbnRvIHNldmVyYWwgZGlzdGluY3QgbWVtb3J5IGxvY2F0aW9ucy4NCj4g QEAgLTUxMzEsNiArNTE0NywyMSBAQCBhdCBtb3N0IChvcGVyYW5kIDYgKyBv cGVyYW5kIDcpIGVsZW1lbnRzIG9mIChvcGVyYW5kIDQpIHRvIG1lbW9yeS4N Cj4gIEJpdCBAdmFye2l9IG9mIHRoZSBtYXNrIGlzIHNldCBpZiBlbGVtZW50 IEB2YXJ7aX0gb2YgKG9wZXJhbmQgNCkgc2hvdWxkIGJlIHN0b3JlZC4NCj4g IE1hc2sgZWxlbWVudHMgQHZhcntpfSB3aXRoIEB2YXJ7aX0gPiAob3BlcmFu ZCA2ICsgb3BlcmFuZCA3KSBhcmUgaWdub3JlZC4NCj4gDQo+ICtAY2luZGV4 IEBjb2Rle21hc2tfbGVuX3N0cmlkZWRfc3RvcmVAdmFye219fSBpbnN0cnVj dGlvbiBwYXR0ZXJuDQo+ICtAaXRlbSBAc2FtcHttYXNrX2xlbl9zdHJpZGVk X3N0b3JlQHZhcnttfX0NCj4gK1N0b3JlIGEgdmVjdG9yIG9mIG1vZGUgbSBp bnRvIHNldmVyYWwgZGlzdGluY3QgbWVtb3J5IGxvY2F0aW9ucy4NCj4gK09w ZXJhbmQgMCBpcyBhIHNjYWxhciBiYXNlIGFkZHJlc3MgYW5kIG9wZXJhbmQg MSBpcyBzY2FsYXIgc3RyaWRlIG9mIFBtb2RlLg0KPiArb3BlcmFuZCAyIGlu ZGljYXRlcyBzdHJpZGUgb3BlcmFuZCBpcyBzaWduZWQgb3IgdW5zaWduZWQg bnVtYmVyLg0KPiArT3BlcmFuZCAzIGlzIHRoZSB2ZWN0b3Igb2YgdmFsdWVz IHRoYXQgc2hvdWxkIGJlIHN0b3JlZCwgd2hpY2ggaXMgb2YgbW9kZSBAdmFy e219Lg0KPiArb3BlcmFuZCA0IGlzIG1hc2sgb3BlcmFuZCwgb3BlcmFuZCA1 IGlzIGxlbmd0aCBvcGVyYW5kIGFuZCBvcGVyYW5kIDYgaXMgYmlhcyBvcGVy YW5kLg0KPiArVGhlIGluc3RydWN0aW9uIGNhbiBiZSBzZWVuIGFzIGEgc3Bl Y2lhbCBjYXNlIG9mIEBjb2Rle21hc2tfbGVuX3NjYXR0ZXJfc3RvcmVAdmFy e219QHZhcntufX0NCj4gK3dpdGggYW4gb2Zmc2V0IHZlY3RvciB0aGF0IGlz IGEgQGNvZGV7dmVjX3Nlcmllc30gd2l0aCBvcGVyYW5kIDEgYXMgYmFzZSBh bmQgb3BlcmFuZCAxIGFzIHN0ZXAuDQo+ICtGb3IgZWFjaCBlbGVtZW50IGlu ZGV4IGkgc3RvcmUgYWRkcmVzcyBpcyBvcGVyYW5kIDAgKyBAdmFye2l9ICog b3BlcmFuZCAxLg0KPiArb3BlcmFuZCAxIGNhbiBiZSBuZWdhdGl2ZSBzdHJp ZGUgaWYgb3BlcmFuZCAyIGlzIDAuDQo+ICtTaW1pbGFyIHRvIG1hc2tfbGVu X3N0b3JlLCB0aGUgaW5zdHJ1Y3Rpb24gc3RvcmVzIGF0IG1vc3QgKG9wZXJh bmQgNSArIG9wZXJhbmQgNikgZWxlbWVudHMgb2YgbWFzayAob3BlcmFuZCA0 KSB0byBtZW1vcnkuDQo+ICtCaXQgQHZhcntpfSBvZiB0aGUgbWFzayBpcyBz ZXQgaWYgZWxlbWVudCBAdmFye2l9IG9mIChvcGVyYW5kIDMpIHNob3VsZCBi ZSBzdG9yZWQuDQo+ICtNYXNrIGVsZW1lbnRzIEB2YXJ7aX0gd2l0aCBAdmFy e2l9ID4gKG9wZXJhbmQgNSArIG9wZXJhbmQgNikgYXJlIGlnbm9yZWQuDQo+ ICsNCj4gIEBjaW5kZXggQGNvZGV7dmVjX3NldEB2YXJ7bX19IGluc3RydWN0 aW9uIHBhdHRlcm4NCj4gIEBpdGVtIEBzYW1we3ZlY19zZXRAdmFye219fQ0K PiAgU2V0IGdpdmVuIGZpZWxkIGluIHRoZSB2ZWN0b3IgdmFsdWUuICBPcGVy YW5kIDAgaXMgdGhlIHZlY3RvciB0byBtb2RpZnksDQo+IA0KPiBEb2VzIGl0 IGxvb2sgcmVhc29uYWJsZSA/IFRoYW5rcy4NCj4gDQo+IA0KPiANCj4ganV6 aGUuemhvbmdAcml2YWkuYWkNCj4gIA0KPiBGcm9tOiBSaWNoYXJkIEJpZW5l cg0KPiBEYXRlOiAyMDIzLTExLTAyIDIyOjM0DQo+IFRvOiA/Pz8NCj4gQ0M6 IGdjYy1wYXRjaGVzOyBKZWZmIExhdzsgcmljaGFyZC5zYW5kaWZvcmQ7IHJk YXBwLmdjYw0KPiBTdWJqZWN0OiBSZTogUmU6IFtQQVRDSCBWMl0gT1BUQUJT L0lGTjogQWRkIG1hc2tfbGVuX3N0cmlkZWRfbG9hZC9tYXNrX2xlbl9zdHJp ZGVkX3N0b3JlIE9QVEFCUy9JRk4NCj4gT24gVGh1LCAyIE5vdiAyMDIzLCA/ Pz8gd3JvdGU6DQo+ICANCj4gPiBPay4gU28gZHJvcCAnc2NhbGUnIGFuZCBr ZWVwIHNpZ25lZC91bnNpZ25lZCBhcmd1bWVudCwgaXMgdGhhdCByaWdodD8N Cj4gIA0KPiBJIGRvbid0IHRoaW5rIHdlIG5lZWQgc2lnbmVkL3Vuc2lnbmVk LiAgUlRMIGV4cGFuc2lvbiBoYXMgdGhlIHNpZ25lZG5lc3MNCj4gb2YgdGhl IG9mZnNldCBhcmd1bWVudCB0aGVyZSBhbmQgY2FuIGp1c3QgZXh0ZW5kIHRv IHRoZSBhcHByb3ByaWF0ZSBtb2RlDQo+IHRvIG9mZnNldCBhIHBvaW50ZXIu DQo+ICANCj4gPiBBbmQgSSB3b25kZXIgSSBzaG91bGQgY3JlYXRlIHRoZSBz dHJpZGVfdHlwZSB1c2luZyBzaXplX3R5cGVfbm9kZSBvciBwdHJkaWZmX3R5 cGVfbm9kZSA/DQo+ID4gV2hpY2ggaXMgcHJlZmVycmFibGUgPw0KPiAgDQo+ ICdzaXpldHlwZScgLSB0aGF0J3MgdGhlIHR5cGUgd2UgcmVxdWlyZSB0byBi ZSB1c2VkIGZvciANCj4gdGhlIFBPSU5URVJfUExVU19FWFBSIG9mZnNldCBv cGVyYW5kLg0KPiAgDQo+ICANCj4gPiBUaGFua3MuDQo+ID4gDQo+ID4gDQo+ ID4gDQo+ID4ganV6aGUuemhvbmdAcml2YWkuYWkNCj4gPiAgDQo+ID4gRnJv bTogUmljaGFyZCBCaWVuZXINCj4gPiBEYXRlOiAyMDIzLTExLTAyIDIyOjI3 DQo+ID4gVG86ID8/Pw0KPiA+IENDOiBnY2MtcGF0Y2hlczsgSmVmZiBMYXc7 IHJpY2hhcmQuc2FuZGlmb3JkOyByZGFwcC5nY2MNCj4gPiBTdWJqZWN0OiBS ZTogUmU6IFtQQVRDSCBWMl0gT1BUQUJTL0lGTjogQWRkIG1hc2tfbGVuX3N0 cmlkZWRfbG9hZC9tYXNrX2xlbl9zdHJpZGVkX3N0b3JlIE9QVEFCUy9JRk4N Cj4gPiBPbiBUaHUsIDIgTm92IDIwMjMsID8/PyB3cm90ZToNCj4gPiAgDQo+ ID4gPiBIaSwgUmljaGkuDQo+ID4gPiANCj4gPiA+ID4+IERvIHdlIHJlYWxs eSBuZWVkIHRvIGhhdmUgdHdvIG1vZGVzIGZvciB0aGUgb3B0YWIgdGhvdWdo IG9yIGNvdWxkIHdlDQo+ID4gPiA+PiBzaW1wbHkgcmVxdWlyZSB0aGUgdGFy Z2V0IHRvIHN1cHBvcnQgYXJiaXRyYXJ5IG9mZnNldCBtb2RlcyAoZ2l2ZSBp dA0KPiA+ID4gPj4gaXMgaW1wbGljaXRseSBjb25zdHJhaW5lZCB0byBwdHJf bW9kZSBmb3IgdGhlIGJhc2UgYWxyZWFkeSk/ICBPcg0KPiA+ID4gPj4gcHJv cGVybHkgZXh0ZW5kL3RydW5jYXRlIHRoZSBvZmZzZXQgYXQgZXhwYW5zaW9u IHRpbWUsIHNheSB0byBwdHJfbW9kZQ0KPiA+ID4gPj4gb3IgdG8gdGhlIG1v ZGUgb2Ygc2l6ZXR5cGUuDQo+ID4gPiANCj4gPiA+IEZvciBSVlYsIGl0J3Mg b2sgYnkgZGVmYXVsdCBzZXQgc3RyaWRlIHR5cGUgYXMgcHRyX21vZGUvc2l6 ZV90eXBlIGJ5IGRlZmF1bHQuDQo+ID4gPiBJcyBpdCBvayB0aGF0IEkgZGVm aW5lIHN0cmlkZWQgbG9hZC9zdG9yZSBhcyBzaW5nbGUgbW9kZSBvcHRhYiBh bmQgZGVmYXVsdCBQbW9kZSBhcyBzdHJpZGUgb3BlcmFuZD8NCj4gPiA+IEhv dyBhYm91dCBzY2FsZSBhbmQgc2lnbmVkL3Vuc2lnbmVkIG9wZXJhbmQgPw0K PiA+ID4gSXQgc2VlbXMgc2NhbGUgb3BlcmFuZCBjYW4gYmUgcmVtb3ZlZCA/ IFNpbmNlIHdlIGNhbiBwYXNzIERSX1NURVAgZGlyZWN0bHkgdG8gdGhlIHN0 cmlkZSBhcmd1bWVudHMuDQo+ID4gPiBCdXQgSSB0aGluayB3ZSBjYW4ndCBy ZW1vdmUgc2lnbmVkL3Vuc2lnbmVkIG9wZXJhbmQgc2luY2UgZm9yIHN0cmlk ZWQgbW9kZSA9IFNJIG1vZGUsIHRoZSB1bnNpZ25lZA0KPiA+ID4gbWF4aW11 bSBzdHJpZGUgPSAyXjMxIHdoZXJhcyBzaWduZWQgaXMgMiBeIDMwLg0KPiA+ ICANCj4gPiBPbiB0aGUgR0lNUExFIHNpZGUgSSB0aGluayB3ZSB3YW50IHRv IGhhdmUgYSBzaXpldHlwZSBvcGVyYW5kIGFuZA0KPiA+IGluZGVlZCBkcm9w ICdzY2FsZScsIHRoZSBzaXpldHlwZSBvcGVyYW5kIHNob3VsZCBiZSByZWFk aWx5IGF2YWlsYWJsZS4NCj4gPiAgDQo+ID4gPiANCj4gPiA+IA0KPiA+ID4g DQo+ID4gPiBqdXpoZS56aG9uZ0ByaXZhaS5haQ0KPiA+ID4gIA0KPiA+ID4g RnJvbTogUmljaGFyZCBCaWVuZXINCj4gPiA+IERhdGU6IDIwMjMtMTEtMDIg MjE6NTINCj4gPiA+IFRvOiBKdXpoZS1aaG9uZw0KPiA+ID4gQ0M6IGdjYy1w YXRjaGVzOyBqZWZmcmV5YWxhdzsgcmljaGFyZC5zYW5kaWZvcmQ7IHJkYXBw LmdjYw0KPiA+ID4gU3ViamVjdDogUmU6IFtQQVRDSCBWMl0gT1BUQUJTL0lG TjogQWRkIG1hc2tfbGVuX3N0cmlkZWRfbG9hZC9tYXNrX2xlbl9zdHJpZGVk X3N0b3JlIE9QVEFCUy9JRk4NCj4gPiA+IE9uIFR1ZSwgMzEgT2N0IDIwMjMs IEp1emhlLVpob25nIHdyb3RlOg0KPiA+ID4gIA0KPiA+ID4gPiBBcyBwcmV2 aW91cyBSaWNoYXJkJ3Mgc3VnZ2VzdGVkLCB3ZSBzaG91bGQgc3VwcG9ydCBz dHJpZGVkIGxvYWQvc3RvcmUgaW4NCj4gPiA+ID4gbG9vcCB2ZWN0b3JpemVy IGluc3RlYWQgaGFja2luZyBSSVNDLVYgYmFja2VuZC4NCj4gPiA+ID4gDQo+ ID4gPiA+IFRoaXMgcGF0Y2ggYWRkcyBNQVNLX0xFTl9TVFJJREVEIExPQUQv U1RPUkUgT1BUQUJTL0lGTi4NCj4gPiA+ID4gDQo+ID4gPiA+IFRoZSBHSU1Q TEUgSVIgaXMgc2FtZSBhcyBtYXNrX2xlbl9nYXRoZXJfbG9hZC9tYXNrX2xl bl9zY2F0dGVyX3N0b3JlIGJ1dCB3aXRoDQo+ID4gPiA+IGNoYW5naW5nIHZl Y3RvciBvZmZzZXQgaW50byBzY2FsYXIgc3RyaWRlLg0KPiA+ID4gIA0KPiA+ ID4gSSBzZWUgdGhhdCBpdCBmb2xsb3dzIGdhdGhlci9zY2F0dGVyLiAgSSds bCBub3RlIHRoYXQgd2hlbiBpbnRyb2R1Y2luZw0KPiA+ID4gdGhvc2Ugd2Ug ZmFpbGVkIHRvIGFkZCBhIHNwZWNpZmllciBmb3IgVEJBQSBhbmQgYWxpZ25t ZW50IGluZm8gZm9yIHRoZQ0KPiA+ID4gZGF0YSBhY2Nlc3MuICBUaGF0IG1l YW5zIHdlIGhhdmUgdG8gdXNlIGFsaWFzLXNldCB6ZXJvIGZvciB0aGUgYWNj ZXNzZXMNCj4gPiA+IChJIHNlZSBleGlzdGluZyB0YXJnZXRzIHVzZSBVTlNQ RUNzIHdpdGggc29tZSBub3QgZWxhYm9yYXRlIE1FTSBhbnl3YXksDQo+ID4g PiBidXQgVEJBQSBpbmZvIG1pZ2h0IGhhdmUgYmVlbiB0aGUgImVhc3kiIGFu ZCBvYnZpb3VzIHByb3BlcnR5IHRvIA0KPiA+ID4gcHJlc2VydmUpLiAgRm9y IGFsaWdubWVudCB3ZSBlaXRoZXIgaGF2ZSB0byBhc3N1bWUgdW5hbGlnbmVk IG9yIHJlamVjdA0KPiA+ID4gdmVjdG9yaXphdGlvbiBvZiBhY2Nlc3NlcyB0 aGF0IGRvIG5vdCBoYXZlIHRoZWlyIG9yaWdpbmFsIHNjYWxhciBhY2Nlc3Nl cw0KPiA+ID4gbmF0dXJhbGx5IGFsaWduZWQgKGFsaWduZWQgYWNjb3JkaW5n IHRvIHRoZWlyIG1vZGUpLiAgV2UgZG9uJ3Qgc2VlbQ0KPiA+ID4gdG8gY2hl Y2sgdGhhdCB0aG91Z2guDQo+ID4gPiAgDQo+ID4gPiBJdCBtaWdodCBiZSBm aW5lIHRvIGdvIGZvcndhcmQgd2l0aCB0aGlzIHNpbmNlIGdhdGhlci9zY2F0 dGVyIGFyZSBicm9rZW4NCj4gPiA+IGluIGEgc2ltaWxhciB3YXkuDQo+ID4g PiAgDQo+ID4gPiBEbyB3ZSByZWFsbHkgbmVlZCB0byBoYXZlIHR3byBtb2Rl cyBmb3IgdGhlIG9wdGFiIHRob3VnaCBvciBjb3VsZCB3ZQ0KPiA+ID4gc2lt cGx5IHJlcXVpcmUgdGhlIHRhcmdldCB0byBzdXBwb3J0IGFyYml0cmFyeSBv ZmZzZXQgbW9kZXMgKGdpdmUgaXQNCj4gPiA+IGlzIGltcGxpY2l0bHkgY29u c3RyYWluZWQgdG8gcHRyX21vZGUgZm9yIHRoZSBiYXNlIGFscmVhZHkpPyAg T3INCj4gPiA+IHByb3Blcmx5IGV4dGVuZC90cnVuY2F0ZSB0aGUgb2Zmc2V0 IGF0IGV4cGFuc2lvbiB0aW1lLCBzYXkgdG8gcHRyX21vZGUNCj4gPiA+IG9y IHRvIHRoZSBtb2RlIG9mIHNpemV0eXBlLg0KPiA+ID4gIA0KPiA+ID4gVGhh bmtzLA0KPiA+ID4gUmljaGFyZC4NCj4gPiA+ID4gV2UgZG9uJ3QgaGF2ZSBz dHJpZGVkX2xvYWQvc3RyaWRlZF9zdG9yZSBhbmQgbWFza19zdHJpZGVkX2xv YWQvbWFza19zdHJpZGVkX3N0b3JlIHNpbmNlDQo+ID4gPiA+IGl0J3QgdW5s aWtlbHkgUlZWIHdpbGwgaGF2ZSBzdWNoIG9wdGFicyBhbmQgd2UgY2FuJ3Qg YWRkIHRoZSBwYXR0ZXJucyB0aGF0IHdlIGNhbid0IHRlc3QgdGhlbS4NCj4g PiA+ID4NCj4gPiA+ID4gDQo+ID4gPiA+IGdjYy9DaGFuZ2VMb2c6DQo+ID4g PiA+IA0KPiA+ID4gPiAqIGRvYy9tZC50ZXhpOiBBZGQgbWFza19sZW5fc3Ry aWRlZF9sb2FkL21hc2tfbGVuX3N0cmlkZWRfc3RvcmUuDQo+ID4gPiA+ICog aW50ZXJuYWwtZm4uY2MgKGludGVybmFsX2xvYWRfZm5fcCk6IERpdHRvLg0K PiA+ID4gPiAoaW50ZXJuYWxfc3RyaWRlZF9mbl9wKTogRGl0dG8uDQo+ID4g PiA+IChpbnRlcm5hbF9mbl9sZW5faW5kZXgpOiBEaXR0by4NCj4gPiA+ID4g KGludGVybmFsX2ZuX21hc2tfaW5kZXgpOiBEaXR0by4NCj4gPiA+ID4gKGlu dGVybmFsX2ZuX3N0b3JlZF92YWx1ZV9pbmRleCk6IERpdHRvLg0KPiA+ID4g PiAoaW50ZXJuYWxfc3RyaWRlZF9mbl9zdXBwb3J0ZWRfcCk6IERpdHRvLg0K PiA+ID4gPiAqIGludGVybmFsLWZuLmRlZiAoTUFTS19MRU5fU1RSSURFRF9M T0FEKTogRGl0dG8uDQo+ID4gPiA+IChNQVNLX0xFTl9TVFJJREVEX1NUT1JF KTogRGl0dG8uDQo+ID4gPiA+ICogaW50ZXJuYWwtZm4uaCAoaW50ZXJuYWxf c3RyaWRlZF9mbl9wKTogRGl0dG8uDQo+ID4gPiA+IChpbnRlcm5hbF9zdHJp ZGVkX2ZuX3N1cHBvcnRlZF9wKTogRGl0dG8uDQo+ID4gPiA+ICogb3B0YWJz LmRlZiAoT1BUQUJfQ0QpOiBEaXR0by4NCj4gPiA+ID4gDQo+ID4gPiA+IC0t LQ0KPiA+ID4gPiAgZ2NjL2RvYy9tZC50ZXhpICAgICB8IDUxICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiA+ID4g PiAgZ2NjL2ludGVybmFsLWZuLmNjICB8IDQ0ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrDQo+ID4gPiA+ICBnY2MvaW50ZXJuYWwt Zm4uZGVmIHwgIDQgKysrKw0KPiA+ID4gPiAgZ2NjL2ludGVybmFsLWZuLmgg ICB8ICAyICsrDQo+ID4gPiA+ICBnY2Mvb3B0YWJzLmRlZiAgICAgIHwgIDIg KysNCj4gPiA+ID4gIDUgZmlsZXMgY2hhbmdlZCwgMTAzIGluc2VydGlvbnMo KykNCj4gPiA+ID4gDQo+ID4gPiA+IGRpZmYgLS1naXQgYS9nY2MvZG9jL21k LnRleGkgYi9nY2MvZG9jL21kLnRleGkNCj4gPiA+ID4gaW5kZXggZmFiMjUx MzEwNWEuLjViYWM3MTNhMGRkIDEwMDY0NA0KPiA+ID4gPiAtLS0gYS9nY2Mv ZG9jL21kLnRleGkNCj4gPiA+ID4gKysrIGIvZ2NjL2RvYy9tZC50ZXhpDQo+ ID4gPiA+IEBAIC01MDk0LDYgKzUwOTQsMzIgQEAgQml0IEB2YXJ7aX0gb2Yg dGhlIG1hc2sgaXMgc2V0IGlmIGVsZW1lbnQgQHZhcntpfSBvZiB0aGUgcmVz dWx0IHNob3VsZA0KPiA+ID4gPiAgYmUgbG9hZGVkIGZyb20gbWVtb3J5IGFu ZCBjbGVhciBpZiBlbGVtZW50IEB2YXJ7aX0gb2YgdGhlIHJlc3VsdCBzaG91 bGQgYmUgdW5kZWZpbmVkLg0KPiA+ID4gPiAgTWFzayBlbGVtZW50cyBAdmFy e2l9IHdpdGggQHZhcntpfSA+IChvcGVyYW5kIDYgKyBvcGVyYW5kIDcpIGFy ZSBpZ25vcmVkLg0KPiA+ID4gPiAgDQo+ID4gPiA+ICtAY2luZGV4IEBjb2Rl e21hc2tfbGVuX3N0cmlkZWRfbG9hZEB2YXJ7bX1AdmFye259fSBpbnN0cnVj dGlvbiBwYXR0ZXJuDQo+ID4gPiA+ICtAaXRlbSBAc2FtcHttYXNrX2xlbl9z dHJpZGVkX2xvYWRAdmFye219QHZhcntufX0NCj4gPiA+ID4gK0xvYWQgc2V2 ZXJhbCBzZXBhcmF0ZSBtZW1vcnkgbG9jYXRpb25zIGludG8gYSBkZXN0aW5h dGlvbiB2ZWN0b3Igb2YgbW9kZSBAdmFye219Lg0KPiA+ID4gPiArT3BlcmFu ZCAwIGlzIGEgZGVzdGluYXRpb24gdmVjdG9yIG9mIG1vZGUgQHZhcnttfS4N Cj4gPiA+ID4gK09wZXJhbmQgMSBpcyBhIHNjYWxhciBiYXNlIGFkZHJlc3Mg YW5kIG9wZXJhbmQgMiBpcyBhIHNjYWxhciBzdHJpZGUgb2YgbW9kZSBAdmFy e259Lg0KPiA+ID4gPiArVGhlIGluc3RydWN0aW9uIGNhbiBiZSBzZWVuIGFz IGEgc3BlY2lhbCBjYXNlIG9mIEBjb2Rle21hc2tfbGVuX2dhdGhlcl9sb2Fk QHZhcnttfUB2YXJ7bn19DQo+ID4gPiA+ICt3aXRoIGFuIG9mZnNldCB2ZWN0 b3IgdGhhdCBpcyBhIEBjb2Rle3ZlY19zZXJpZXN9IHdpdGggb3BlcmFuZCAx IGFzIGJhc2UgYW5kIG9wZXJhbmQgMiBhcyBzdGVwLg0KPiA+ID4gPiArRm9y IGVhY2ggZWxlbWVudCBpbmRleCBpOg0KPiA+ID4gPiArDQo+ID4gPiA+ICtA aXRlbWl6ZSBAYnVsbGV0DQo+ID4gPiA+ICtAaXRlbQ0KPiA+ID4gPiArZXh0 ZW5kIHRoZSBzdHJpZGUgdG8gYWRkcmVzcyB3aWR0aCwgdXNpbmcgemVybw0K PiA+ID4gPiArZXh0ZW5zaW9uIGlmIG9wZXJhbmQgMyBpcyAxIGFuZCBzaWdu IGV4dGVuc2lvbiBpZiBvcGVyYW5kIDMgaXMgemVybzsNCj4gPiA+ID4gK0Bp dGVtDQo+ID4gPiA+ICttdWx0aXBseSB0aGUgZXh0ZW5kZWQgc3RyaWRlIGJ5 IG9wZXJhbmQgNDsNCj4gPiA+ID4gK0BpdGVtDQo+ID4gPiA+ICthZGQgdGhl IHJlc3VsdCB0byB0aGUgYmFzZTsgYW5kDQo+ID4gPiA+ICtAaXRlbQ0KPiA+ ID4gPiArbG9hZCB0aGUgdmFsdWUgYXQgdGhhdCBhZGRyZXNzIChvcGVyYW5k IDEgKyBAdmFye2l9ICogbXVsdGlwbGllZCBhbmQgZXh0ZW5kZWQgc3RyaWRl KSBpbnRvIGVsZW1lbnQgQHZhcntpfSBvZiBvcGVyYW5kIDAuDQo+ID4gPiA+ ICtAZW5kIGl0ZW1pemUNCj4gPiA+ID4gKw0KPiA+ID4gPiArU2ltaWxhciB0 byBtYXNrX2xlbl9sb2FkLCB0aGUgaW5zdHJ1Y3Rpb24gbG9hZHMgYXQgbW9z dCAob3BlcmFuZCA2ICsgb3BlcmFuZCA3KSBlbGVtZW50cyBmcm9tIG1lbW9y eS4NCj4gPiA+ID4gK0JpdCBAdmFye2l9IG9mIHRoZSBtYXNrIGlzIHNldCBp ZiBlbGVtZW50IEB2YXJ7aX0gb2YgdGhlIHJlc3VsdCBzaG91bGQNCj4gPiA+ ID4gK2JlIGxvYWRlZCBmcm9tIG1lbW9yeSBhbmQgY2xlYXIgaWYgZWxlbWVu dCBAdmFye2l9IG9mIHRoZSByZXN1bHQgc2hvdWxkIGJlIHVuZGVmaW5lZC4N Cj4gPiA+ID4gK01hc2sgZWxlbWVudHMgQHZhcntpfSB3aXRoIEB2YXJ7aX0g PiAob3BlcmFuZCA2ICsgb3BlcmFuZCA3KSBhcmUgaWdub3JlZC4NCj4gPiA+ ID4gKw0KPiA+ID4gPiAgQGNpbmRleCBAY29kZXtzY2F0dGVyX3N0b3JlQHZh cnttfUB2YXJ7bn19IGluc3RydWN0aW9uIHBhdHRlcm4NCj4gPiA+ID4gIEBp dGVtIEBzYW1we3NjYXR0ZXJfc3RvcmVAdmFye219QHZhcntufX0NCj4gPiA+ ID4gIFN0b3JlIGEgdmVjdG9yIG9mIG1vZGUgQHZhcnttfSBpbnRvIHNldmVy YWwgZGlzdGluY3QgbWVtb3J5IGxvY2F0aW9ucy4NCj4gPiA+ID4gQEAgLTUx MzEsNiArNTE1NywzMSBAQCBhdCBtb3N0IChvcGVyYW5kIDYgKyBvcGVyYW5k IDcpIGVsZW1lbnRzIG9mIChvcGVyYW5kIDQpIHRvIG1lbW9yeS4NCj4gPiA+ ID4gIEJpdCBAdmFye2l9IG9mIHRoZSBtYXNrIGlzIHNldCBpZiBlbGVtZW50 IEB2YXJ7aX0gb2YgKG9wZXJhbmQgNCkgc2hvdWxkIGJlIHN0b3JlZC4NCj4g PiA+ID4gIE1hc2sgZWxlbWVudHMgQHZhcntpfSB3aXRoIEB2YXJ7aX0gPiAo b3BlcmFuZCA2ICsgb3BlcmFuZCA3KSBhcmUgaWdub3JlZC4NCj4gPiA+ID4g IA0KPiA+ID4gPiArQGNpbmRleCBAY29kZXttYXNrX2xlbl9zdHJpZGVkX3N0 b3JlQHZhcnttfUB2YXJ7bn19IGluc3RydWN0aW9uIHBhdHRlcm4NCj4gPiA+ ID4gK0BpdGVtIEBzYW1we21hc2tfbGVuX3N0cmlkZWRfc3RvcmVAdmFye219 QHZhcntufX0NCj4gPiA+ID4gK1N0b3JlIGEgdmVjdG9yIG9mIG1vZGUgbSBp bnRvIHNldmVyYWwgZGlzdGluY3QgbWVtb3J5IGxvY2F0aW9ucy4NCj4gPiA+ ID4gK09wZXJhbmQgMCBpcyBhIHNjYWxhciBiYXNlIGFkZHJlc3MgYW5kIG9w ZXJhbmQgMSBpcyBzY2FsYXIgc3RyaWRlIG9mIG1vZGUgQHZhcntufS4NCj4g PiA+ID4gK09wZXJhbmQgMiBpcyB0aGUgdmVjdG9yIG9mIHZhbHVlcyB0aGF0 IHNob3VsZCBiZSBzdG9yZWQsIHdoaWNoIGlzIG9mIG1vZGUgQHZhcnttfS4N Cj4gPiA+ID4gK1RoZSBpbnN0cnVjdGlvbiBjYW4gYmUgc2VlbiBhcyBhIHNw ZWNpYWwgY2FzZSBvZiBAY29kZXttYXNrX2xlbl9zY2F0dGVyX3N0b3JlQHZh cnttfUB2YXJ7bn19DQo+ID4gPiA+ICt3aXRoIGFuIG9mZnNldCB2ZWN0b3Ig dGhhdCBpcyBhIEBjb2Rle3ZlY19zZXJpZXN9IHdpdGggb3BlcmFuZCAxIGFz IGJhc2UgYW5kIG9wZXJhbmQgMiBhcyBzdGVwLg0KPiA+ID4gPiArRm9yIGVh Y2ggZWxlbWVudCBpbmRleCBpOg0KPiA+ID4gPiArDQo+ID4gPiA+ICtAaXRl bWl6ZSBAYnVsbGV0DQo+ID4gPiA+ICtAaXRlbQ0KPiA+ID4gPiArZXh0ZW5k IHRoZSBzdHJpZGUgdG8gYWRkcmVzcyB3aWR0aCwgdXNpbmcgemVybw0KPiA+ ID4gPiArZXh0ZW5zaW9uIGlmIG9wZXJhbmQgMiBpcyAxIGFuZCBzaWduIGV4 dGVuc2lvbiBpZiBvcGVyYW5kIDIgaXMgemVybzsNCj4gPiA+ID4gK0BpdGVt DQo+ID4gPiA+ICttdWx0aXBseSB0aGUgZXh0ZW5kZWQgc3RyaWRlIGJ5IG9w ZXJhbmQgMzsNCj4gPiA+ID4gK0BpdGVtDQo+ID4gPiA+ICthZGQgdGhlIHJl c3VsdCB0byB0aGUgYmFzZTsgYW5kDQo+ID4gPiA+ICtAaXRlbQ0KPiA+ID4g PiArc3RvcmUgZWxlbWVudCBAdmFye2l9IG9mIG9wZXJhbmQgNCB0byB0aGF0 IGFkZHJlc3MgKG9wZXJhbmQgMSArIEB2YXJ7aX0gKiBtdWx0aXBsaWVkIGFu ZCBleHRlbmRlZCBzdHJpZGUpLg0KPiA+ID4gPiArQGVuZCBpdGVtaXplDQo+ ID4gPiA+ICsNCj4gPiA+ID4gK1NpbWlsYXIgdG8gbWFza19sZW5fc3RvcmUs IHRoZSBpbnN0cnVjdGlvbiBzdG9yZXMgYXQgbW9zdCAob3BlcmFuZCA2ICsg b3BlcmFuZCA3KSBlbGVtZW50cyBvZiAob3BlcmFuZCA0KSB0byBtZW1vcnku DQo+ID4gPiA+ICtCaXQgQHZhcntpfSBvZiB0aGUgbWFzayBpcyBzZXQgaWYg ZWxlbWVudCBAdmFye2l9IG9mIChvcGVyYW5kIDQpIHNob3VsZCBiZSBzdG9y ZWQuDQo+ID4gPiA+ICtNYXNrIGVsZW1lbnRzIEB2YXJ7aX0gd2l0aCBAdmFy e2l9ID4gKG9wZXJhbmQgNiArIG9wZXJhbmQgNykgYXJlIGlnbm9yZWQuDQo+ ID4gPiA+ICsNCj4gPiA+ID4gIEBjaW5kZXggQGNvZGV7dmVjX3NldEB2YXJ7 bX19IGluc3RydWN0aW9uIHBhdHRlcm4NCj4gPiA+ID4gIEBpdGVtIEBzYW1w e3ZlY19zZXRAdmFye219fQ0KPiA+ID4gPiAgU2V0IGdpdmVuIGZpZWxkIGlu IHRoZSB2ZWN0b3IgdmFsdWUuICBPcGVyYW5kIDAgaXMgdGhlIHZlY3RvciB0 byBtb2RpZnksDQo+ID4gPiA+IGRpZmYgLS1naXQgYS9nY2MvaW50ZXJuYWwt Zm4uY2MgYi9nY2MvaW50ZXJuYWwtZm4uY2MNCj4gPiA+ID4gaW5kZXggZTc0 NTFiOTYzNTMuLmY3Zjg1YWE3ZGRlIDEwMDY0NA0KPiA+ID4gPiAtLS0gYS9n Y2MvaW50ZXJuYWwtZm4uY2MNCj4gPiA+ID4gKysrIGIvZ2NjL2ludGVybmFs LWZuLmNjDQo+ID4gPiA+IEBAIC00NTk2LDYgKzQ1OTYsNyBAQCBpbnRlcm5h bF9sb2FkX2ZuX3AgKGludGVybmFsX2ZuIGZuKQ0KPiA+ID4gPiAgICAgIGNh c2UgSUZOX0dBVEhFUl9MT0FEOg0KPiA+ID4gPiAgICAgIGNhc2UgSUZOX01B U0tfR0FUSEVSX0xPQUQ6DQo+ID4gPiA+ICAgICAgY2FzZSBJRk5fTUFTS19M RU5fR0FUSEVSX0xPQUQ6DQo+ID4gPiA+ICsgICAgY2FzZSBJRk5fTUFTS19M RU5fU1RSSURFRF9MT0FEOg0KPiA+ID4gPiAgICAgIGNhc2UgSUZOX0xFTl9M T0FEOg0KPiA+ID4gPiAgICAgIGNhc2UgSUZOX01BU0tfTEVOX0xPQUQ6DQo+ ID4gPiA+ICAgICAgICByZXR1cm4gdHJ1ZTsNCj4gPiA+ID4gQEAgLTQ2NDgs NiArNDY0OSwyMiBAQCBpbnRlcm5hbF9nYXRoZXJfc2NhdHRlcl9mbl9wIChp bnRlcm5hbF9mbiBmbikNCj4gPiA+ID4gICAgICB9DQo+ID4gPiA+ICB9DQo+ ID4gPiA+ICANCj4gPiA+ID4gKy8qIFJldHVybiB0cnVlIGlmIElGTiBpcyBz b21lIGZvcm0gb2Ygc3RyaWRlZCBsb2FkIG9yIHN0cmlkZWQgc3RvcmUuICAq Lw0KPiA+ID4gPiArDQo+ID4gPiA+ICtib29sDQo+ID4gPiA+ICtpbnRlcm5h bF9zdHJpZGVkX2ZuX3AgKGludGVybmFsX2ZuIGZuKQ0KPiA+ID4gPiArew0K PiA+ID4gPiArICBzd2l0Y2ggKGZuKQ0KPiA+ID4gPiArICAgIHsNCj4gPiA+ ID4gKyAgICBjYXNlIElGTl9NQVNLX0xFTl9TVFJJREVEX0xPQUQ6DQo+ID4g PiA+ICsgICAgY2FzZSBJRk5fTUFTS19MRU5fU1RSSURFRF9TVE9SRToNCj4g PiA+ID4gKyAgICAgIHJldHVybiB0cnVlOw0KPiA+ID4gPiArDQo+ID4gPiA+ ICsgICAgZGVmYXVsdDoNCj4gPiA+ID4gKyAgICAgIHJldHVybiBmYWxzZTsN Cj4gPiA+ID4gKyAgICB9DQo+ID4gPiA+ICt9DQo+ID4gPiA+ICsNCj4gPiA+ ID4gIC8qIElmIEZOIHRha2VzIGEgdmVjdG9yIGxlbiBhcmd1bWVudCwgcmV0 dXJuIHRoZSBpbmRleCBvZiB0aGF0IGFyZ3VtZW50LA0KPiA+ID4gPiAgICAg b3RoZXJ3aXNlIHJldHVybiAtMS4gICovDQo+ID4gPiA+ICANCj4gPiA+ID4g QEAgLTQ2NjIsNiArNDY3OSw4IEBAIGludGVybmFsX2ZuX2xlbl9pbmRleCAo aW50ZXJuYWxfZm4gZm4pDQo+ID4gPiA+ICANCj4gPiA+ID4gICAgICBjYXNl IElGTl9NQVNLX0xFTl9HQVRIRVJfTE9BRDoNCj4gPiA+ID4gICAgICBjYXNl IElGTl9NQVNLX0xFTl9TQ0FUVEVSX1NUT1JFOg0KPiA+ID4gPiArICAgIGNh c2UgSUZOX01BU0tfTEVOX1NUUklERURfTE9BRDoNCj4gPiA+ID4gKyAgICBj YXNlIElGTl9NQVNLX0xFTl9TVFJJREVEX1NUT1JFOg0KPiA+ID4gPiAgICAg IGNhc2UgSUZOX0NPTkRfTEVOX0ZNQToNCj4gPiA+ID4gICAgICBjYXNlIElG Tl9DT05EX0xFTl9GTVM6DQo+ID4gPiA+ICAgICAgY2FzZSBJRk5fQ09ORF9M RU5fRk5NQToNCj4gPiA+ID4gQEAgLTQ3MTksNiArNDczOCw4IEBAIGludGVy bmFsX2ZuX21hc2tfaW5kZXggKGludGVybmFsX2ZuIGZuKQ0KPiA+ID4gPiAg ICAgIGNhc2UgSUZOX01BU0tfU0NBVFRFUl9TVE9SRToNCj4gPiA+ID4gICAg ICBjYXNlIElGTl9NQVNLX0xFTl9HQVRIRVJfTE9BRDoNCj4gPiA+ID4gICAg ICBjYXNlIElGTl9NQVNLX0xFTl9TQ0FUVEVSX1NUT1JFOg0KPiA+ID4gPiAr ICAgIGNhc2UgSUZOX01BU0tfTEVOX1NUUklERURfTE9BRDoNCj4gPiA+ID4g KyAgICBjYXNlIElGTl9NQVNLX0xFTl9TVFJJREVEX1NUT1JFOg0KPiA+ID4g PiAgICAgICAgcmV0dXJuIDQ7DQo+ID4gPiA+ICANCj4gPiA+ID4gICAgICBk ZWZhdWx0Og0KPiA+ID4gPiBAQCAtNDc0MCw2ICs0NzYxLDcgQEAgaW50ZXJu YWxfZm5fc3RvcmVkX3ZhbHVlX2luZGV4IChpbnRlcm5hbF9mbiBmbikNCj4g PiA+ID4gICAgICBjYXNlIElGTl9TQ0FUVEVSX1NUT1JFOg0KPiA+ID4gPiAg ICAgIGNhc2UgSUZOX01BU0tfU0NBVFRFUl9TVE9SRToNCj4gPiA+ID4gICAg ICBjYXNlIElGTl9NQVNLX0xFTl9TQ0FUVEVSX1NUT1JFOg0KPiA+ID4gPiAr ICAgIGNhc2UgSUZOX01BU0tfTEVOX1NUUklERURfU1RPUkU6DQo+ID4gPiA+ ICAgICAgICByZXR1cm4gMzsNCj4gPiA+ID4gIA0KPiA+ID4gPiAgICAgIGNh c2UgSUZOX0xFTl9TVE9SRToNCj4gPiA+ID4gQEAgLTQ3ODQsNiArNDgwNiwy OCBAQCBpbnRlcm5hbF9nYXRoZXJfc2NhdHRlcl9mbl9zdXBwb3J0ZWRfcCAo aW50ZXJuYWxfZm4gaWZuLCB0cmVlIHZlY3Rvcl90eXBlLA0KPiA+ID4gPiAg ICAmJiBpbnNuX29wZXJhbmRfbWF0Y2hlcyAoaWNvZGUsIDMgKyBvdXRwdXRf b3BzLCBHRU5fSU5UIChzY2FsZSkpKTsNCj4gPiA+ID4gIH0NCj4gPiA+ID4g IA0KPiA+ID4gPiArLyogUmV0dXJuIHRydWUgaWYgdGhlIHRhcmdldCBzdXBw b3J0cyBzdHJpZGVkIGxvYWQgb3Igc3RyaWRlZCBzdG9yZSBmdW5jdGlvbg0K PiA+ID4gPiArICAgSUZOLiAgRm9yIGxvYWRzLCBWRUNUT1JfVFlQRSBpcyB0 aGUgdmVjdG9yIHR5cGUgb2YgdGhlIGxvYWQgcmVzdWx0LA0KPiA+ID4gPiAr ICAgd2hpbGUgZm9yIHN0b3JlcyBpdCBpcyB0aGUgdmVjdG9yIHR5cGUgb2Yg dGhlIHN0b3JlZCBkYXRhIGFyZ3VtZW50Lg0KPiA+ID4gPiArICAgU1RSSURF X1RZUEUgaXMgdGhlIHR5cGUgdGhhdCBob2xkcyB0aGUgc3RyaWRlIGZyb20g dGhlIHByZXZpb3VzIGVsZW1lbnQNCj4gPiA+ID4gKyAgIG1lbW9yeSBhZGRy ZXNzIG9mIGVhY2ggbG9hZGVkIG9yIHN0b3JlZCBlbGVtZW50Lg0KPiA+ID4g PiArICAgU0NBTEUgaXMgdGhlIGFtb3VudCBieSB3aGljaCB0aGVzZSBzdHJp ZGUgc2hvdWxkIGJlIG11bHRpcGxpZWQNCj4gPiA+ID4gKyAgICphZnRlciog dGhleSBoYXZlIGJlZW4gZXh0ZW5kZWQgdG8gYWRkcmVzcyB3aWR0aC4gICov DQo+ID4gPiA+ICsNCj4gPiA+ID4gK2Jvb2wNCj4gPiA+ID4gK2ludGVybmFs X3N0cmlkZWRfZm5fc3VwcG9ydGVkX3AgKGludGVybmFsX2ZuIGlmbiwgdHJl ZSB2ZWN0b3JfdHlwZSwNCj4gPiA+ID4gKyB0cmVlIG9mZnNldF90eXBlLCBp bnQgc2NhbGUpDQo+ID4gPiA+ICt7DQo+ID4gPiA+ICsgIG9wdGFiIG9wdGFi ID0gZGlyZWN0X2ludGVybmFsX2ZuX29wdGFiIChpZm4pOw0KPiA+ID4gPiAr ICBpbnNuX2NvZGUgaWNvZGUgPSBjb252ZXJ0X29wdGFiX2hhbmRsZXIgKG9w dGFiLCBUWVBFX01PREUgKHZlY3Rvcl90eXBlKSwNCj4gPiA+ID4gKyAgICBU WVBFX01PREUgKG9mZnNldF90eXBlKSk7DQo+ID4gPiA+ICsgIGludCBvdXRw dXRfb3BzID0gaW50ZXJuYWxfbG9hZF9mbl9wIChpZm4pID8gMSA6IDA7DQo+ ID4gPiA+ICsgIGJvb2wgdW5zaWduZWRfcCA9IFRZUEVfVU5TSUdORUQgKG9m ZnNldF90eXBlKTsNCj4gPiA+ID4gKyAgcmV0dXJuIChpY29kZSAhPSBDT0RF X0ZPUl9ub3RoaW5nDQo+ID4gPiA+ICsgICAmJiBpbnNuX29wZXJhbmRfbWF0 Y2hlcyAoaWNvZGUsIDIgKyBvdXRwdXRfb3BzLCBHRU5fSU5UICh1bnNpZ25l ZF9wKSkNCj4gPiA+ID4gKyAgICYmIGluc25fb3BlcmFuZF9tYXRjaGVzIChp Y29kZSwgMyArIG91dHB1dF9vcHMsIEdFTl9JTlQgKHNjYWxlKSkpOw0KPiA+ ID4gPiArfQ0KPiA+ID4gPiArDQo+ID4gPiA+ICAvKiBSZXR1cm4gdHJ1ZSBp ZiB0aGUgdGFyZ2V0IHN1cHBvcnRzIElGTl9DSEVDS197UkFXLFdBUn1fUFRS UyBmdW5jdGlvbiBJRk4NCj4gPiA+ID4gICAgIGZvciBwb2ludGVycyBvZiB0 eXBlIFRZUEUgd2hlbiB0aGUgYWNjZXNzZXMgaGF2ZSBMRU5HVEggYnl0ZXMg YW5kIHRoZWlyDQo+ID4gPiA+ICAgICBjb21tb24gYnl0ZSBhbGlnbm1lbnQg aXMgQUxJR04uICAqLw0KPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZ2NjL2ludGVy bmFsLWZuLmRlZiBiL2djYy9pbnRlcm5hbC1mbi5kZWYNCj4gPiA+ID4gaW5k ZXggYTIwMjNhYjljM2QuLjBmYTUzMmU4ZjZiIDEwMDY0NA0KPiA+ID4gPiAt LS0gYS9nY2MvaW50ZXJuYWwtZm4uZGVmDQo+ID4gPiA+ICsrKyBiL2djYy9p bnRlcm5hbC1mbi5kZWYNCj4gPiA+ID4gQEAgLTE5OSw2ICsxOTksOCBAQCBE RUZfSU5URVJOQUxfT1BUQUJfRk4gKE1BU0tfR0FUSEVSX0xPQUQsIEVDRl9Q VVJFLA0KPiA+ID4gPiAgICAgICAgIG1hc2tfZ2F0aGVyX2xvYWQsIGdhdGhl cl9sb2FkKQ0KPiA+ID4gPiAgREVGX0lOVEVSTkFMX09QVEFCX0ZOIChNQVNL X0xFTl9HQVRIRVJfTE9BRCwgRUNGX1BVUkUsDQo+ID4gPiA+ICAgICAgICAg bWFza19sZW5fZ2F0aGVyX2xvYWQsIGdhdGhlcl9sb2FkKQ0KPiA+ID4gPiAr REVGX0lOVEVSTkFMX09QVEFCX0ZOIChNQVNLX0xFTl9TVFJJREVEX0xPQUQs IEVDRl9QVVJFLA0KPiA+ID4gPiArICAgICAgICBtYXNrX2xlbl9zdHJpZGVk X2xvYWQsIGdhdGhlcl9sb2FkKQ0KPiA+ID4gPiAgDQo+ID4gPiA+ICBERUZf SU5URVJOQUxfT1BUQUJfRk4gKExFTl9MT0FELCBFQ0ZfUFVSRSwgbGVuX2xv YWQsIGxlbl9sb2FkKQ0KPiA+ID4gPiAgREVGX0lOVEVSTkFMX09QVEFCX0ZO IChNQVNLX0xFTl9MT0FELCBFQ0ZfUFVSRSwgbWFza19sZW5fbG9hZCwgbWFz a19sZW5fbG9hZCkNCj4gPiA+ID4gQEAgLTIwOCw2ICsyMTAsOCBAQCBERUZf SU5URVJOQUxfT1BUQUJfRk4gKE1BU0tfU0NBVFRFUl9TVE9SRSwgMCwNCj4g PiA+ID4gICAgICAgICBtYXNrX3NjYXR0ZXJfc3RvcmUsIHNjYXR0ZXJfc3Rv cmUpDQo+ID4gPiA+ICBERUZfSU5URVJOQUxfT1BUQUJfRk4gKE1BU0tfTEVO X1NDQVRURVJfU1RPUkUsIDAsDQo+ID4gPiA+ICAgICAgICAgbWFza19sZW5f c2NhdHRlcl9zdG9yZSwgc2NhdHRlcl9zdG9yZSkNCj4gPiA+ID4gK0RFRl9J TlRFUk5BTF9PUFRBQl9GTiAoTUFTS19MRU5fU1RSSURFRF9TVE9SRSwgMCwN Cj4gPiA+ID4gKyAgICAgICAgbWFza19sZW5fc3RyaWRlZF9zdG9yZSwgc2Nh dHRlcl9zdG9yZSkNCj4gPiA+ID4gIA0KPiA+ID4gPiAgREVGX0lOVEVSTkFM X09QVEFCX0ZOIChNQVNLX1NUT1JFLCAwLCBtYXNrc3RvcmUsIG1hc2tfc3Rv cmUpDQo+ID4gPiA+ICBERUZfSU5URVJOQUxfT1BUQUJfRk4gKFNUT1JFX0xB TkVTLCBFQ0ZfQ09OU1QsIHZlY19zdG9yZV9sYW5lcywgc3RvcmVfbGFuZXMp DQo+ID4gPiA+IGRpZmYgLS1naXQgYS9nY2MvaW50ZXJuYWwtZm4uaCBiL2dj Yy9pbnRlcm5hbC1mbi5oDQo+ID4gPiA+IGluZGV4IDk5ZGUxM2EwMTk5Li44 Mzc5YzYxZGZmNyAxMDA2NDQNCj4gPiA+ID4gLS0tIGEvZ2NjL2ludGVybmFs LWZuLmgNCj4gPiA+ID4gKysrIGIvZ2NjL2ludGVybmFsLWZuLmgNCj4gPiA+ ID4gQEAgLTIzNSwxMSArMjM1LDEzIEBAIGV4dGVybiBib29sIGNhbl9pbnRl cnByZXRfYXNfY29uZGl0aW9uYWxfb3BfcCAoZ2ltcGxlICosIHRyZWUgKiwN Cj4gPiA+ID4gIGV4dGVybiBib29sIGludGVybmFsX2xvYWRfZm5fcCAoaW50 ZXJuYWxfZm4pOw0KPiA+ID4gPiAgZXh0ZXJuIGJvb2wgaW50ZXJuYWxfc3Rv cmVfZm5fcCAoaW50ZXJuYWxfZm4pOw0KPiA+ID4gPiAgZXh0ZXJuIGJvb2wg aW50ZXJuYWxfZ2F0aGVyX3NjYXR0ZXJfZm5fcCAoaW50ZXJuYWxfZm4pOw0K PiA+ID4gPiArZXh0ZXJuIGJvb2wgaW50ZXJuYWxfc3RyaWRlZF9mbl9wIChp bnRlcm5hbF9mbik7DQo+ID4gPiA+ICBleHRlcm4gaW50IGludGVybmFsX2Zu X21hc2tfaW5kZXggKGludGVybmFsX2ZuKTsNCj4gPiA+ID4gIGV4dGVybiBp bnQgaW50ZXJuYWxfZm5fbGVuX2luZGV4IChpbnRlcm5hbF9mbik7DQo+ID4g PiA+ICBleHRlcm4gaW50IGludGVybmFsX2ZuX3N0b3JlZF92YWx1ZV9pbmRl eCAoaW50ZXJuYWxfZm4pOw0KPiA+ID4gPiAgZXh0ZXJuIGJvb2wgaW50ZXJu YWxfZ2F0aGVyX3NjYXR0ZXJfZm5fc3VwcG9ydGVkX3AgKGludGVybmFsX2Zu LCB0cmVlLA0KPiA+ID4gPiAgICAgIHRyZWUsIHRyZWUsIGludCk7DQo+ID4g PiA+ICtleHRlcm4gYm9vbCBpbnRlcm5hbF9zdHJpZGVkX2ZuX3N1cHBvcnRl ZF9wIChpbnRlcm5hbF9mbiwgdHJlZSwgdHJlZSwgaW50KTsNCj4gPiA+ID4g IGV4dGVybiBib29sIGludGVybmFsX2NoZWNrX3B0cnNfZm5fc3VwcG9ydGVk X3AgKGludGVybmFsX2ZuLCB0cmVlLA0KPiA+ID4gPiAgcG9seV91aW50NjQs IHVuc2lnbmVkIGludCk7DQo+ID4gPiA+ICAjZGVmaW5lIFZFQ1RfUEFSVElB TF9CSUFTX1VOU1VQUE9SVEVEIDEyNw0KPiA+ID4gPiBkaWZmIC0tZ2l0IGEv Z2NjL29wdGFicy5kZWYgYi9nY2Mvb3B0YWJzLmRlZg0KPiA+ID4gPiBpbmRl eCAyY2NiZTQxOTdiNy4uM2Q4NWFjNWY2NzggMTAwNjQ0DQo+ID4gPiA+IC0t LSBhL2djYy9vcHRhYnMuZGVmDQo+ID4gPiA+ICsrKyBiL2djYy9vcHRhYnMu ZGVmDQo+ID4gPiA+IEBAIC05OCw5ICs5OCwxMSBAQCBPUFRBQl9DRChtYXNr X2xlbl9zdG9yZV9vcHRhYiwgIm1hc2tfbGVuX3N0b3JlJGEkYiIpDQo+ID4g PiA+ICBPUFRBQl9DRChnYXRoZXJfbG9hZF9vcHRhYiwgImdhdGhlcl9sb2Fk JGEkYiIpDQo+ID4gPiA+ICBPUFRBQl9DRChtYXNrX2dhdGhlcl9sb2FkX29w dGFiLCAibWFza19nYXRoZXJfbG9hZCRhJGIiKQ0KPiA+ID4gPiAgT1BUQUJf Q0QobWFza19sZW5fZ2F0aGVyX2xvYWRfb3B0YWIsICJtYXNrX2xlbl9nYXRo ZXJfbG9hZCRhJGIiKQ0KPiA+ID4gPiArT1BUQUJfQ0QobWFza19sZW5fc3Ry aWRlZF9sb2FkX29wdGFiLCAibWFza19sZW5fc3RyaWRlZF9sb2FkJGEkYiIp DQo+ID4gPiA+ICBPUFRBQl9DRChzY2F0dGVyX3N0b3JlX29wdGFiLCAic2Nh dHRlcl9zdG9yZSRhJGIiKQ0KPiA+ID4gPiAgT1BUQUJfQ0QobWFza19zY2F0 dGVyX3N0b3JlX29wdGFiLCAibWFza19zY2F0dGVyX3N0b3JlJGEkYiIpDQo+ ID4gPiA+ICBPUFRBQl9DRChtYXNrX2xlbl9zY2F0dGVyX3N0b3JlX29wdGFi LCAibWFza19sZW5fc2NhdHRlcl9zdG9yZSRhJGIiKQ0KPiA+ID4gPiArT1BU QUJfQ0QobWFza19sZW5fc3RyaWRlZF9zdG9yZV9vcHRhYiwgIm1hc2tfbGVu X3N0cmlkZWRfc3RvcmUkYSRiIikNCj4gPiA+ID4gIE9QVEFCX0NEKHZlY19l eHRyYWN0X29wdGFiLCAidmVjX2V4dHJhY3QkYSRiIikNCj4gPiA+ID4gIE9Q VEFCX0NEKHZlY19pbml0X29wdGFiLCAidmVjX2luaXQkYSRiIikNCj4gPiA+ ID4gIA0KPiA+ID4gPiANCj4gPiA+ICANCj4gPiA+IA0KPiA+ICANCj4gPiAN Cj4gIA0KPiANCiANCi0tIA0KUmljaGFyZCBCaWVuZXIgPHJndWVudGhlckBz dXNlLmRlPg0KU1VTRSBTb2Z0d2FyZSBTb2x1dGlvbnMgR2VybWFueSBHbWJI LA0KRnJhbmtlbnN0cmFzc2UgMTQ2LCA5MDQ2MSBOdWVybmJlcmcsIEdlcm1h bnk7DQpHRjogSXZvIFRvdGV2LCBBbmRyZXcgTWNEb25hbGQsIFdlcm5lciBL bm9ibGljaDsgKEhSQiAzNjgwOSwgQUcgTnVlcm5iZXJnKQ0KIA0K ------=_001_NextPart737553031482_=------