From owner-sc22wg5+sc22wg5-dom8=www.open-std.org@open-std.org Mon Feb 9 15:27:25 2015 Return-Path: X-Original-To: sc22wg5-dom8 Delivered-To: sc22wg5-dom8@www.open-std.org Received: by www.open-std.org (Postfix, from userid 521) id 4EC093582C4; Mon, 9 Feb 2015 15:27:24 +0100 (CET) Delivered-To: sc22wg5@open-std.org Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by www.open-std.org (Postfix) with ESMTP id B279B35733E for ; Mon, 9 Feb 2015 15:27:19 +0100 (CET) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga101.fm.intel.com with ESMTP; 09 Feb 2015 06:27:16 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.09,544,1418112000"; d="txt'?scan'208,217";a="649499488" Received: from orsmsx109.amr.corp.intel.com ([10.22.240.7]) by orsmga001.jf.intel.com with ESMTP; 09 Feb 2015 06:27:15 -0800 Received: from orsmsx159.amr.corp.intel.com (10.22.240.24) by ORSMSX109.amr.corp.intel.com (10.22.240.7) with Microsoft SMTP Server (TLS) id 14.3.195.1; Mon, 9 Feb 2015 06:27:14 -0800 Received: from orsmsx103.amr.corp.intel.com ([169.254.2.244]) by ORSMSX159.amr.corp.intel.com ([169.254.11.74]) with mapi id 14.03.0195.001; Mon, 9 Feb 2015 06:27:14 -0800 From: "Whitlock, Stan" To: WG5 Subject: J3/15-006 - current list of Fortran interps Thread-Topic: J3/15-006 - current list of Fortran interps Thread-Index: AdBEdC/kUGXJ+u8/RvymxRsGtpt0aQ== Date: Mon, 9 Feb 2015 14:27:13 +0000 Message-ID: <4AA982B1265F43408480F737BE12F4D35F98965A@ORSMSX103.amr.corp.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-originating-ip: [10.22.254.138] Content-Type: multipart/mixed; boundary="_004_4AA982B1265F43408480F737BE12F4D35F98965AORSMSX103amrcor_" MIME-Version: 1.0 Sender: owner-sc22wg5@open-std.org Precedence: bulk --_004_4AA982B1265F43408480F737BE12F4D35F98965AORSMSX103amrcor_ Content-Type: multipart/alternative; boundary="_000_4AA982B1265F43408480F737BE12F4D35F98965AORSMSX103amrcor_" --_000_4AA982B1265F43408480F737BE12F4D35F98965AORSMSX103amrcor_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable J3/15-006 contains the "Outstanding Fortran Interpretations, February 9, 20= 15". This version includes: + m206: WG5 ballot #8: N2042/43/47 - 10 of 10 passed by WG5 ballot + m206: 14-279/15-121 LB #32 - 12 of 12 passed by J3 ballot =3D 12 passed J3 LB, 10 passed WG5, 15 J3 in progress Thanks /Stan PS: Dan - please put 15-006 on the J3 web site in the m206 folder. Thanks --_000_4AA982B1265F43408480F737BE12F4D35F98965AORSMSX103amrcor_ Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

J3/15-006 contains the “Outstanding Fortran In= terpretations, February 9, 2015”.  This version includes:

 

+ m206: WG5 ballot #8: N2042/43/47 - 10 of 10 pa= ssed by WG5 ballot

+ m206: 14-279/15-121 LB #32 - 12 of 12 passed b= y J3 ballot

=3D 12 passed J3 LB, 10 passed WG5, 15 J3 in progres= s

 

Thanks       &nbs= p;            &= nbsp;           &nbs= p;            &= nbsp; /Stan

 

PS: Dan – please put 15-006 on the J3 web site= in the m206 folder.  Thanks

--_000_4AA982B1265F43408480F737BE12F4D35F98965AORSMSX103amrcor_-- --_004_4AA982B1265F43408480F737BE12F4D35F98965AORSMSX103amrcor_ Content-Type: text/plain; name="15-006 Stan - Outstanding Fortran Interps before m206.txt" Content-Description: 15-006 Stan - Outstanding Fortran Interps before m206.txt Content-Disposition: attachment; filename="15-006 Stan - Outstanding Fortran Interps before m206.txt"; size=254052; creation-date="Mon, 17 Nov 2014 19:51:08 GMT"; modification-date="Mon, 09 Feb 2015 14:26:27 GMT" Content-Transfer-Encoding: base64 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEoz LzE1LTAwNg0KVG86IEozDQpGcm9tOiBTdGFuIFdoaXRsb2NrDQpTdWJqZWN0OiBPdXRzdGFuZGlu ZyBGb3J0cmFuIEludGVycHJldGF0aW9ucyBiZWZvcmUgbTIwNg0KRGF0ZTogMjAxNSBGZWIgMDkN Cg0KICAgICAgT3V0c3RhbmRpbmcgRm9ydHJhbiBJbnRlcnByZXRhdGlvbnMsIEZlYnJ1YXJ5IDks IDIwMTUNCg0KICAgICAgICAgICAgICAgICAgU3RhbiBXaGl0bG9jayBmb3IgL2ludGVycA0KDQo+ IDA1LTAxNSAgICAgICAgICAgICA9PSBjbG9zZWQgRjk1IGludGVycHMNCj4gMDE2ID0gMTAtMDA2 VDEtNXIxID09IEYwMyBDb3JyaWdlbmRhIDEtNSBpbnRlcnBzDQo+IDAxNyA9IE4xODIzICAgICAg ICA9PSBGMDMgY29tYmluZWQgY29ycmlnZW5kYSAxLTUNCj4gMDE5ID0gTjIwMDUgICAgICAgID09 IEYwOCBjb21iaW5lZCBjb3JyaWdlbmRhIDEtMw0KPiAwMjAgPSBOMjAwNiAgICAgICAgPT0gRjA4 IENvcnJpZ2VuZGEgMS0zIGludGVycHMNCg0KPiBtMjA1IEozIExCICMzMSAxNC0yMzNyMS8xNC0y NTg6IDMgb2YgNSBwYXNzZWQNCj4gbTIwNTogMTAgb2YgMTEgbmV3ICsgMiBvbGQgaW50ZXJwcyBw YXNzZWQgSjMgbWVldGluZw0KKyBtMjA2OiBXRzUgYmFsbG90ICM4OiBOMjA0Mi80My80NyAtIDEw IG9mIDEwIHBhc3NlZCBieSBXRzUgYmFsbG90DQorIG0yMDY6IDE0LTI3OS8xNS0xMjEgTEIgIzMy IC0gMTIgb2YgMTIgcGFzc2VkIGJ5IEozIGJhbGxvdA0KPSAxMiBwYXNzZWQgSjMgTEIsIDEwIHBh c3NlZCBXRzUsIDE1IEozIGluIHByb2dyZXNzDQoNCltrZWVwIHRoaXMgdGV4dCBkb2N1bWVudCB0 byA3NSBjaGFyYWN0ZXJzIHBlciBsaW5lXSAuLi4uLi4uLi4uLi4uLi4uLi4uLjQNCg0KVGFibGUg b2YgQ29udGVudHMNCg0KUGFydCAwIGNvbnRhaW5zIHRoZSBzdW1tYXJ5IHN0YXR1cyBvZiBhbGwg b2YgdGhlIEZvcnRyYW4NCiAgICAgICBpbnRlcnByZXRhdGlvbnMNCg0KUGFydCAxIGNvbnRhaW5z IHRoZSBpbnRlcnByZXRhdGlvbiBwcm9jZXNzaW5nIHJ1bGVzIGZyb20gMDAtMTQyDQoNClBhcnQg MiBjb250YWlucyBhY3RpdmUgRjkwL0Y5NSBpbnRlcnByZXRhdGlvbnM6DQoNCiAgICAgICAtIG9u bHkgRjkwLzAxNDUNCiAgICAgICAtIHRoZSBGOTUgaW50ZXJwcyBudW1iZXJlZCBGOTUvMS0zMiBh bmQgNjYtMTA0IGFyZSBhbGwgY2xvc2VkDQoNClBhcnQgMyBjb250YWlucyBhY3RpdmUgRjAzIGlu dGVycHJldGF0aW9uczogRjAzLzAwMDEtMDE0MQ0KDQpQYXJ0IDQgY29udGFpbnMgYWN0aXZlIEYw OCBpbnRlcnByZXRhdGlvbnM6IEYwOC8wMDAxLi4uDQoNCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClBhcnQgMDog U3VtbWFyeSBTdGF0dXMgb2YgdGhlc2UgRm9ydHJhbiBJbnRlcnByZXRhdGlvbnMNCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0NCg0KTm90ZSBOOg0KICAgICBkID09IGRvbmUge2lmIFMgPSBDKiB8IFQqLCB0aGVuIGRv bmUgaXMgYXNzdW1lZH0NCiAgICAgKiA9PSBhY3RpdmUNCg0KU3RhdHVzIFM6ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRGVmZWN0IFR5cGUgVDoNCiAgICAgICBQID09IEozIGNvbnNpZGVy YXRpb24gaW4gcHJvZ3Jlc3MgICAgICAgICAgIEMgPT0gQ2xhcmlmaWNhdGlvbg0KICAgICAgIE0g ICAgUGFzc2VkIGJ5IEozIG1lZXRpbmcgICAgICAgICAgICAgICAgICAgRSAgICBFcnJhdHVtDQog ICAgICAgQiAgICBQYXNzZWQgYnkgSjMgbGV0dGVyIGJhbGxvdCAgICAgICAgICAgICBJICAgIElu dGVycHJldGF0aW9uDQogICAgICAgVyAgICBQYXNzZWQgYnkgV0c1IGJhbGxvdA0KICAgICAgIFgg ICAgRXhjbHVkZWQgZm9yIHRoZSByZWFzb25zIGdpdmVuDQogICAgICAgQzEgICBJbiBGMjAwOCBD b3JyaWdlbmR1bSAxDQogICAgICAgQzIgICBJbiBGMjAwOCBDb3JyaWdlbmR1bSAyDQogICAgICAg QzMgICBJbiBGMjAwOCBDb3JyaWdlbmR1bSAzDQoNCk4gIFMgVCBudW1iZXIgICAgIHRpdGxlDQot ICAtIC0gLS0tLS0tICAgICAtLS0tLQ0KDQoqICBQIEUgRjkwLzAxNDUgICBFeHByZXNzaW9ucyBp biA8dHlwZS1zcGVjPiBvZiBhIEZVTkNUSU9OIHN0YXRlbWVudA0KLS0tLS0tDQpkIEMyIEkgRjAz LzAwMTcgICBEdW1teSBwcm9jZWR1cmUgcG9pbnRlcnMgYW5kIFBSRVNFTlQNCmQgQzIgQyBGMDMv MDAxOCAgIE11bHRpcGxlIGlkZW50aWNhbCBzcGVjaWZpYyBwcm9jZWR1cmVzIGluDQogICAgICAg ICAgICAgICAgICAgdHlwZS1ib3VuZCBnZW5lcmljIGludGVyZmFjZXMNCmQgQzIgRSBGMDMvMDAx OSAgIE11bHRpcGxlIGlkZW50aWNhbCBzcGVjaWZpYyBwcm9jZWR1cmVzIGluDQogICAgICAgICAg ICAgICAgICAgZ2VuZXJpYyBpbnRlcmZhY2UgYmxvY2tzDQpkIEMyIEUgRjAzLzAwMjEgICBXaGF0 IGtpbmQgb2YgdG9rZW4gaXMgYSBzdG9wIGNvZGU/DQpkIEMzIEUgRjAzLzAwMzAgICBJRUVFIGRp dmlkZSBieSB6ZXJvDQoqICBQIEUgRjAzLzAwNDIgICBJRUVFIGZ1bm55IHZhbHVlcyBhbmQgU3Rh bmRhcmQgcmVhbCBnZW5lcmljDQogICAgICAgICAgICAgICAgICAgIGludHJpbnNpYyBwcm9jZWR1 cmVzDQpkIEMyIEMgRjAzLzAwNDYgICBVbmxpbWl0ZWQgcG9seW1vcnBoaWMgcG9pbnRlcnMgaW4N CiAgICAgICAgICAgICAgICAgICBjb21tb24gYmxvY2tzDQpkIEMzIEkgRjAzLzAwNDcgICBQb2x5 bW9ycGhpYyBhcmd1bWVudHMgdG8gaW50cmluc2ljDQogICAgICAgICAgICAgICAgICAgcHJvY2Vk dXJlcw0KZCBDMSBFIEYwMy8wMDQ4ICAgQ29udHJvbCBlZGl0IGRlc2NyaXB0b3JzIGluIFVERFRJ Tw0KKiAgUCBJIEYwMy8wMDUxICAgUmVwZWF0IHNwZWNpZmllcnMgYW5kIFVERFRJTw0KZCBDMyBF IEYwMy8wMDUzICAgVGhlIEJJTkQgYXR0cmlidXRlIGZvciBDX1BUUiBhbmQgQ19GVU5QVFINCiog IFAgRSBGMDMvMDA1OSAgIFN0cnVjdHVyZSBjb21wb25lbnRzIGluIG5hbWVsaXN0IGlucHV0DQpk IEMzIEUgRjAzLzAwNjQgICBSZWN1cnNpdmUgZGVjbGFyYXRpb24gb2YgcHJvY2VkdXJlIGludGVy ZmFjZXMNCmQgQzIgSSBGMDMvMDA2NSAgIFJlbGF0aW9uYWwgZXF1aXZhbGVuY2UNCiogIFAgSSBG MDMvMDA4NCAgIElFRUVfU0VUX1JPVU5ESU5HX01PREUgaW4gYSBzdWJyb3V0aW5lDQpkIEMxIEUg RjAzLzAwODUgICBGaW5hbGl6aW5nIHRhcmdldHMgb2YgcG9pbnRlciBvciBhbGxvY2F0YWJsZQ0K ZCBDMSBJIEYwMy8wMDkxICAgQXJyYXkgY29tcG9uZW50cyBjYW5ub3QgZGVwZW5kIG9uIGxlbmd0 aCB0eXBlDQogICAgICAgICAgICAgICAgICAgcGFyYW1ldGVycw0KZCBDMiBFIEYwMy8wMDk2ICAg Q2FuIGEgcmVhZCBzdGF0ZW1lbnQgY2hhbmdlIHRoZSB1bml0IHZhbHVlPw0KZCBDMyBFIEYwMy8w MTAwICAgRXJyb3IgaW4gZmllbGQgd2lkdGggZm9yIHNwZWNpYWwgY2FzZXMgb2Ygc2lnbmVkDQog ICAgICAgICAgICAgICAgICAgSU5GSU5JVFkgb3V0cHV0DQpkIEMyIEUgRjAzLzAxMDMgICBSZXN0 cmljdGlvbnMgb24gZHVtbXkgYXJndW1lbnRzIG5vdCBwcmVzZW50IGZvcg0KICAgICAgICAgICAg ICAgICAgIHBvbHltb3JwaGljIHR5cGUgb3IgcGFyYW1ldGVyaXplZCBkZXJpdmVkIHR5cGUNCmQg QzEgSSBGMDMvMDEwNSAgIFNJWkU9IHNwZWNpZmllciBhbmQgVUREVElPDQpkIEMxIEkgRjAzLzAx MTAgICBSZXN0b3JpbmcgZHJvcHBlZCByZXN0cmljdGlvbiBvbiBFTlRSWQ0KZCBDMiBJIEYwMy8w MTE2ICAgaW5kaXN0aW5ndWlzaGFibGUgc3BlY2lmaWNzIGZvciBhIGdlbmVyaWMNCiAgICAgICAg ICAgICAgICAgICBpbnRlcmZhY2Ugd2l0aCB1c2UgYXNzb2NpYXRpb24NCmQgQzIgRSBGMDMvMDEx OCAgIEFyZSBsb3dlciBib3VuZHMgb2YgYXNzdW1lZC1zaGFwZSBhcnJheXMgYXNzdW1lZD8NCmQg QzIgRSBGMDMvMDEyMCAgIFdoZW4gYXJlIHBhcmFtZXRlcml6ZWQgc2VxdWVuY2UgdHlwZXMgdGhl IHNhbWUNCiAgICAgICAgICAgICAgICAgICB0eXBlPw0KKiAgUCBDIEYwMy8wMTIxICAgUHJlY2lz ZSBGUCBzZW1hbnRpY3Mgb2YgdGhlIFJFQUwgaW50cmluc2ljDQpkIEMxIEkgRjAzLzAxMjMgICBJ bXBsaWNpdCB0eXBpbmcgaW4gZGVyaXZlZCB0eXBlcw0KZCBDMSBFIEYwMy8wMTI0ICAgZGVmaW5p dGlvbiBpcyBwb29ybHkgZGVmaW5lZA0KZCBDMSBJIEYwMy8wMTI4ICAgU3Vib2JqZWN0cyBpbiBu YW1lbGlzdCBvdXRwdXQNCmQgQzMgRSBGMDMvMDEzOSAgIEZ1bmN0aW9ucyByZXR1cm5pbmcgcHJv Y2VkdXJlIHBvaW50ZXJzDQotLS0tLS0NCmQgQzEgRSBGMDgvMDAwMSAgIEdlbmVyaWMgcmVzb2x1 dGlvbiB3aXRoIHBvaW50ZXIgZHVtbXkgYXJndW1lbnRzDQpkIEMxIEUgRjA4LzAwMDIgICBBcmUg YXNzdW1lZC0gb3IgZGVmZXJyZWQtc2hhcGUgb2JqZWN0cyBhbGxvd2VkIGluDQogICAgICAgICAg ICAgICAgICAgbmFtZWxpc3Q/DQpkIEMxIEUgRjA4LzAwMDMgICBJcyBhIGRpc2Fzc29jaWF0ZWQg cG9pbnRlciBhbGxvd2VkIGFzIGFuIGFjdHVhbA0KICAgICAgICAgICAgICAgICAgIERJTSBhcmd1 bWVudD8NCmQgQzIgRSBGMDgvMDAwNCAgIElzIFRBUkdFVCBhcmd1bWVudCBvZiBBU1NPQ0lBVEVE IGEgcG9pbnRlciBvcg0KICAgICAgICAgICAgICAgICAgIG5vbnBvaW50ZXIgZHVtbXk/DQpkIEMx IEUgRjA4LzAwMDUqICBvcHRpb25hbCBhcmd1bWVudHMgYW5kIEFTU09DSUFURUQgLSBzdWJzdW1l ZCBieQ0KICAgICAgICAgICAgICAgICAgIEYwOC8wMDA0DQpkIEMxIEkgRjA4LzAwMDYgICBnZW5l cmljIHJlc29sdXRpb24gd2l0aCBiYW5uZWQgYXJndW1lbnQNCiAgICAgICAgICAgICAgICAgICBj b21iaW5hdGlvbnMNCmQgQzEgSSBGMDgvMDAwNyAgIENhbiB6ZXJvIGhhdmUgbW9yZSB0aGFuIG9u ZSBiaXQgc2VxdWVuY2UNCiAgICAgICAgICAgICAgICAgICByZXByZXNlbnRhdGlvbj8NCmQgQzIg SSBGMDgvMDAwOCAgIElFRUUgZXhjZXB0aW9ucyBmb3IgaW50cmluc2ljIGZ1bmN0aW9ucw0KZCBD MSBJIEYwOC8wMDA5ICAgSXMgQUJTIGV2ZXIgcmVxdWlyZWQgdG8gYmUgdGhlIG9wdGlvbmFsIElF Qw0KICAgICAgICAgICAgICAgICAgIDYwNTU5IGFicz8NCmQgQzEgRSBGMDgvMDAxMCAgIGRlYWxs b2NhdGluZyBvYmplY3RzIHRoYXQgYXJlIGFzc29jaWF0ZWQgd2l0aA0KICAgICAgICAgICAgICAg ICAgIG90aGVyIG9iamVjdHMNCmQgQzEgRSBGMDgvMDAxMSAgIEhvdyBtYW55IHRpbWVzIGFyZSBj b25zdHJ1Y3RlZCB2YWx1ZXMgZmluYWxpemVkPw0KZCBDMSBFIEYwOC8wMDEyKiAgQXJlIGNvbnN0 YW50cyBmaW5hbGl6ZWQ/IC0gc3Vic3VtZWQgYnkgRjA4LzAwMTENCmQgQzEgRSBGMDgvMDAxMyAg IEhvdyBkb2VzIGZpbmFsaXphdGlvbiBpbnRlcmFjdCB3aXRoIGFsbG9jYXRhYmxlDQogICAgICAg ICAgICAgICAgICAgYXNzaWdubWVudD8NCmQgQzEgRSBGMDgvMDAxNCAgIEZpbmFsaXppbmcgYXNz aWdubWVudCB0byB2ZWN0b3Itc3Vic2NyaXB0ZWQNCiAgICAgICAgICAgICAgICAgICBvYmplY3QN CmQgQzEgRSBGMDgvMDAxNSAgIElNUExJQ0lUDQpkIEMxIEUgRjA4LzAwMTYgICBDYW4gYSB2ZWN0 b3Itc3Vic2NyaXB0ZWQgYXJndW1lbnQgYmVjb21lIHVuZGVmaW5lZD8NCmQgQzEgRSBGMDgvMDAx NyAgIEVsZW1lbnRhbCBzdWJyb3V0aW5lIHJlc3RyaWN0aW9ucw0KZCBDMSBFIEYwOC8wMDE4ICAg SW1wdXJlIGVsZW1lbnRhbCByZXN0cmljdGlvbnMNCmQgQzEgRSBGMDgvMDAxOSAgIFRyYW5zZm9y bWF0aW9uYWwgQmVzc2VsIGZ1bmN0aW9ucw0KZCBDMSBFIEYwOC8wMDIwICAgRklORExPQyBhbmQg bG9naWNhbCBhcmd1bWVudHMNCmQgQzEgRSBGMDgvMDAyMSAgIFNUT1JBR0VfU0laRSBhbmQgdW5s aW1pdGVkIHBvbHltb3JwaGljDQpkIEMxIEUgRjA4LzAwMjIgICBETyBDT05DVVJSRU5UIGFuZCBm aWxlIGkvbw0KZCBDMSBFIEYwOC8wMDIzICAgRE8gQ09OQ1VSUkVOVCBhbmQgUE9JTlRFUg0KZCBD MSBFIEYwOC8wMDI0ICAgRHVtbXkgYXJndW1lbnRzIG9mIGltcHVyZSBlbGVtZW50YWwgcHJvY2Vk dXJlcw0KZCBDMSBFIEYwOC8wMDI1ICAgRE8gQ09OQ1VSUkVOVCBhbmQgQUxMT0NBVEFCTEUNCmQg QzEgRSBGMDgvMDAyNiAgIERPIENPTkNVUlJFTlQgYW5kIG91dHB1dCBpbnRlcmxlYXZpbmcNCmQg QzEgRSBGMDgvMDAyNyAgIEFUT01JQ19SRUYgZXhhbXBsZQ0KZCBDMSBFIEYwOC8wMDI4ICAgRG9l cyBhIHByb2NlZHVyZSByZWZlcmVuY2UgY2F1c2UgbG9vcCB0ZXJtaW5hdGlvbj8NCiogIFAgRSBG MDgvMDAyOSAgIEcwIGVkaXQgZGVzY3JpcHRvciBhbmQgZmxvYXRpbmctcG9pbnQgb3V0cHV0DQpk IEMxIEUgRjA4LzAwMzAgICBVbmxpbWl0ZWQgZm9ybWF0IHJlcGVhdCBlZmZlY3RzDQpkIEMyIEUg RjA4LzAwMzEgICBQVVJFIElOVEVOVChPVVQpIGZpbmFsaXphdGlvbg0KZCBDMiBFIEYwOC8wMDMy ICAgUFVSRSBGVU5DVElPTiByZXN1bHQgZmluYWxpemF0aW9uDQpkIEMxIEUgRjA4LzAwMzMgICBQ VVJFIHBvbHltb3JwaGljIGZpbmFsaXphdGlvbg0KZCBDMSBFIEYwOC8wMDM0ICAgRUxFTUVOVEFM IElOVEVOVChPVVQpIGZpbmFsaXphdGlvbg0KZCBDMSBJIEYwOC8wMDM1ICAgTWF4aW11bSB2YWx1 ZSBmb3IgU0hJRlQgYXJndW1lbnQgdG8gU0hJRlRMDQogICAgICAgICAgICAgICAgICAgYW5kIFNI SUZUUg0KZCBDMSBFIEYwOC8wMDM2ICAgTk9STTIgZXhhbXBsZSBpbiBBbm5leCBDDQpkIEMxIEUg RjA4LzAwMzcgICBQUk9DRURVUkUgUE9JTlRFUiB2cyBQUk9URUNURUQNCmQgQzIgQyBGMDgvMDAz OCAgIEFyZSBwb2ludGxlc3MgcmVzdHJpY3Rpb25zIG9uIERJTSBhcmd1bWVudHMNCiAgICAgICAg ICAgICAgICAgICBpbnRlbmRlZD8NCmQgQzEgRSBGMDgvMDAzOSAgIE1hbnktb25lIHZlY3RvciBz dWJzY3JpcHQgdXNhZ2UNCmQgQzIgRSBGMDgvMDA0MCAgIE1PVkVfQUxMT0MgZm9yIGNvYXJyYXlz DQoqICBQIEUgRjA4LzAwNDEgICBTZWdtZW50IG9yZGVyaW5nIHJ1bGVzDQpkIEMyIEUgRjA4LzAw NDIgICBTT1VSQ0U9IHF1ZXN0aW9ucw0KZCBDMiBFIEYwOC8wMDQzICAgRXhlY3V0aW5nIGEgdHlw ZS1ib3VuZCBwcm9jZWR1cmUgb24gYSBjb2luZGV4ZWQNCiAgICAgICAgICAgICAgICAgICBvYmpl Y3QNCmQgQzEgSSBGMDgvMDA0NCAgIFJlc29sdmluZyB0aGUgdHlwZSBvZiBhIGNvYXJyYXkgb3Ig Y29pbmRleGVkIG9iamVjdA0KKiAgUCBFIEYwOC8wMDQ1ICAgY29uc3RyYWludHMgb24gZW50aXRp ZXMgb2YgdHlwZSBMT0NLX1RZUEUNCmQgQzEgRSBGMDgvMDA0NiAgIFZBTFVFIGF0dHJpYnV0ZSBy ZXN0cmljdGlvbnMNCmQgQzEgSSBGMDgvMDA0NyAgIHB1YmxpYyBnZW5lcmljIHdpdGggc2FtZSBu YW1lIGFzIHByaXZhdGUgdHlwZQ0KZCBDMiBFIEYwOC8wMDQ4ICAgU2VxdWVuY2UgYXNzb2NpYXRp b24gZm9yIGNvYXJyYXlzDQpkIEMxIEUgRjA4LzAwNDkgICBFTEVNRU5UQUwgZnVuY3Rpb25zIHdp dGggbm9uY29uc3RhbnQgdHlwZSBwYXJhbWV0ZXJzDQpkIEMxIEUgRjA4LzAwNTAgICBPcmRlcmlu ZyByZXF1aXJlbWVudHMgb24gZGVmaW5pdGlvbiBvZiBzcGVjaWZpY2F0aW9uDQogICAgICAgICAg ICAgICAgICAgZnVuY3Rpb25zDQpkIEMxIEUgRjA4LzAwNTEgICBQdXJlIHByb2NlZHVyZSBhcmd1 bWVudHMgd2l0aCBWQUxVRQ0KZCBDMSBFIEYwOC8wMDUyICAgUHJpdmF0ZSB0eXBlLWJvdW5kIHBy b2NlZHVyZXMNCmQgQzEgRSBGMDgvMDA1MyAgIFJlc3RyaWN0aW9ucyBvbiBnZW5lcmljIGRlY2xh cmF0aW9ucywgZ2VuZXJpYw0KICAgICAgICAgICAgICAgICAgIHJlc29sdXRpb24NCmQgQzIgRSBG MDgvMDA1NCAgIFJlcXVpcmVtZW50cyBmb3IgbmVlZGluZyBhbiBleHBsaWNpdCBpbnRlcmZhY2UN CmQgQzIgRSBGMDgvMDA1NSAgIEcgZWRpdGluZyBmb3IgcmVhbHMNCmQgQzIgRSBGMDgvMDA1NiAg IE5vbi1wb2x5bW9ycGhpYyBBTExPQ0FURSB3aXRoIHBvbHltb3JwaGljIFNPVVJDRT0NCmQgQzIg RSBGMDgvMDA1NyAgIEludGVyb3BlcmFiaWxpdHkgd2l0aCBlbXB0eSB0eXBlcw0KZCBDMiBFIEYw OC8wMDU4ICAgRU5UUlkgcG9pbnQgUkVTVUxUIHZhcmlhYmxlDQpkIEMyIEUgRjA4LzAwNTkgICBB dXRvLXRhcmdldHRpbmcgcmVxdWlyZW1lbnRzDQpkIEMyIEUgRjA4LzAwNjAgICBQcm9jZWR1cmUg cG9pbnRlciBhc3NpZ25tZW50IHdpdGggYW4gRVhURVJOQUwgdGFyZ2V0DQpkIEMyIEUgRjA4LzAw NjEgICBEZXNjcmlwdGlvbiBvZiB0aGUgQ09OVElHVU9VUyBhdHRyaWJ1dGUgbWlzd29yZGVkPw0K ZCBDMiBDIEYwOC8wMDYyICAgTWl4aW5nIGRlZmF1bHQgaW5pdGlhbGl6YXRpb24gd2l0aCBEQVRB DQogICAgICAgICAgICAgICAgICAgaW5pdGlhbGl6YXRpb24NCmQgQzIgSSBGMDgvMDA2MyAgIEcg ZWRpdGluZyB0byBhIG5hcnJvdyBvdXRwdXQgZmllbGQNCmQgQzIgRSBGMDgvMDA2NCAgIFNUQVRV UyBvZiBHRVRfRU5WSVJPTk1FTlRfVkFSSUFCTEUNCmQgQzIgRSBGMDgvMDA2NSAgIFNob3VsZCBj ZXJ0YWluIHByb2NlZHVyZXMgaW4gaW50cmluc2ljIG1vZHVsZXMgYmUNCiAgICAgICAgICAgICAg ICAgICBwdXJlPw0KZCBDMiBFIEYwOC8wMDY2ICAgQXJlIGNlcnRhaW4gZXhwcmVzc2lvbnMgd2l0 aCBwb2ludGVyIGluaXRpYWxpemF0aW9uDQogICAgICAgICAgICAgICAgICAgY29uc3RhbnQ/DQpk IEMyIEUgRjA4LzAwNjcgICBQYXNzaW5nIGFycmF5cyBvZiBleHRlbmRlZCB0eXBlIG9iamVjdHMN CmQgQzIgRSBGMDgvMDA2OCAgIFBvaW50ZXIgYXNzb2NpYXRpb24gYW5kIGV4dGVuZGVkIHR5cGUg YXJyYXlzDQpkIEMyIEUgRjA4LzAwNjkgICBXaGljaCBwYXJ0IG9mIGFuIGVmZmVjdGl2ZSBhcmd1 bWVudCBiZWNvbWVzDQogICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkPw0KZCBDMiBFIEYwOC8w MDcwICAgRmluYWxpemF0aW9uIG9mIElOVEVOVChPVVQpIGFyZ3VtZW50cw0KZCBDMyBFIEYwOC8w MDcxICAgVmVjdG9yIHN1YnNjcmlwdCB0YXJnZXQNCmQgQzIgRSBGMDgvMDA3MiAgIEZpbmFsIHN1 YnJvdXRpbmVzIHdpdGggY29yYW5rDQpkIEMyIEUgRjA4LzAwNzMgICBQb2x5bW9ycGhpYyBhdXRv LXRhcmdldHRpbmcNCmQgQzIgRSBGMDgvMDA3NCAgIEltcGxpY2l0IHR5cGUgaW4gQkxPQ0sgY29u c3RydWN0DQpkIEMzIEUgRjA4LzAwNzUgICBQb2ludGVyIGZ1bmN0aW9uIHJlZmVyZW5jZSBhcyB2 YXJpYWJsZSBpbiBhc3NpZ25tZW50DQpkIEMzIEUgRjA4LzAwNzYqICBQb2ludGVyIGZ1bmN0aW9u IHJlZmVyZW5jZSBpbiBSRUFEDQogICAgICAgICAgICAgICAgICAgU3Vic3VtZWQgYnkgRjA4LzAw NzUgPT0gVw0KZCBDMiBFIEYwOC8wMDc3ICAgRnVuY3Rpb24gcmVmZXJlbmNlcyBhcyB2YXJpYWJs ZXMgaW4gREFUQSBzdGF0ZW1lbnRzDQpkIEMyIEUgRjA4LzAwNzggICBBcmUgdGhlIElFRUUgdmFs dWVzICswIGFuZCAtMCBkaXN0aW5ndWlzaGVkDQpkIEMyIEUgRjA4LzAwNzkgICBOQU1FTElTVCBh bmQgdHlwZSBzcGVjaWZpY2F0aW9uDQpkIEMyIEUgRjA4LzAwODAgICBBcnJheSBjb25zdHJ1Y3Rv cnMgd2l0aCBwb2x5bW9ycGhpYyB2YWx1ZXMNCmQgQzIgRSBGMDgvMDA4MSAgIERlYWxsb2NhdGlv biBlcnJvciBoYW5kbGluZw0KZCBDMiBFIEYwOC8wMDgyICAgR2VuZXJpYyBpZGVudGlmaWVyIGFu ZCBkdHYgYXJndW1lbnRzDQpkIEMzIEUgRjA4LzAwODMgICBUeXBlIHBhcmFtZXRlciBkZWZhdWx0 IGV4cHJlc3Npb25zIGFsbG93IGNpcmN1bGFyDQogICAgICAgICAgICAgICAgICAgZGVwZW5kZW5j ZQ0KZCBDMyBFIEYwOC8wMDg0ICAgUG9pbnRlciBhcmd1bWVudHMgdG8gUFVSRSBmdW5jdGlvbnMN CmQgQzMgRSBGMDgvMDA4NSAgIFByb2JsZW1zIHdpdGggUEFSQU1FVEVScw0KZCBDMyBFIEYwOC8w MDg2ICAgSW1wbGllZC1zaGFwZSBhbmQgc2VwYXJhdGUgUEFSQU1FVEVSIHN0YXRlbWVudA0KZCBD MyBFIEYwOC8wMDg3ICAgTWl4ZWQta2luZCBjaGFyYWN0ZXIgYXNzaWdubWVudA0KZCBDMyBFIEYw OC8wMDg4ICAgQ2FuIEFMTE9DQVRFIHdpdGggU09VUkNFPSBoYXZlIHNpZGUtZWZmZWN0cyBpbiBh DQogICAgICAgICAgICAgICAgICAgUFVSRSBwcm9jPw0KKiAgUCBFIEYwOC8wMDg5ICAgVmFyaWFi bGUtZGVub3RpbmcgZnVuY3Rpb25zIGNoYW5nZSBleGlzdGluZw0KICAgICAgICAgICAgICAgICAg IHNlbWFudGljcw0KZCBDMyBFIEYwOC8wMDkwICAgV2hhdCByZXN0cmljdGlvbnMgYXBwbHkgdG8g aW5pdGlhbGl6YXRpb24gYW5kDQogICAgICAgICAgICAgICAgICAgUEFSQU1FVEVSPw0KZCBDMyBF IEYwOC8wMDkxICAgRGVyaXZlZCB0eXBlIHdpdGggbm8gY29tcG9uZW50cw0KZCBDMyBFIEYwOC8w MDkyICAgRGVyaXZlZCB0eXBlIHBhcmFtZXRlciByZXF1aXJlbWVudHMNCmQgQzMgRSBGMDgvMDA5 MyAgIFByb2Nlc3MgZXhpdCBzdGF0dXMgYW5kIGVycm9yIHRlcm1pbmF0aW9uDQpkIEMzIEUgRjA4 LzAwOTQgICBQcm9jZWR1cmUgc3RhdGVtZW50IGFuZCBkb3VibGUgY29sb24NCmQgQzMgRSBGMDgv MDA5NSAgIElzIFBSRVNFTlQgYWxsb3dlZCBpbiBzcGVjaWZpY2F0aW9uIGFuZCBjb25zdGFudA0K ICAgICAgICAgICAgICAgICAgICBleHByZXNzaW9ucw0KZCBDMyBFIEYwOC8wMDk2ICAgSXMgVkFM VUUgcGVybWl0dGVkIGZvciBhbiBhcnJheSBpbiBhIEJJTkQoQykNCiAgICAgICAgICAgICAgICAg ICAgcHJvY2VkdXJlPw0KZCBDMyBFIEYwOC8wMDk3ICAgSXMgdGhlIG9wdGlvbmFsIGNvbW1hIGFs bG93ZWQgaW4NCiAgICAgICAgICAgICAgICAgICAgVFlQRShDSEFSQUNURVIqLi4uKT8NCmQgQzMg RSBGMDgvMDA5OCAgIEhvdyBtYW55IEFDUVVJUkVEX0xPQ0s9IHNwZWNpZmllcnMgYXJlIGFsbG93 ZWQgaW4gYQ0KICAgICAgICAgICAgICAgICAgICBMT0NLIHN0bXQ/DQoqICBXIEkgRjA4LzAwOTkg ICBWT0xBVElMRSBpbiBzcGVjaWZpY2F0aW9uIGV4cHJlc3Npb25zDQoqICBXIEUgRjA4LzAxMDAg ICBJTVBPUlQgc3RhdGVtZW50IGFuZCBwcmlvciBleHBsaWNpdCBkZWNsYXJhdGlvbg0KKiAgVyBF IEYwOC8wMTAxICAgTkFNRUxJU1QgYW5kIG11bHRpcGxlIG9jY3VycmVuY2VzIG9mIGEgdmFyaWFi bGUNCiogIFcgRSBGMDgvMDEwMiAgIE1FUkdFIGFuZCBwb2x5bW9ycGhpc20NCiogIFcgRSBGMDgv MDEwMyAgIFBvaW50ZXJzIHRvIGludGVybmFsIHByb2NlZHVyZXMgd2l0aCBkaWZmZXJlbnQgaG9z dA0KICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZXMNCiogIFcgRSBGMDgvMDEwNCAgIElFRUUg SW5xdWlyeSBGdW5jdGlvbnMNCiogIEIgSSBGMDgvMDEwNSAgIElzIHRoZSBBU1lOQ0hST05PVVMg YXR0cmlidXRlIGFsbG93ZWQgd2l0aCB0aGUNCiAgICAgICAgICAgICAgICAgICAgVkFMVUUgYXR0 cmlidXRlPw0KKiAgVyBFIEYwOC8wMTA2ICAgTU9WRV9BTExPQyBmb3IgYSByZW1vdGUgYXJyYXkN CiogIFAgRSBGMDgvMDEwNyAgIExPQ0tfVFlQRSwgdWx0aW1hdGUgY29tcG9uZW50cywgc3ViY29t cG9uZW50cywgYW5kDQogICAgICAgICAgICAgICAgICAgIGNvYXJyYXlzDQoqICBXIEkgRjA4LzAx MDggICB1bHRpbWF0ZSBjb21wb25lbnRzIGFuZCBjb2FycmF5cw0KKiAgUCBFIEYwOC8wMTA5ICAg TE9DS19UWVBFIGFuZCB1bmxpbWl0ZWQgcG9seW1vcnBoaWMNCiogIEIgRSBGMDgvMDExMCAgIElu dGVyZGVwZW5kZW5jZSBvZiBzcGVjaWZpZXIgdmFsdWVzIGluIGlucHV0L291dHB1dA0KICAgICAg ICAgICAgICAgICAgICBzdGF0ZW1lbnRzDQoqICBQIEUgRjA4LzAxMTEgICBVbmRlZmluaXRpb24N CiogIFcgRSBGMDgvMDExMiAgIFNUQVQ9IGFuZCBFUlJNU0c9IGluIEFMTE9DQVRFIGFuZCBERUFM TE9DQVRFDQoqICBXIEUgRjA4LzAxMTMgICBTcGVjaWZpZXJzIGluIGltYWdlIGNvbnRyb2wgc3Rh dGVtZW50cw0KKiAgUCBFIEYwOC8wMTE0ICAgQ2FuIExPQ0tfVFlQRSBjb21wb25lbnRzIGhhdmUg dGhlIFBPSU5URVIgYXR0cmlidXRlPw0KKiAgQiBFIEYwOC8wMTE1ICAgQVNZTkNIUk9OT1VTIGFu ZCBhcmd1bWVudCBwYXNzaW5nDQoqICBCIEUgRjA4LzAxMTYgICBJbnRlcm9wZXJhYmxlIHByb2Nl ZHVyZXMNCiogIEIgRSBGMDgvMDExNyAgIFRBUkdFVCBhbmQgY29pbmRleGVkIGFyZ3VtZW50cw0K KiAgQiBFIEYwOC8wMTE4ICAgU3Vib2JqZWN0IG9mIHZhcmlhYmxlIGluIHZhcmlhYmxlIGRlZmlu aXRpb24gY29udGV4dA0KKiAgQiBFIEYwOC8wMTE5ICAgQnJhbmNoaW5nIHRvIEVORCBCTE9DSyBh bmQgRU5EIENSSVRJQ0FMDQoqICBCIEUgRjA4LzAxMjAgICBJcyB0aGUgbmFtZSBvZiBhIHByb2Nl ZHVyZSBwb2ludGVyIGEgbG9jYWwgaWRlbnRpZmllcj8NCiogIEIgRSBGMDgvMDEyMSAgIEFkZCB0 byBpbnRyb2R1Y3Rpb24gZGVmaW5lZCBvcGVyYXRpb25zIGluIHNwZWNpZmljYXRpb24NCiAgICAg ICAgICAgICAgICAgICBleHBycw0KKiAgQiBFIEYwOC8wMTIyICAgVHlwZXMgd2l0aCBjb2FycmF5 IGNvbXBvbmVudHMNCiogIEIgRSBGMDgvMDEyMyAgIFNQQUNJTkcgaW50cmluc2ljDQoqICBCIEUg RjA4LzAxMjQgICBDb2luZGV4ZWQgb2JqZWN0IHdpdGggcG9seW1vcnBoaWMgc3ViY29tcG9uZW50 DQoqICBQIEUgRjA4LzAxMjUgICBEZWZpbml0aW9uIG9mIG9iamVjdHMgb2YgdHlwZSBMT0NLX1RZ UEUgd2l0aCBwb2ludGVyDQogICAgICAgICAgICAgICAgICAgc3Vib2JqZWN0cw0KDQo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09DQpQYXJ0IDE6IEludGVycHJldGF0aW9uIFByb2Nlc3NpbmcgUnVsZXMNCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0NCg0KMC4gQWxsIGludGVycHJldGF0aW9ucyBhcmUgbGlzdGVkIGluIEozIHN0YW5kaW5n IGRvY3VtZW50IDAwNi4NCg0KMS4gSW50ZXJwcmV0YXRpb25zIGFyZSBwcm9jZXNzZWQgYnkgdGhl IEozL2ludGVycCBncm91cCBhbmQgZ2l2ZW4gYQ0KICAgbnVtYmVyLiAgVGhlIGludGVycHJldGF0 aW9uIGlzIG1hcmtlZCAiSjMgY29uc2lkZXJhdGlvbiBpbg0KICAgcHJvZ3Jlc3MiLiAgQW4gYW5z d2VyIGlzIGZvcm11bGF0ZWQgYW5kIHByZXNlbnRlZCB0byBKMyBpbiBhDQogICBtZWV0aW5nIHBh cGVyLg0KDQoyLiBKMyB2b3RlcyBvbiB0aGUgYW5zd2VyIGF0IGEgSjMgbWVldGluZzsgYSBzaW1w bGUgbWFqb3JpdHkgdm90ZQ0KICAgbWFya3MgdGhlIGFuc3dlciBhcyAicGFzc2VkIGJ5IEozIG1l ZXRpbmciLg0KDQozLiBCZXR3ZWVuIEozIG1lZXRpbmdzIHRoZSBjaGFpciBvZiAvaW50ZXJwIHNl bmRzIGEgSjMgbGV0dGVyIGJhbGxvdA0KICAgdG8gSjMgdG8gYXBwcm92ZSBpbnRlcnAgYW5zd2Vy cyB0aGF0IGhhdmUgYmVlbiAicGFzc2VkIGJ5IEozDQogICBtZWV0aW5nIi4gIFRoZSBsZXR0ZXIg YmFsbG90IHJ1bnMgZm9yIDMwIGRheXMuICBOb3Qgdm90aW5nIG9uDQogICB0aHJlZSBvZiBmb3Vy IGNvbnNlY3V0aXZlIEozIGxldHRlciBiYWxsb3RzIGlzIGdyb3VuZHMgdG8NCiAgIHRlcm1pbmF0 ZSBKMyBtZW1iZXJzaGlwLiAgQW4gaW50ZXJwIGFuc3dlciBwYXNzZXMgYnkgYSAyLzNyZHMNCiAg IHZvdGU7IGEgbm8gdm90ZSBtdXN0IGJlIGFjY29tcGFuaWVkIGJ5IGFuIGV4cGxhbmF0aW9uIG9m IHRoZQ0KICAgY2hhbmdlcyBuZWNlc3NhcnkgdG8gY2hhbmdlIHRoZSBtZW1iZXIncyB2b3RlIHRv IHllcy4NCg0KICAgSjMvaW50ZXJwIHJlc2VydmVzIHRoZSByaWdodCB0byByZWNhbGwgYW4gaW50 ZXJwIGFuc3dlciBmb3IgbW9yZQ0KICAgc3R1ZHkgZXZlbiBpZiB0aGUgYW5zd2VyIHBhc3Nlcy4N Cg0KNC4gVGhlIGNoYWlyIG9mIEozL2ludGVycCBnYXRoZXJzIGFsbCBpbnRlcnAgYW5zd2VycyB0 aGF0IGFyZSBtYXJrZWQNCiAgICJwYXNzZWQgYnkgSjMgbGV0dGVyIGJhbGxvdCIgYW5kIGZvcndh cmRzIHRoZW0gdG8gdGhlIFdHNQ0KICAgY29udmVub3IuICBUaGUgV0c1IGNvbnZlbm9yIGhvbGRz IGEgYmFsbG90IG9mIGluZGl2aWR1YWwgbWVtYmVyczsNCiAgIGEgbm8gdm90ZSBtdXN0IGJlIGFj Y29tcGFuaWVkIGJ5IGFuIGV4cGxhbmF0aW9uIG9mIHRoZSBjaGFuZ2VzDQogICBuZWNlc3Nhcnkg dG8gY2hhbmdlIHRoZSBtZW1iZXIncyB2b3RlIHRvIHllcy4gIFRoZSBhbnN3ZXJzIHRoYXQNCiAg IHBhc3MgdGhpcyBiYWxsb3QgYmVjb21lICJXRzUgYXBwcm92ZWQiLg0KDQogICBKMy9pbnRlcnAg cmVzZXJ2ZXMgdGhlIHJpZ2h0IHRvIHJlY2FsbCBhbiBpbnRlcnAgYW5zd2VyIGZvciBtb3JlDQog ICBzdHVkeSBldmVuIGlmIHRoZSBhbnN3ZXIgcGFzc2VzLg0KDQo1LiAiV0c1IGFwcHJvdmVkIiBh bnN3ZXJzIGFyZSBwcm9jZXNzZWQgaW50byBhIGNvcnJpZ2VuZHVtIGRvY3VtZW50DQogICBieSB0 YWtpbmcgdGhlIGVkaXRzIGZyb20gdGhlIGludGVycCBhbnN3ZXJzIGFuZCBwdXR0aW5nIHRoZW0g aW4NCiAgIHRoZSBmb3JtYXQgcmVxdWlyZWQgYnkgSVNPLiAgQSBXRzUgdm90ZSBpcyBtYWRlIG9u IGZvcndhcmRpbmcgdGhlDQogICBjb3JyaWdlbmR1bSB0byBTQzIyLiAgSW50ZXJwcyBzbyBmb3J3 YXJkZWQgYXJlIG1hcmtlZA0KICAgIkNvcnJpZ2VuZHVtIi4NCg0KNi4gSjMvaW50ZXJwIGNyZWF0 ZXMgYSBlZGl0IGZvciB0aGUgbmV4dCBGb3J0cmFuIFN0YW5kYXJkIGlmIG9uZSBpcw0KICAgbmVl ZGVkIGZvciBhbGwgaW50ZXJwcyBtYXJrZWQgIkNvcnJpZ2VuZHVtIi4NCg0KLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09DQpQYXJ0IDI6IEFjdGl2ZSBGOTAvRjk1IGludGVycHJldGF0aW9u cw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQ0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCk5VTUJFUjogRjkwLzAxNDUNClRJ VExFOiBFeHByZXNzaW9ucyBpbiA8dHlwZS1zcGVjPiBvZiBhIEZVTkNUSU9OIHN0YXRlbWVudA0K S0VZV09SRFM6IGV4cHJlc3Npb24gLSBzcGVjaWZpY2F0aW9uLCBleHByZXNzaW9uIC0gaW5pdGlh bGl6YXRpb24sDQogICAgICAgICAgRlVOQ1RJT04gc3RhdGVtZW50LCBob3N0IGFzc29jaWF0aW9u LCB1c2UgYXNzb2NpYXRpb24NCkRFRkVDVCBUWVBFOiBFcnJhdHVtDQpTVEFUVVM6IEozIGNvbnNp ZGVyYXRpb24gaW4gcHJvZ3Jlc3MNCg0KUVVFU1RJT046DQoNClRoZSBzeW50YXggcnVsZSBSMTIx NyBzaG93cyB0aGF0IHRoZSB0eXBlIGFuZCB0eXBlIHBhcmFtZXRlcnMgb2YgYQ0KZnVuY3Rpb24g Y2FuIGJlIHNwZWNpZmllZCBpbiB0aGUgRlVOQ1RJT04gc3RhdGVtZW50ICgxMi41LjIuMikuDQoN CihhKSBJZiBhIDx0eXBlLXNwZWM+IGFwcGVhcnMgaW4gYSBGVU5DVElPTiBzdGF0ZW1lbnQsIGNh biB0aGUNCmluaXRpYWxpemF0aW9uIGFuZCBzcGVjaWZpY2F0aW9uIGV4cHJlc3Npb25zIG9mIHRo YXQgPHR5cGUtc3BlYz4NCmludm9sdmUgbmFtZXMgb2YgZW50aXRpZXMgdGhhdCBhcmUgZGVjbGFy ZWQgd2l0aGluIHRoZSBmdW5jdGlvbiBvcg0KYXJlIGFjY2Vzc2libGUgdGhlcmUgYnkgaG9zdCBv ciB1c2UgYXNzb2NpYXRpb24/DQoNCihiKSBTZWN0aW9uIDUuMSBzdGF0ZXM6DQoNCiAgICAgICJU aGUgPHNwZWNpZmljYXRpb24tZXhwcj4gKDcuMS42LjIpIG9mIGEgPHR5cGUtcGFyYW0tdmFsdWU+ DQogICAgICAgKDUuMS4xLjUpIG9yIGFuIDxhcnJheS1zcGVjPiAoNS4xLjIuNCkgbWF5IGJlIGEg bm9uY29uc3RhbnQNCiAgICAgICBleHByZXNzaW9uIHByb3ZpZGVkIHRoZSBzcGVjaWZpY2F0aW9u IGV4cHJlc3Npb24gaXMgaW4gYW4NCiAgICAgICBpbnRlcmZhY2UgYm9keSAoMTIuMy4yLjEpIG9y IGluIHRoZSBzcGVjaWZpY2F0aW9uIHBhcnQgb2YgYQ0KICAgICAgIHN1YnByb2dyYW0uIg0KDQpB cyBhIEZVTkNUSU9OIHN0YXRlbWVudCBpcyBub3QgcGFydCBvZiB0aGUgc3BlY2lmaWNhdGlvbiBw YXJ0IG9mIGENCnN1YnByb2dyYW0sIHRoaXMgdGV4dCBpbiB0aGUgc3RhbmRhcmQgYXBwZWFycyB0 byBkaXN0aW5ndWlzaCBiZXR3ZWVuDQpGVU5DVElPTiBzdGF0ZW1lbnRzIHRoYXQgYXJlIGluIGlu dGVyZmFjZSBibG9ja3MgYW5kIG9uZXMgdGhhdCBhcmUNCm5vdC4gVGhpcyB0ZXh0IHNlZW1zIHRv IHByb2hpYml0IHN1Y2ggZXhhbXBsZXMgYXM6DQoNCiAgICAgICAgIElOVEVHRVIgSQ0KICAgICAg ICAgIC4uLg0KICAgICAgICAgQ09OVEFJTlMNCiAgICAgICAgICAgQ0hBUkFDVEVSKihJKzEpIEZV TkNUSU9OIEYoKQ0KICAgICAgICAgICAgICAuLi4NCiAgICAgICAgICAgICAgQ09NTU9OIC8vIEkN CiAgICAgICAgICAgICAgLi4uDQoNCndoZXJlIGl0IGNhbiBiZSBjb25mdXNpbmcgYXMgdG8gd2hp Y2ggSSBpcyBiZWluZyByZWZlcmVuY2VkIGluIHRoZQ0KRlVOQ1RJT04gc3RhdGVtZW50LiAgV2hp bGUgaG9zdCBhc3NvY2lhdGlvbiBkb2VzIG5vdCBhcHBseSB0bw0KaW50ZXJmYWNlIGJvZGllcywg Zm9yIGNvbnNpc3RlbmN5IHNob3VsZCB0aGUgdGV4dCBxdW90ZWQgZnJvbSBTZWN0aW9uDQo1LjEg aGF2ZSBiZWVuICIuLi4gaXMgaW4gdGhlIHNwZWNpZmljYXRpb24gcGFydCBvZiBhbiBpbnRlcmZh Y2UgYm9keQ0KKDEyLjMuMi4xKSBvciBpbiB0aGUgc3BlY2lmaWNhdGlvbiBwYXJ0IG9mIGEgc3Vi cHJvZ3JhbS4iPw0KDQooYykgU2VjdGlvbiA3LjEuNi4xIHN0YXRlczoNCg0KICAgICAgIklmIGFu IGluaXRpYWxpemF0aW9uIGV4cHJlc3Npb24gaW5jbHVkZXMgYSByZWZlcmVuY2UgdG8gYW4NCiAg ICAgICBpbnF1aXJ5IGZ1bmN0aW9uIGZvciBhIHR5cGUgcGFyYW1ldGVyIG9yIGFuIGFycmF5IGJv dW5kIG9mIGFuDQogICAgICAgb2JqZWN0IHNwZWNpZmllZCBpbiB0aGUgc2FtZSA8c3BlY2lmaWNh dGlvbi1wYXJ0PiwgdGhlIHR5cGUNCiAgICAgICBwYXJhbWV0ZXIgb3IgYXJyYXkgYm91bmQgbXVz dCBiZSBzcGVjaWZpZWQgaW4gYSBwcmlvcg0KICAgICAgIHNwZWNpZmljYXRpb24gb2YgdGhlIDxz cGVjaWZpY2F0aW9uLXBhcnQ+LiINCg0KV2FzIHRoaXMgdGV4dCBpbnRlbmRlZCB0byBhcHBseSB0 byBGVU5DVElPTiBzdGF0ZW1lbnRzIGV2ZW4gdGhvdWdoDQp0aGV5IGFyZSBub3QgcGFydCBvZiBh bnkgPHNwZWNpZmljYXRpb24tcGFydD4sIHRodXMgZGlzYWxsb3dpbmcNCmZyYWdtZW50cyBzdWNo IGFzOg0KDQogICAgICBJTlRFR0VSIChLSU5EPUtJTkQoWCkpIEZVTkNUSU9OIEYoKQ0KICAgICAg ICBJTlRFR0VSKEtJTkQ9S0lORCgwKSkgWA0KICAgICAgICAuLi4NCg0KU2ltaWxhciB0ZXh0IGFw cGVhcnMgaW4gU2VjdGlvbiA3LjEuNi4yLg0KDQpBTlNXRVI6DQoNCihhKSBBIHNwZWNpZmljYXRp b24gZXhwcmVzc2lvbiBpbiB0aGUgPHR5cGUtc3BlYz4gb2YgYSBGVU5DVElPTg0Kc3RhdGVtZW50 IG1heSBpbnZvbHZlIG5hbWVzIG9mIGVudGl0aWVzIHRoYXQgYXJlIGRlY2xhcmVkIHdpdGhpbiB0 aGUNCmZ1bmN0aW9uIG9yIGFyZSBhY2Nlc3NpYmxlIHRoZXJlIGJ5IGhvc3Qgb3IgdXNlIGFzc29j aWF0aW9uLCBidXQgYW4NCmluaXRpYWxpemF0aW9uIGV4cHJlc3Npb24gaW4gc3VjaCBhIDx0eXBl LXNwZWM+IG1heSBvbmx5IGludm9sdmUNCm5hbWVzIHRoYXQgYXJlIGFjY2Vzc2libGUgYnkgaG9z dCBvciB1c2UgYXNzb2NpYXRpb24uDQoNCihiKSBOby4gIEl0IHdhcyBub3QgdGhlIGludGVudCBv ZiB0aGUgc3RhbmRhcmQgdG8gZGlzdGluZ3Vpc2ggYmV0d2Vlbg0KdGhlIHR3byB0eXBlcyBvZiBG VU5DVElPTiBzdGF0ZW1lbnRzIGNpdGVkLiAgQXMgZWxhYm9yYXRlZCBpbiB0aGUNCmRpc2N1c3Np b24gb2YgcGFydCAoYSksIHRoZSBzdGFuZGFyZCBpbnRlbmRlZCB0byBhbGxvdyB0aGUNCjx0eXBl LXNwZWM+IGV4cHJlc3Npb24gb2YgYSBGVU5DVElPTiBzdGF0ZW1lbnQgdG8gYmUgYSBub25jb25z dGFudA0KZXhwcmVzc2lvbi4gIFRoZSBzZW50ZW5jZSBjaXRlZCBpcyBjb3JyZWN0ZWQgd2l0aCBh IHN1cHBsaWVkIGVkaXQuDQoNCihjKSBZZXMsIHRoZSB0ZXh0IGNpdGVkIGZyb20gNy4xLjYuMSB3 YXMgaW50ZW5kZWQgdG8gYXBwbHkgdG8NCkZVTkNUSU9OIHN0YXRlbWVudHMuICBUaGUgc2VudGVu Y2UgcXVvdGVkIGFuZCB0aGUgY29ycmVzcG9uZGluZw0Kc2VudGVuY2UgaW4gNy4xLjYuMiBhcmUg Y29ycmVjdGVkIHdpdGggc3VwcGxpZWQgZWRpdHMuICBUaGUgY29kZQ0KZnJhZ21lbnQgaXMgbm90 IHN0YW5kYXJkIGNvbmZvcm1pbmcuDQoNCkRpc2N1c3Npb246DQoNCihhKSBBbiBpbml0aWFsaXph dGlvbiBleHByZXNzaW9uIGlzIGEgY29uc3RhbnQgZXhwcmVzc2lvbiB3aXRoIGFuDQphZGRpdGlv bmFsIHJ1bGUgcmVsYXRpbmcgdG8gZXhwb25lbnRpYXRpb24gKDcuMS42LjEpLiAgU2luY2UgaXQg aXMgYQ0KY29uc3RhbnQgZXhwcmVzc2lvbiwgdGhlIG9ubHkgbmFtZXMgaXQgY2FuIGNvbnRhaW4g YXJlIHRoZSBuYW1lcyBvZg0KbmFtZWQgY29uc3RhbnRzLCBzdHJ1Y3R1cmUgY29uc3RydWN0b3Jz LCBpbnRyaW5zaWMgcHJvY2VkdXJlcywgYW5kDQp2YXJpYWJsZXMgd2hvc2UgdHlwZSBwYXJhbWV0 ZXJzIG9yIGJvdW5kcyBhcmUgaW5xdWlyZWQgYWJvdXQuDQoNCiAgICAqIE5hbWVkIGNvbnN0YW50 DQoNCiAgICAgIFNlY3Rpb24gNS4xLjIuMSBzdGF0ZXM6DQoNCiAgICAgICAiQSBuYW1lZCBjb25z dGFudCBtdXN0IG5vdCBiZSByZWZlcmVuY2VkIGluIGFueSAuLi4gY29udGV4dA0KICAgICAgICB1 bmxlc3MgaXQgaGFzIGJlZW4gZGVmaW5lZCBpbiBhIHByaW9yIFBBUkFNRVRFUiBzdGF0ZW1lbnQg b3INCiAgICAgICAgdHlwZSBkZWNsYXJhdGlvbiBzdGF0ZW1lbnQgdXNpbmcgdGhlIFBBUkFNRVRF UiBhdHRyaWJ1dGUsIG9yDQogICAgICAgIG1hZGUgYWNjZXNzaWJsZSBieSB1c2UgYXNzb2NpYXRp b24gb3IgaG9zdCBhc3NvY2lhdGlvbi4iDQoNCiAgICAgIFNpbmNlIHRoZSBGVU5DVElPTiBzdGF0 ZW1lbnQgaXMgdGhlIGZpcnN0IHN0YXRlbWVudCBvZiB0aGUNCiAgICAgIHNjb3BpbmcgdW5pdCwg dGhlcmUgY2FuIGJlIG5vIHByaW9yIFBBUkFNRVRFUiBzdGF0ZW1lbnQgb3IgdHlwZQ0KICAgICAg ZGVjbGFyYXRpb24gc3RhdGVtZW50IHVzaW5nIHRoZSBQQVJBTUVURVIgYXR0cmlidXRlLCBzbyB0 aGUNCiAgICAgIGZpcnN0IGNsYXVzZSBkb2VzIG5vdCBhcHBseS4gQSBuYW1lZCBjb25zdGFudCBj YW4gYXBwZWFyIGluIGENCiAgICAgIDx0eXBlLXNwZWM+IG9mIGEgZnVuY3Rpb24gc3RhdGVtZW50 IGlmIGl0IGlzIGFjY2Vzc2libGUgd2l0aGluDQogICAgICB0aGUgZnVuY3Rpb24gYnkgaG9zdCBv ciB1c2UgYXNzb2NpYXRpb24uDQoNCiAgICAqIFN0cnVjdHVyZSBjb25zdHJ1Y3Rvcg0KDQogICAg ICBSdWxlIFI1MDIgc2hvd3MgdGhhdCB0aGUgb25seSBvcHBvcnR1bml0aWVzIGZvciBleHByZXNz aW9ucyB0bw0KICAgICAgYXBwZWFyIGluIDx0eXBlLXNwZWM+cyBhcmUgaW4gYSA8a2luZC1zZWxl Y3Rvcj4gb3IgaW4gYQ0KICAgICAgPGNoYXItc2VsZWN0b3I+LiAgSG93ZXZlciwgYSBzdHJ1Y3R1 cmUgY29uc3RydWN0b3IgY2FuIG5vdA0KICAgICAgYXBwZWFyIGluIGEgPGtpbmQtc2VsZWN0b3I+ IGJlY2F1c2UgcnVsZSBSNTA1IHNob3dzIHRoYXQgYQ0KICAgICAgPGtpbmQtc2VsZWN0b3I+IG11 c3QgYmUgYW4gaW50ZWdlciBleHByZXNzaW9uLiAgU2ltaWxhcmx5LCBSNTA2DQogICAgICBzaG93 cyB0aGF0IGFueSBpbml0aWFsaXphdGlvbiBleHByZXNzaW9uIGluIGEgPGNoYXItc2VsZWN0b3I+ DQogICAgICBtdXN0IGJlIHR5cGUgaW50ZWdlci4gIFRoZXJlZm9yZSwgYSBzdHJ1Y3R1cmUgY29u c3RydWN0b3IgY2FuDQogICAgICBub3QgYXBwZWFyIGluIGFuIGluaXRpYWxpemF0aW9uIGV4cHJl c3Npb24gaW4gdGhlIDx0eXBlLXNwZWM+DQogICAgICBvZiBhIEZVTkNUSU9OIHN0YXRlbWVudC4N Cg0KICAgICogSW50cmluc2ljIHByb2NlZHVyZQ0KDQogICAgICBUaGUgaW50cmluc2ljIHByb2Nl ZHVyZSBuYW1lcyBvciBjbGFzc2VzIG9mIGludHJpbnNpYw0KICAgICAgcHJvY2VkdXJlcyB0aGF0 IG1heSBhcHBlYXIgaW4gYW4gaW5pdGlhbGl6YXRpb24gZXhwcmVzc2lvbiBhcmUNCiAgICAgIGdp dmVuIGluIDcuMS42LjEuDQoNCiAgICAqIFZhcmlhYmxlcyB3aG9zZSB0eXBlIHBhcmFtZXRlcnMg b3IgYm91bmRzIGFyZSBpbnF1aXJlZCBhYm91dA0KDQogICAgICBUaGUgdGV4dCBmcm9tIHNlY3Rp b24gNy4xLjYuMSBhcyBjaXRlZCBpbiBxdWVzdGlvbiAoYykgd2FzDQogICAgICBpbnRlbmRlZCB0 byBhcHBseSB0byBpbml0aWFsaXphdGlvbiBleHByZXNzaW9ucyBpbiB0aGUNCiAgICAgIDx0eXBl LXNwZWM+IG9mIGEgRlVOQ1RJT04gc3RhdGVtZW50LiAgV2l0aCB0aGUgY29ycmVjdGlvbg0KICAg ICAgc3VwcGxpZWQsIHRoaXMgbWVhbnMgdGhhdCBpZiBhIHZhcmlhYmxlIGFwcGVhcnMgYXMgdGhl IGFyZ3VtZW50DQogICAgICB0byBhbiBpbnF1aXJ5IGludHJpbnNpYyBpbiB0aGUgPHR5cGUtc3Bl Yz4gb2YgYSBGVU5DVElPTg0KICAgICAgc3RhdGVtZW50LCB0aGUgZnVuY3Rpb24gbXVzdCBiZSBh IG1vZHVsZSBwcm9jZWR1cmUgb3IgYW4NCiAgICAgIGludGVybmFsIHByb2NlZHVyZSwgYW5kIHRo ZSB2YXJpYWJsZSBtdXN0IGV4aXN0IGluIChiZQ0KICAgICAgYWNjZXNzaWJsZSBmcm9tKSB0aGUg aG9zdCBzY29waW5nIHVuaXQuDQoNClJ1bGUgUjUwMiBkZWZpbmVzIDx0eXBlLXNwZWM+LiAgVGhl IG9ubHkgb3Bwb3J0dW5pdHkgZm9yIGENCjx0eXBlLXNwZWM+IHRvIGNvbnRhaW4gYSA8c3BlY2lm aWNhdGlvbi1leHByPiBpcyB3aGVuIHRoZSBkYXRhIHR5cGUNCmlzIGNoYXJhY3RlciAoPHR5cGUt cGFyYW0tdmFsdWU+IG1heSBiZSBhIDxzcGVjaWZpY2F0aW9uLWV4cHI+KS4NClNlY3Rpb24gNy4x LjYuMiBzdGF0ZXMgdGhhdCBhIHNwZWNpZmljYXRpb24gZXhwcmVzc2lvbiBpcyBhDQpyZXN0cmlj dGVkIGV4cHJlc3Npb24gdGhhdCBpcyBzY2FsYXIsIG9mIHR5cGUgaW50ZWdlciwgYW5kIGVhY2gN Cm9wZXJhdGlvbiBtdXN0IGJlIGludHJpbnNpYy4gIEluIGFkZGl0aW9uLCBydWxlICgyKSBvZiA3 LjEuNi4yIHN0YXRlcw0KdGhhdCBhIHByaW1hcnkgb2YgYSBzcGVjaWZpY2F0aW9uIGV4cHJlc3Np b24gY2FuIGJlIGEgZHVtbXkgYXJndW1lbnQNCnRoYXQgaGFzIG5laXRoZXIgdGhlIE9QVElPTkFM IG5vciBJTlRFTlQoT1VUKSBhdHRyaWJ1dGUuICBUaGUNCmZvbGxvd2luZyBjb2RlIGZyYWdtZW50 IGRlbW9uc3RyYXRlcyBhIHVzZSBvZiBzdWNoIGEgZHVtbXkgYXJndW1lbnQ6DQoNCiAgICAgICAg ICAgICAgQ0hBUkFDVEVSKihOKzEpIEZVTkNUSU9OIFMoTikNCiAgICAgICAgICAgICAgSU5URUdF UiwgSU5URU5UKElOKSA6OiBODQoNClJ1bGUgKDIpIGFsc28gc3RhdGVzIHRoYXQgdGhlIHByaW1h cnkgY2FuIGJlIGEgc3Vib2JqZWN0IG9mIHN1Y2ggYQ0KZHVtbXkgYXJndW1lbnQuICBTZWN0aW9u IDYuMS4yIGluZGljYXRlcyB0aGF0IGEgc3RydWN0dXJlIGNvbXBvbmVudA0KbXVzdCBub3QgYmUg cmVmZXJlbmNlZCBvciBkZWZpbmVkIGJlZm9yZSB0aGUgZGVjbGFyYXRpb24gb2YgdGhlDQpwYXJl bnQgb2JqZWN0LiAgU2ltaWxhciBydWxlcyBhcmUgbmVlZGVkIHRvIHByZXZlbnQgYSBzdWJzdHJp bmcgZnJvbQ0KYmVpbmcgcmVmZXJlbmNlZCBhaGVhZCBvZiB0aGUgZGVjbGFyYXRpb24gb2YgaXRz IHBhcmVudCwgYW5kIGFuIGFycmF5DQplbGVtZW50IG9yIGFycmF5IHNlY3Rpb24gZnJvbSBiZWlu ZyByZWZlcmVuY2VkIGFoZWFkIG9mIHRoZQ0KZGVjbGFyYXRpb24gb2YgdGhlIGFycmF5LiAgRWRp dHMgYXJlIHByb3ZpZGVkIHRvIHN1cHBseSB0aGVzZSBydWxlcy4NClNpbmNlIGEgc3Vib2JqZWN0 IGNhbiBub3QgYmUgcmVmZXJlbmNlZCBiZWZvcmUgaXRzIHBhcmVudCBvYmplY3QgaXMNCmRlY2xh cmVkIGFuZCB0aGUgRlVOQ1RJT04gc3RhdGVtZW50IGlzIHRoZSBmaXJzdCBzdGF0ZW1lbnQgb2Yg dGhlDQpzdWJwcm9ncmFtLCB0aGUgcGFyZW50J3MgZGVjbGFyYXRpb24gY291bGQgbm90IGhhdmUg b2NjdXJyZWQuICBUaHVzIGENCnN1Ym9iamVjdCBtdXN0IG5vdCBiZSByZWZlcmVuY2VkIGluIHRo ZSA8dHlwZS1zcGVjPiBvbiBhIEZVTkNUSU9ODQpzdGF0ZW1lbnQgZm9yIG9iamVjdHMgZGVjbGFy ZWQgd2l0aGluIHRoZSBmdW5jdGlvbi4NCg0KUnVsZSAoMykgc3RhdGVzIHRoYXQgYSBwcmltYXJ5 IGNhbiBiZSBhIHZhcmlhYmxlIHRoYXQgaXMgaW4gYSBjb21tb24NCmJsb2NrLiAgVGhlIGZvbGxv d2luZyBjb2RlIGZyYWdtZW50IGRlbW9uc3RyYXRlcyBhIHVzZSBvZiBzdWNoIGENCmNvbW1vbiBi bG9jayBtZW1iZXI6DQoNCiAgICAgICAgICAgICAgQ0hBUkFDVEVSKihOKzEpIEZVTkNUSU9OIFMo KQ0KICAgICAgICAgICAgICAuLi4NCiAgICAgICAgICAgICAgQ09NTU9OIE4NCg0KQXMgaW4gcnVs ZSAoMiksIHJ1bGUgKDMpIGFsbG93cyBhIHN1Ym9iamVjdCBvZiBzdWNoIGEgdmFyaWFibGUgYnV0 DQpmb3IgdGhlIHNhbWUgcmVhc29ucyBhcyBhYm92ZSwgc3VjaCBhIHN1Ym9iamVjdCBkZXNpZ25h dG9yIGNhbiBub3QNCmFwcGVhciBpbiB0aGUgPHR5cGUtc3BlYz4gZXhwcmVzc2lvbiBvZiBhIEZV TkNUSU9OIHN0YXRlbWVudC4NCg0KUnVsZSAoNCkgc3RhdGVzIHRoYXQgYSBwcmltYXJ5IG1heSBi ZSBhIHZhcmlhYmxlIHRoYXQgaXMgYWNjZXNzaWJsZQ0KYnkgdXNlIGFzc29jaWF0aW9uIG9yIGhv c3QgYXNzb2NpYXRpb24uICBUaGUgZm9sbG93aW5nIGNvZGUgZnJhZ21lbnRzDQpkZW1vbnN0cmF0 ZSB1c2VzIG9mIHN1Y2ggdmFyaWFibGVzOg0KDQogICAgICAgICAgICAgIFBST0dSQU0gTUFJTg0K ICAgICAgICAgICAgICBJTlRFR0VSIDo6IE4gPSAyMQ0KICAgICAgICAgICAgICAuLi4NCiAgICAg ICAgICAgICAgQ09OVEFJTlMNCiAgICAgICAgICAgICAgICBDSEFSQUNURVIoTEVOID0gMipOKSBG VU5DVElPTiBTUyhLKSAgICAhIE4gaXMgaG9zdA0KICAgICAgICAgICAgICAgIC4uLiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICEgIGFzc29jaWF0ZWQuDQogICAgICAgICAgICAg ICAgRU5EIEZVTkNUSU9ODQogICAgICAgICAgICAgIEVORCBQUk9HUkFNDQoNCiAgICBhbmQNCg0K ICAgICAgICAgICAgICBNT0RVTEUgTU9EDQogICAgICAgICAgICAgIElOVEVHRVIgSw0KICAgICAg ICAgICAgICBEQVRBIEsgLzIwLw0KICAgICAgICAgICAgICBFTkQgTU9EVUxFDQoNCiAgICAgICAg ICAgICAgQ0hBUkFDVEVSKihLKjIpIEZVTkNUSU9OIENIRUNLKFNUUikgICAgICAhIEsgaXMgdXNl DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ISAgYXNzb2NpYXRlZC4NCiAgICAgICAgICAgICAgVVNFIE1PRA0KICAgICAgICAgICAgICAuLi4N CiAgICAgICAgICAgICAgRU5EIEZVTkNUSU9ODQoNClJ1bGUgKDQpIGFsc28gc3RhdGVzIHRoYXQg dGhlIHByaW1hcnkgY2FuIGJlIGEgc3Vib2JqZWN0IG9mIHN1Y2ggYQ0KdXNlIG9yIGhvc3QgYXNz b2NpYXRlZCB2YXJpYWJsZS4NCg0KQSBzdHJ1Y3R1cmUgY29uc3RydWN0b3IgY2FuIG5vdCBhcHBl YXIgaW4gYSBGVU5DVElPTiA8dHlwZS1zcGVjPg0Kc3BlY2lmaWNhdGlvbiBleHByZXNzaW9uIGJl Y2F1c2UgdGhlIGV4cHJlc3Npb24gbXVzdCBiZSBvZiB0eXBlDQppbnRlZ2VyIGFuZCBhbnkgb3Bl cmF0aW9ucyAod2hpY2ggbWlnaHQgeWllbGQgYW4gaW50ZWdlciB2YWx1ZSBmcm9tDQpvbmUgb3Ig bW9yZSBzdHJ1Y3R1cmUgY29uc3RydWN0b3JzKSBtdXN0IGJlIGludHJpbnNpYy4NCg0KT3RoZXIg cnVsZXMgb2YgNy4xLjYuMiBzdGF0ZSB3aGljaCBpbnRyaW5zaWMgcHJvY2VkdXJlIG5hbWVzIG9y DQpjbGFzc2VzIG9mIGludHJpbnNpYyBwcm9jZWR1cmVzIG1heSBhcHBlYXIgaW4gYSBzcGVjaWZp Y2F0aW9uDQpleHByZXNzaW9uLg0KDQpTZWN0aW9uIDcuMS42LjIgYWxzbyBzdGF0ZXM6DQoNCiAg ICAgICAgQSB2YXJpYWJsZSBpbiBhIHNwZWNpZmljYXRpb24gZXhwcmVzc2lvbiBtdXN0IGhhdmUg aXRzIHR5cGUNCiAgICAgICAgYW5kIHR5cGUgcGFyYW1ldGVycywgaWYgYW55LCBzcGVjaWZpZWQg YnkgYSBwcmV2aW91cw0KICAgICAgICBkZWNsYXJhdGlvbiBpbiB0aGUgc2FtZSBzY29waW5nIHVu aXQsIG9yIGJ5IHRoZSBpbXBsaWNpdCB0eXBlDQogICAgICAgIHJ1bGVzIGN1cnJlbnRseSBpbiBl ZmZlY3QgZm9yIHRoZSBzY29waW5nIHVuaXQsIG9yIGJ5IGhvc3Qgb3INCiAgICAgICAgdXNlIGFz c29jaWF0aW9uLg0KDQpUaGUgZGlzY3Vzc2lvbiBhYm92ZSByZWdhcmRpbmcgc3BlY2lmaWNhdGlv biBleHByZXNzaW9ucyBoYXMgYWxyZWFkeQ0KcnVsZWQgb3V0ICJwcmV2aW91cyBkZWNsYXJhdGlv bnMiIHNvIHRoZSBmaXJzdCBjbGF1c2Ugb2YgdGhlIGNpdGVkDQpzZW50ZW5jZSBkb2VzIG5vdCBh cHBseS4gIFRoZSBvdGhlciBjbGF1c2VzIGFwcGx5IGVxdWFsbHkgdG8gYQ0KRlVOQ1RJT04gc3Rh dGVtZW50IDx0eXBlLXNwZWM+IGFuZCB0byB0eXBlIGRlY2xhcmF0aW9uIHN0YXRlbWVudHMNCmlu c2lkZSB0aGUgZnVuY3Rpb24uDQoNCihiKSBXaGVuIHRoZSBkaXNjdXNzaW9uIGZvciBwYXJ0IChh KSBpcyBhcHBsaWVkIHRvIHRoZSBjb2RlIGZyYWdtZW50DQpwcm92aWRlZCwgaXQgbWVhbnMgdGhh dCB0aGUgJ0knIHJlZmVyZW5jZWQgaW4gdGhlIDx0eXBlLXNwZWM+IG9mIHRoZQ0KRlVOQ1RJT04g c3RhdGVtZW50IGlzIHRoZSBjb21tb24gYmxvY2sgbWVtYmVyLg0KDQpFRElUUzoNCjEuIFNlY3Rp b24gNS4xLCBpbiB0aGUgZmlyc3Qgc2VudGVuY2Ugb2YgdGhlIHBhcmFncmFwaCB0aGF0IHN0YXJ0 cw0KICAgIlRoZSA8c3BlY2lmaWNhdGlvbi1leHByPiAoNy4xLjYuMikiIFs0MDozOS00MV0sDQoN CiAgICBjaGFuZ2UgImluIGFuIGludGVyZmFjZSBib2R5ICgxMi4zLjIuMSkgb3IgaW4gdGhlIHNw ZWNpZmljYXRpb24NCiAgICAgICAgICAgIHBhcnQgb2YgYSBzdWJwcm9ncmFtIg0KDQogICAgICAg dG8gICJjb250YWluZWQgaW4gYW4gaW50ZXJmYWNlIGJvZHkgKDEyLjMuMi4xKSwgaXMgY29udGFp bmVkDQogICAgICAgICAgICBpbiB0aGUgc3BlY2lmaWNhdGlvbiBwYXJ0IG9mIGEgc3VicHJvZ3Jh bSwgb3IgaXMgaW4gdGhlDQogICAgICAgICAgICA8dHlwZS1zcGVjPiBvZiBhIEZVTkNUSU9OIHN0 YXRlbWVudCAoMTIuNS4yLjIpIg0KDQoyLiBTZWN0aW9uIDYuMS4xLCBhZGQgdG8gdGhlIGVuZCBv ZiB0aGUgcGFyYWdyYXBoIGJlZm9yZSB0aGUgZXhhbXBsZXMNCls2MjoyOV0NCg0KICAgICJBIHN1 YnN0cmluZyBtdXN0IG5vdCBiZSByZWZlcmVuY2VkIG9yIGRlZmluZWQgYmVmb3JlIHRoZQ0KICAg ICBkZWNsYXJhdGlvbiBvZiB0aGUgdHlwZSBhbmQgdHlwZSBwYXJhbWV0ZXJzIG9mIHRoZSBwYXJl bnQgc3RyaW5nLA0KICAgICB1bmxlc3MgdGhlIHR5cGUgYW5kIHR5cGUgcGFyYW1ldGVycyBhcmUg ZGV0ZXJtaW5lZCBieSB0aGUNCiAgICAgaW1wbGljaXQgdHlwaW5nIHJ1bGVzIG9mIHRoZSBzY29w ZS4iDQoNCjMuIFNlY3Rpb24gNi4yLjIsIGFkZCBhZnRlciB0aGUgc2VudGVuY2UgIkFuIGFycmF5 IHNlY3Rpb24gaXMgYW4NCmFycmF5LiIgWzY0OjE2XQ0KICAgICAgICAgICAiQW4gYXJyYXkgZWxl bWVudCBvciBhcnJheSBzZWN0aW9uIG11c3Qgbm90IGJlIHJlZmVyZW5jZWQNCiAgICAgICAgICAg IG9yIGRlZmluZWQgYmVmb3JlIHRoZSBkZWNsYXJhdGlvbiBvZiB0aGUgYXJyYXkgYm91bmRzLiIN Cg0KNC4gU2VjdGlvbiA3LjEuNi4xLCBpbiB0aGUgcGFyYWdyYXBoIGFmdGVyIHRoZSBjb25zdHJh aW50cyBbNzg6MjEtMjJdDQoNCiAgICBjaGFuZ2UgIm9iamVjdCBzcGVjaWZpZWQgaW4gdGhlIHNh bWUgPHNwZWNpZmljYXRpb24tcGFydD4sIHRoZQ0KICAgICAgICAgICAgIHR5cGUgcGFyYW1ldGVy IG9yIGFycmF5IGJvdW5kIG11c3QgYmUgc3BlY2lmaWVkIGluDQogICAgICAgICAgICAgYSBwcmlv ciBzcGVjaWZpY2F0aW9uIG9mIHRoZSA8c3BlY2lmaWNhdGlvbi1wYXJ0Pi4iDQoNCiAgICB0byAg ICAgIm9iamVjdCBkZWNsYXJlZCBpbiB0aGUgc2FtZSBzY29waW5nIHVuaXQsIHRoZSB0eXBlDQog ICAgICAgICAgICBwYXJhbWV0ZXIgb3IgYXJyYXkgYm91bmQgbXVzdCBiZSBzcGVjaWZpZWQgaW4g YQ0KICAgICAgICAgICAgc3BlY2lmaWNhdGlvbiBwcmlvciB0byB0aGUgaW5pdGlhbGl6YXRpb24g ZXhwcmVzc2lvbi4iDQoNCjUuIFNlY3Rpb24gNy4xLjYuMiwgaW4gdGhlIDJuZCBwYXJhZ3JhcGgg YWZ0ZXIgdGhlIGNvbnN0cmFpbnQNCls3OToyOC0yOV0NCg0KICAgIGNoYW5nZSAiZW50aXR5IHNw ZWNpZmllZCBpbiB0aGUgc2FtZSA8c3BlY2lmaWNhdGlvbi1wYXJ0PiwgdGhlDQogICAgICAgICAg ICAgdHlwZSBwYXJhbWV0ZXIgb3IgYXJyYXkgYm91bmQgbXVzdCBiZSBzcGVjaWZpZWQgaW4NCiAg ICAgICAgICAgICBhIHByaW9yIHNwZWNpZmljYXRpb24gb2YgdGhlIDxzcGVjaWZpY2F0aW9uLXBh cnQ+LiINCg0KICAgIHRvICAgICAiZW50aXR5IGRlY2xhcmVkIGluIHRoZSBzYW1lIHNjb3Bpbmcg dW5pdCwgdGhlIHR5cGUNCiAgICAgICAgICAgIHBhcmFtZXRlciBvciBhcnJheSBib3VuZCBtdXN0 IGJlIHNwZWNpZmllZCBpbiBhDQogICAgICAgICAgICBzcGVjaWZpY2F0aW9uIHByaW9yIHRvIHRo ZSBzcGVjaWZpY2F0aW9uIGV4cHJlc3Npb24uIg0KDQpTVUJNSVRURUQgQlk6IEphbmljZSBDLiBT aGVwaGVyZA0KDQpISVNUT1JZOiA5My0xOTMgICBtMTI2ICBGOTAvMDE0NSBzdWJtaXR0ZWQNCiAg ICAgICAgIDk0LTAyM3IxIG0xMjggIHJlc3BvbnNlLCBhcHByb3ZlZCB1Yw0KICAgICAgICAgOTQt MTE2cjEgbTEyOSAgWDNKMyBiYWxsb3QgZmFpbGVkIDIyLTENCiAgICAgICAgIDk0LTMzNiAgIG0x MzEgIHJldmlzZWQgcmVzcG9uc2UsIGFwcHJvdmVkIHUuYw0KICAgICAgICAgOTUtMDM0cjEgbTEz MiAgWDNKMyBiYWxsb3QgZmFpbGVkIDE1LTUNCiAgICAgICAgIDk1LTI4MSAgIG0xMzUgIHJldmlz ZWQgcmVzcG9uc2UsIHJld29yZGVkIGVkaXQgMywgV0c1DQogICAgICAgICAgICAgICAgICAgICAg ICAgYXBwcm92ZWQgKE4xMTYxKQ0KICAgICAgICAgOTYtICAgICAgbTEzNiAgWDNKMyBiYWxsb3Qg ZmFpbGVkIDE1LTEsIFdHNSBhcHByb3ZhbCByZW1vdmVkLg0KDQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0NClBhcnQgMzogQWN0aXZlIEZvcnRyYW4gMjAwMyBJbnRlcnByZXRhdGlvbiBS ZXF1ZXN0cw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQ0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCk5VTUJFUjogRjAzLzAw MzANClRJVExFOiAgSUVFRSBkaXZpZGUgYnkgemVybw0KS0VZV09SRFM6IElFRUUtNzU0LCBkaXZp ZGUtYnktemVybw0KREVGRUNUIFRZUEU6IEVycmF0dW0NClNUQVRVUzogSW4gRjIwMDggQ29ycmln ZW5kdW0gMw0KDQpRVUVTVElPTjoNCg0KSXMgaW5maW5pdHkgLyAwLjAgYSBkaXZpZGUgYnkgemVy byBleGNlcHRpb24/DQpJcyBOYU4gLyAwLjAgYSBkaXZpZGUgYnkgemVybyBleGNlcHRpb24/DQoN CkZvcnRyYW4gMjAwMyBkZWZpbmVzIChpbiAxNC4yKSBpbmZpbml0eSAvIHplcm8gYW5kIE5hTiAv IHplcm8NCmNhc2VzIGFzIElFRUVfRElWSURFX0JZX1pFUk8uICBJRUVFLTc1NCBkZWZpbmVzIChp biA2LjEgYW5kIDYuMikNCnRob3NlIHR3byBhcyB1bmV4Y2VwdGlvbmFsLg0KDQpBTlNXRVI6DQoN Ck9uIGFuIElFRUUtY29uZm9ybWFudCBwcm9jZXNzb3IsIHRoZXNlIGNhc2VzIGRvIG5vdCByYWlz ZSBleGNlcHRpb25zDQooc2VlIGNsYXVzZXMgNi4xIGFuZCA2LjIgb2YgSUVDIDYwNTU5OjE5ODkp Lg0KDQpUaGUgZGVmaW5pdGlvbnMgaW4gMTQuMiB3ZXJlIGludGVuZGVkIHRvIGRlc2NyaWJlIElF QyA2MDU1OToxOTg5DQpleGNlcHRpb25zIHdpdGggc3VmZmljaWVudCBsYXRpdHVkZSB0byBhbGxv dyB1c2Ugb24gbWFjaGluZXMgdGhhdCBkbw0Kbm90IGNvbmZvcm0gdG8gSUVDIDYwNTU5OjE5ODku ICBIb3dldmVyLCB0aGUgZGVmaW5pdGlvbiBvZg0KSUVFRV9ESVZJREVfQllfWkVSTyBpcyBub3Qg Y29uc2lzdGVudCB3aXRoIElFQyA2MDU1OToxOTg5Lg0KDQpGdXJ0aGVybW9yZSwgdGhlIGRlZmlu aXRpb24gb2YgdGhlIElFRUVfT1ZFUkZMT1cgZmxhZyBpcyBhbHNvIG5vdA0KY29uc2lzdGVudCB3 aXRoIElFQyA2MDU1OToxOTg5LCBiZWNhdXNlIHRoaXMgZXhjZXB0aW9uIGlzIG5vdCByYWlzZWQN CmZvciBvcGVyYXRpb25zIG9uIGluZmluaXRlIG9wZXJhbmRzLg0KDQpBZGRpdGlvbmFsbHksIGlm IHRoZSBkYXRhIHR5cGUgaXMgbm90IGFuIElFRUUgZGF0YSB0eXBlLCBidXQgdGhlDQpleGNlcHRp b24gaXMgc3VwcG9ydGVkLCB0aGUgY2lyY3Vtc3RhbmNlcyB1bmRlciB3aGljaCB0aGUgZXhjZXB0 aW9uIGlzDQpyYWlzZWQgYXJlIHByb2Nlc3NvciBkZXBlbmRlbnQuDQoNCkVkaXRzIGFyZSBwcm92 aWRlZC4NCg0KRURJVFMgdG8gMTAtMDA3cjE6DQoNCls0MDM6Ny05XSBDbGF1c2UgMTQuMywgZmly c3QgcGFyYWdyYXBoLCBmaXJzdCBidWxsZXQgKElFRUVfT1ZFUkZMT1cpLA0KICBSZXBsYWNlIHdp dGgNCiAgIklFRUVfT1ZFUkZMT1cgb2NjdXJzIGluIGFuIGludHJpbnNpYyByZWFsIGFkZGl0aW9u LCBzdWJ0cmFjdGlvbiwNCiAgIG11bHRpcGxpY2F0aW9uLCBkaXZpc2lvbiwgb3IgY29udmVyc2lv biBieSB0aGUgaW50cmluc2ljIGZ1bmN0aW9uDQogICBSRUFMLCBhcyBzcGVjaWZpZWQgYnkgSUVD IDYwNTU5OjE5ODkgaWYgSUVFRV9TVVBQT1JUX0RBVEFUWVBFIGlzDQogICB0cnVlIGZvciB0aGUg b3BlcmFuZHMgb2YgdGhlIG9wZXJhdGlvbiBvciBjb252ZXJzaW9uLCBhbmQgYXMNCiAgIGRldGVy bWluZWQgYnkgdGhlIHByb2Nlc3NvciBvdGhlcndpc2UuICBJdCBvY2N1cnMgaW4gYW4gaW50cmlu c2ljDQogICByZWFsIGV4cG9uZW50aWF0aW9uIGFzIGRldGVybWluZWQgYnkgdGhlIHByb2Nlc3Nv ci4gIEl0IG9jY3VycyBpbiBhDQogICBjb21wbGV4IG9wZXJhdGlvbiwgb3IgY29udmVyc2lvbiBi eSB0aGUgaW50cmluc2ljIGZ1bmN0aW9uIENNUExYLA0KICAgaWYgaXQgaXMgY2F1c2VkIGJ5IHRo ZSBjYWxjdWxhdGlvbiBvZiB0aGUgcmVhbCBvciBpbWFnaW5hcnkgcGFydCBvZg0KICAgdGhlIHJl c3VsdC4iDQoNCls0MDM6MTAtMTFdIENsYXVzZSAxNC4zLCBmaXJzdCBwYXJhZ3JhcGgsIHNlY29u ZCBidWxsZXQNCiAgKElFRUVfRElWSURFX0JZX1pFUk8pLA0KICBSZXBsYWNlIHdpdGgNCiAgIklF RUVfRElWSURFX0JZX1pFUk8gb2NjdXJzIGluIGEgcmVhbCBkaXZpc2lvbiBhcyBzcGVjaWZpZWQg YnkgSUVDDQogICA2MDU1OToxOTg5IGlmIElFRUVfU1VQUE9SVF9EQVRBVFlQRSBpcyB0cnVlIGZv ciB0aGUgb3BlcmFuZHMgb2YgdGhlDQogICBkaXZpc2lvbiwgYW5kIGFzIGRldGVybWluZWQgYnkg dGhlIHByb2Nlc3NvciBvdGhlcndpc2UuICBJdCBpcw0KICAgcHJvY2Vzc29yLWRlcGVuZGVudCB3 aGV0aGVyIGl0IG9jY3VycyBpbiBhIHJlYWwgZXhwb25lbnRpYXRpb24gd2l0aA0KICAgYSBuZWdh dGl2ZSBleHBvbmVudC4gIEl0IG9jY3VycyBpbiBhIGNvbXBsZXggZGl2aXNpb24gaWYgaXQgaXMN CiAgIGNhdXNlZCBieSB0aGUgY2FsY3VsYXRpb24gb2YgdGhlIHJlYWwgb3IgaW1hZ2luYXJ5IHBh cnQgb2YgdGhlDQogICByZXN1bHQuIg0KDQpbNDYyOjI0K10gQ2xhdXNlIEEuMiwgYWZ0ZXIgdGhl IGZpZnRoIGJ1bGxldCBmcm9tIHRoZSBlbmQgb2YgdGhlIGNsYXVzZQ0KICAidGhlIGV4dGVudCB0 byB3aGljaCBhIHByb2Nlc3NvciBzdXBwb3J0cyBJRUVFIGFyaXRobWV0aWMgKDE0KSIsDQogIElu c2VydCBuZXcgYnVsbGV0IHBvaW50cw0KICAiLSB0aGUgY29uZGl0aW9ucyB1bmRlciB3aGljaCBJ RUVFX09WRVJGTE9XIGlzIHJhaXNlZCBpbiBhDQogICAgIGNhbGN1bGF0aW9uIGludm9sdmluZyBu b24tSUVDIDYwNTU5OjE5ODkgZmxvYXRpbmctcG9pbnQgZGF0YTsNCiAgIC0gdGhlIGNvbmRpdGlv bnMgdW5kZXIgd2hpY2ggSUVFRV9PVkVSRkxPVyBhbmQgSUVFRV9ESVZJREVfQllfWkVSTw0KICAg ICBhcmUgcmFpc2VkIGluIGEgZmxvYXRpbmctcG9pbnQgZXhwb25lbnRpYXRpb24gb3BlcmF0aW9u Ow0KICAgLSB0aGUgY29uZGl0aW9ucyB1bmRlciB3aGljaCBJRUVFX0RJVklERV9CWV9aRVJPIGlz IHJhaXNlZCBpbiBhDQogICAgIGNhbGN1bGF0aW9uIGludm9sdmluZyBub24tSUVDIDYwNTU5OjE5 ODkgZmxvYXRpbmctcG9pbnQgZGF0YTsiDQoNClNVQk1JVFRFRCBCWTogRnJlZCBUeWRlbWFuDQoN CkhJU1RPUlk6IDA1LTEwOSAgICBtMTcxICBGMDMvMDAzMCBzdWJtaXR0ZWQNCiAgICAgICAgIDA1 LTEwOXIxICBtMTcxICBSZXZpc2VkIHRvIGluY2x1ZGUgSUVFRV9PVkVSRkxPVywNCiAgICAgICAg ICAgICAgICAgICAgICAgICBQYXNzZWQgYnkgSjMgbWVldGluZw0KICAgICAgICAgMDUtMTcwICAg IG0xNzIgIFBhc3NlZCBKMyBsZXR0ZXIgYmFsbG90ICMxMQ0KICAgICAgICAgTjE2MjIgICAgIG0x NzIgIEZhaWxlZCBXRzUgYmFsbG90IE4xNjI5DQogICAgICAgICAxMC0yMzhyMSAgbTE5MyAgUmV2 aXNlZCBhbnN3ZXIgLSBQYXNzZWQgSjMgbWVldGluZw0KICAgICAgICAgMTEtMTI5ICAgIG0xOTQg IFBhc3NlZCBhcyBhbWVuZGVkIGJ5IEozIGxldHRlciBiYWxsb3QNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgIzIyIDEwLTI1NA0KICAgICAgICAgMTEtMDA2QXIxIG0xOTYgIEFkanVzdCBlZGl0 cyB0byByZWZlcmVuY2UgMTAtMDA3cjENCiAgICAgICAgIE4xODc4ICAgICBtMTk2ICBGYWlsZWQg V0c1IGJhbGxvdCAxIE4xODc2DQogICAgICAgICAxMy0yNDYgICAgbTIwMCAgUmV2aXNlZCAtIHBh c3NlZCBieSBKMyBtZWV0aW5nDQogICAgICAgICAxMy0yNjIgICAgbTIwMSAgUGFzc2VkIEozIGxl dHRlciBiYWxsb3QgIzI4IDEzLTI1NXIxDQogICAgICAgICBOMTk5MCAgICAgbTIwMiAgUGFzc2Vk IGJ5IFdHNSBiYWxsb3QgNiBOMTk4Ny84OC85MA0KICAgICAgICAgTjIwMDIgICAgIG0yMDMgIElu IEYyMDA4IENvcnJpZ2VuZHVtIDMNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpOVU1CRVI6IEYwMy8wMDQy DQpUSVRMRTogIElFRUUgZnVubnkgdmFsdWVzIGFuZCBTdGFuZGFyZCByZWFsIGdlbmVyaWMgaW50 cmluc2ljDQogICAgICAgIHByb2NlZHVyZXMNCktFWVdPUkRTOiBJRUVFLTc1NCwgcmVhbCBtYXRo IGxpYnJhcnkNCkRFRkVDVCBUWVBFOiBFcnJhdHVtDQpTVEFUVVM6IEozIGNvbnNpZGVyYXRpb24g aW4gcHJvZ3Jlc3MNCg0KUVVFU1RJT046DQoNCklzIGFuIGluZmluaXRlIHJlc3VsdCBmcm9tIGFu IGluZmluaXRlIGFyZ3VtZW50IHRvIGEgcmVhbCBtYXRoDQpmdW5jdGlvbiBleGNlcHRpb25hbCAo cmFpc2VzIGFuIGV4Y2VwdGlvbik/DQoNCklzIGEgTmFOIHJlc3VsdCBmcm9tIGEgTmFOIGFyZ3Vt ZW50IHRvIGEgcmVhbCBtYXRoIGZ1bmN0aW9uDQpleGNlcHRpb25hbCAocmFpc2VzIGFuIGV4Y2Vw dGlvbik/DQoNCldoYXQgYXJlIHRoZSByZXN1bHRzICh2YWx1ZSBhbmQgZXhjZXB0aW9ucykgZm9y IHRoZSBmb2xsb3dpbmcNCihzZWN0aW9uIDEzLjcuKikgcmVhbCBtYXRoIGxpYnJhcnkgZnVuY3Rp b25zIFtzdWdnZXN0ZWQgcmVzdWx0cw0KZm9yIG1vc3QgYXJlIGluY2x1ZGVkOyBubyBleGNlcHRp b24gaGFwcGVucyB1bmxlc3Mgc3BlY2lmaWVkXToNCg0KIEFCUygtMC4wKSByZXR1cm5zICswLjAN CiBBQlMoKy8taW5maW5pdHkpIHJldHVybnMgK2luZmluaXR5DQogQUJTKE5hTikgcmV0dXJucyBh IE5hTg0KDQogQUNPUyh4KSwgd2hlcmUgfHh8PjEsIHJldHVybnMgYSBOYU4gYW5kIHJhaXNlcyBp bnZhbGlkDQogQUNPUyhOYU4pIHJldHVybnMgYSBOYU4NCg0KIEFJTlQoLTAuMCkgcmV0dXJucyAt MC4wDQogQUlOVChOYU4pIHJldHVybnMgYSBOYU4NCiBBSU5UKCtpbmZpbml0eSkgcmV0dXJucyAr aW5maW5pdHkNCiBBSU5UKC1pbmZpbml0eSkgcmV0dXJucyAtaW5maW5pdHkNCg0KIEFOSU5UKC0w LjApIHJldHVybnMgLTAuMA0KIEFOSU5UKE5hTikgcmV0dXJucyBhIE5hTg0KIEFOSU5UKCtpbmZp bml0eSkgcmV0dXJucyAraW5maW5pdHkNCiBBTklOVCgtaW5maW5pdHkpIHJldHVybnMgLWluZmlu aXR5DQoNCiBBU0lOKHgpLCB3aGVyZSB8eHw+MSwgcmV0dXJucyBhIE5hTiBhbmQgcmFpc2VzIGlu dmFsaWQNCiBBU0lOKE5hTikgcmV0dXJucyBhIE5hTg0KDQogQVRBTigtMC4wKSByZXR1cm5zIC0w LjANCiBBVEFOKCtpbmZpbml0eSkgcmV0dXJucyArcGkvMg0KIEFUQU4oLWluZmluaXR5KSByZXR1 cm5zIC1waS8yDQogQVRBTihOYU4pIHJldHVybnMgYSBOYU4NCiBBVEFOMihOYU4seCkgcmV0dXJu cyBhIE5hTg0KIEFUQU4yKHksTmFOKSByZXR1cm5zIGEgTmFODQogQVRBTjIoKy8tMC4wLCAtMC4w KSByZXR1cm5zICsvLXBpIChhbmQgbm90IHJhaXNlIGludmFsaWQpDQogQVRBTjIoKy8tMC4wLCAr MC4wKSByZXR1cm5zICsvLTAuMCAoYW5kIG5vdCByYWlzZSBpbnZhbGlkKQ0KIEFUQU4yKCsvLTAu MCwgeCkgcmV0dXJucyArLy1waSBmb3IgeCA8IDAuMA0KIEFUQU4yKCsvLTAuMCwgeCkgcmV0dXJu cyArLy0wLjAgZm9yIHggPiAwLjANCiBBVEFOMih5LCArLy0wLjApIHJldHVybnMgLXBpLzIgZm9y IHkgPCAwLjANCiAgICAgIChhbmQgbm90IHJhaXNlIGRpdmlkZSBieSB6ZXJvKQ0KIEFUQU4yKHks ICsvLTAuMCkgcmV0dXJucyArcGkvMiBmb3IgeSA+IDAuMA0KICAgICAgKGFuZCBub3QgcmFpc2Ug ZGl2aWRlIGJ5IHplcm8pDQogQVRBTjIoKy8teSwgLWluZmluaXR5KSByZXR1cm5zICsvLXBpIGZv ciBmaW5pdGUgeSA+IDAuMA0KIEFUQU4yKCsvLXksICtpbmZpbml0eSkgcmV0dXJucyArLy0wLjAg Zm9yIGZpbml0ZSB5IDwgMC4wDQogQVRBTjIoKy8taW5maW5pdHksIHgpIHJldHVybnMgKy8tcGkv MiBmb3IgZmluaXRlIHgNCiBBVEFOMigrLy1pbmZpbml0eSwgLWluZmluaXR5KSByZXR1cm5zICsv LTNwaS80DQogICAgICAoYW5kIG5vdCByYWlzZSBpbnZhbGlkKQ0KIEFUQU4yKCsvLWluZmluaXR5 LCAraW5maW5pdHkpIHJldHVybnMgKy8tcGkvNA0KICAgICAgKGFuZCBub3QgcmFpc2UgaW52YWxp ZCkNCg0KIENFSUxJTkcoKy8taW5maW5pdHkpIHJldHVybnMgKy8taW5maW5pdHkNCiBDRUlMSU5H KC0wLjApIHJldHVybnMgLTAuMA0KIENFSUxJTkcoTmFOKSByZXR1cm5zIGEgTmFODQoNCiBDT1Mo Ky8tMC4wKSByZXR1cm5zIDENCiBDT1MoTmFOKSByZXR1cm5zIGEgTmFODQogQ09TKCsvLWluZmlu aXR5KSByZXR1cm5zIGEgTmFOIGFuZCByYWlzZXMgaW52YWxpZA0KDQogQ09TSCgrLy0wLjApIHJl dHVybnMgMQ0KIENPU0goTmFOKSByZXR1cm5zIGEgTmFODQogQ09TSCgrLy1pbmZpbml0eSkgcmV0 dXJucyBhICtpbmZpbml0eSBESU0oTmFOLHkpIHJldHVybnMgYSBOYU4NCg0KIERJTSh4LE5hTikg cmV0dXJucyBhIE5hTg0KIERJTSgrLy0wLjAsICsvLTAuMCkgcmV0dXJucyBhICswLjANCiBESU0o K2luZmluaXR5LCAtaW5maW5pdHkpIHJldHVybnMgYSBOYU4gYW5kIHJhaXNlcyBpbnZhbGlkDQog RElNKCtpbmZpbml0eSwgK2luZmluaXR5KSByZXR1cm5zICswLjANCiBESU0oLWluZmluaXR5LCAt aW5maW5pdHkpIHJldHVybnMgKzAuMA0KIERJTSgtaW5maW5pdHksICtpbmZpbml0eSkgcmV0dXJu cyArMC4wDQoNCiBEUFJPRChOYU4seSkgcmV0dXJucyBhIE5hTg0KIERQUk9EKHgsTmFOKSByZXR1 cm5zIGEgTmFODQogRFBST0QoKy8tMC4wLCArLy1pbmZpbml0eSkgcmV0dXJucyBhIE5hTiBhbmQg cmFpc2VzIGludmFsaWQNCiBEUFJPRCgrLy1pbmZpbml0eSwgKy8tMC4wKSByZXR1cm5zIGEgTmFO IGFuZCByYWlzZXMgaW52YWxpZA0KIERQUk9EKCsvLWluZmluaXR5LCArLy1pbmZpbml0eSkgcmV0 dXJucyBhbiBpbmZpbml0eSB3aXRoIGl0cyBzaWduDQogYmVpbmcgdGhlIFhPUiBvZiB0aGUgYXJn dW1lbnRzLCBhbmQgcmFpc2VzIG5vIGV4Y2VwdGlvbnMuDQogRFBST0QoKy8tMC4wLCArLy0wLjAp IHJldHVybnMgYSB6ZXJvIHdpdGggaXRzIHNpZ24NCiBiZWluZyB0aGUgWE9SIG9mIHRoZSBhcmd1 bWVudHMsIGFuZCByYWlzZXMgbm8gZXhjZXB0aW9ucy4NCg0KIEVYUChOYU4pIHJldHVybnMgYSBO YU4NCiBFWFAoKy8tMC4wKSByZXR1cm5zIDENCiBFWFAoLWluZmluaXR5KSByZXR1cm5zICswLjAN CiBFWFAoK2luZmluaXR5KSByZXR1cm5zICtpbmZpbml0eQ0KDQogRVhQT05FTlQoKy8tMC4wKSBy ZXR1cm5zIDAgW3Nob3VsZCBiZSAtSFVHRSgwKV0gYW5kIHJhaXNlcyBpbnZhbGlkDQogRVhQT05F TlQoTmFOKSByZXR1cm5zIEhVR0UoMCkgYW5kIHJhaXNlcyBpbnZhbGlkDQogRVhQT05FTlQoKy8t SU5GKSByZXR1cm5zIEhVR0UoMCkgYW5kIHJhaXNlcyBpbnZhbGlkDQogRVhQT05FTlQoZGVub3Jt YWwpIHJldHVybnMgdGhlIHZhbHVlIGFzIGlmIHRoZSBudW1iZXIgd2VyZQ0KICAgICAgICAgbm9y bWFsaXplZCBhbmQgdGhlIGV4cG9uZW50IHJhbmdlIHdlcmUgdW5ib3VuZGVkDQogSWYgL2UvIGlz IG5vdCByZXByZXNlbnRhYmxlIGFzIGEgZGVmYXVsdCBpbnRlZ2VyLCBpbnZhbGlkIGlzIHJhaXNl ZA0KICAgYW5kIHNpZ24oL2UvKSpIVUdFKDApIHNob3VsZCBiZSByZXR1cm5lZC4NCg0KIEZMT09S KE5hTikgcmV0dXJucyBhIE5hTg0KIEZMT09SKC0wLjApIHJldHVybnMgLTAuMA0KIEZMT09SKCsv LWluZmluaXR5KSByZXR1cm5zICsvLSBpbmZpbml0eQ0KDQogRlJBQ1RJT04oLTAuMCkgcmV0dXJu cyAtMC4wDQogRlJBQ1RJT04oTmFOKSByZXR1cm5zIGEgTmFODQogRlJBQ1RJT04oZGVub3JtYWwp IHJldHVybnMgdGhlIHZhbHVlIGFzIGlmIHRoZSBudW1iZXIgd2VyZQ0KICAgICAgICAgbm9ybWFs aXplZCBhbmQgdGhlIGV4cG9uZW50IHJhbmdlIHdlcmUgdW5ib3VuZGVkDQogRlJBQ1RJT04oKy8t aW5maW5pdHkpIHJldHVybnMgKy8tIGluZmluaXR5DQoNCiBJTlQoTmFOKSByZXR1cm5zIGFuIHVu c3BlY2lmaWVkIHZhbHVlIGFuZCByYWlzZXMgaW52YWxpZA0KIElOVCgrLy1pbmZpbml0eSkgcmV0 dXJucyBhbiB1bnNwZWNpZmllZCB2YWx1ZSBhbmQgcmFpc2VzDQogICAgaW52YWxpZA0KIElOVCgr Ly1sYXJnZSksIHdoZXJlIGxhcmdlIGNhbm5vdCBiZSByZXByZXNlbnRlZCBhcyBhbiBpbnRlZ2Vy LA0KICAgIHJldHVybnMgYW4gdW5zcGVjaWZpZWQgdmFsdWUgYW5kIHJhaXNlcyBpbnZhbGlkDQoN CiBMT0coKy8tMC4wKSByZXR1cm5zIC1pbmZpbml0eSBhbmQgcmFpc2VzIGRpdmlkZS1ieS16ZXJv DQogTE9HKE5hTikgcmV0dXJucyBhIE5hTg0KIExPRygxLjApIHJldHVybnMgKzAuMA0KIExPRyh4 KSwgZm9yIHggPCAwLCByZXR1cm5zIGEgTmFOIGFuZCByYWlzZXMgaW52YWxpZA0KIExPQigraW5m aW5pdHkpIHJldHVybnMgK2luZmluaXR5DQoNCiBMT0cxMCgrLy0wLjApIHJldHVybnMgLWluZmlu aXR5IGFuZCByYWlzZXMgZGl2aWRlLWJ5LXplcm8NCiBMT0cxMChOYU4pIHJldHVybnMgYSBOYU4N CiBMT0cxMCgxLjApIHJldHVybnMgKzAuMA0KIExPRzEwKHgpLCBmb3IgeCA8IDAsIHJldHVybnMg YSBOYU4gYW5kIHJhaXNlcyBpbnZhbGlkDQogTE9HMTAoK2luZmluaXR5KSByZXR1cm5zICtpbmZp bml0eQ0KDQogTUFYKE5hTixOYU4pIHJldHVybnMgYSBOYU4NCiBNQVgoTmFOLHkpIHJldHVybnMg eSBbc29tZSBzYXkgaXQgc2hvdWxkIGJlIE5hTl0NCiBNQVgoeCxOYU4pIHJldHVybnMgeCBbc29t ZSBzYXkgaXQgc2hvdWxkIGJlIE5hTl0NCiBNQVgoLTAuMCwrMC4wKSByZXR1cm5zICswLjANCiBN QVgoLTAuMCwtMC4wKSByZXR1cm5zIC0wLjANCiBNQVgoK2luZmluaXR5LHkpIHJldHVybnMgK2lu ZmluaXR5DQogTUFYKC1pbmZpbml0eSx5KSByZXR1cm5zIHkNCg0KIE1JTihOYU4sTmFOKSByZXR1 cm5zIGEgTmFODQogTUlOKE5hTix5KSByZXR1cm5zIHkgW3NvbWUgc2F5IGl0IHNob3VsZCBiZSBO YU5dDQogTUlOKHgsTmFOKSByZXR1cm5zIHggW3NvbWUgc2F5IGl0IHNob3VsZCBiZSBOYU5dDQog TUlOKC0wLjAsKzAuMCkgcmV0dXJucyAtMC4wDQogTUlOKC0wLjAsLTAuMCkgcmV0dXJucyAtMC4w DQogTUlOKC1pbmZpbml0eSx5KSByZXR1cm5zIC1pbmZpbml0eQ0KIE1JTigraW5maW5pdHkseSkg cmV0dXJucyB5DQoNCiBNT0QoTmFOLHkpIHJldHVybnMgYSBOYU4NCiBNT0QoeCxOYU4pIHJldHVy bnMgYSBOYU4NCiBNT0QoKy8taW5maW5pdHkseSkgcmV0dXJucyBhIE5hTiBhbmQgcmFpc2VzIGlu dmFsaWQNCiBNT0QoKy8taW5maW5pdHksKy8taW5maW5pdHkpIHJldHVybnMgYSBOYU4gYW5kIHJh aXNlcyBpbnZhbGlkDQogTU9EKHgsKy8tMC4wKSByZXR1cm5zIGEgTmFOIGFuZCByYWlzZXMgaW52 YWxpZA0KIE1PRCgrLy0wLjAsKy8tMC4wKSByZXR1cm5zIGEgTmFOIGFuZCByYWlzZXMgaW52YWxp ZA0KDQogTU9EVUxPKE5hTix5KSByZXR1cm5zIGEgTmFODQogTU9EVUxPKHgsTmFOKSByZXR1cm5z IGEgTmFODQogTU9EVUxPKCsvLWluZmluaXR5LHkpIHJldHVybnMgYSBOYU4gYW5kIHJhaXNlcyBp bnZhbGlkDQogTU9EVUxPKCsvLWluZmluaXR5LCsvLWluZmluaXR5KSByZXR1cm5zIGEgTmFOIGFu ZCByYWlzZXMgaW52YWxpZA0KIE1PRFVMTyh4LCsvLTAuMCkgcmV0dXJucyBhIE5hTiBhbmQgcmFp c2VzIGludmFsaWQNCiBNT0RVTE8oKy8tMC4wLCsvLTAuMCkgcmV0dXJucyBhIE5hTiBhbmQgcmFp c2VzIGludmFsaWQNCg0KIE5FQVJFU1QoTmFOLHkpIHJldHVybnMgYSBOYU4NCiBORUFSRVNUKHgs TmFOKSByZXR1cm5zIGEgTmFODQogTkVBUkVTVCh4LCsvLTAuMCkgcmV0dXJucyBhIE5hTiBhbmQg cmFpc2VzIGludmFsaWQgIFt3aHk/Pz9dDQogTkVBUkVTVCgraW5maW5pdHksK251bSkgcmV0dXJu cyAraW5maW5pdHkgPz8/DQogTkVBUkVTVCgraW5maW5pdHksLW51bSkgcmV0dXJucyArbWF4aW11 bSBmaW5pdGUgbnVtYmVyDQogTkVBUkVTVCgtaW5maW5pdHksK251bSkgcmV0dXJucyAtbWF4aW11 bSBmaW5pdGUgbnVtYmVyDQogTkVBUkVTVCgtaW5maW5pdHksLW51bSkgcmV0dXJucyAtaW5maW5p dHkgPz8/DQoNCiBOSU5UKE5hTikgcmV0dXJucyBhbiB1bnNwZWNpZmllZCB2YWx1ZSBhbmQgcmFp c2VzIGludmFsaWQNCiBOSU5UKCsvLWluZmluaXR5KSByZXR1cm5zIGFuIHVuc3BlY2lmaWVkIHZh bHVlIGFuZCByYWlzZXMNCiAgICAgaW52YWxpZA0KIE5JTlQoKy8tbGFyZ2UpLCB3aGVyZSBsYXJn ZSBjYW5ub3QgYmUgcmVwcmVzZW50ZWQgYXMgYW4NCiAgICAgaW50ZWdlciwgcmV0dXJucyBhbiB1 bnNwZWNpZmllZCB2YWx1ZSBhbmQgcmFpc2VzIGludmFsaWQNCg0KIFJSU1BBQ0lORyhOYU4pIHJl dHVybnMgYSBOYU4NCiBSUlNQQUNJTkcoKy8taW5maW5pdHkpIHJldHVybnMgKy8taW5maW5pdHkN CiAgICAgICAgICBbZGlmZmVycyBmcm9tIGN1cnJlbnQgRjIwMDNdDQogUlJTUEFDSU5HKCsvLTAu MCkgcmV0dXJucyArMC4wDQogUlJTUEFDSU5HKCsvLWRlbm9ybWFsKSByZXR1cm5zID8/Pw0KDQog U0NBTEUoTmFOLHkpIHJldHVybnMgYSBOYU4NCiBTQ0FMRSgrLy1pbmZpbml0eSx5KSByZXR1cm5z ICsvLWluZmluaXR5DQogU0NBTEUoLTAuMCx5KSByZXR1cm5zIC0wLjANCg0KIFNFVF9FWFBPTkVO VChOYU4seSkgcmV0dXJucyBhIE5hTg0KIFNFVF9FWFBPTkVOVCgrLy1pbmZpbml0eSx5KSByZXR1 cm5zICsvLWluZmluaXR5DQogU0VUX0VYUE9ORU5UKC0wLjAseSkgcmV0dXJucyAtMC4wDQogU0VU X0VYUE9ORU5UKGRlbm9ybWFsLHkpIHJldHVybnMgPz8/DQoNCiBTSUdOKE5hTix5KSwgd2hlcmUg MCA8IHksIHJldHVybnMgdGhlIHNhbWUgTmFOLA0KICAgICAgYnV0IHdpdGggdGhlIHNpZ24gYml0 IGNsZWFyZWQuDQogU0lHTihOYU4seSksIHdoZXJlIHkgPCAwLCByZXR1cm5zIHRoZSBzYW1lIE5h TiwNCiAgICAgIGJ1dCB3aXRoIHRoZSBzaWduIGJpdCBzZXQuDQoNCiBTSU4oTmFOKSByZXR1cm5z IGEgTmFODQogU0lOKCsvLWluZmluaXR5KSByZXR1cm5zIGEgTmFOIGFuZCByYWlzZXMgaW52YWxp ZA0KIFNJTigtMC4wKSByZXR1cm5zIC0wLjANCg0KIFNJTkgoTmFOKSByZXR1cm5zIGEgTmFODQog U0lOSCgrLy1pbmZpbml0eSkgcmV0dXJucyArLy0gaW5maW5pdHkNCiBTSU5IKC0wLjApIHJldHVy bnMgLTAuMA0KDQogU1BBQ0lORyhOYU4pIHJldHVybnMgYSBOYU4NCiBTUEFDSU5HKCsvLWluZmlu aXR5KSByZXR1cm5zICtpbmZpbml0eQ0KIFNQQUNJTkcoLTAuMCkgcmV0dXJucyBUSU5ZKCswLjAp DQogU1BBQ0lORyhkZW5vcm1hbCkgcmV0dXJucyBUSU5ZKCswLjApID8/Pw0KDQogU1FSVChOYU4p IHJldHVybnMgYSBOYU4NCiBTUVJUKCtpbmZpbml0eSkgcmV0dXJucyAraW5maW5pdHkNCiBTUVJU KC0wLjApIHJldHVybnMgLTAuMA0KIFNRUlQoeCksIHdoZXJlIHggPCAwLjAsIHJldHVybnMgYSBO YU4gYW5kIHJhaXNlcyBpbnZhbGlkDQoNCiBUQU4oTmFOKSByZXR1cm5zIGEgTmFODQogVEFOKCsv LWluZmluaXR5KSByZXR1cm5zIGEgTmFOIGFuZCByYWlzZXMgaW52YWxpZA0KIFRBTigtMC4wKSBy ZXR1cm5zIC0wLjANCg0KIFRBTkgoTmFOKSByZXR1cm5zIGEgTmFODQogVEFOSCgrLy1pbmZpbml0 eSkgcmV0dXJucyArLy0xLjANCiBUQU5IKC0wLjApIHJldHVybnMgLTAuMA0KDQoNCjEzLjcgWzMw MDoxMy0xNV0gaW5jb3JyZWN0bHkgcmVxdWlyZXMgYW4gaW5maW5pdGUgcmVzdWx0IG9yIGENCk5h TiByZXN1bHQgdG8gYWx3YXlzIHNpZ25hbCBzb21lIElFRUUgZXhjZXB0aW9uLg0KDQpDb25zaWRl ciBjaGFuZ2luZyBbMzAwOjEzXSAiaW5maW5pdGUgcmVzdWx0IiB0byAiaW5maW5pdGUgcmVzdWx0 DQooZnJvbSBmaW5pdGUgYXJndW1lbnRzKSIuICBSZWFzb246IElFRUUtNzU0IG1hdGhlbWF0aWNh bA0Kb3BlcmF0aW9ucyBvbiBpbmZpbml0eSB0aGF0IHByb2R1Y2UgYW4gaW5maW5pdHkgYXJlDQp1 bmV4Y2VwdGlvbmFsLg0KDQpDb25zaWRlciBjaGFuZ2luZyBbMzAwOjE0XSAiTmFOIHJlc3VsdCIg dG8gIk5hTiByZXN1bHQgKGZyb20NCm5vbi1OYU4gYXJndW1lbnRzKSIuICBSZWFzb246IElFRUUt NzU0IG1hdGhlbWF0aWNhbCBvcGVyYXRpb25zDQpvbiBxdWlldCBOYU4gb3BlcmFuZHMgdGhhdCBw cm9kdWNlIGEgcXVpZXQgTmFOIHJlc3VsdCBhcmUNCnVuZXhjZXB0aW9uYWwuDQoNCkNvbnNpZGVy IGFkZGluZyB0byAxMy43IFszMDA6MTUrXSBzb21ldGhpbmcgYWxvbmcgdGhlIGxpbmVzIG9mOg0K IlVubGVzcyBzcGVjaWZpZWQgb3RoZXJ3aXNlLCBhIG1hdGggZnVuY3Rpb24gd2l0aCBOYU4NCmFy Z3VtZW50KHMpIHNoYWxsIHJldHVybiBhIE5hTiwgd2hpY2ggc2hvdWxkIGJlIG9uZSBvZiB0aGUg TmFODQphcmd1bWVudHMuIiAgVGhpcyBhbGxvd3Mgbm90IGhhdmluZyB0byBzcGVjaWZ5IHRoZSBy ZXN1bHRzIGZvcg0KZWFjaCBzcGVjaWZpYyBtYXRoIGZ1bmN0aW9uLg0KDQpDb25zaWRlciBhZGRp bmcgdGhlIGFib3ZlIHN1Z2dlc3RlZCBjYXNlcyB0byBlYWNoIG9mIHRoZSAxMy43LioNCmZ1bmN0 aW9ucywgcGVyaGFwcywgd2l0aCBhIGJvbGQgZmFjZSBJRUVFIHN1Yi1oZWFkaW5nLg0KDQpBTlNX RVI6DQoNClRoZSBwZW51bHRpbWF0ZSBzZW50ZW5jZXMgb2YgMTMuNyB3YXMgaW50ZW5kZWQgZm9y IHRoZSBjYXNlDQp3aGVyZSBhbGwgYXJndW1lbnRzIG9uIGVudHJ5IGhhdmUgbm9ybWFsIG9yIGRl bm9ybWFsIHZhbHVlcw0KYW5kIGVkaXRzIGFyZSBzdXBwbGllZCB0byBjb3JyZWN0IHRoaXMuDQoN ClRvIHNwZWNpZnkgdGhlIHJlc3VsdHMgb2YgYWxsIHRoZSBpbnRyaW5zaWNzIGZvciBub24tbm9y bWFsDQp2YWx1ZXMgaXMgYmV5b25kIHRoZSBzY29wZSBvZiBhbiBpbnRlcnByZXRhdGlvbi4gUGVy aGFwcyB0aGlzDQpzaG91bGQgYmUgY29uc2lkZXJlZCBmb3IgYW4gZXh0ZW5zaW9uIHRoYXQgaXMg YWRvcHRlZCBmb3IgdGhlDQpuZXh0IHJldmlzaW9uIG9mIHRoZSBzdGFuZGFyZC4gTWVhbndoaWxl LCBndWlkYW5jZSBpcyBwcm92aWRlZA0KYnkgdGhlIHNlY29uZCBhbmQgdGhpcmQgcGFyYWdyYXBo cyBvZiAxNC44LCB3aGljaCBzdGF0ZQ0KDQoiVGhlIGlucXVpcnkgZnVuY3Rpb24gSUVFRV9TVVBQ T1JUX05BTiBpcyBwcm92aWRlZCB0byBpbnF1aXJlDQp3aGV0aGVyIHRoZSBwcm9jZXNzb3Igc3Vw cG9ydHMgSUVFRSBOYU5zLiBXaGVyZSB0aGVzZSBhcmUgc3VwcG9ydGVkLA0KdGhlaXIgYmVoYXZp b3IgZm9yIHVuYXJ5IGFuZCBiaW5hcnkgb3BlcmF0aW9ucywgaW5jbHVkaW5nDQp0aG9zZSBkZWZp bmVkIGJ5IGludHJpbnNpYyBmdW5jdGlvbnMgYW5kIGJ5IGZ1bmN0aW9ucyBpbiBpbnRyaW5zaWMN Cm1vZHVsZXMsIHNoYWxsIGJlIGNvbnNpc3RlbnQgd2l0aCB0aGUgc3BlY2lmaWNhdGlvbnMgaW4g dGhlIElFRUUNCkludGVybmF0aW9uYWwgU3RhbmRhcmQuDQoNClRoZSBpbnF1aXJ5IGZ1bmN0aW9u IElFRUVfU1VQUE9SVF9JTkYgaXMgcHJvdmlkZWQgdG8gaW5xdWlyZSB3aGV0aGVyDQp0aGUgcHJv Y2Vzc29yIHN1cHBvcnRzIElFRUUgaW5maW5pdGllcy4gV2hlcmUgdGhlc2UgYXJlIHN1cHBvcnRl ZCwNCnRoZWlyIGJlaGF2aW9yIGZvciB1bmFyeSBhbmQgYmluYXJ5IG9wZXJhdGlvbnMsIGluY2x1 ZGluZw0KdGhvc2UgZGVmaW5lZCBieSBpbnRyaW5zaWMgZnVuY3Rpb25zIGFuZCBieSBmdW5jdGlv bnMgaW4gaW50cmluc2ljDQptb2R1bGVzLCBzaGFsbCBiZSBjb25zaXN0ZW50IHdpdGggdGhlIHNw ZWNpZmljYXRpb25zIGluIHRoZSBJRUVFDQpJbnRlcm5hdGlvbmFsIFN0YW5kYXJkLiAiDQoNCg0K RURJVFM6DQoNClBhZ2UgYW5kIGxpbmUgbnVtYmVycyByZWZlciB0byAwNC0wMDcuDQoNClszMDA6 MTMmMTRdIFN1YmNsYXVzZSAxMy43LiBJbiB0aGUgcGVudWx0aW1hdGUgc2VudGVuY2UsIHJlcGxh Y2UNCiJJZiIgYnkgIklmIHRoZSB2YWx1ZXMgb2YgYWxsIGlucHV0IGFyZ3VtZW50cyBhcmUgbm9y bWFsIG9yDQpkZW5vcm1hbCBhbmQiIGFuZCByZXBsYWNlICJpZiIgYnkgImlmIHRoZSB2YWx1ZXMg b2YgYWxsIGlucHV0DQphcmd1bWVudHMgYXJlIG5vcm1hbCBvciBkZW5vcm1hbCBhbmQiDQoNClNV Qk1JVFRFRCBCWTogRnJlZCBUeWRlbWFuDQoNCkhJU1RPUlk6IDA1LTEyMXIxICBtMTcxICBGMDMv MDA0MiBzdWJtaXR0ZWQNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpOVU1CRVI6IEYwMy8wMDQ3DQpUSVRM RTogUG9seW1vcnBoaWMgYXJndW1lbnRzIHRvIGludHJpbnNpYyBwcm9jZWR1cmVzDQpLRVlXT1JE UzogcG9seW1vcnBoaXNtLCBpbnRyaW5zaWMgcHJvY2VkdXJlcw0KREVGRUNUIFRZUEU6IEludGVy cHJldGF0aW9uDQpTVEFUVVM6IE5vIGVkaXRzIGluIEYyMDA4IENvcnJpZ2VuZHVtIDMNCg0KUVVF U1RJT046DQoNClRoZSBkZXNjcmlwdGlvbnMgb2YgdGhlIGludHJpbnNpYyBwcm9jZWR1cmVzIG9m dGVuIHVzZSB0aGUgdGVybSAidHlwZSINCndpdGhvdXQgcXVhbGlmaWNhdGlvbi4gIEl0IGlzIHVu Y2xlYXIgd2hldGhlciB0aGV5IG1lYW4gImRlY2xhcmVkDQp0eXBlIiBvciAiZHluYW1pYyB0eXBl Ii4gIElmIHRoZXkgbWVhbiAiZHluYW1pYyB0eXBlIiwgdGhlbiB0aGlzIHdvdWxkDQphcHBlYXIg dG8gYWxsb3cgdW5saW1pdGVkIHBvbHltb3JwaGljIGFyZ3VtZW50cyB0byBpbnRyaW5zaWMNCnBy b2NlZHVyZXMgbGlrZSBBQlMgYW5kIFNJTi4gIFJlc29sdXRpb24gb2YgZ2VuZXJpYyBpbnRyaW5z aWMNCnByb2NlZHVyZXMgaW4gdGhpcyBjYXNlIHdvdWxkIGNyZWF0ZSBhbiB1bmR1ZSAoYW5kIGxp a2VseSB1bmludGVuZGVkKQ0KYnVyZGVuIG9uIHRoZSBwcm9jZXNzb3IsIGFuZCB0aGUgZGVjbGFy ZWQgdHlwZSBvZiB0aGUgcmVzdWx0IG9mIHN1Y2ggYQ0KZnVuY3Rpb24gY2FsbCB3b3VsZCBiZSB1 bmNsZWFyIGFzIHdlbGwuDQoNClF1ZXN0aW9uIDE6DQpBcmUgdGhlIGFyZ3VtZW50cyBvZiB0aGUg aW50cmluc2ljIGZ1bmN0aW9ucyBBTExPQ0FURUQsIEFTU09DSUFURUQsDQpMQk9VTkQsIFNIQVBF LCBTSVpFLCBhbmQgVUJPVU5EIHBlcm1pdHRlZCB0byBiZSBwb2x5bW9ycGhpYz8NCg0KUXVlc3Rp b24gMjoNCihhKSBJcyB0aGUgQVJSQVkgYXJndW1lbnQgb2YgdGhlIGludHJpbnNpYyBmdW5jdGlv biBDU0hJRlQgcGVybWl0dGVkDQogICAgdG8gYmUgcG9seW1vcnBoaWM/DQpJZiBzbzoNCihiKSBJ ZiB0aGUgYXJndW1lbnQgaXMgcG9seW1vcnBoaWMsIGlzIHRoZSByZXN1bHQgcG9seW1vcnBoaWM/ ICBXaGF0DQogICAgYXJlIHRoZSBkZWNsYXJlZCBhbmQgZHluYW1pYyB0eXBlcyBvZiB0aGUgcmVz dWx0Pw0KDQpRdWVzdGlvbiAzOg0KKGEpIEFyZSB0aGUgQVJSQVkgYW5kIEJPVU5EQVJZIGFyZ3Vt ZW50cyBvZiB0aGUgaW50cmluc2ljIGZ1bmN0aW9uDQogICAgRU9TSElGVCBwZXJtaXR0ZWQgdG8g YmUgcG9seW1vcnBoaWM/DQpJZiBzbzoNCihiKSBJZiBvbmUgb2YgdGhlc2UgYXJndW1lbnRzIGlz IHBvbHltb3JwaGljLCB0aGVuIG11c3QgdGhlIG90aGVyIGJlDQogICAgcG9seW1vcnBoaWM/DQoo YykgRG8gdGhlIHJlcXVpcmVtZW50cyBvbiB0aGVpciB0eXBlcyByZWZlciB0byB0aGVpciBkZWNs YXJlZCB0eXBlcw0KICAgIG9yIGR5bmFtaWMgdHlwZXM/DQooZCkgSWYgZWl0aGVyIGFyZ3VtZW50 IGlzIHBvbHltb3JwaGljLCBpcyB0aGUgcmVzdWx0IHBvbHltb3JwaGljPyBXaGF0DQogICAgYXJl IHRoZSBkZWNsYXJlZCBhbmQgZHluYW1pYyB0eXBlcyBvZiB0aGUgcmVzdWx0Pw0KDQpRdWVzdGlv biA0Og0KKGEpIEFyZSB0aGUgQSBhbmQgTU9MRCBhcmd1bWVudHMgb2YgdGhlIGludHJpbnNpYyBm dW5jdGlvbg0KICAgIEVYVEVORFNfVFlQRV9PRiBwZXJtaXR0ZWQgdG8gYmUgcG9seW1vcnBoaWM/ DQpJZiBzbzoNCihiKSBJZiBvbmUgb2YgdGhlc2UgYXJndW1lbnRzIGlzIHBvbHltb3JwaGljLCBt dXN0IHRoZSBvdGhlciBiZQ0KICAgIHBvbHltb3JwaGljPw0KKGMpIERvIHRoZSByZXF1aXJlbWVu dHMgb24gdGhlaXIgdHlwZXMgcmVmZXIgdG8gdGhlaXIgZGVjbGFyZWQgdHlwZXMNCiAgICBvciBk eW5hbWljIHR5cGVzPw0KDQpRdWVzdGlvbiA1OiBUaGlzIHF1ZXN0aW9uIGlzIGRlZmVycmVkIHRv IGludGVycCBGMDgvMDEwMi4NCihhKSBBcmUgdGhlIFRTT1VSQ0UgYW5kIEZTT1VSQ0UgYXJndW1l bnRzIG9mIHRoZSBpbnRyaW5zaWMgZnVuY3Rpb24NCiAgICBNRVJHRSBwZXJtaXR0ZWQgdG8gYmUg cG9seW1vcnBoaWM/DQpJZiBzbzoNCihiKSBJZiBvbmUgb2YgdGhlc2UgYXJndW1lbnRzIGlzIHBv bHltb3JwaGljLCBtdXN0IHRoZSBvdGhlciBiZQ0KICAgIHBvbHltb3JwaGljPw0KKGMpIERvIHRo ZSByZXF1aXJlbWVudHMgb24gdGhlIHR5cGVzIG9mIHRoZSBhcmd1bWVudHMgcmVmZXIgdG8gdGhl aXINCiAgICBkZWNsYXJlZCB0eXBlcyBvciBkeW5hbWljIHR5cGVzPw0KKGQpIElmIGVpdGhlciBh cmd1bWVudCBpcyBwb2x5bW9ycGhpYywgaXMgdGhlIHJlc3VsdCBwb2x5bW9ycGhpYz8NCiAgICBX aGF0IGFyZSB0aGUgZGVjbGFyZWQgYW5kIGR5bmFtaWMgdHlwZXMgb2YgdGhlIHJlc3VsdD8NCg0K UXVlc3Rpb24gNjoNCkFyZSB0aGUgRlJPTSBhbmQgVE8gYXJndW1lbnRzIG9mIHRoZSBpbnRyaW5z aWMgZnVuY3Rpb24gTU9WRV9BTExPQw0KcGVybWl0dGVkIHRvIGJlIHBvbHltb3JwaGljPw0KDQpR dWVzdGlvbiA3Og0KKGEpIEFyZSB0aGUgQVJSQVkgYW5kIFZFQ1RPUiBhcmd1bWVudHMgb2YgdGhl IGludHJpbnNpYyBmdW5jdGlvbiBQQUNLDQogICAgcGVybWl0dGVkIHRvIGJlIHBvbHltb3JwaGlj Pw0KSWYgc286DQooYikgSWYgb25lIG9mIHRoZXNlIGFyZ3VtZW50cyBpcyBwb2x5bW9ycGhpYywg bXVzdCB0aGUgb3RoZXIgYmUNCiAgICBwb2x5bW9ycGhpYz8NCihjKSBEbyB0aGUgcmVxdWlyZW1l bnRzIG9uIHRoZSB0eXBlcyBvZiB0aGUgYXJndW1lbnRzIHJlZmVyIHRvIHRoZWlyDQogICAgZGVj bGFyZWQgdHlwZXMgb3IgZHluYW1pYyB0eXBlcz8NCihkKSBJZiBlaXRoZXIgYXJndW1lbnQgaXMg cG9seW1vcnBoaWMsIGlzIHRoZSByZXN1bHQgcG9seW1vcnBoaWM/DQogICAgV2hhdCBhcmUgdGhl IGRlY2xhcmVkIGFuZCBkeW5hbWljIHR5cGVzIG9mIHRoZSByZXN1bHQ/DQoNClF1ZXN0aW9uIDg6 DQooYSkgQXJlIHRoZSBTT1VSQ0UgYW5kIFBBRCBhcmd1bWVudHMgb2YgdGhlIGludHJpbnNpYyBm dW5jdGlvbiBSRVNIQVBFDQogICAgcGVybWl0dGVkIHRvIGJlIHBvbHltb3JwaGljPw0KSWYgc286 DQooYikgSWYgb25lIG9mIHRoZXNlIGFyZ3VtZW50cyBpcyBwb2x5bW9ycGhpYywgbXVzdCB0aGUg b3RoZXIgYmUNCiAgICBwb2x5bW9ycGhpYz8NCihjKSBEbyB0aGUgcmVxdWlyZW1lbnRzIG9uIHRo ZSB0eXBlcyBvZiB0aGUgYXJndW1lbnRzIHJlZmVyIHRvIHRoZWlyDQogICAgZGVjbGFyZWQgdHlw ZXMgb3IgZHluYW1pYyB0eXBlcz8NCihkKSBJZiBlaXRoZXIgYXJndW1lbnQgaXMgcG9seW1vcnBo aWMsIGlzIHRoZSByZXN1bHQgcG9seW1vcnBoaWM/DQogICAgV2hhdCBhcmUgdGhlIGRlY2xhcmVk IGFuZCBkeW5hbWljIHR5cGVzIG9mIHRoZSByZXN1bHQ/DQoNClF1ZXN0aW9uIDk6DQooYSkgQXJl IHRoZSBBIGFuZCBCIGFyZ3VtZW50cyBvZiB0aGUgaW50cmluc2ljIGZ1bmN0aW9uIFNBTUVfVFlQ RV9BUw0KICAgIHBlcm1pdHRlZCB0byBiZSBwb2x5bW9ycGhpYz8NCklmIHNvOg0KKGIpIElmIG9u ZSBvZiB0aGVzZSBhcmd1bWVudHMgaXMgcG9seW1vcnBoaWMsIG11c3QgdGhlIG90aGVyIGJlDQog ICAgcG9seW1vcnBoaWM/DQooYykgRG8gdGhlIHJlcXVpcmVtZW50cyBvbiB0aGVpciB0eXBlcyBy ZWZlciB0byB0aGVpciBkZWNsYXJlZCB0eXBlcw0KICAgIG9yIGR5bmFtaWMgdHlwZXM/DQoNClF1 ZXN0aW9uIDEwOg0KKGEpIElzIHRoZSBTT1VSQ0UgYXJndW1lbnQgb2YgdGhlIGludHJpbnNpYyBm dW5jdGlvbiBTUFJFQUQgcGVybWl0dGVkDQogICAgdG8gYmUgcG9seW1vcnBoaWM/DQpJZiBzbzoN CihiKSBJZiB0aGUgYXJndW1lbnQgaXMgcG9seW1vcnBoaWMsIGlzIHRoZSByZXN1bHQgcG9seW1v cnBoaWM/ICBXaGF0DQogICAgYXJlIHRoZSBkZWNsYXJlZCBhbmQgZHluYW1pYyB0eXBlcyBvZiB0 aGUgcmVzdWx0Pw0KDQpRdWVzdGlvbiAxMToNCihhKSBJcyB0aGUgU09VUkNFIGFyZ3VtZW50IG9m IHRoZSBpbnRyaW5zaWMgZnVuY3Rpb24gVFJBTlNGRVINCiAgICBwZXJtaXR0ZWQgdG8gYmUgcG9s eW1vcnBoaWM/DQooYikgSXMgdGhlIE1PTEQgYXJndW1lbnQgb2YgdGhlIGludHJpbnNpYyBmdW5j dGlvbiBUUkFOU0ZFUiBwZXJtaXR0ZWQNCiAgICB0byBiZSBwb2x5bW9ycGhpYz8NCklmIHRoZSBh bnN3ZXIgdG8gKGIpIGlzIHllczoNCihjKSBJZiB0aGUgTU9MRCBhcmd1bWVudCBpcyBwb2x5bW9y cGhpYywgaXMgdGhlIHJlc3VsdCBwb2x5bW9ycGhpYz8NCiAgICBXaGF0IGFyZSB0aGUgZGVjbGFy ZWQgYW5kIGR5bmFtaWMgdHlwZXMgb2YgdGhlIHJlc3VsdD8NCg0KUXVlc3Rpb24gMTI6DQooYSkg SXMgdGhlIE1BVFJJWCBhcmd1bWVudCBvZiB0aGUgaW50cmluc2ljIGZ1bmN0aW9uIFRSQU5TUE9T RQ0KICAgIHBlcm1pdHRlZCB0byBiZSBwb2x5bW9ycGhpYz8NCklmIHNvOg0KKGIpIElmIHRoZSBh cmd1bWVudCBpcyBwb2x5bW9ycGhpYywgaXMgdGhlIHJlc3VsdCBwb2x5bW9ycGhpYz8gIFdoYXQN CiAgICBhcmUgdGhlIGRlY2xhcmVkIGFuZCBkeW5hbWljIHR5cGVzIG9mIHRoZSByZXN1bHQ/DQoN ClF1ZXN0aW9uIDEzOg0KKGEpIEFyZSB0aGUgVkVDVE9SIGFuZCBGSUVMRCBhcmd1bWVudHMgb2Yg dGhlIGludHJpbnNpYyBmdW5jdGlvbg0KICAgIFVOUEFDSyBwZXJtaXR0ZWQgdG8gYmUgcG9seW1v cnBoaWM/DQpJZiBzbzoNCihiKSBJZiBvbmUgb2YgdGhlc2UgYXJndW1lbnRzIGlzIHBvbHltb3Jw aGljLCBtdXN0IHRoZSBvdGhlciBiZQ0KICAgIHBvbHltb3JwaGljPw0KKGMpIERvIHRoZSByZXF1 aXJlbWVudHMgb24gdGhlIHR5cGVzIG9mIHRoZSBhcmd1bWVudHMgcmVmZXIgdG8gdGhlaXINCiAg ICBkZWNsYXJlZCB0eXBlcyBvciBkeW5hbWljIHR5cGVzPw0KKGQpIElmIGVpdGhlciBhcmd1bWVu dCBpcyBwb2x5bW9ycGhpYywgaXMgdGhlIHJlc3VsdCBwb2x5bW9ycGhpYz8NCiAgICBXaGF0IGFy ZSB0aGUgZGVjbGFyZWQgYW5kIGR5bmFtaWMgdHlwZXMgb2YgdGhlIHJlc3VsdD8NCg0KUXVlc3Rp b24gMTQ6DQpBcmUgYW55IG9mIHRoZSBvdGhlciBhcmd1bWVudHMgb2YgYW55IGludHJpbnNpYyBw cm9jZWR1cmUgcGVybWl0dGVkIHRvDQpiZSBwb2x5bW9ycGhpYz8NCg0KQU5TV0VSOg0KDQpUaGUg YXNzZXJ0aW9uIHRoYXQgaXQgaXMgdW5jbGVhciB3aGV0aGVyICJ0eXBlIiBtZWFucyBkZWNsYXJl ZCwgZHluYW1pYywNCm9yIGJvdGgsIGlzIG1pc2d1aWRlZC4gIFRoZSBnZW5lcmFsIHJ1bGUgaXMg dGhhdCB3aGVyZXZlciBpdCBtYWtlcw0Kc2Vuc2UsIGl0IG1lYW5zIGJvdGguICBXaGVyZSBvbmx5 IG9uZSBtZWFuaW5nIG1ha2VzIHNlbnNlLCBpdCBtZWFucw0KdGhhdCBvbmUuICBXaGVyZSBvbmx5 IG9uZSBtZWFuaW5nIGlzIGludGVuZGVkIGJ1dCBpdCB3b3VsZCBvdGhlcndpc2UNCm5vdCBiZSBj bGVhciBmcm9tIGNvbnRleHQsIGl0IGlzIHF1YWxpZmllZCBhcyAiZGVjbGFyZWQgdHlwZSIgb3IN CiJkeW5hbWljIHR5cGUiLg0KDQpBbnN3ZXIgMToNClllcy4NCg0KQW5zd2VyIDI6DQooYSkgWWVz Lg0KKGIpIFllcy4gICJUaGUgcmVzdWx0IGlzIG9mIHRoZSB0eXBlIC4uLiBvZiBBUlJBWSIuDQoN CkFuc3dlciAzOg0KKGEpIFllcy4NCihiKSBOby4NCihjKSBUaGUgcmVxdWlyZW1lbnRzIGFwcGx5 IHRvIGJvdGggdGhlIGRlY2xhcmVkIHR5cGUgYW5kIHRoZSBkeW5hbWljDQogICAgdHlwZS4NCihk KSAiVGhlIHR5cGUgaGFzIC4uLiB0aGUgdHlwZSAuLi4gb2YgQVJSQVkiLiAgVGhlcmVmb3JlIGl0 IGlzIHBvbHltb3JwaGljDQogICAgaWYgQVJSQVkgaXMgcG9seW1vcnBoaWMuDQoNCkFuc3dlciA0 Og0KKGEpIFllcy4NCihiKSBOby4NCihjKSBUaGUgcmVxdWlyZW1lbnRzIHJlZmVyIHRvIHRoZSBk ZWNsYXJlZCB0eXBlOyB0aGlzIGlzIGV4cGxpY2l0bHkNCiAgICBzdGF0ZWQuDQoNCkFuc3dlciA1 OiAgVGhpcyBxdWVzdGlvbiBoYXMgYmVlbiBkZWZlcnJlZCB0byBpbnRlcnAgRjA4LzAxMDINCiAg IFRTT1VSQ0UgYW5kIEZTT1VSQ0UgYXJlIHJlcXVpcmVkIGhhdmUgdGhlIHNhbWUgZGVjbGFyZWQg dHlwZSwgYnV0IG1heQ0KICAgYmUgcG9seW1vcnBoaWMuICBUaGUgcXVlc3Rpb25zIG9mIHdoYXQg dGhlIHJlcXVpcmVtZW50cyBhcmUgb24gdGhlDQogICBkeW5hbWljIHR5cGUsIGFuZCB3aGV0aGVy IHRoZSByZXN1bHQgaXMgcG9seW1vcnBoaWMsIGFyZSBkZWZlcnJlZCB0bw0KICAgaW50ZXJwIEYw OC8wMTAyLg0KDQpBbnN3ZXIgNjoNClllcy4NCg0KQW5zd2VyIDc6DQooYSkgWWVzLg0KKGIpIE5v Lg0KKGMpIFRoZSByZXF1aXJlbWVudHMgcmVmZXIgdG8gYm90aCB0aGUgZGVjbGFyZWQgdHlwZSBh bmQgdGhlIGR5bmFtaWMNCiAgICB0eXBlLiAgTm90ZSB0aGF0IHRoaXMgbWVhbnMgdGhhdCBpZiBl aXRoZXIgQVJSQVkgb3IgVkVDVE9SIGlzIG5vdA0KICAgIHBvbHltb3JwaGljLCB0aGUgcmVxdWly ZW1lbnQgZm9yIHR5cGUgbWF0Y2hpbmcgbWVhbnMgdGhhdCB0aGUNCiAgICBkeW5hbWljIHR5cGUg b2YgdGhlIHBvbHltb3JwaGljIGFyZ3VtZW50IGlzIGtub3duLg0KKGQpIFRoZSByZXN1bHQgImhh cyB0aGUgc2FtZSB0eXBlIiBhcyBBUlJBWSwgYW5kIHRoZXJlZm9yZSBpcyBwb2x5bW9ycGhpYw0K ICAgIGlmIEFSUkFZIGlzIHBvbHltb3JwaGljLg0KDQpBbnN3ZXIgODoNCihhKSBZZXMuDQooYikg Tm8uDQooYykgVGhlIHJlcXVpcmVtZW50cyByZWZlciB0byBib3RoIHRoZSBkZWNsYXJlZCB0eXBl IGFuZCB0aGUgZHluYW1pYw0KICAgIHR5cGUuDQooZCkgVGhlIHJlc3VsdCAiaGFzIHRoZSBzYW1l IHR5cGUiIGFzIFNPVVJDRSwgYW5kIHRoZXJlZm9yZSBpcyBwb2x5bW9ycGhpYw0KICAgIGlmIGFu ZCBvbmx5IGlmIFNPVVJDRSBpcyBwb2x5bW9ycGhpYy4NCg0KQW5zd2VyIDk6DQooYSkgWWVzLg0K KGIpIE5vLg0KKGMpIFRoZSByZXF1aXJlbWVudHMgYXJlIGV4cGxpY2l0bHkgc3RhdGVkIHRvIHJl ZmVyIHRvIHRoZSBkZWNsYXJlZCB0eXBlLg0KDQpBbnN3ZXIgMTA6DQooYSkgWWVzLg0KKGIpIFll cy4gICJUaGUgcmVzdWx0IGlzIC4uLiBvZiB0aGUgc2FtZSB0eXBlIC4uLiBhcyBBUlJBWS4iLg0K DQpBbnN3ZXIgMTE6DQooYSkgWWVzLg0KKGIpIFllcy4NCihjKSAiVGhlIHJlc3VsdCBpcyBvZiB0 aGUgc2FtZSB0eXBlIC4uLiBhcyBNT0xELiIuDQoNCkFuc3dlciAxMjoNCihhKSBZZXMuDQooYikg WWVzLiAgVGhlIGRlY2xhcmVkIGFuZCBkeW5hbWljIHR5cGVzIG9mIHRoZSByZXN1bHQgYXJlIHRo b3NlIG9mDQogICAgdGhlIGFyZ3VtZW50Lg0KDQpBbnN3ZXIgMTM6DQooYSkgWWVzLg0KKGIpIFll cy4NCihjKSBUaGUgcmVxdWlyZW1lbnRzIHJlZmVyIHRvIGJvdGggdGhlIGRlY2xhcmVkIHR5cGUg YW5kIHRoZSBkeW5hbWljDQogICAgdHlwZS4NCihkKSBZZXMuICBUaGUgcmVzdWx0IGhhcyB0aGUg c2FtZSBkZWNsYXJlZCBhbmQgZHluYW1pYyB0eXBlcyBhcyBWRUNUT1IsDQogICAgYW5kIGlzIHBv bHltb3JwaGljIGlmIGFuZCBvbmx5IGlmIFZFQ1RPUiBpcyBwb2x5bW9ycGhpYy4NCg0KQW5zd2Vy IDE0Og0KWWVzLiAgRm9yIGV4YW1wbGUsIElNQUdFX0lOREVYLCBMQ09CT1VORCwgUFJFU0VOVCwg U1RPUkFHRV9TSVpFLCBhbmQNClVDT0JPVU5ELg0KDQpFRElUUzoNCg0KTm9uZS4NCg0KU1VCTUlU VEVEIEJZOiBSb2IgSmFtZXMNCg0KSElTVE9SWTogMDUtMTM4ICAgIG0xNzEgIEYwMy8wMDQ3IHN1 Ym1pdHRlZCAtIGNvbnRhaW5lZCB0aGUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlc3Rp b25zL2Fuc3dlcnMNCiAgICAgICAgIDA1LTEzOHIxICBtMTcxICBDb250YWluZWQgdGhlIGVkaXRz LCBwYXNzZWQgYnkgSjMgbWVldGluZw0KICAgICAgICAgMDUtMTcwICAgIG0xNzIgIFBhc3NlZCBK MyBsZXR0ZXIgYmFsbG90ICMxMQ0KICAgICAgICAgTjE2MjIgICAgIG0xNzIgIEZhaWxlZCBXRzUg YmFsbG90IE4xNjI5DQogICAgICAgICAxMy0yNDIgICAgbTIwMCAgUmV2aXNlZCAtIHBhc3NlZCBi eSBKMyBtZWV0aW5nDQogICAgICAgICAxMy0yNjIgICAgbTIwMSAgUGFzc2VkIEozIGxldHRlciBi YWxsb3QgIzI4IDEzLTI1NXIxDQogICAgICAgICBOMTk5MCAgICAgbTIwMiAgUGFzc2VkIGFzIGFt ZW5kZWQgYnkgV0c1IGJhbGxvdCA2IE4xOTg3Lzg4LzkwDQoqKiBRNSB3YXMgZGVmZXJyZWQgdG8g RjA4LzAxMDI7IEEyKGIpIGFuZCBBMTMoZCkgd2VyZSBtb2RpZmllZA0KICAgICAgICAgTjIwMDIg ICAgIG0yMDMgIEluIEYyMDA4IENvcnJpZ2VuZHVtIDMNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpOVU1C RVI6IEYwMy8wMDUxDQpUSVRMRTogUmVwZWF0IHNwZWNpZmllcnMgYW5kIFVERFRJTw0KS0VZV09S RFM6IHJlcGVhdCBzcGVjaWZpZXIsIFBPUz0sIFVERFRJTw0KREVGRUNUIFRZUEU6IEludGVycHJl dGF0aW9uDQpTVEFUVVM6IEozIGNvbnNpZGVyYXRpb24gaW4gcHJvZ3Jlc3MNCg0KUVVFU1RJT046 DQoNCkNvbnNpZGVyIHRoZSBmb2xsb3dpbmcgcHJvZ3JhbToNCg0KTU9EVUxFIG0NCg0KICBUWVBF IHQNCiAgICBJTlRFR0VSIDo6IGkNCiAgICBJTlRFR0VSIDo6IGoNCiAgRU5EIFRZUEUNCg0KICBJ TlRFR0VSIDo6IGlwb3MNCg0KICBJTlRFUkZBQ0UgUkVBRChGT1JNQVRURUQpDQogICAgTU9EVUxF IFBST0NFRFVSRSBmb3JtYXR0ZWRSZWFkVA0KICBFTkQgSU5URVJGQUNFDQoNCkNPTlRBSU5TDQoN CiAgU1VCUk9VVElORSBmb3JtYXR0ZWRSZWFkVCAoZHR2LCB1bml0LCBpb3R5cGUsIHZsaXN0LCBp b3N0YXQsIGlvbXNnKQ0KICAgIENMQVNTKFQpLCBJTlRFTlQoSU5PVVQpIDo6IGR0dg0KICAgIElO VEVHRVIsIElOVEVOVChJTikgOjogdW5pdA0KICAgIENIQVJBQ1RFUigqKSwgSU5URU5UKElOKSA6 OiBpb3R5cGUNCiAgICBJTlRFR0VSLCBJTlRFTlQoSU4pIDo6IHZsaXN0KDopDQogICAgSU5URUdF UiwgSU5URU5UKE9VVCkgOjogaW9zdGF0DQogICAgQ0hBUkFDVEVSKCopLCBJTlRFTlQoSU5PVVQp IDo6IGlvbXNnDQoNCiAgICBSRUFEKHVuaXQsICopIGR0diVpDQogICAgSU5RVUlSRSh1bml0LCBQ T1M9aXBvcykNCiAgICBSRUFEKHVuaXQsICopIGR0diVqDQogIEVORCBTVUJST1VUSU5FDQoNCkVO RCBNT0RVTEUNCg0KUFJPR1JBTSBmb28NCiAgVVNFIG0NCiAgVFlQRSh0KSA6OiBhDQogIE9QRU4o MTAsIEZJTEU9J2ZpbGUudHh0JywgQUNDRVNTPSdzdHJlYW0nLCBGT1JNPSdmb3JtYXR0ZWQnKQ0K ICBXUklURSgxMCwgJyhBKScpICcyKjMgNScNCiAgUkVXSU5EKDEwKQ0KICBSRUFEKDEwLCAqKSBh DQogIFBSSU5UICosIGElaSwgYSVqLCBpcG9zDQpFTkQgUFJPR1JBTQ0KDQoxMC45IG9mIEZvcnRy YW4gMjAwMyBzdGF0ZXMgdGhhdCB0aGUgcipjIGZvcm0gb2YgbGlzdC1kaXJlY3RlZCBpbnB1dA0K aXMgZXF1aXZhbGVudCB0byByIG9jY3VycmVuY2VzIG9mIGMuICBTbywgd2hlbiB0aGUgcmVhZCBp cyBwZXJmb3JtZWQsDQppdCBpcyBhcyBpZiB0aGUgaW5wdXQgcmVjb3JkIGNvbnRhaW5zIHR3byBv Y2N1cnJlbmNlcyBvZiB0aGUgbnVtYmVyIDMuDQoNClRoZSBmaXJzdCBjaGlsZCByZWFkIHN0YXRl bWVudCByZWFkcyB0aGUgZmlyc3QgMywgYW5kIGRvZXMgbm90IGFkdmFuY2UNCnRoZSBmaWxlIHBv c2l0aW9uIHRvIHRoZSBuZXh0IHJlY29yZCAoYmVjYXVzZSBpdCBpcyBhIGNoaWxkIGRhdGENCnRy YW5zZmVyIHN0YXRlbWVudCkuICBJdCBhcHBlYXJzIHRoYXQgdGhlIHNlY29uZCByZWFkIHN0YXRl bWVudCBzaG91bGQNCnJlYWQgdGhlIHNlY29uZCAzLiAgQnV0IHRoZSBmaWxlIHBvc2l0aW9uIGJl dHdlZW4gdGhlIGNoaWxkIHJlYWQNCnN0YXRlbWVudHMgaXMgdW5jbGVhci4NCg0KV2hhdCBkb2Vz IHRoZSBhYm92ZSBwcm9ncmFtIHByaW50Pw0KDQpBTlNXRVI6DQoNClRoZSBzdGFuZGFyZCBkb2Vz IHNwZWNpZnkgdGhlIGJlaGF2aW9yIG9mIGEgcHJvY2Vzc29yIHdoZW4gYSBsaXN0DQpkaXJlY3Rl ZCBpbnB1dCByZWNvcmQgY29udGFpbnMgYSByKmMgY29uc3RhbnQsIGJ1dCB0aGF0IGlzIGlycmVs ZXZhbnQNCnRvIHRoZSBxdWVzdGlvbiBhdCBoYW5kLiAgRXhlY3V0aW5nIGFuIElOUVVJUkUgc3Rh dGVtZW50IHVzaW5nIGFuDQppbnRlcm5hbCB1bml0IGlzIHByb2hpYml0ZWQgYnkgWzIzNToxNl0g OS4xMC4yLjFwMi4gIFRoZSBwcm9ncmFtIGRvZXMNCm5vdCBjb25mb3JtLg0KDQpFRElUUzoNCg0K Tm9uZS4NCg0KU1VCTUlUVEVEIEJZOiBSb2IgSmFtZXMNCg0KSElTVE9SWTogMDUtMTQyICAgICAg ICBtMTcxICBGMDMvMDA1MSBzdWJtaXR0ZWQNCiAgICAgICAgIDA1LTE0MnIyICAgICAgbTE3MSAg UGFzc2VkIGJ5IEozIG1lZXRpbmcNCiAgICAgICAgIDA1LTE2Ny8xNzAgICAgbTE3MiAgRmFpbGVk IEozIGxldHRlciBiYWxsb3QgIzExDQogICAgICAgICAwNi0zNjlyMSAgICAgIG0xNzggIFBhc3Nl ZCBieSBKMyBtZWV0aW5nDQogICAgICAgICAwNy0yNTByMS8yNzIgIG0xODEgIEZhaWxlZCBKMyBs ZXR0ZXIgYmFsbG90ICMxMw0KICAgICAgICAgMTMtMjQ4ICAgICAgICBtMjAwICBSZXZpc2VkIC0g d2l0aGRyYXduDQoNClRoZSBxdWVzdGlvbiByYWlzZWQgYXQgbTIwMCB3YXMgYWJvdXQgdGhlIGRl ZmluaXRpb24gb2YgImludGVybmFsIHVuaXQNCig5LjYuNC44LjMpIiBbMjI2OjRdLCB3aGljaCBz ZWVtcyB0byBjb25mbGljdCB3aXRoIHRoZSBUZXJtcyBhbmQNCkRlZmluaXRpb25zIFsxMjoyNi0z MV06DQoNCiAgICAxLjMuOTQNCiAgICAgaW50ZXJuYWwgZmlsZQ0KICAgICAgY2hhcmFjdGVyIHZh cmlhYmxlIHRoYXQgaXMgY29ubmVjdGVkIHRvIGFuIGludGVybmFsIHVuaXQgKDkuNCkNCg0KICAg IDEuMy45NQ0KICAgICBpbnRlcm5hbCB1bml0DQogICAgICBpbnB1dC9vdXRwdXQgdW5pdCB0aGF0 IGlzIGNvbm5lY3RlZCB0byBhbiBpbnRlcm5hbCBmaWxlICg5LjUuNCkNCg0KVGhlIGNsYXJpZmlj YXRpb24gd2UgbmVlZGVkIGJ1dCBjb3VsZG4ndCBmaW5kIGlzIHByb2JhYmx5IFsyMDg6OC0xMF06 DQoNCiAgICBBbiBpbnRlcm5hbCB1bml0IGlzIHVzZWQgdG8gcmVmZXIgdG8gYW4gaW50ZXJuYWwg ZmlsZSBhbmQgaXMNCiAgICBzcGVjaWZpZWQgYnkgYW4gaW50ZXJuYWwtZmlsZS12YXJpYWJsZSBv ciBhIGZpbGUtdW5pdC1udW1iZXINCiAgICB3aG9zZSB2YWx1ZSBpcyBlcXVhbCB0byB0aGUgdW5p dCBhcmd1bWVudCBvZiBhbiBhY3RpdmUgZGVmaW5lZA0KICAgIGlucHV0L291dHB1dCBwcm9jZWR1 cmUgKDkuNi40LjgpLg0KDQovU3Rhbg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCk5VTUJFUjogRjAzLzAw NTMNClRJVExFOiBUaGUgQklORCBhdHRyaWJ1dGUgZm9yIENfUFRSIGFuZCBDX0ZVTlBUUg0KS0VZ V09SRFM6IEJJTkQgYXR0cmlidXRlLCBDX1BUUiwgQ19GVU5QVFIsIHByaXZhdGUgY29tcG9uZW50 cw0KREVGRUNUIFRZUEU6IEVycmF0dW0NClNUQVRVUzogSW4gRjIwMDggQ29ycmlnZW5kdW0gMw0K DQpRVUVTVElPTjoNCg0KMS4gRG8gdGhlIGRlcml2ZWQgdHlwZXMgQ19QVFIgYW5kIENfRlVOUFRS IGhhdmUgdGhlIEJJTkQgYXR0cmlidXRlPw0KDQpUaGlzIGFmZmVjdHMgd2hldGhlciBhbiBvYmpl Y3Qgb2Ygb25lIG9mIHRoZXNlIHR5cGVzIGlzIHBlcm1pdHRlZA0KZGlyZWN0bHkgaW4gQ09NTU9O LiAgQzUxMDEgaW4gdGhlIEZvcnRyYW4gMjAwOCBzdGFuZGFyZCBzdGF0ZXMgIklmIGENCmNvbW1v bi1ibG9jay1vYmplY3QgaXMgb2YgYSBkZXJpdmVkIHR5cGUsIGl0IHNoYWxsIGJlIGEgc2VxdWVu Y2UgdHlwZQ0Kb3IgYSB0eXBlIHdpdGggdGhlIEJJTkQgYXR0cmlidXRlIGFuZCBpdCBzaGFsbCBo YXZlIG5vIGRlZmF1bHQNCmluaXRpYWxpemF0aW9uLiINCg0KMi4gV2hldGhlciB0aGUgZGVyaXZl ZCB0eXBlcyBDX1BUUiBhbmQgQ19GVU5QVFIgaGF2ZSB0aGUgQklORA0KYXR0cmlidXRlIGFmZmVj dHMgd2hldGhlciB0aGV5IGFyZSBleHRlbnNpYmxlLiAgU3ViY2xhdXNlIDQuNS43LjEgb2YNCnRo ZSBGb3J0cmFuIDIwMDggc3RhbmRhcmQgc3RhdGVzICJBIG5vbnNlcXVlbmNlIGRlcml2ZWQgdHlw ZSB0aGF0IGRvZXMNCm5vdCBoYXZlIHRoZSBCSU5EIGF0dHJpYnV0ZSBpcyBhbiBleHRlbnNpYmxl IHR5cGUuIiAgQXJlIHRoZXNlIHR5cGVzDQpleHRlbnNpYmxlPw0KDQozLiBTdWJjbGF1c2UgMTUu My4zIG9mIHRoZSBGb3J0cmFuIDIwMDggc3RhbmRhcmQgc3RhdGVzIHRoYXQgQ19QVFIgYW5kDQpD X0ZVTlBUUiBhcmUgZGVyaXZlZCB0eXBlcyB3aXRoIHByaXZhdGUgY29tcG9uZW50cy4gQXJlIHVz ZXItZGVmaW5lZA0KZGVyaXZlZCB0eXBlcyB3aXRoIHRoZSBCSU5EIGF0dHJpYnV0ZSBwZXJtaXR0 ZWQgdG8gaGF2ZSBwcml2YXRlDQpjb21wb25lbnRzPw0KDQpBTlNXRVI6DQoNCjEuIE5vLCB0aGVz ZSB0eXBlcyBkbyBub3QgaGF2ZSB0aGUgQklORCBhdHRyaWJ1dGUuICAxNS4zLjMgZG9lcyBub3QN CnNwZWNpZnkgdGhhdCB0aGV5IGhhdmUgdGhlIEJJTkQgYXR0cmlidXRlLiAgMTUuMy40IGRvZXMg bm90IHJlcXVpcmUNCnRoZW0gdG8gaGF2ZSB0aGUgQklORCBhdHRyaWJ1dGUgaW4gb3JkZXIgdG8g bWFrZSB0aGVtIGludGVyb3BlcmFibGUuDQoxNS4zLjUgd291bGQgcmVxdWlyZSB0aGVtIHRvIGlu dGVyb3BlcmF0ZSB3aXRoIGEgQyBzdHJ1Y3QgaWYgdGhleSBoYWQNCnRoZSBCSU5EIGF0dHJpYnV0 ZTsgdGhpcyBpcyBhYnN1cmQsIHNpbmNlIEMgb2JqZWN0IHBvaW50ZXJzIGFuZCBDDQpmdW5jdGlv biBwb2ludGVycyBhcmUgY2xlYXJseSBub3Qgc3RydWN0cy4NCg0KTm90ZSB0aGF0IHdoZXRoZXIg dGhlc2UgdHlwZXMgaGF2ZSBkZWZhdWx0IGluaXRpYWxpemF0aW9uIGlzIG5vdA0Kc3BlY2lmaWVk IGJ5IHRoZSBzdGFuZGFyZCwgc28gcG9zc2Vzc2lvbiBvZiBCSU5EIHdvdWxkIG5vdCBuZWNlc3Nh cmlseQ0KaGF2ZSBhbGxvd2VkIHRoZW0gaW4gQ09NTU9OIGFueXdheS4NCg0KRWRpdHMgYXJlIHBy b3ZpZGVkIHRvIGNvcnJlY3QgaW5jb21wbGV0ZSwgYW5kIHRodXMgbWlzbGVhZGluZywNCnN0YXRl bWVudHMgYWJvdXQgZGVyaXZlZCB0eXBlcyBhbmQgdGhlIEJJTkQgYXR0cmlidXRlLg0KDQoyLiBO bywgdGhlc2UgdHlwZXMgd2VyZSBub3QgaW50ZW5kZWQgdG8gYmUgZXh0ZW5zaWJsZS4gIEl0IHdh cyBhbg0Kb3ZlcnNpZ2h0IHRoYXQgdGhlc2UgdHlwZXMgd2VyZSBub3QgZXhwbGljaXRseSBleGNs dWRlZCBmcm9tIGJlaW5nDQpleHRlbnNpYmxlIGJ5IHN1YmNsYXVzZSA0LjUuNy4xIHBhcmFncmFw aCAxIG9mIHRoZSBGb3J0cmFuIDIwMDgNCnN0YW5kYXJkLiAgQW4gZWRpdCBpcyBwcm92aWRlZCB0 byBjb3JyZWN0IHRoaXMuDQoNCjMuIFllcywgYSB1c2VyLWRlZmluZWQgZGVyaXZlZCB0eXBlIHdp dGggdGhlIEJJTkQgYXR0cmlidXRlIGlzDQpwZXJtaXR0ZWQgdG8gaGF2ZSBwcml2YXRlIGNvbXBv bmVudHMuICBUaGlzIHNpdHVhdGlvbiBpcyB0aGUgc2FtZQ0KYXMgZm9yIFNFUVVFTkNFIHR5cGVz LCB3aGljaCBhcmUgc2ltaWxhciAoYnV0IG5vdCBpbnRlcm9wZXJhYmxlKS4NCkFzIHdpdGggU0VR VUVOQ0UgdHlwZXMsIG1ha2luZyBhIGNvbXBvbmVudCBQUklWQVRFIGRvZXMgcHJldmVudA0KYWNj ZXNzLCBpbiBhIGNvbmZvcm1pbmcgcHJvZ3JhbSwgdG8gdGhlIGNvbXBvbmVudCBieSBhIHByb2dy YW1tZXIgd2hvDQppcyBzdWZmaWNpZW50bHkgZGV0ZXJtaW5lZDsgaG93ZXZlciwgaXQgY29udGlu dWVzIHRvIGZ1bGZpbGwgdGhlDQpzb2Z0d2FyZSBlbmdpbmVlcmluZyByb2xlIGZvciB3aGljaCBp dCB3YXMgaW50ZW5kZWQuICBOb3RlIGZ1cnRoZXINCnRoYXQgdGhlcmUgYXJlIG1hbnkgb3RoZXIg c2l0dWF0aW9ucyB3aGVyZSB0d28gZGlmZmVyZW50IEZvcnRyYW4NCmRlcml2ZWQgdHlwZXMgd2ls bCBpbnRlcm9wZXJhdGUgd2l0aCB0aGUgc2FtZSBDIGRlcml2ZWQgdHlwZTsgdGhpcyBpcw0Kbm90 IGEgZGVmZWN0IGluIGVpdGhlciBzdGFuZGFyZCwgYnV0IHNpbXBseSBhIGNvbnNlcXVlbmNlIG9m IHRoZSB0d28NCmxhbmd1YWdlcyBoYXZpbmcgZGlmZmVyZW50IGFwcHJvYWNoZXMgdG8gdHlwZSBj b21wYXRpYmlsaXR5Lg0KDQpFRElUUyB0byAxMC0wMDdyMToNCg0KWzE5OjE1LTE2XSBJbiAxLjMu MTQ3LjYsDQogIHJlcGxhY2UgdGhlIGRlZmluaXRpb24gb2YgImV4dGVuc2libGUgdHlwZSINCiAg d2l0aCAidHlwZSB0aGF0IG1heSBiZSBleHRlbmRlZCB1c2luZyB0aGUgRVhURU5EUyBjbGF1c2Ug KDQuNS43LjEpIi4NCntSZXBhaXIgZGVmaW5pdGlvbiBvZiBleHRlbnNpYmxlIHR5cGUufQ0KDQpb Nzc6M10gSW4gNC41LjcuMXAxLA0KICBBZnRlciAiQSBkZXJpdmVkIHR5cGUiIGluc2VydA0KICAg ICIsIG90aGVyIHRoYW4gdGhlIHR5cGUgQ19QVFIgb3IgQ19GVU5QVFIgZnJvbSB0aGUgaW50cmlu c2ljIG1vZHVsZQ0KICAgICBJU09fQ19CSU5ESU5HLCINCntQcm9oaWJpdCB0aGVzZSB0eXBlcyBm cm9tIHN1YnNlcXVlbnQgZXh0ZW5zaW9uLn0NCg0KWzQzMTo2XSBJbiAxNS4zLjRwMSwgcmVwbGFj ZSB0aGUgZmlyc3Qgc2VudGVuY2Ugd2l0aA0KICAiSW50ZXJvcGVyYWJpbGl0eSBiZXR3ZWVuIGRl cml2ZWQgdHlwZXMgaW4gRm9ydHJhbiBhbmQgc3RydWN0IHR5cGVzDQogICBpbiBDIGlzIHByb3Zp ZGVkIGJ5IHRoZSBCSU5EIGF0dHJpYnV0ZSBvbiB0aGUgRm9ydHJhbiB0eXBlLiINCntSZWR1Y2Ug bWlzbGVhZGluZyBvcGVuaW5nIGJsYXRoZXIgLSB0aGlzIGlzIGp1c3QgaGVyZSBzbyB3ZSBkaWRu J3QNCiBzdGFydCB0aGUgc3ViY2xhdXNlIHdpdGggYSBidW5jaCBvZiBjb25zdHJhaW50cy4gIEFs dGVybmF0aXZlbHkgd2UNCiBjb3VsZCBtb3ZlIHBhcmFncmFwaCAyIChhbmQgbm90ZSAxNS4xMikg dG8gcmVwbGFjZSBwYXJhZ3JhcGggMS59DQoNCls0MzE6MTIrMl0gSW4gMTUuMy40LCBOb3RlIDE1 LjExLA0KICBBZnRlciAiaXMgaW50ZXJvcGVyYWJsZSIgaW5zZXJ0ICJ3aXRoIGEgQyBzdHJ1Y3Qg dHlwZSIuDQp7Q29ycmVjdCBhbm90aGVyIG1pc2xlYWRpbmcgc2VudGVuY2UufQ0KDQpbNDMxOjEz LTE4XSBJbiAxNS4zLjRwMiwNCiAgQ2hhbmdlIGFsbCBmb3VyIG9jY3VycmVuY2VzIG9mICJGb3J0 cmFuIGRlcml2ZWQgdHlwZSINCiAgdG8gImRlcml2ZWQgdHlwZSI7DQogIGNoYW5nZSB0aGUgc2lu Z2xlIG9jY3VycmVuY2Ugb2YgIkZvcnRyYW4gdHlwZSIgdG8gImRlcml2ZWQgdHlwZSIuDQp7UmVt b3ZlIHVubmVjZXNzYXJ5IGFuZCBjb25mdXNpbmcgcXVhbGlmaWNhdGlvbiBvZiAiZGVyaXZlZCB0 eXBlIiB3aXRoDQogIkZvcnRyYW4iLn0NCg0KU1VCTUlUVEVEIEJZOiBKb2huIFJlaWQNCg0KSElT VE9SWTogMDUtMTUxICAgIG0xNzEgIEYwMy8wMDUzIHN1Ym1pdHRlZCAtIFBhc3NlZCBieSBKMyBt ZWV0aW5nDQogICAgICAgICAwNS0xNzAgICAgbTE3MiAgUGFzc2VkIEozIGxldHRlciBiYWxsb3Qg IzExDQogICAgICAgICBOMTYyMiAgICAgbTE3MiAgRmFpbGVkIFdHNSBiYWxsb3QgTjE2MjkNCiAg ICAgICAgIDExLTIxN3IxICBtMTk1ICBSZXZpc2VkIGFuc3dlciBmb3IgRm9ydHJhbiAyMDA4IC0g UGFzc2VkDQogICAgICAgICAgICAgICAgICAgICAgICAgIGJ5IEozIG1lZXRpbmcNCiAgICAgICAg IDExLTI0MSAgICBtMTk2ICBQYXNzZWQgYXMgYW1lbmRlZCBieSBKMyBsZXR0ZXIgYmFsbG90DQog ICAgICAgICAgICAgICAgICAgICAgICAgICMyNCAxMS0yMjkNCiAgICAgICAgIDEyLTE2NXIyICBt MTk4ICBQYXNzZWQgYnkgSjMgbGV0dGVyIGJhbGxvdCAjMjUgMTItMTQ3DQogICAgICAgICAxMi0x OTMgICAgbTE5OSAgRmFpbGVkIFdHNSBiYWxsb3QgIzMgTjE5MzIvTjE5MzMvTjE5MzkNCiAgICAg ICAgIDEyLTE5MCAgICBtMTk5ICBSZXZpc2VkIGFuc3dlci9lZGl0cyAtIHBhc3NlZCBieSBKMyBt ZWV0aW5nDQogICAgICAgICAxMy0yMzcgICAgbTIwMCAgUGFzc2VkIGFzIGFtZW5kZWQgYnkgSjMg bGV0dGVyIGJhbGxvdA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIzI3IDEzLTIwMw0KICAg ICAgICAgTjE5OTAgICAgIG0yMDIgIFBhc3NlZCBieSBXRzUgYmFsbG90IDYgTjE5ODcvODgvOTAN CiAgICAgICAgIE4yMDAyICAgICBtMjAzICBJbiBGMjAwOCBDb3JyaWdlbmR1bSAzDQoNCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCg0KTlVNQkVSOiBGMDMvMDA1OQ0KVElUTEU6IFN0cnVjdHVyZSBjb21wb25lbnRz IGluIG5hbWVsaXN0IGlucHV0DQpLRVlXT1JEUzogTmFtZWxpc3QsIFVERFRJTywgY29tcG9uZW50 DQpERUZFQ1QgVFlQRTogRXJyYXR1bQ0KU1RBVFVTOiBKMyBjb25zaWRlcmF0aW9uIGluIHByb2dy ZXNzDQoNClFVRVNUSU9OOg0KDQpDb25zaWRlciB0aGUgZm9sbG93aW5nIHByb2dyYW06DQoNCiAg ICAgIE1PRFVMRSBtDQogICAgICAgIFBSSVZBVEUNCiAgICAgICAgVFlQRSwgUFVCTElDIDo6IHQN CiAgICAgICAgICBJTlRFR0VSIDo6IGkNCiAgICAgICAgICBJTlRFR0VSIDo6IGoNCiAgICAgICAg Q09OVEFJTlMNCiAgICAgICAgICBQUk9DRURVUkUsIFBSSVZBVEUgOjogcmVhZEZvcm1hdHRlZCA9 PiByZWFkRm9ybWF0dGVkVA0KICAgICAgICAgIEdFTkVSSUMgOjogUkVBRChGT1JNQVRURUQpID0+ IHJlYWRGb3JtYXR0ZWQNCiAgICAgICAgRU5EIFRZUEUNCiAgICAgIENPTlRBSU5TDQogICAgICAg IFNVQlJPVVRJTkUgcmVhZGZvcm1hdHRlZFQoZHR2LCB1bml0LCBpb3R5cGUsIHZfbGlzdCwgaW9z dGF0LCAmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmIGlvbXNnKQ0KICAgICAg ICAgIENMQVNTKHQpLCAgICAgSU5URU5UKElOT1VUKSA6OiBkdHYNCiAgICAgICAgICBJTlRFR0VS LCAgICAgIElOVEVOVChJTikgICAgOjogdW5pdA0KICAgICAgICAgIENIQVJBQ1RFUigqKSwgSU5U RU5UKElOKSAgICA6OiBpb3R5cGUNCiAgICAgICAgICBJTlRFR0VSLCAgICAgIElOVEVOVChJTikg ICAgOjogdl9saXN0KDopDQogICAgICAgICAgSU5URUdFUiwgICAgICBJTlRFTlQoT1VUKSAgIDo6 IGlvc3RhdA0KICAgICAgICAgIENIQVJBQ1RFUigqKSwgSU5URU5UKElOT1VUKSA6OiBpb21zZw0K ICAgICAgICAgIFJFQUQgKHVuaXQsICopIGR0diVpDQogICAgICAgICAgZHR2JWogPSBkdHYlaSAq IDINCiAgICAgICAgRU5EIFNVQlJPVVRJTkUNCiAgICAgIEVORCBNT0RVTEUNCg0KICAgICAgUFJP R1JBTSBwDQogICAgICAgIFVTRSBtDQogICAgICAgIFRZUEUodCkgOjogeA0KICAgICAgICBOQU1F TElTVCAvbm1sLyB4DQogICAgICAgIFJFQUQgKCosIG5tbCkNCiAgICAgICAgUFJJTlQgKiwgeCVp LCB4JWoNCiAgICAgIEVORCBQUk9HUkFNDQoNClF1ZXN0aW9uIDE6DQpJcyB0aGUgZm9sbG93aW5n IGlucHV0IHZhbGlkIGZvciB0aGUgYWJvdmUgcHJvZ3JhbT8NCg0KJm5tbA0KIHglaSA9IDEwMA0K Lw0KDQpRdWVzdGlvbiAyOg0KSWYgdGhlIGlucHV0IGlzIHZhbGlkLCB3aGF0IGlzIHRoZSBvdXRw dXQgb2YgdGhlIHByb2dyYW0sIHdoZW4gdXNpbmcNCnRoaXMgaW5wdXQ/DQoNCkFOU1dFUjoNCg0K MS4gTm8sIHRoaXMgaW5wdXQgaXMgbm90IHZhbGlkIGZvciB0aGUgZ2l2ZW4gcHJvZ3JhbS4gIFRo ZSBuYW1lIG9mIGENCmNvbXBvbmVudCBvZiBhIHN0cnVjdHVyZSBzaG91bGQgbm90IGFwcGVhciBp biBuYW1lbGlzdCBpbnB1dCBpZiB0aGF0DQpzdHJ1Y3R1cmUgd291bGQgYmUgcHJvY2Vzc2VkIGJ5 IGEgdXNlci1kZWZpbmVkIGRlcml2ZWQtdHlwZSBJL08NCnByb2NlZHVyZS4gIEVkaXRzIGFyZSBz dXBwbGllZCB0byBjb3JyZWN0IHRoaXMgb3ZlcnNpZ2h0Lg0KDQoyLiBOL0ENCg0KRURJVFM6DQoN ClsyNDM6MjQtMjddDQpSZXBsYWNlDQogICAgIklmIHRoZSBuYW1lbGlzdCBncm91cCBvYmplY3Qg bmFtZSBpcyB0aGUgbmFtZSBvZiBhIHZhcmlhYmxlIG9mDQogICAgIGRlcml2ZWQgdHlwZSwgdGhl IG5hbWUgaW4gdGhlIGlucHV0IHJlY29yZCBtYXkgYmUgZWl0aGVyIHRoZSBuYW1lDQogICAgIG9m IHRoZSB2YXJpYWJsZSBvciB0aGUgZGVzaWduYXRvciBvZiBvbmUgb2YgaXRzIGNvbXBvbmVudHMs DQogICAgIGluZGljYXRlZCBieSBxdWFsaWZ5aW5nIHRoZSB2YXJpYWJsZSBuYW1lIHdpdGggdGhl IGFwcHJvcHJpYXRlDQogICAgIGNvbXBvbmVudCBuYW1lLiINCndpdGgNCiAgICAiSWYgdGhlIG5h bWVsaXN0IGdyb3VwIG9iamVjdCBpcyBhIHZhcmlhYmxlIG9mIGRlcml2ZWQgdHlwZSwgdGhlDQog ICAgIG5hbWUgaW4gdGhlIGlucHV0IHJlY29yZCBtYXkgYmUgdGhlIG5hbWUgb2YgdGhlIHZhcmlh YmxlLiAgSWYgdGhlDQogICAgIHZhcmlhYmxlIHdvdWxkIG5vdCBiZSBwcm9jZXNzZWQgYnkgYSB1 c2VyLWRlZmluZWQgZGVyaXZlZC10eXBlDQogICAgIGlucHV0L291dHB1dCBwcm9jZWR1cmUsIHRo ZSBuYW1lIGluIHRoZSBpbnB1dCByZWNvcmQgbWF5IGFsc28gYmUNCiAgICAgdGhlIGRlc2lnbmF0 b3Igb2Ygb25lIG9mIGl0cyBjb21wb25lbnRzLCB1c2luZyB0aGUgc3ludGF4IG9mDQogICAgIG9i amVjdCBkZXNpZ25hdG9ycy4iDQoNClNVQk1JVFRFRCBCWTogUm9iIEphbWVzDQoNCkhJU1RPUlk6 IDA1LTE3NCAgICBtMTcyICBGMDMvMDA1OSBzdWJtaXR0ZWQNCiAgICAgICAgIDA1LTIyMSAgICBt MTczICBQYXNzZWQgYnkgSjMgbWVldGluZw0KICAgICAgICAgMDYtMTMzICAgIG0xNzUgIEZhaWxl ZCBKMyBsZXR0ZXIgYmFsbG90ICMxMiAtIHR5cG8gZml4ZWQNCg0KICBSaWNoIEJsZWlrYW1wJ3Mg Tk8gY29tbWVudCBmb3IgRjAzLzAwNTk6DQoNCiAgICBUaGUgcmVwbGFjZW1lbnQgdGV4dCByZWFk cyAiaWYgdGhlIHZhcmlhYmxlIHdvdWxkIG5vdCBiZSBwcm9jZXNzZWQNCiAgICBieSBhIFVERFRJ TyAuLi4iLCBidXQgSSB0aGluayB0aGUgcHJlc2VuY2Ugb2YgYW4gb2JqZWN0IGRlc2lnbmF0b3IN CiAgICBtaWdodCBhY3R1YWxseSBkZXRlcm1pbmUgd2hldGhlciBvciBub3QgdGhlIG9iamVjdCBk ZXNpZ25hdG9yIGlzDQogICAgcHJvY2Vzc2VkIGJ5IGEgVUREVElPIHJvdXRpbmUgKHNvcnQgb2Yg dGhlIHJldmVyc2UgZGVjaXNpb24NCiAgICBwcm9jZXNzIHRoYW4gd2hhdCBpcyBiZWluZyBzdWdn ZXN0ZWQsIHdoZXJlIGJlaW5nIHByb2Nlc3NlZCBieSBhDQogICAgVUREVElPIHJvdXRpbmUgcHJl Y2x1ZGVzIHRoZSB1c2Ugb2YgYSBub24tc2ltcGxlIHZhcmlhYmxlIG5hbWUgaW4NCiAgICB0aGUg aW5wdXQgcmVjb3JkKS4NCg0KICAgIFNlY29uZCwgdGhlIHNlbnRlbmNlIGltbWVkaWF0ZWx5IGFm dGVyIHRoZSByZXBsYWNlZCB0ZXh0IHRhbGtzDQogICAgYWJvdXQgIlN1Y2Nlc3NpdmUgcXVhbGlm aWNhdGlvbnMiIGJlaW5nIGFwcGxpZWQgdG8gdGhlIG5hbWUuICBJDQogICAgdGhpbmsgdGhpcyBy ZWFkcyBhd2t3YXJkbHkgd2l0aCB0aGUgc3VnZ2VzdGVkIGVkaXQuDQoNCiAgICBUaGlyZCwgSSB0 aGluayB0aGUgYW5zd2VyIG1heSBiZSB3cm9uZy4gIEZvciBuYW1lbGlzdCBpbnB1dCwgd2UNCiAg ICBzaG91bGQgYWxsb3cgKHBlcmhhcHMgd2UgYWxyZWFkeSBkbykgb2JqZWN0IGRlc2lnbmF0b3Jz IGFsbCB0aGUNCiAgICB0aW1lLCBhbmQganVzdCBub3QgaW52b2tlIHRoZSBVRERUSU8gcm91dGlu ZSBpZiB0aGUgb2JqZWN0DQogICAgZGVzaWduYXRvciBpcyBub3QgYSBzaW1wbGUgIHZhcmlhYmxl IG5hbWUsIG9yIGlmIHRoZSByZXN1bHRpbmcNCiAgICBvYmplY3RzIGRhdGF0eXBlL3NoYXBlIGRv IG5vdCBtYXRjaCBhbiBleGlzdGluZyBpbnRlcmZhY2UgZm9yIGENCiAgICBVRERUSU8gcm91dGlu ZS4gIEFsc28sIGl0cyBub3QgY2xlYXIgdG8gbWUgKGl0cyB0b28gbGF0ZSBpbiB0aGUNCiAgICBk YXkpLCBidXQgcGVyaGFwcyB3ZSByZWFsbHkgd2FudCB0byBhbGxvdyBhbiBvYmplY3QgZGVzaWdu YXRvcg0KICAgIHRoYXQncyBhbiBhcnJheSBlbGVtZW50IHJlZmVyZW5jZSB0byBpbnZva2UgYSBV RERUSU8gcm91dGluZS4NCiAgICBXZSBjb3VsZCB1c2UgdGhlIGRhdGF0eXBlIGFuZCBzaGFwZSBv ZiB0aGUgb2JqZWN0IGRlc2lnbmF0b3IgdG8NCiAgICBkZXRlcm1pbmUgd2hldGhlciBvciBub3Qg YSBVRERUSU8gcm91dGluZSBzaG91bGQgYmUgaW52b2tlZA0KICAgIChzdGlsbCBhIGNvbXBpbGUg dGltZSBkZWNpc2lvbikuICBJJ20gbm90IGF0IGFsbCBzdXJlIHdlJ2Qgd2FudA0KICAgIHRvIGFs bG93IGNvbXBvbmVudCByZWZlcmVuY2VzIGluIHN1Y2ggYSBjYXNlLCBvciBwZXJoYXBzIGENCiAg ICBjb21wb25lbnQgcmVmZXJlbmNlIGluIHRoZSBpbnB1dCByZWNvcmQganVzdCBwcmVjbHVkZXMg dGhlDQogICAgcG9zc2liaWxpdHkgb2YgaW52b2tpbmcgYSBVRERUSU8gcm91dGluZSBmb3IgdGhh dCBpbnB1dCB2YWx1ZS4NCg0KICAgIFRoZSB0cmFkZW9mZnMgaGVyZSBhcmU6DQogICAgMSkgYWxs b3cgc29tZSBtb3JlIGZ1bmN0aW9uYWxpdHkgKHdoaWNoIHdlIG1heSBhbHJlYWR5IGFsbG93KSwN CiAgICAgICBzdWNoIGFzIGFycmF5IGVsZW1lbnQgcmVmZXJlbmNlcyBhcHBlYXJpbmcgaW4gYSBu YW1lbGlzdCBpbnB1dA0KICAgICAgIHJlY29yZCAoYXMgYSBuYW1lbGlzdCBncm91cCBvYmplY3Qg bmFtZSwgcG9zc2libHkgcXVhbGlmaWVkKSwNCiAgICAgICBhbmQgc3RpbGwgY2F1c2UgYSBVRERU SU8gcm91dGluZSB0byBiZSBpbnZva2VkLCBhbmQNCg0KICAgIDIpIGtlZXAgdGhlIHJ1bGVzIHNp bXBsZSBlbm91Z2ggdGhhdCB0aGUgdXNlciBhbmQgY29tcGlsZXIncyBJL08NCiAgICAgIGxpYnJh cnkgY2FuIGVhc2lseSBhZ3JlZSBvbiB3aGF0J3Mgc3VwcG9zZWQgdG8gaGFwcGVuLCBhbmQNCiAg ICAgIHdoYXQgaW5wdXQgdmFsdWVzIGFyZSB0aGVyZWZvcmUgYWxsb3dlZC4NCg0KICAgIEkgd2Fz IGdvaW5nIHRvIHN1Z2dlc3QgYSByZXBsYWNlbWVudCBlZGl0LCBidXQgbXkgaGVhZCBodXJ0cyB0 b28NCiAgICBtdWNoIDopLg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCk5VTUJFUjogRjAzLzAwNjQNClRJ VExFOiBSZWN1cnNpdmUgZGVjbGFyYXRpb24gb2YgcHJvY2VkdXJlIGludGVyZmFjZXMNCktFWVdP UkRTOiBwcm9jZWR1cmUsIGludGVyZmFjZQ0KREVGRUNUIFRZUEU6IEVycmF0dW0NClNUQVRVUzog SW4gRjIwMDggQ29ycmlnZW5kdW0gMw0KDQpRVUVTVElPTjoNCg0KUTEuIENvbnNpZGVyIHRoZSBm b2xsb3dpbmcgcHJvZ3JhbToNCg0KICAgICAgUFJPR1JBTSBmb28NCiAgICAgICAgUFJPQ0VEVVJF KHN1YikgOjogcA0KICAgICAgICBJTlRFUkZBQ0UNCiAgICAgICAgICBTVUJST1VUSU5FIHN1Yihw MikNCiAgICAgICAgICAgIElNUE9SVCBwDQogICAgICAgICAgICBQUk9DRURVUkUocCkgOjogcDIN CiAgICAgICAgICBFTkQgU1VCUk9VVElORQ0KICAgICAgICBFTkQgSU5URVJGQUNFDQogICAgICBF TkQgUFJPR1JBTQ0KDQpDMTIxNiBhcHBlYXJzIHRvIHByb2hpYml0IHRoZSBjYXNlIG9mIGFuIGlu dGVyZmFjZSBuYW1lIGluIGEgcHJvY2VkdXJlDQpkZWNsYXJhdGlvbiBzdGF0ZW1lbnQgYmVpbmcg dGhlIG5hbWUgb2Ygc29tZXRoaW5nIGRlY2xhcmVkIGluIGEgbGF0ZXINCnByb2NlZHVyZSBkZWNs YXJhdGlvbiBzdGF0ZW1lbnQuICBCdXQgaXQgZG9lcyBub3QgYXBwZWFyIHRvIHByb2hpYml0DQp0 aGUgY2FzZSBvZiBhbiBpbnRlcmZhY2UgbmFtZSBiZWluZyB0aGUgbmFtZSBvZiBzb21ldGhpbmcg ZGVjbGFyZWQgaW4NCmEgbGF0ZXIgaW50ZXJmYWNlIGJvZHkuDQoNCkluIHRoZSBhYm92ZSBwcm9n cmFtLCB0aGUgY2hhcmFjdGVyaXN0aWNzIG9mIHAgcmVseSBvbiB0aGUNCmNoYXJhY3RlcmlzdGlj cyBvZiBzdWIuICBUaGUgY2hhcmFjdGVyaXN0aWNzIG9mIHN1YiwgaW4gdHVybiwgcmVseSBvbg0K dGhlIGNoYXJhY3RlcmlzdGljcyBvZiBwLg0KDQpJcyB0aGlzIHByb2dyYW0gc3RhbmRhcmQtY29u Zm9ybWluZz8NCg0KUTIuIENvbnNpZGVyIHRoZSBtb2R1bGUNCg0KICAgIE1PRFVMRSBtMQ0KICAg IENPTlRBSU5TDQogICAgICBTVUJST1VUSU5FIHMocCkNCiAgICAgICAgUFJPQ0VEVVJFKHMpIDo6 IHANCiAgICAgIEVORCBTVUJST1VUSU5FDQogICAgRU5EIE1PRFVMRQ0KDQpDb25zdHJhaW50IEMx MjE2IGRvZXMgbm90IGFwcGx5IGhlcmUgc2luY2UgInMiIGlzIG5vdCBkZWNsYXJlZCBieSBhDQpw cm9jZWR1cmUgZGVjbGFyYXRpb24gc3RhdGVtZW50OyB1bmxpa2UgUTEsIGl0IGlzIGFsc28gbm90 IGRlY2xhcmVkIGJ5DQphbiBpbnRlcmZhY2UgYm9keS4gIEhvd2V2ZXIsIHRoZSBjaGFyYWN0ZXJp c3RpY3Mgb2YgUyBoYXZlIG5vdCBiZWVuDQpkZXRlcm1pbmVkIGJlZm9yZSB0aGUgcHJvY2VkdXJl IGRlY2xhcmF0aW9uIHN0YXRlbWVudCBoYXMgYmVlbg0KcHJvY2Vzc2VkLCBhbmQgdGhhdCBjYW5u b3QgYmUgcHJvY2Vzc2VkIHVudGlsIHdlIGtub3cgd2hhdCB0aGUNCmludGVyZmFjZSBvZiBTIGlz Lg0KDQpJcyB0aGlzIHByb2dyYW0gdW5pdCBzdGFuZGFyZC1jb25mb3JtaW5nPw0KDQpRMy4gQ29u c2lkZXIgdGhlIG1vZHVsZQ0KDQogICAgTU9EVUxFIG0yDQogICAgQ09OVEFJTlMNCiAgICAgIFNV QlJPVVRJTkUgczEoYSkNCiAgICAgICAgUFJPQ0VEVVJFKHMyKSA6OiBhDQogICAgICBFTkQgU1VC Uk9VVElORQ0KICAgICAgU1VCUk9VVElORSBzMihiKQ0KICAgICAgICBQUk9DRURVUkUoczEpIDo6 IGINCiAgICAgIEVORCBTVUJST1VUSU5FDQogICAgRU5EIE1PRFVMRQ0KDQpUaGUgaW50ZXJmYWNl IG9mIEEgZGVwZW5kcyBvbiB0aGUgaW50ZXJmYWNlIG9mIFMyLCB3aGljaCBkZXBlbmRzIG9uDQp0 aGUgY2hhcmFjdGVyaXN0aWNzIG9mIEIsIHdoaWNoIGRlcGVuZHMgb24gdGhlIGNoYXJhY3Rlcmlz dGljcyBvZiBTMSwNCndoaWNoIGRlcGVuZHMgb24gdGhlIGNoYXJhY3RlcmlzdGljcyBvZiBBOyBh IGNpcmN1bGFyIGRlcGVuZGVuY3kuDQoNCklzIHRoaXMgcHJvZ3JhbSB1bml0IHN0YW5kYXJkLWNv bmZvcm1pbmc/DQoNClE0LiBDb25zaWRlcg0KDQogICAgICBNT0RVTEUgbTMNCiAgICAgICAgUFJP Q0VEVVJFKHMpLFBPSU5URVIgOjogc3B0cg0KICAgICAgQ09OVEFJTlMNCiAgICAgICAgU1VCUk9V VElORSBzKHApDQogICAgICAgICAgUFJPQ0VEVVJFKHNwdHIpIDo6IHANCiAgICAgICAgRU5EIFNV QlJPVVRJTkUNCiAgICAgIEVORCBNT0RVTEUNCg0KSW4gdGhlIG5vcm1hbCBjb3Vyc2Ugb2YgZXZl bnRzIHRoZXJlIGlzIG5vIHByb2JsZW0gZGVjbGFyaW5nIGENCnByb2NlZHVyZSBwb2ludGVyIHRv IGhhdmUgdGhlIGludGVyZmFjZSBvZiBhIG1vZHVsZSBwcm9jZWR1cmUgdGhhdCBpcw0KZGVmaW5l ZCBsYXRlciwgYW5kIHRoaXMgaXMgZGVzaXJhYmxlLCBidXQgaW4gdGhpcyBjYXNlIHRoZXJlIHNl ZW1zIHRvDQpiZSBhIGNpcmN1bGFyIGRlcGVuZGVuY3kgYmV0d2VlbiB0aGUgY2hhcmFjdGVyaXN0 aWNzIG9mIHNwdHIsIHMsIGFuZA0KcC4NCg0KSXMgdGhpcyBwcm9ncmFtIHVuaXQgc3RhbmRhcmQt Y29uZm9ybWluZz8NCg0KQU5TV0VSOg0KDQpOb25lIG9mIHRoZSBleGFtcGxlcyBhcmUgc3RhbmRh cmQtY29uZm9ybWluZywgYXMgdGhlIHN0YW5kYXJkIGRvZXMgbm90DQplc3RhYmxpc2ggYW4gaW50 ZXJwcmV0YXRpb24gZm9yIHRoZW0uDQoNCkFuIGVkaXQgaXMgcHJvdmlkZWQgdG8gY2xhcmlmeSB0 aGlzLg0KDQpFRElUIHRvIDEwLTAwN3IxOg0KDQpbMjg4OjNdIDEyLjQuMy42cDIsIGFwcGVuZCBu ZXcgc2VudGVuY2UNCiAgIlRoZSBpbnRlcmZhY2Ugc3BlY2lmaWVkIGJ5IDxpbnRlcmZhY2UtbmFt ZT4gc2hhbGwgbm90IGRlcGVuZCBvbiBhbnkNCiAgIGNoYXJhY3RlcmlzdGljIG9mIGEgcHJvY2Vk dXJlIGlkZW50aWZpZWQgYnkgYQ0KICAgPHByb2NlZHVyZS1lbnRpdHktbmFtZT4gaW4gdGhlIDxw cm9jLWRlY2wtbGlzdD4gb2YgdGhlIHNhbWUNCiAgIHByb2NlZHVyZSBkZWNsYXJhdGlvbiBzdGF0 ZW1lbnQuIg0KDQpTVUJNSVRURUQgQlk6IFJvYiBKYW1lcw0KDQpISVNUT1JZOiAwNS0xNzkgICAg bTE3MiAgRjAzLzAwNjQgc3VibWl0dGVkDQogICAgICAgICAwNS0yMjYgICAgbTE3MyAgUGFzc2Vk IGJ5IEozIG1lZXRpbmcNCiAgICAgICAgIDA2LTEzMyAgICBtMTc1ICBGYWlsZWQgSjMgbGV0dGVy IGJhbGxvdCAjMTINCiAgICAgICAgIDA5LTE0OSAgICBtMTg3ICBQYXNzZWQgYnkgSjMgbWVldGlu Zw0KICAgICAgICAgMDktMTg3cjIgIG0xODggIEZhaWxlZCBKMyBsZXR0ZXIgYmFsbG90ICMxOCAw OS0xNTUNCiAgICAgICAgIDEzLTI0NSAgICBtMjAwICBSZXZpc2VkIC0gcGFzc2VkIGJ5IEozIG1l ZXRpbmcNCiAgICAgICAgIDEzLTI2MiAgICBtMjAxICBQYXNzZWQgSjMgbGV0dGVyIGJhbGxvdCAj MjggMTMtMjU1cjENCiAgICAgICAgIE4xOTkwICAgICBtMjAyICBQYXNzZWQgYnkgV0c1IGJhbGxv dCA2IE4xOTg3Lzg4LzkwDQogICAgICAgICBOMjAwMiAgICAgbTIwMyAgSW4gRjIwMDggQ29ycmln ZW5kdW0gMw0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCk5VTUJFUjogRjAzLzAwODQNClRJVExFOiBJRUVF X1NFVF9ST1VORElOR19NT0RFIGluIGEgc3Vicm91dGluZQ0KS0VZV09SRFM6IElFRUVfQVJJVEhN RVRJQw0KREVGRUNUIFRZUEU6IEludGVycHJldGF0aW9uDQpTVEFUVVM6IEozIGNvbnNpZGVyYXRp b24gaW4gcHJvZ3Jlc3MNCg0KUVVFU1RJT046DQoNClNlY3Rpb24gNy4xLjcgb2YgdGhlIEZvcnRy YW4gMjAwOCBzdGFuZGFyZCBzYXlzIHRoYXQgaWYgdGhlIHZhbHVlIG9mIGFuDQpleHByZXNzaW9u IGNhbiBiZSBkZXRlcm1pbmVkIGJlZm9yZSBleGVjdXRpb24gb2YgdGhlIHByb2dyYW0sIGl0IGlz DQpzdGFuZGFyZC1jb25mb3JtaW5nIHRvIHVzZSB0aGUgcHJlZGV0ZXJtaW5lZCB2YWx1ZS4NCg0K Q29uc2lkZXIgdGhlIHN1YnByb2dyYW0NCg0KICAgICAgICBTVUJST1VUSU5FIFMoKQ0KICAgICAg ICBVU0UsIElOVFJJTlNJQyA6OiBJRUVFX0FSSVRITUVUSUMNCiAgICAgICAgVVNFLCBJTlRSSU5T SUMgOjogSUVFRV9GRUFUVVJFUw0KDQogICAgICAgIElOVEVHRVIsIFBBUkFNRVRFUiA6OiBzcCA9 IElFRUVfU0VMRUNURURfUkVBTF9LSU5EKDYsMzApDQogICAgICAgIHJlYWwoc3ApIDo6IFggPSAw LjU1NTkwMTNfc3ANCiAgICAgICAgcmVhbChzcCkgOjogWSA9IDEuMjA5MjQ4MV9zcA0KICAgICAg ICByZWFsKHNwKSA6OiBaMSwgWjINCiAgICAgICAgSUYgKElFRUVfU1VQUE9SVF9ST1VORElORyhJ RUVFX05FQVJFU1QsWCkgLkFORC4gJg0KICAgICAgICAgICAgSUVFRV9TVVBQT1JUX1JPVU5ESU5H KElFRUVfVVAsWCkpIFRIRU4NCiAgICAgICAgICAgIENBTEwgSUVFRV9TRVRfUk9VTkRJTkdfTU9E RShJRUVFX1VQKQ0KICAgICAgICAgICAgWjEgPSBYKlkNCiAgICAgICAgICAgIENBTEwgSUVFRV9T RVRfUk9VTkRJTkdfTU9ERShJRUVFX05FQVJFU1QpDQogICAgICAgICAgICBaMiA9IFgqWQ0KICAg ICAgICAgICAgUFJJTlQgKiwgJ1Jlc2lkdWFsOiAnLCBaMSAtIFoyDQogICAgICAgIEVORElGDQog ICAgICAgIEVORA0KDQooMSkgSXMgYSBwcm9jZXNzb3IgcGVybWl0dGVkIGFsd2F5cyB0byBwcmlu dCB6ZXJvIGZvciB0aGUgcmVzaWR1YWwNCiAgICBaMSAtIFoyID8NCigyKSBTYW1lIHF1ZXN0aW9u LCBhZnRlciBnaXZpbmcgWCBhbmQgWSB0aGUgUEFSQU1FVEVSIGF0dHJpYnV0ZS4NCg0KQU5TV0VS Og0KDQooMSkgWWVzLiAgVGhlIHByb2Nlc3NvciBpcyBhbGxvd2VkIHRvIGV2YWx1YXRlIGV4cHJl c3Npb25zIChjb25zdGFudA0Kb3Igb3RoZXJ3aXNlKSBpbiBhbnkgbWF0aGVtYXRpY2FsbHkgZXF1 aXZhbGVudCB3YXkuICBJbiBwYXJ0aWN1bGFyLCBpdA0KaXMgcGVybWl0dGVkIHRvIGV2YWx1YXRl IHVzaW5nIGhpZ2hlciBwcmVjaXNpb24gdGhhbiBhbnkgcHJlY2lzaW9uDQphdmFpbGFibGUgd2hl biB0aGUgcHJvZ3JhbSBpcyBleGVjdXRlZC4gIEZvciBleGFtcGxlLCBpdCBtaWdodCBjb21wdXRl DQpaMSA9PSBaMiA9PSAwLjY3MjIyMjU5MDgxMjUzLCB0aGVuIGNvbXB1dGUgWjEgLSBaMiA9PSAw LjAsIHJlZ2FyZGxlc3MNCm9mIGhvdyB0aGUgcHJvZ3JhbSBtaWdodCBkbyByb3VuZGluZyBhdCB0 aGUgc2V2ZW50aCBkZWNpbWFsIGRpZ2l0IHdoZW4NCml0IGlzIGV4ZWN1dGVkLg0KDQooMikgWWVz LCBmb3IgdGhlIHNhbWUgcmVhc29ucyBhcyBxdWVzdGlvbiAoMSkuDQoNCkVESVRTIHRvIDEwLTAw N3IxOg0KDQpOb25lLg0KDQpTVUJNSVRURUQgQlk6IE1pY2hhZWwgSW5ncmFzc2lhDQoNCkhJU1RP Ulk6IDA2LTM3MiAgICBtMTc4ICBGMDMvMDA4NCBzdWJtaXR0ZWQNCiAgICAgICAgIDExLTIxOCAg ICBtMTk1ICBSZXZpc2VkIGFuc3dlciBmb3IgRm9ydHJhbiAyMDA4IC0gUGFzc2VkDQogICAgICAg ICAgICAgICAgICAgICAgICAgIGJ5IEozIG1lZXRpbmcNCiAgICAgICAgIDExLTI0MSAgICBtMTk2 ICBQYXNzZWQgYXMgYW1lbmRlZCBieSBKMyBsZXR0ZXIgYmFsbG90DQogICAgICAgICAgICAgICAg ICAgICAgICAgICMyNCAxMS0yMjkNCiAgICAgICAgIDEyLTE2NXIyICBtMTk4ICBQYXNzZWQgYXMg YW1lbmRlZCBieSBKMyBsZXR0ZXIgYmFsbG90DQogICAgICAgICAgICAgICAgICAgICAgICAgICMy NSAxMi0xNDcNCiAgICAgICAgIDEyLTE5MyAgICBtMTk5ICBGYWlsZWQgV0c1IGJhbGxvdCAjMyBO MTkzMi9OMTkzMy9OMTkzOQ0KDQpGMDMvMDA4NA0KDQpCYWRlciBOTyB2b3RlOg0KDQpUaGUgYW5z d2VycyBnaXZlbiB0byBib3RoICgxKSBhbmQgKDIpIGluIHRoZSBpbnRlcnAgYXBwZWFyIHRvIG1l DQp0byBiZSBjb3VudGVyaW50dWl0aXZlOyB0aGUgcHJvZ3JhbW1lciB3b3VsZCBleHBlY3QgdGhh dCB0aGUNCmNhbGN1bGF0aW9uIG9mIFoxIGFuZCBaMiByZXNwZWN0aXZlbHkgb2JleSB0aGUgaW1w b3NlZCByb3VuZGluZw0KbW9kZS4gSW4gcGFydGljdWxhciwgSSBzdXNwZWN0IHRoZXJlIGFyZSBz aXR1YXRpb25zIHdoZXJlIGl0IGlzDQptb3JlIG9idmlvdXMgdG8gdGhlIGNvbXBpbGVyIHRoYW4g dG8gdGhlIHByb2dyYW1tZXIgdGhhdCBleHByZXNzaW9ucw0KYXJlIGV2YWx1YXRlZCBhdCBjb21w aWxlIHRpbWUsIGFuZCB0aGF0IGRpZmZlcmVudCBwcm9jZXNzb3JzIG1heQ0KaGF2ZSBkaWZmZXJp bmcgY2FwYWJpbGl0aWVzIGluIGlkZW50aWZ5aW5nIHN1Y2ggZXhwcmVzc2lvbnMuIFRoZQ0KcmVz b2x1dGlvbiBvZiBzdWNoIHNpdHVhdGlvbnMgaXMgb25lIHRhcmdldCB0aGF0IHRoZSBJRUVFIGZh Y2lsaXRpZXMNCndlcmUgZGVzaWduZWQgZm9yLiBJIHRoZXJlZm9yZSBhbSBpbiBmYXZvciBvZiB0 aGUgc3RhbmNlIHRoYXQsIGlmDQpzdXBwb3J0ZWQsIHRoZSBzZXR0aW5nIG9mIHRoZSByb3VuZGlu ZyBtb2RlIHNob3VsZCB0YWtlIHByZWNlZGVuY2UNCm92ZXIgcHJvY2Vzc29yLWRlcGVuZGVudCBj b21waWxlLXRpbWUgZXZhbHVhdGlvbnMuDQoNCkNvcmJldHQgTk8gdm90ZToNCg0KSSBkaXNhZ3Jl ZSB3aXRoIHRoZSBpbnRlcnByZXRhdGlvbiBnaXZlbi4gIEkgYmVsaWV2ZSB0aGF0IHRoZQ0KYXNz aWdubWVudHMgc2hvdWxkIHJlcXVpcmUgY29udmVyc2lvbnMgdG8gYmUgZG9uZSBhbmQgdGhhdCB0 aGUNCmNvbnZlcnNpb25zIHNob3VsZCBiZSBkb25lIGluIGFjY29yZCB3aXRoIHRoZSByb3VuZGlu ZyBtb2RlDQpjdXJyZW50bHkgaW4gZWZmZWN0LiAgVGhlcmVmb3JlLCB0aGUgcmVzdWx0cyBzaG91 bGQgbm90IGJlIHplcm8uDQoNCkxvbmcgTk8gdm90ZToNCg0KSSB3YXMgY29uZnVzZWQgYnkgSm9o bidzIGNvbW1lbnQgdGhhdCB0aGUgcm91bmRpbmcgbW9kZSBvbg0KZW50cnkgdG8gdGhlIHN1YnJv dXRpbmUgYWZmZWN0ZWQgdGhlIHZhbHVlIG9mIFoxIHNpbmNlIHRoZSBjb21wdXRhdGlvbg0Kb2Yg WjEgZm9sbG93cyBhIGNhbGwgdGhhdCByZXNldHMgdGhlIHJvdW5kaW5nIG1vZGUuICBJIHRoaW5r IHRoZSByZWFsDQpxdWVzdGlvbiBoZXJlIGlzIHdoYXQgdGhlIHN0YW5kYXJkIG1lYW5zIGJ5ICJt YXRoZW1hdGljYWwiLiAgSSBoYWQNCmFsd2F5cyB0aG91Z2h0IGluIHRlcm1zIG9mIHRoaW5ncyBs aWtlIGFsZ2VicmEuICBKb2huJ3MgYW5zd2VyIHNlZW1zDQp0byBpbXBseSB0aGF0IGNvbXB1dGF0 aW9uYWwgbnVtZXJpY3MgKGFzIHNwZWNpZmllZCBieSBJRUVFKSBhcmUgcGFydA0Kb2YgdGhlIGNv bmNlcHQgb2YgIm1hdGhlbWF0aWNhbCIuICBJbiBvdGhlciBjb250ZXh0cywgSSB0aGluayB0aGF0 DQpKb2huJ3MgaW50ZXJwcmV0YXRpb24gY291bGQgYmUgaGFybWZ1bC4gIE9uIHRoZSBvdGhlciBo YW5kLCB0aGUNCmN1cnJlbnQgYW5zd2VyIGRvZXMgc2VlbSB0byBtYWtlIHRoZSB1c2VmdWxuZXNz IG9mIHRoZQ0KSUVFRV9TRVRfUk9VTkRJTkdfTU9ERSByb3V0aW5lIG1vcmUgbGltaXRlZCB0aGF0 IHdvdWxkIGJlDQpleHBlY3RlZC4gQWxzbywgZG9lcyB0aGUgY29uY2VwdCBvZiBtYXRoZW1hdGlj YWxseSBlcXVpdmFsZW50IGFwcGx5IHRvDQp0aGUgYWdncmVnYXRpb24gb2YgbXVsdGlwbGUgc3Rh dGVtZW50cywgb3IgZG9lcyBpdCBhcHBseSB0byBqdXN0IG9uZQ0KZXhwcmVzc2lvbj8gIEEgcHJv Y2Vzc29yIHRoYXQgdXNlZCB0aGUgIm1hdGhlbWF0aWNhbGx5IGVxdWl2YWxlbnQiDQphcmd1bWVu dCB0byBnZXQgMCB3b3VsZCBuZWVkIHRvIGZvcndhcmQgc3ViIHRoZSBleHByZXNzaW9ucyBmb3Ig WjEgYW5kDQpaMiBpbnRvIHRoZSBwcmludCBzdGF0ZW1lbnQgdG8gZ2V0IFgqWSAtIFgqWS4gIEkg ZG9uJ3QgdGhpbmsgd2UNCmludGVuZGVkIHRvIGFsbG93IGZvcndhcmQgc3Vic3RpdHV0aW9uIG9m IGV4cHJlc3Npb25zIGFjcm9zcyBvbmUgb2YNCnRoZSBJRUVFIG1vZGUgc2V0dGluZyByb3V0aW5l cy4NCg0KTWFjbGFyZW4gY29tbWVudDoNCg0KVGhpcyByZWxhdGVzIHRvIEYwMy8wMDY1LCBidXQg aXMgdGhlIG90aGVyIHdheSByb3VuZC4gIFVubGlrZSB0aGF0IG9uZSwNCkkgY29uc2lkZXIgdGhp cyBjb25zaXN0ZW50IHdpdGggdGhlIG1ham9yaXR5IG9mIHRoZSBzZW1hbnRpYyB3b3JkaW5nIGlu DQp0aGUgQyBzdGFuZGFyZC4NCg0KTXV4d29ydGh5IE5vIHZvdGU6DQoNCkkgYWdyZWUgd2l0aCBK b2huJ3Mgdm90ZS4NCg0KUmVpZCBOTyB2b3RlOg0KDQpUaGUgSUVFRSByb3VuZGluZyBtb2RlIG9u IGVudHJ5IHRvIHRoZSBwcm9jZWR1cmUgbWF5IHZhcnkgZnJvbQ0KY2FsbCB0byBjYWxsLiBUaGUg dmFsdWUgb2YgWjEgZGVwZW5kcyBvbiB0aGlzIHJvdW5kaW5nIG1vZGUuDQpUaGVyZWZvcmUsIHRo ZSBwcm9jZXNzb3Igc2hvdWxkIG5vdCBhbHdheXMgcHJpbnQgemVybyBmb3IgWjEtWjIuDQpXaGV0 aGVyIG9yIG5vdCBaMSBhbmQgWjIgaGF2ZSB0aGUgUEFSQU1FVEVSIGF0dHJpYnV0ZSBtYWtlcyBu bw0KZGlmZmVyZW5jZS4gWWVzLCB0aGUgcHJvY2Vzc29yIGlzIGFsbG93ZWQgdG8gZXZhbHVhdGUg YW4NCmV4cHJlc3Npb24gaW4gYW55IG1hdGhlbWF0aWNhbGx5IGVxdWl2YWxlbnQgd2F5LCBidXQg aGVyZSB0aGUNCm1hdGhlbWF0aWNzIGRpY3RhdGVzIHRoYXQgYSBwYXJ0aWN1bGFyIGZvcm0gb2Yg cm91bmRpbmcsIGRlZmluZWQNCmluIHRoZSBJRUVFIHN0YW5kYXJkLCBiZSBhcHBsaWVkLg0KDQpT bnlkZXIgTk8gdm90ZToNCg0KICAgIFRoZSBhbnN3ZXIgbWFrZXMgcm91bmRpbmcgbW9kZSBjaGFu Z2VzIHBvaW50bGVzcy4NCg0KICAgIFRoZSB3b3JrLWFyb3VuZCB1c3VhbGx5IGFkdmFuY2VkIHRv IGNhdXNlIHJvdW5kaW5nIG1vZGUgY2hhbmdlcyB0bw0KICAgIGhhdmUgZWZmZWN0IChidXQgbm90 IGFkdmFuY2VkIGluIHRoZSBhbnN3ZXIgdG8gdGhlIGludGVycHJldGF0aW9uKQ0KICAgIGlzIHRv IHN0b3JlIGludGVybWVkaWF0ZSByZXN1bHRzIHRoYXQgYXJlIGNvbXB1dGVkIHdpdGggZGlmZmVy ZW50DQogICAgcm91bmRpbmcgbW9kZXMgaW4gVk9MQVRJTEUgdmFyaWFibGVzIGlmIHRoZXkgYXJl IHVsdGltYXRlbHkgdG8gYmUNCiAgICBjb21iaW5lZCBpbiBhIHNpbmdsZSBleHByZXNzaW9uLg0K DQogICAgU3ViY2xhdXNlIDUuMy4xOSBzdGF0ZXMsIGluIHBhcnQsIGhvd2V2ZXIsIHRoYXQgIlRo ZSBWT0xBVElMRQ0KICAgIGF0dHJpYnV0ZSBzcGVjaWZpZXMgdGhhdCBhbiBvYmplY3QgbWF5IGJl IHJlZmVyZW5jZWQsIGRlZmluZWQsIG9yDQogICAgYmVjb21lIHVuZGVmaW5lZCwgYnkgbWVhbnMg bm90IHNwZWNpZmllZCBieSB0aGUgcHJvZ3JhbS4iICBTZXR0aW5nDQogICAgdGhlIHJvdW5kaW5n IG1vZGUgaXMgZG9uZSBieSBtZWFucyB0aGF0IEFSRSBzcGVjaWZpZWQgYnkgdGhlDQogICAgcHJv Z3JhbSwgc28gdGhlIGFkdmljZSBpcyBub3QgZ2VybWFuZS4gIE9uZSB3aG8gcmVhZHMgc3ViY2xh dXNlcw0KICAgIDUuMy4xOSwgMTQuNCwgMTQuMTEuNiwgYW5kIDE0LjExLjIxLCBhbmQgdGhlIGFu c3dlciB0byB0aGlzDQogICAgaW50ZXJwcmV0YXRpb24sIG1pZ2h0IG5vdCByZWFsaXplIHRoYXQg dGhlIHVzZSBvZiBWT0xBVElMRSB2YXJpYWJsZXMNCiAgICBpcyByZXF1aXJlZCwgdW5kZXIgdGhl IHByZXNlbnQgaW50ZXJwcmV0YXRpb24sIGZvciBzdWJjbGF1c2VzIDE0LjQsDQogICAgMTQuMTEu NiwgYW5kIDE0LjExLjIxIHRvIGJlIG1lYW5pbmdmdWwuDQoNCiAgICBBIGJldHRlciBhbnN3ZXIg d291bGQgaGF2ZSBiZWVuIHRvIGFtZW5kIDcuMS41LjIuNCB0byByZXF1aXJlIHRoYXQNCiAgICBh bGwgZW50aXRpZXMgd2l0aGluIHRoZSBleHByZXNzaW9uIGFyZSBldmFsdWF0ZWQgd2l0aCB0aGUg c2FtZQ0KICAgIHJvdW5kaW5nIG1vZGUsIG9yIHRvIHNwZWNpZnkgdGhhdCBxdWFudGl0aWVzIGV2 YWx1YXRlZCB3aXRoDQogICAgZGlmZmVyZW50IHJvdW5kaW5nIG1vZGVzIGNhbm5vdCBiZSBjb25z aWRlcmVkIHRvIGJlIG1hdGhlbWF0aWNhbGx5DQogICAgZXF1aXZhbGVudCwgZXZlbiBpZiBldmFs dWF0ZWQgYnkgdGV4dHVhbGx5IGlkZW50aWNhbCBleHByZXNzaW9ucy4NCiAgICBUaGlzIG1pZ2h0 IHJlcXVpcmUgcHJvY2Vzc29ycyBlaXRoZXIgdG8gYWJhbmRvbiBjZXJ0YWluDQogICAgb3B0aW1p emF0aW9ucywgb3IgdG8gcGVyZm9ybSBtb3JlIGRldGFpbGVkIGRhdGFmbG93IGFuYWx5c2lzIHRo YXQNCiAgICBwcm9wYWdhdGVzIHJvdW5kaW5nIG1vZGUgdG8gZGV0ZXJtaW5lIHdoZW4gdGhvc2Ug b3B0aW1pemF0aW9ucyBhcmUNCiAgICBwZXJtaXR0ZWQuDQoNCiAgICBJZiB0aGUgcG9zaXRpb24g aW1wbGllZCBieSB0aGUgYW5zd2VyIHRvIHRoaXMgaW50ZXJwcmV0YXRpb24gaXMgdG8NCiAgICBi ZSBtYWludGFpbmVkLCB0aGUgYWJzZW5jZSBvZiBlZGl0cyBpcyBlbnRpcmVseSBpbmFkZXF1YXRl LiAgVGhlDQogICAgZGVmaW5pdGlvbiBvZiBWT0xBVElMRSBtdXN0IGJlIGNoYW5nZWQgdG8gZW5j b21wYXNzIGFjdGlvbnMgdGhhdCBBUkUNCiAgICBzcGVjaWZpZWQgYnkgdGhlIHByb2dyYW0sIGFu ZCB0byBlbmNvbXBhc3MgYWR2aWNlIGNvbmNlcm5pbmcNCiAgICByb3VuZGluZyBtb2RlIGNoYW5n ZXMuICBBZHZpY2UgdG8gc3RvcmUgaW50ZXJtZWRpYXRlIHJlc3VsdHMgdGhhdA0KICAgIGFyZSBj b21wdXRlZCB3aXRoIGRpZmZlcmVudCByb3VuZGluZyBtb2RlcyBpbnRvIFZPTEFUSUxFIHZhcmlh YmxlcywNCiAgICBpZiB0aGV5IGFyZSB0byBiZSBjb21iaW5lZCBpbiBhIHNpbmdsZSBleHByZXNz aW9uLCBtdXN0IGJlIGluY2x1ZGVkDQogICAgaW4gc3ViY2xhdXNlcyAxNC40IGFuZCAxNC4xMS4y MS4NCg0KICAgIER1cmluZyB0aGUgcmVxdWlyZW1lbnRzIHBoYXNlIGZvciB0aGUgMjAwOCBzdGFu ZGFyZCwgdGhlcmUgd2FzIGENCiAgICByZXF1ZXN0IChpbiAwNC0yMTkpIGZvciBhICJzdHJpY3Qg bW9kZSIgc2ltaWxhciB0byB0aGF0IGRlc2NyaWJlZCBpbg0KICAgIHNlY3Rpb24gRy4yIG9mIHRo ZSBBZGEgc3RhbmRhcmQsIGluIHdoaWNoIHJvdW5kaW5nIG1vZGUgc2V0dGluZ3MNCiAgICB3b3Vs ZCBhY3R1YWxseSBoYXZlIGFuIGVmZmVjdCB3aXRob3V0IG5lZWRpbmcgdG8gcmVzb3J0IHRvIFZP TEFUSUxFDQogICAgdmFyaWFibGVzLiAgSWYgYSAic3RyaWN0IG1vZGUiIGhhZCBiZWVuIHByb3Zp ZGVkLCBpdCBtaWdodCBoYXZlIG1hZGUNCiAgICBzZW5zZSB0byBhbGxvdyBhIHByb2Nlc3NvciB0 byBpZ25vcmUgcm91bmRpbmcgbW9kZSBjaGFuZ2VzIG91dHNpZGUNCiAgICBzdHJpY3QgcmVnaW9u cy4gIEEgcmVxdWVzdCBmb3IgYSAic3RyaWN0IG1vZGUiIHdpbGwgYmUgcHJlc2VudGVkDQogICAg ZHVyaW5nIHRoZSByZXF1aXJlbWVudHMtZ2F0aGVyaW5nIHBoYXNlIGZvciB0aGUgbmV4dCByZXZp c2lvbiBvZiB0aGUNCiAgICBzdGFuZGFyZCwgZm9yIHRoaXMgYXMgd2VsbCBhcyBvdGhlciByZWFz b25zLg0KDQouLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u Li4uLi4uLi4uLi4uLi4uLi4uLi4uDQoNCkYwMy8wMDg0OiBSZXBsaWVzIGZyb20gdGhlIGVkaXRv cg0KICAgIEpvaG4gUmVpZCB3cml0ZXM6DQo8PDwNCiAgICAgVGhlIElFRUUgcm91bmRpbmcgbW9k ZSBvbiBlbnRyeSB0byB0aGUgcHJvY2VkdXJlIG1heSB2YXJ5IGZyb20NCiAgICAgY2FsbCB0byBj YWxsLiBUaGUgdmFsdWUgb2YgWjEgZGVwZW5kcyBvbiB0aGlzIHJvdW5kaW5nIG1vZGUuDQogICAg IFRoZXJlZm9yZSwgdGhlIHByb2Nlc3NvciBzaG91bGQgbm90IGFsd2F5cyBwcmludCB6ZXJvIGZv ciBaMS1aMi4NCiAgICAgV2hldGhlciBvciBub3QgWjEgYW5kIFoyIGhhdmUgdGhlIFBBUkFNRVRF UiBhdHRyaWJ1dGUgbWFrZXMgbm8NCiAgICAgZGlmZmVyZW5jZS4gWWVzLCB0aGUgcHJvY2Vzc29y IGlzIGFsbG93ZWQgdG8gZXZhbHVhdGUgYW4NCiAgICAgZXhwcmVzc2lvbiBpbiBhbnkgbWF0aGVt YXRpY2FsbHkgZXF1aXZhbGVudCB3YXksIGJ1dCBoZXJlIHRoZQ0KICAgICBtYXRoZW1hdGljcyBk aWN0YXRlcyB0aGF0IGEgcGFydGljdWxhciBmb3JtIG9mIHJvdW5kaW5nLCBkZWZpbmVkDQogICAg IGluIHRoZSBJRUVFIHN0YW5kYXJkLCBiZSBhcHBsaWVkLg0KPj4+DQoNCk5vIGl0IGRvZXMgbm90 LiAgSUVFRSBwZWN1bGlhcml0aWVzIHBsYXkgbm8gcGFydCBpbiB0aGUgbWF0aGVtYXRpY2FsDQpS ZWFscy4NCg0KSUVFRSBpcyBtZXJlbHkgb25lIGZvcm0gb2YgY29tcHV0ZXIgYXJpdGhtZXRpYy4g IChJdCB3b3VsZCBtYWtlIHZlcnkNCmJhZCBtYXRoZW1hdGljcywgc2luY2UgSUVFRSBudW1iZXJz IGFyZSBub3QgZXZlbiBhIHN1YnNldCBvZiB0aGUNCjItcG9pbnQgY29tcGFjdGlmaWNhdGlvbiBv ZiB0aGUgUmVhbHMsIHRodXMgbmVhcmx5IGFsbCBtYXRoZW1hdGljYWwNCmlkZW50aXRpZXMgYW5k IHRoZW9yZW1zIGFib3V0IHRoZSBSZWFscyB3b3VsZCBnZXQgZGVzdHJveWVkLikgIENvbXB1dGVy DQphcml0aG1ldGljIGlzICpjb21wdXRhdGlvbmFsKiBub3QgKm1hdGhlbWF0aWNhbCouICBBTEwg Y29tcHV0ZXINCmFyaXRobWV0aWNzIGZyZXF1ZW50bHkgZ2l2ZSBkaWZmZXJlbnQgY29tcHV0YXRp b25hbCBhbnN3ZXJzIGZvcg0KbWF0aGVtYXRpY2FsbHktZXF1aXZhbGVudCBleHByZXNzaW9ucy4N Cg0KQW5kIEkgY2Fubm90IGJlbGlldmUgeW91IGFyZSBhZ2FpbiB0cm90dGluZyBvdXQgdGhpcyBu b25zZW5zZSBzYXlpbmcNCmNvbnN0YW50IGV4cHJlc3Npb25zIHNob3VsZCBub3QgYmUgdHJlYXRl ZCBhcyBjb25zdGFudC4gIElmIEkgaGF2ZQ0KICAgIlJFQUwoS0lORD1JTlQoYStiKSkgOjogeChJ TlQoYStiKSkgPSBhK2I7IHk9YStiIiwNCndpdGggYSBhbmQgYiBiZWluZyBmbG9hdGluZy1wb2lu dCBuYW1lZCBjb25zdGFudHMsIEkgYW0gbm90IGFsbG93ZWQNCnRvIGV2YWx1YXRlIGErYiBhdCBj b21waWxlIHRpbWU/ICBTdXJlbHkgeW91IGplc3QuICBPciBJIGNhbiBpbiB0aGUNCktJTkQ9IGJ1 dCBub3QgaW4gdGhlIGFycmF5IGJvdW5kPyAgVW5sZXNzIHRoZSBhcnJheSBpcyBpbiBDT01NT04g b3INCmhhcyB0aGUgU0FWRSBhdHRyaWJ1dGU/ICBTdXJlbHkgeW91IGplc3QgZXZlbiBtb3JlLiAg T3IgSSBjYW4NCmV2ZXJ5d2hlcmUgZXhjZXB0IGluIHRoZSAieSA9Ij8gIFlvdSBjYW5ub3QgYmUg c2VyaW91cy4NCg0KRnVydGhlcm1vcmUsIHRoZSByYXRpb25hbGUgeW91IGFyZSB1c2luZyBpcyBh cHBsaWNhYmxlIHRvIGFsbCByb3V0aW5lcw0KcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZXkgY2Fs bCBJRUVFX1NFVF9ST1VORElORyBhbmQgd291bGQgdGhlcmVieQ0KZGVzdHJveSBtYW55IGJhc2lj IG9wdGltaXNhdGlvbnMuICBZb3UuUmVhbGx5LkNhbi5Ob3QuQmUuU2VyaW91cy4NCg0KLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQ0KDQpOVU1CRVI6IEYwMy8wMTAwDQpUSVRMRTogRXJyb3IgaW4gZmllbGQgd2lkdGgg Zm9yIHNwZWNpYWwgY2FzZXMgb2Ygc2lnbmVkIElORklOSVRZDQogICAgICAgb3V0cHV0DQpLRVlX T1JEUzogZm9ybWF0dGVkIG91dHB1dCwgc2lnbmVkIGluZmluaXR5DQpERUZFQ1QgVFlQRTogRXJy YXR1bQ0KU1RBVFVTOiBJbiBGMjAwOCBDb3JyaWdlbmR1bSAzDQoNClFVRVNUSU9OOg0KDQpJcyB0 aGVyZSBhbiBlcnJvciBpbiB0aGUgZGVzY3JpcHRpb24gZm9yIHRoZSBvdXRwdXQgb2YgYSBJRUVF IGluZmluaXR5DQp3aXRoIGEgc2lnbiBhbmQgYSBmaWVsZCB3aWR0aCBvZiAzIG9yIDg/DQoNCkZv cnRyYW4gMjAwOCwgMTAuNy4yLjMuMiBwYXJhZ3JhcGggNywgWzI1MjozMy0zNF0sIGRlc2NyaWJl cyB0aGUNCm91dHB1dCBvZiBJRUVFIGluZmluaXRpZXM7IHRoaXMgc3BlY2lmaWVzIGFzdGVyaXNr cyAoZmllbGQgb3ZlcmZsb3cpIGlmDQp0aGUgZmllbGQgd2lkdGggaXMgbGVzcyB0aGFuIDMsIGFu ZCBvbWlzc2lvbiBvZiAiaW5pdHkiIGlmIHRoZSBmaWVsZA0Kd2lkdGggaXMgbGVzcyB0aGFuIDgu ICBIb3dldmVyLCB0aGlzIGRvZXMgbm90IHRha2UgaW50byBhY2NvdW50IHRoZQ0KZmFjdCB0aGF0 IHRoZXJlIG1pZ2h0IGJlIGEgcGx1cyBvciBtaW51cyBzaWduIGluIHRoZSBmaWVsZC4NCg0KVGhl IGN1cnJlbnQgdGV4dCBhbHNvIGZhaWxzIHRvIHRha2UgaW50byBhY2NvdW50IHRoZSBjYXNlIG9m IDx3PiA9IDAsDQpmb3IgYm90aCBJbmZpbml0eSBhbmQgTmFOIHZhbHVlcy4NCg0KQU5TV0VSOg0K DQpZZXMsIHRoZXJlIGlzIGFuIGVycm9yIGluIHRoZSBzcGVjaWFsIGNhc2VzLiAgRWRpdHMgYXJl IHByb3ZpZGVkIHRvDQpjb3JyZWN0bHkgZGVzY3JpYmUgdGhlIHJlcXVpcmVkIGZpZWxkIHdpZHRo cyBmb3Igc2lnbmVkIGluZmluaXRpZXMuDQpBbiBlZGl0IGlzIGFsc28gcHJvdmlkZWQgdG8gcmVw YWlyIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgb3V0cHV0IG9mDQpOYU4gdmFsdWVzLg0KDQpFRElU UyB0byAxMC0wMDdyMToNCg0KWzI1MjozMy0zNF0gMTAuNy4yLjMuMnA3LCBSZXBsYWNlICJJZiA8 dz4gaXMgLi4uIHByb2R1Y2VkLiIgd2l0aA0KDQogICJUaGUgbWluaW11bSBmaWVsZCB3aWR0aCBy ZXF1aXJlZCBmb3Igb3V0cHV0IG9mIHRoZSBmb3JtICdJbmYnIGlzIDMNCiAgIGlmIG5vIHNpZ24g aXMgcHJvZHVjZWQsIGFuZCA0IG90aGVyd2lzZS4gIElmIDx3PiBpcyBncmVhdGVyIHRoYW4NCiAg IHplcm8gYnV0IGxlc3MgdGhhbiB0aGUgbWluaW11bSByZXF1aXJlZCwgdGhlIGZpZWxkIGlzIGZp bGxlZCB3aXRoDQogICBhc3Rlcmlza3MuICBUaGUgbWluaW11bSBmaWVsZCB3aWR0aCBmb3Igb3V0 cHV0IG9mIHRoZSBmb3JtDQogICAnSW5maW5pdHknIGlzIDggaWYgbm8gc2lnbiBpcyBwcm9kdWNl ZCBhbmQgOSBvdGhlcndpc2UuICBJZiA8dz4NCiAgIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0 byB0aGUgbWluaW11bSByZXF1aXJlZCBmb3IgdGhlIGZvcm0NCiAgICdJbmZpbml0eScsIHRoZSBm b3JtICdJbmZpbml0eScgaXMgb3V0cHV0LiAgSWYgPHc+IGlzIHplcm8gb3IgPHc+DQogICBpcyBs ZXNzIHRoYW4gdGhlIG1pbmltdW0gcmVxdWlyZWQgZm9yIHRoZSBmb3JtICdJbmZpbml0eScgYW5k DQogICBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIG1pbmltdW0gcmVxdWlyZWQgZm9yIHRo ZSBmb3JtICdJbmYnLA0KICAgdGhlIGZvcm0gJ0luZicgaXMgb3V0cHV0LiAgT3RoZXJ3aXNlLCB0 aGUgZmllbGQgaXMgZmlsbGVkIHdpdGgNCiAgIGFzdGVyaXNrcy4iDQoNClsyNTI6MzddIFNhbWUg c3ViY2xhdXNlLCBwOCwgUmVwbGFjZSAiSWYgPHc+IC4uLiBhc2tlcmlza3MuIiB3aXRoDQoNCiAg IklmIDx3PiBpcyBncmVhdGVyIHRoYW4gemVybyBhbmQgbGVzcyB0aGFuIDMsIHRoZSBmaWVsZCBp cyBmaWxsZWQNCiAgIHdpdGggYXN0ZXJpc2tzLiAgSWYgPHc+IGlzIHplcm8sIHRoZSBvdXRwdXQg ZmllbGQgaXMgJ05hTicuIi4NCg0KU1VCTUlUVEVEIEJZOiBEaWNrIEhlbmRyaWNrc29uDQoNCkhJ U1RPUlk6IDA3LTI3MSAgICBtMTgxICBGMDMvMDEwMCBzdWJtaXR0ZWQNCiAgICAgICAgIDA3LTI3 MXIyICBtMTgxICBQYXNzZWQgYnkgSjMgbWVldGluZw0KICAgICAgICAgMDctMzIxICAgIG0xODIg IEZhaWxlZCBKMyBsZXR0ZXIgYmFsbG90ICMxNCAwNy0yNzkNCiAgICAgICAgIDA3LTM0MHIxICBt MTgyICBQYXNzZWQgYnkgSjMgbWVldGluZw0KICAgICAgICAgMDgtMTMzcjIgIG0xODMgIFBhc3Nl ZCBieSBsZXR0ZXIgYmFsbG90ICMxNSAwOC0xMDENCiAgICAgICAgIDA4LTE2NCAgICBtMTg0ICBG YWlsZWQgV0c1IGJhbGxvdCAjNSBOMTcyMi1OMTcyNg0KICAgICAgICAgMTMtMjQ3ICAgIG0yMDAg IFJldmlzZWQgLSBwYXNzZWQgYnkgSjMgbWVldGluZw0KICAgICAgICAgMTMtMjYyICAgIG0yMDEg IFBhc3NlZCBhcyBhbWVuZGVkIGJ5IEozIGxldHRlciBiYWxsb3QgIzI4DQogICAgICAgICAgICAg ICAgICAgICAgICAgIDEzLTI1NXIxDQogICAgICAgICBOMTk5MCAgICAgbTIwMiAgUGFzc2VkIGJ5 IFdHNSBiYWxsb3QgNiBOMTk4Ny84OC85MA0KICAgICAgICAgTjIwMDIgICAgIG0yMDMgIEluIEYy MDA4IENvcnJpZ2VuZHVtIDMNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpOVU1CRVI6IEYwMy8wMTIxDQpU SVRMRTogUHJlY2lzZSBGUCBzZW1hbnRpY3Mgb2YgdGhlIFJFQUwgaW50cmluc2ljDQpLRVlXT1JE UzogUkVBTCBpbnRyaW5zaWMNCkRFRkVDVCBUWVBFOiBDbGFyaWZpY2F0aW9uDQpTVEFUVVM6IEoz IGNvbnNpZGVyYXRpb24gaW4gcHJvZ3Jlc3MNCg0KUVVFU1RJT046DQoNCk11c3QgdGhlIGludHJp bnNpYyBmdW5jdGlvbiBSRUFMIHdpdGggS0lORCBwYXJhbWV0ZXIgd3AgcmV0dXJuIGEgdmFsdWUN CnRoYXQgaXMgYSBSRUFMIChLSU5EPXdwKSBmbG9hdGluZyBwb2ludCBudW1iZXI/DQoNClJBVElP TkFMRSBGT1IgVEhFIFFVRVNUSU9OOg0KDQpDb21wdXRlciBoYXJkd2FyZSBtYXkgdXNlIGEgd2lk ZXIgZmxvYXRpbmctcG9pbnQgZm9ybWF0IGZvciByZWdpc3RlcnMNCnRoYW4gZm9yIG1lbW9yeTsg ZS5nLiwgODAgYml0cyBmb3IgcmVnaXN0ZXJzIGFuZCA2NCBiaXRzIGZvciBtZW1vcnkNCmZvciB0 aGUgY2FzZSBvZiBzdGFuZGFyZCBkb3VibGUgcHJlY2lzaW9uIGZsb2F0aW5nIHBvaW50IG51bWJl cnMuDQpTb21lIGFsZ29yaXRobXMgcmVxdWlyZSBhIGhpZ2ggbGV2ZWwgb2YgY29udHJvbCBvdmVy IGZsb2F0aW5nIHBvaW50DQpzZW1hbnRpY3MuICBJZiB0aGUgaW50cmluc2ljIGZ1bmN0aW9uIFJF QUwgd2l0aCBLSU5EIHBhcmFtZXRlciB3cCBpcw0KZ3VhcmFudGVlZCB0byByZXR1cm4gYSBSRUFM IChLSU5EPXdwKSByZXN1bHQgdGhlbiBhIHByb2dyYW1tZXIgY2FuIHVzZQ0KdGhpcyB0byBmb3Jj ZSBpbnRlcm1lZGlhdGUgcmVzdWx0cyBpbnRvIG1haW4gbWVtb3J5IGZvcm1hdCwgbmV2ZXIgbWlu ZA0KdGhhdCB0aGUgb3B0aW1pemluZyBjb21waWxlciBtYXkgaGF2ZSBwbGFjZWQgdGhlIGludGVy bWVkaWF0ZSBpbiBhDQpyZWdpc3Rlci4NCg0KSSBhbSBpbnRlcmVzdGVkIGluIGEgSjMgaW50ZXJw cmV0YXRpb24gb2YgdGhpcyBtYXR0ZXIsIGVzcGVjaWFsbHkgYQ0KbG91ZCBhbmQgY2xlYXIgYWZm aXJtYXRpdmUgaW50ZXJwcmV0YXRpb24sIGJlY2F1c2UgaXQgYXBwZWFycyB0aGF0DQpzb21lIHBy ZXNlbnQgRm9ydHJhbiBjb21waWxlcnMgb3B0aW1pemUgYXdheSBteSBleHBsaWNpdCB1c2Ugb2Yg dGhlDQpSRUFMIGludHJpbnNpYy4gIFRoZSBjb250ZXh0IGlzIGNvZGUgZm9yIGNvbXBlbnNhdGVk IHN1bW1hdGlvbiAoS2FoYW4NCnN1bW1hdGlvbikuICBJIGFwcHJlY2lhdGUgdGhhdCBwYXJlbnRo ZXNlcyBhcmUgaW52aW9sYWJsZSBjb3VydGVzeSBvZg0KdGhlIEZvcnRyYW4gc3RhbmRhcmQsIGJ1 dCBpbiBvcmRlciB0byBoYXZlIGNvZGUgdGhhdCBjYW5ub3QgYmUgYnJva2VuDQpieSBhbiBvcHRp bWl6aW5nIGNvbXBpbGVyIEkgc2VlbSB0byBuZWVkIGFsc28gYSBsYW5ndWFnZSBtZWNoYW5pc20g dG8NCmZvcmNlIGludGVybWVkaWF0ZSByZXN1bHRzIGludG8gbWFpbiBtZW1vcnkgZm9ybWF0Lg0K DQpCYXMgQnJhYW1zDQpDaGVtaXN0cnkgRGVwYXJ0bWVudCBhbmQNCkVtZXJzb24gQ2VudGVyIGZv ciBTY2llbnRpZmljIENvbXB1dGF0aW9uDQpFbW9yeSBVbml2ZXJzaXR5DQpBdGxhbnRhLCBHQQ0K DQpBTlNXRVI6DQoNClllcywgZm9yIHB1cnBvc2VzIG9mIGRldGVybWluaW5nIHRoZSB0eXBlIGFu ZCBraW5kIG9mIHRoZSByZXN1bHQsIGZvcg0KdXNlIGluIHN1YmNsYXVzZSA3LjEuOS4zLCB0aGUg cmVzdWx0IG9mIHRoZSBpbnRyaW5zaWMgZnVuY3Rpb24gUkVBTCB3aXRoDQpLSU5EIGFyZ3VtZW50 IHdwIHJldHVybnMgYSB2YWx1ZSB0aGF0IGlzIG9mIHR5cGUgUkVBTChLSU5EPXdwKS4NCkhvd2V2 ZXIsIGlmIGl0IGlzIHVzZWQgd2l0aGluIGFuIGV4cHJlc3Npb24gaW52b2x2aW5nIGludHJpbnNp Yw0Kb3BlcmF0aW9ucywNCiAgInRoZSBwcm9jZXNzb3IgbWF5IGV2YWx1YXRlIGFueSBtYXRoZW1h dGljYWxseSBlcXVpdmFsZW50DQogICBleHByZXNzaW9uLCBwcm92aWRlZCB0aGF0IHRoZSBpbnRl Z3JpdHkgb2YgcGFyZW50aGVzZXMgaXMgbm90DQogICB2aW9sYXRlZC4iDQphbmQNCiAgIm1hdGhl bWF0aWNhbGx5IGVxdWl2YWxlbnQgZXhwcmVzc2lvbnMgb2YgbnVtZXJpYyB0eXBlIG1heSBwcm9k dWNlDQogICBkaWZmZXJlbnQgY29tcHV0YXRpb25hbCByZXN1bHRzIiwNCndoaWNoIG1lYW5zIHRo YXQgaXQgaXMgdW5saWtlbHkgdG8gc2VydmUgeW91ciBwdXJwb3NlLg0KDQpJbnRlcm1lZGlhdGUg cmVzdWx0cyBjYW4gYmUgcm91bmRlZCB0byBzdG9yYWdlIGZvcm1hdCBieSBhc3NpZ25tZW50IHRv IGENClZPTEFUSUxFIHZhcmlhYmxlLg0KDQpFRElUUyB0byAxMC0wMDdyMToNCg0KTm9uZS4NCg0K U1VCTUlUVEVEIEJZOiBCYXMgQnJhYW1zLCBFbW9yeSBVbml2ZXJzaXR5LCBBdGxhbnRhLCBHQQ0K DQpISVNUT1JZOiAwOC0yMDhyMSAgbTE4NSAgRjAzLzAxMjEgc3VibWl0dGVkDQogICAgICAgICAx MC0yNDAgICAgbTE5MyAgRHJhZnQgYW5zd2VyIGZvciBGMjAwOCAtIFBhc3NlZCBieSBKMyBtZWV0 aW5nDQogICAgICAgICAxMS0xMjkgICAgbTE5NCAgUGFzc2VkIGJ5IEozIGxldHRlciBiYWxsb3Qg IzIyIDEwLTI1NA0KICAgICAgICAgTjE4NzggICAgIG0xODYgIEZhaWxlZCBXRzUgYmFsbG90IDEg TjE4NzYNCiAgICAgICAgIDExLTI2MCAgICBtMTk2ICBSZXZpc2VkIGFuc3dlcg0KICAgICAgICAg MTEtMjYwcjEgIG0xOTYgIFBhc3NlZCBieSBKMyBtZWV0aW5nDQogICAgICAgICAxMi0xNjVyMiAg bTE5OCAgUGFzc2VkIGJ5IEozIGxldHRlciBiYWxsb3QgIzI1IDEyLTE0Nw0KICAgICAgICAgMTIt MTkzICAgIG0xOTkgIEZhaWxlZCBXRzUgYmFsbG90ICMzIE4xOTMyL04xOTMzL04xOTM5DQoNCkYw My8wMTIxDQoNCkJhZGVyIE5PIHZvdGU6DQoNClRoZSBhbnN3ZXIgYXMgYSB3aG9sZSBzZWVtcyBt aXNsZWFkaW5nOyBnaXZlbiB0aGUgc3BlY2lmaWNhdGlvbg0Kb2YgdGhlIFJFQUwgaW50cmluc2lj IGFuZCBleGlzdGluZyBydWxlcyBmb3IgdHlwZSBjb252ZXJzaW9ucyAob3INCnRoZWlyIGFic2Vu Y2UpIGluIGV4cHJlc3Npb25zLCB0aGUgYW5zd2VyIHNob3VsZCBzaW1wbHkgYmUgInllcyIuDQpU aGUgcmVmZXJlbmNlIHRvIG1hdGhlbWF0aWNhbGx5IGVxdWl2YWxlbnQgZXhwcmVzc2lvbnMgaXMg bW9zdGx5DQppcnJlbGV2YW50IChzaW5jZSBieSBwYXJlbnRoZXNpemF0aW9uIHRoZSBwcm9ncmFt bWVyJ3MgcHVycG9zZQ0Kc2hvdWxkIHZlcnkgbGlrZWx5IGJlIGFjaGlldmFibGUpLCBhbmQgdGhh dCB0byBWT0xBVElMRSB2YXJpYWJsZXMNCmlzIHNpbXBseSB1bm5lY2Vzc2FyeS4NCg0KQ29yYmV0 dCBOTyB2b3RlOg0KDQpJIHByZXZpb3VzbHkgdm90ZWQgZm9yIHRoZSBhbnN3ZXIgZ2l2ZW4uICBT aW5jZSB0aGVuLCBJDQpoYXZlIGJlZW4gY29udmluY2VkIEkgd2FzIG1pc3Rha2VuLiAgSSBubyBs b25nZXIgdGhpbmsNCnRoYXQgUkVBTChYKSwgd2hlcmUgWCBoYXMgdHlwZSBSRUFMIGJ1dCBoYXMg YSBkaWZmZXJlbnQNCmtpbmQgdHlwZSBwYXJhbWV0ZXIgdmFsdWUgZnJvbSB0aGF0IG9mIHR5cGUg ZGVmYXVsdCByZWFsLA0Kc2hvdWxkIGJlIGNvbnNpZGVyZWQgbWF0aGVtYXRpY2FsbHkgZXF1aXZh bGVudCB0byBYLiAgSQ0Kbm93IGFncmVlIHdpdGggTXIuIEJyYWFtcyB0aGF0IHRoZSBpbnRyaW5z aWMgZnVuY3Rpb24gUkVBTA0Kc2hvdWxkIGRvIGEgcmVhbCBjb252ZXJzaW9uLg0KDQpJIGFncmVl IHdpdGggVmFuIHRoYXQgbm90aGluZyBpbiB0aGUgc3RhbmRhcmQgb3IgaW4gdGhlDQpleGlzdGlu ZyBpbnRlcnByZXRhdGlvbnMgcmVxdWlyZXMgVk9MQVRJTEUgdG8gZm9yY2UgYQ0KY29udmVyc2lv bi4gIEludGVycHJldGF0aW9uIEY5MC8wMDAwMDEgaXMgdGhlIG9ubHkNCmludGVycHJldGF0aW9u IEkgaGF2ZSBmb3VuZCB0aGF0IGFkZHJlc3NlcyB0aGUgaXNzdWUsDQphbmQgaXQsIG9mIGNvdXJz ZSwgY291bGQgbm90IHJlcXVpcmUgdGhlIHVzZSBvZiBWT0xBVElMRS4NCkkgYWdyZWUgd2l0aCBK b2huIHRoYXQgVk9MQVRJTEUgc2hvdWxkIG5vdCBiZSByZXF1aXJlZCB0bw0KZm9yY2UgYSBjb252 ZXJzaW9uLg0KDQpMb25nIE5PIHZvdGU6DQoNClNpbWlsYXIgdG8gRjAzLzAwODQsIHRoaXMgaGlu Z2VzIG9uIHRoZSBtZWFuaW5nIG9mICJtYXRoZW1hdGljYWwiLg0KSSdtIG5vdCBjb252aW5jZWQg dGhhdCBhIHByb2Nlc3NvciBpcyBhbGxvd2VkIHRvIHRyZWF0DQpYIGFuZCBSRUFMKFgsd3ApIGFz IG1hdGhlbWF0aWNhbGx5IGVxdWl2YWxlbnQuICBUaGUgUkVBTCBmdW5jdGlvbg0KKG1heSkgcGVy Zm9ybSBhbiBvcGVyYXRpb24gdGhhdCBpcyBvdXRzaWRlIHRoZSBzY29wZSBvZiBub3JtYWwNCmFs Z2VicmEuDQoNCk1hY2xhcmVuIGNvbW1lbnQ6DQoNClRoZSByZWNvbW1lbmRhdGlvbiB0byB1c2Ug Vk9MQVRJTEUgaXMgd3JvbmcuICBUaGVyZSBpcyBhIGNvbW1vbiBteXRoIGluDQphbW9uZyBDIGFu ZCBDKysgcHJvZ3JhbW1lcnMgYW5kIGV2ZW4gaW4gaW5mb3JtYXRpdmUgdGV4dCBpbiB0aGUNCnN0 YW5kYXJkcyB0aGF0IHZvbGF0aWxlIGltcGxpZXMgdGhpcyBzZW1hbnRpYywgYnV0IGl0IGlzIG5v dCBqdXN0aWZpZWQNCmJ5IHRoZWlyIG5vcm1hdGl2ZSB0ZXh0LCBub3IgZG8gYWxsIGNvbXBpbGVy cyBzdXBwb3J0IGl0LiAgRm9ydHJhbg0Kc2hvdWxkIG5vdCBmb2xsb3cgc3VpdCAtIGluIHBhcnRp Y3VsYXIsIEZvcnRyYW4gMjAwOCA1LjMuMTkgbWFrZXMgbm8NCnN1Y2ggZ3VhcmFudGVlLg0KDQpJ biBwYXJ0aWN1bGFyLCBiZWNhdXNlIDUuMy4xOSBwcm92aWRlcyBsaWNlbmNlIHRvIHRoZSBwcm9j ZXNzb3IgYW5kIG5vdA0KdG8gdGhlIHByb2dyYW1tZXIsIGEgY29tcGlsZXIgaXMgYXQgbGliZXJ0 eSB0byBvcHRpbWlzZSBhbGwgcmVmZXJlbmNlcw0KdG8gVk9MQVRJTEUgdmFyaWFibGVzIGlmIGl0 IGRvZXMgbm90IHByb3ZpZGUgYW55IG1ldGhvZCBvZiBhY2Nlc3NpbmcgaXQNCm90aGVyIHRoYW4g dGhvc2Ugc3BlY2lmaWVkIGJ5IHRoZSBwcm9ncmFtLiAgUmVncmV0dGFibHksIHRoZSBjb3JyZWN0 DQpyZXNwb25zZSBpczoNCg0KICAgVGhlcmUgaXMgbm8gZmVhdHVyZSBpbiBGb3J0cmFuIHRvIHBy b3ZpZGUgdGhpcyBmYWNpbGl0eSwgdGhvdWdoDQogICBhc3NpZ25tZW50IHRvIGEgVk9MQVRJTEUg dmFyaWFibGUgd2lsbCBvZnRlbiB3b3JrLiAgT24gc29tZQ0KICAgcHJvY2Vzc29ycywgbWFraW5n IHRoYXQgYSBCSU5EKEMpIHZhcmlhYmxlIGluIGEgbW9kdWxlIHdpbGwgYmUNCiAgIG5lZWRlZCBi dXQsIG9uIGEgZmV3LCB0aGlzIHJlY2lwZSB3aWxsIG5vdCB3b3JrIGF0IGFsbC4NCg0KVGhpcyBz aG91bGQgYmUgYWRkcmVzc2VkIHByb3Blcmx5IGluIGEgZnV0dXJlIHJldmlzaW9uLg0KDQpNdXh3 b3J0aHkgY29tbWVudDoNCg0KTGlrZSBWYW4sIEkgZmluZCB0aGUgQW5zd2VyIHVuc2F0aXNmYWN0 b3J5IGFsdGhvdWdoIHRoZSBvdXRjb21lIChubw0KZWRpdCkgaXMgY29ycmVjdC4gIFRoZSBhbnN3 ZXIgaXMgWWVzLiAgVGhpcyBpcyBzdGF0ZWQgY2xlYXJseSBpbg0KMTMuNy4xMzguICBXaGF0IGEg cHJvY2Vzc29yIG1pZ2h0IG9yIG1pZ2h0IG5vdCBkbyBiZWhpbmQgdGhlIHNjZW5lcyBpcw0KaXJy ZWxldmFudC4gIElmIGl0IGRvZXMgbm90IG9iZXkgMTMuNy4xMzggaXQgaXMgbm9uLXN0YW5kYXJk LQ0KY29uZm9ybWluZy4gIChXZSBhcmUgdGFsa2luZyBhYm91dCBhIGhpZ2gtbGV2ZWwgbGFuZ3Vh Z2UsIG5vdCBDKS4NCg0KUmVpZCBOTyB2b3RlOg0KDQpJIHRoaW5rIGl0IGlzIHVuYWNjZXB0YWJs ZSB0byByZWNvbW1lbmQgdGhlIHVzZSBvZiB0aGUgVk9MQVRJTEUNCmF0dHJpYnV0ZSBmb3IgYSB2 YXJpYWJsZSB0aGF0IGlzIHJlZmVyZW5jZWQsIGRlZmluZWQsIG9yIGJlY29tZXMNCnVuZGVmaW5l ZCBvbmx5IHdpdGhpbiB0aGUgRm9ydHJhbiBwcm9ncmFtLiBUaGUgZGVzaXJlZCBlZmZlY3QNCm1h eSBiZSBvYnRhaW5lZCBieSBhc3NpZ25pbmcgdGhlIGludGVybWVkaWF0ZSByZXN1bHQgdG8gYQ0K dmFyaWFibGUgd2l0aG91dCB0aGUgVk9MQVRJTEUgYXR0cmlidXRlIGJlY2F1c2UgdGhpcyBydWxl cyBvdXQNCnRoZSBleGNlcHRpb25zIGV4cGxhaW5lZCBpbiB0aGUgZmluYWwgc2VudGVuY2Ugb2Yg dGhlIGZpcnN0DQpwYXJhZ3JhcGggb2YgdGhlIGFuc3dlciAoIkZ1cnRoZXJtb3JlLCAuLi4iKS4N Cg0KU255ZGVyIE5PIHZvdGU6DQoNCiAgICBUaGUgYW5zd2VyIHJlZmVycyB0byBzdWJjbGF1c2Ug Ny4xLjUuMi40IHdpdGhvdXQgaWRlbnRpZnlpbmcgdGhhdA0KICAgIHN1YmNsYXVzZTogInRoZSBw cm9jZXNzb3IgbWF5IGV2YWx1YXRlIGFueSBtYXRoZW1hdGljYWxseQ0KICAgIGVxdWl2YWxlbnQg ZXhwcmVzc2lvbiwgcHJvdmlkZWQgdGhhdCB0aGUgaW50ZWdyaXR5IG9mIHBhcmVudGhlc2VzIGlz DQogICAgbm90IHZpb2xhdGVkLCIgYW5kIHVzZXMgdGhhdCBhcyBqdXN0aWZpY2F0aW9uIGZvciB0 aGUgYW5zd2VyLg0KICAgIFN1YmNsYXVzZSA3LjEuNS4yLjQgaXMgZW50aXJlbHkgaXJyZWxldmFu dCB0byB0aGUgcXVlc3Rpb24uDQoNCiAgICBTdWJjbGF1c2UgNC4xLjIgc3BlY2lmaWVzIHRoYXQg IkZvciBlYWNoIHR5cGUgdGhlcmUgaXMgYSBzZXQgb2YNCiAgICB2YWxpZCB2YWx1ZXMuIiAgU3Vi Y2xhdXNlIDQuMiBzcGVjaWZpZXMgdGhhdCAidGhlIHNldCBvZiB2YWx1ZXMuLi4NCiAgICBkZXBl bmRbc10gb24gdGhlIHZhbHVlcyBvZiB0aGUgcGFyYW1ldGVycy4iDQoNCiAgICBTdWJjbGF1c2Ug MTMuNy4yLCBhcyBhbWVuZGVkIGJ5IHRoZSBhbnN3ZXIgdG8gaW50ZXJwIEYwOC8wMDA4LA0KICAg IHNheXMsIGluIHBhcnQsICJBIHByb2dyYW0gc2hhbGwgbm90IGludm9rZSBhbiBpbnRyaW5zaWMg cHJvY2VkdXJlDQogICAgdW5kZXIgY2lyY3Vtc3RhbmNlcyB3aGVyZSBhIHZhbHVlIC4uLiByZXR1 cm5lZCBhcyBhIGZ1bmN0aW9uIHJlc3VsdA0KICAgIGlzIG5vdCByZXByZXNlbnRhYmxlIGJ5IG9i amVjdHMgb2YgdGhlIHNwZWNpZmllZCB0eXBlIGFuZCB0eXBlDQogICAgcGFyYW1ldGVycy4iDQoN CiAgICBBbGxvd2luZyB0aGUgUkVBTCBpbnRyaW5zaWMgZnVuY3Rpb24gdG8gcmV0dXJuIGEgcmVz dWx0IHRoYXQgaXMNCiAgICBjbGFpbWVkIHRvIGhhdmUgYSBzcGVjaWZpZWQga2luZCwgYW5kIGEg dmFsdWUgdGhhdCBpcyBub3QgYSBtZW1iZXINCiAgICBvZiB0aGUgc2V0IG9mIHZhbGlkIHZhbHVl cyBmb3IgdGhhdCBraW5kLCB2aW9sYXRlcyB0aGUgcmVxdWlyZW1lbnRzDQogICAgb2Ygc3ViY2xh dXNlcyA0LjEuMiwgNC4yLCBhbmQgMTMuNy4xIGFzIGFtZW5kZWQgYnkgaW50ZXJwcmV0YXRpb24N CiAgICBGMDgvMDAwOC4gIEFuIGludGVycHJldGF0aW9uIHNob3VsZCBub3QgaW50cm9kdWNlIGFu IGluY29uc2lzdGVuY3kNCiAgICB0aGF0IHdpbGwgbGF0ZXIgbmVlZCB0byBiZSByZXNvbHZlZCBi eSB5ZXQgYW5vdGhlciBpbnRlcnByZXRhdGlvbi4NCiAgICBFdmVuIGlmIEYwOC8wMDA4IHdlcmUg dG8gZmFpbCwgdGhlIHJlc3VsdCBvZiB0aGUgYW5zd2VyIHRvIHRoaXMNCiAgICBpbnRlcnByZXRh dGlvbiB3b3VsZCBiZSB0byBpbnRyb2R1Y2UgYSBjb25mbGljdCB0byAxMy43LjEgc3RhdHVzIHF1 bw0KICAgIGFudGUsIHdoaWNoIHJlYWRzLCBpbiBwYXJ0LCAiQSBwcm9ncmFtIGlzIHByb2hpYml0 ZWQgZnJvbSBpbnZva2luZw0KICAgIGFuIGludHJpbnNpYyBwcm9jZWR1cmUgdW5kZXIgY2lyY3Vt c3RhbmNlcyB3aGVyZSBhIHZhbHVlIHRvIGJlDQogICAgcmV0dXJuZWQgaW4gYSBzdWJyb3V0aW5l IGFyZ3VtZW50IG9yIGZ1bmN0aW9uIHJlc3VsdCBpcyBvdXRzaWRlIHRoZQ0KICAgIHJhbmdlIG9m IHZhbHVlcyByZXByZXNlbnRhYmxlIGJ5IG9iamVjdHMgb2YgdGhlIHNwZWNpZmllZCB0eXBlIGFu ZA0KICAgIHR5cGUgcGFyYW1ldGVycywiIGFuZCBjb250aW51ZXMgd2l0aCBjYXZlYXRzIG5vdCBn ZXJtYW5lIHRvIHRoZQ0KICAgIHByZXNlbnQgaW50ZXJwcmV0YXRpb24uDQoNCiAgICBUaGUgb25s eSByZWFzb24gZXZlciB0byBpbnZva2UgdGhlIFJFQUwgaW50cmluc2ljIGZ1bmN0aW9uIHdpdGgg YQ0KICAgIHJlYWwgYXJndW1lbnQgYW5kIGEgS0lORCBhcmd1bWVudCBpcyB0byBwcm9kdWNlIGEg cmVzdWx0IHdpdGggdGhlDQogICAgc3BlY2lmaWVkIGtpbmQsIGFuZCBhIHZhbHVlIHRoYXQgaXMg YSBtZW1iZXIgb2YgdGhlIHNldCBvZiB2YWxpZA0KICAgIHZhbHVlcyBmb3IgdGhhdCBraW5kLiAg VGhpcyBpcyBleGNlZWRpbmdseSByYXJlLCBleGNlcHQgcGVyaGFwcyBhcw0KICAgIGFuIGFjdHVh bCBhcmd1bWVudCAod2hlcmUgdGhlIHByb2Nlc3NvciBtdXN0IG5lY2Vzc2FyaWx5IHByb2R1Y2Ug YQ0KICAgIHZhbHVlIHRoYXQgaXMgYSBtZW1iZXIgb2YgdGhlIHNldCBvZiB2YWxpZCB2YWx1ZXMs IGFuZCBhZGRpdGlvbmFsbHkNCiAgICBpcyByZXByZXNlbnRlZCBieSB0aGUgc3BlY2lmaWVkIHR5 cGUgYW5kIGtpbmQpLCBhbmQgdGhlcmVmb3JlDQogICAgcmVxdWlyaW5nIHByb2Nlc3NvcnMgdG8g cHJvZHVjZSBhIHZhbHVlIGZvciB0aGUgcmVzdWx0IG9mIFJFQUwgdGhhdA0KICAgIGlzIGEgbWVt YmVyIG9mIHRoZSBzZXQgb2YgdmFsaWQgdmFsdWVzIGZvciB0aGUga2luZCBvZiB0aGUgcmVzdWx0 DQogICAgd291bGQgaGF2ZSBubyBtZWFzdXJhYmxlIGVmZmVjdCBvbiBwZXJmb3JtYW5jZSBpbiBh bnkgcHJvZ3JhbSBvdGhlcg0KICAgIHRoYW4gYW4gYXJjYW5lIFNQRUMgYmVuY2htYXJrLg0KDQog ICAgVGhlIGFuc3dlciBzaG91bGQgYmUgIkFsdGhvdWdoIGEgcHJvY2Vzc29yIGlzIGFsbG93ZWQg dG8gcmVwbGFjZSBhbg0KICAgIGV4cHJlc3Npb24gd2l0aCBhIG1hdGhlbWF0aWNhbGx5IGVxdWl2 YWxlbnQgZXhwcmVzc2lvbiwgc3ViY2xhdXNlcw0KICAgIDQuMS4yLCA0LjIsIGFuZCAxMy43LjEg KG9yIDEzLjcuMSBhcyBhbWVuZGVkIGJ5IGludGVycHJldGF0aW9uDQogICAgRjA4LzAwMDgpIHJl cXVpcmUgdGhlIHZhbHVlIG9mIHRoZSByZXN1bHQgb2YgZXZlcnkgaW50cmluc2ljDQogICAgZnVu Y3Rpb24gdG8gYmUgYSBtZW1iZXIgb2YgdGhlIHNldCBvZiB2YWxpZCB2YWx1ZXMgZm9yIHRoZSB0 eXBlIGFuZA0KICAgIGtpbmQgb2YgdGhlIGZ1bmN0aW9uIHJlc3VsdC4iICBObyBub3JtYXRpdmUg ZWRpdHMgd291bGQgYmUgcmVxdWlyZWQsDQogICAgYWx0aG91Z2ggaXQgd291bGQgYmUgaGVscGZ1 bCB0byBhZGQgYSByZWNvbW1lbmRhdGlvbiBpbiBhIG5vdGUgKG9yIGENCiAgICByZXF1aXJlbWVu dCkgdG8gMTMuNy4xMzhwNSBDYXNlIChpKSB0aGF0IHRoZSByZXN1bHQgaGF2ZSBhIHZhbHVlDQog ICAgdGhhdCBpcyBub3QgZGlmZmVyZW50IGZyb20gdGhlIGFyZ3VtZW50IGJ5IG1vcmUgdGhhbiBv bmUgdW5pdCBpbiBpdHMNCiAgICBsZWFzdCBzaWduaWZpY2FudCBwbGFjZSAodW5sZXNzIHRoZSBh cmd1bWVudCBpcyBOYU4pLCBhbmQgdGhhdCBpdCBiZQ0KICAgIHJvdW5kZWQgYWNjb3JkaW5nIHRv IElFQyA2MDU1OToxOTg5IGFuZCB0aGUgcm91bmRpbmcgbW9kZSBjdXJyZW50bHkNCiAgICBpbiBl ZmZlY3QgaWYgdGhlIElFRUVfQVJJVEhNRVRJQyBtb2R1bGUgaXMgYWNjZXNzaWJsZSAodW5sZXNz IHRoZQ0KICAgIGFyZ3VtZW50IGlzIE5hTikuDQoNCiAgICBBZHZpY2UgaW4gdGhlIHByZXNlbnRs eSBwcm9wb3NlZCBhbnN3ZXIgaXMgb2ZmZXJlZCB0byB1c2UgdGhlDQogICAgVk9MQVRJTEUgYXR0 cmlidXRlLiAgU3ViY2xhdXNlIDUuMy4xOSBzdGF0ZXMsIGluIHBhcnQsIGhvd2V2ZXIsDQogICAg dGhhdCAiVGhlIFZPTEFUSUxFIGF0dHJpYnV0ZSBzcGVjaWZpZXMgdGhhdCBhbiBvYmplY3QgbWF5 IGJlDQogICAgcmVmZXJlbmNlZCwgZGVmaW5lZCwgb3IgYmVjb21lIHVuZGVmaW5lZCwgYnkgbWVh bnMgbm90IHNwZWNpZmllZCBieQ0KICAgIHRoZSBwcm9ncmFtLiIgIEludm9raW5nIHRoZSBSRUFM IGludHJpbnNpYyBmdW5jdGlvbiBpcyBhIG1lYW5zIHRoYXQNCiAgICBJUyBzcGVjaWZpZWQgYnkg dGhlIHByb2dyYW0sIHNvIHRoZSBhZHZpY2UgaXMgbm90IGdlcm1hbmUuDQoNCiAgICBPbmUgd2hv IHJlYWRzIHN1YmNsYXVzZXMgNC4xLjIsIDQuMiwgNS4zLjE5LCA3LjEuNS4yLjQgYW5kIDEzLjcu MQ0KICAgIHdvdWxkIGhhdmUgbm8gY2x1ZSB0aGF0IHRoZSB3YXkgdG8gbWFrZSBSRUFMIG9wZXJh dGUgYXMgZXNzZW50aWFsbHkNCiAgICBhbGwgdXNlcnMgZXhwZWN0IGl0IHRvIG9wZXJhdGUgaXMg dG8gc3RvcmUgaXRzIHJlc3VsdCBpbnRvIGENCiAgICB2YXJpYWJsZSB0aGF0IGhhcyB0aGUgVk9M QVRJTEUgYXR0cmlidXRlISAgSWYgb25lIG11c3QgaGF2ZSB0aGUNCiAgICBwcmVzZW50bHkgcHJv cG9zZWQgYW5zd2VyLCBoYXZpbmcgbm8gZWRpdHMgaXMgZW50aXJlbHkgaW5hZGVxdWF0ZS4NCiAg ICBTdWJjbGF1c2UgNS4zLjE5IG11c3QgYmUgYW1lbmRlZCB0byBpbmNsdWRlIGVmZmVjdHMgdGhh dCBBUkUNCiAgICBzcGVjaWZpZWQgYnkgdGhlIHByb2dyYW0uICBTdWJjbGF1c2VzIDUuMy4xOSBh bmQgMTMuNy4xMzggbXVzdCBiZQ0KICAgIGFtZW5kZWQgdG8gaW5jbHVkZSBhZHZpY2UgdG8gdXNl IHRoZSBWT0xBVElMRSBhdHRyaWJ1dGUgdG8gbWFrZSBSRUFMDQogICAgZnVuY3Rpb24gYXMgZXNz ZW50aWFsbHkgYWxsIHVzZXJzIGV4cGVjdCBpdCB0by4gIEZ1cnRoZXIsIHRoZXJlIG11c3QNCiAg ICBiZSBhbiBleHBsaWNpdCBleGVtcHRpb24gZm9yIFJFQUwgaW4gc3ViY2xhdXNlIDEzLjcuMSwg YW5kIG1heWJlIGluDQogICAgNC4xLjIgYW5kIDQuMiBhcyB3ZWxsLg0KDQogICAgQSBwZXJ2ZXJz ZSByZWFkaW5nIG9mIDEzLjcuMSwgYWRyb2l0bHkgc2lkZXN0ZXBwaW5nIHN1YmNsYXVzZXMgNC4x LjINCiAgICBhbmQgNC4yLCBtaWdodCBiZSB0aGF0IGEgZnVuY3Rpb24gaXMgYWxsb3dlZCB0byBy ZXR1cm4gYSB2YWx1ZSB0aGF0DQogICAgaXMgbm90IGEgbWVtYmVyIG9mIHRoZSBzZXQgb2YgdmFs aWQgdmFsdWVzIGZvciB0aGUgdHlwZSBhbmQga2luZCBvZg0KICAgIHRoZSByZXN1bHQsIGJ1dCB0 aGF0IGEgcHJvZ3JhbSBpcyBub3QgYWxsb3dlZCB0byBpbnZva2UgdGhlIGZ1bmN0aW9uDQogICAg aW4gc3VjaCBhIHdheSBhcyB0byBwcm9kdWNlIHRoYXQgcmVzdWx0LiAgVGhpcyB3b3VsZCBtYWtl IGl0IGlsbGVnYWwNCiAgICBpbnN0ZWFkIG9mIHBvaW50bGVzcyB0byBpbnZva2UgdGhlIFJFQUwg aW50cmluc2ljIGZ1bmN0aW9uIHdpdGggdGhlDQogICAgaG9wZSB0byBwcm9kdWNlIGEgdmFsdWUg dGhhdCBpcyBhIG1lbWJlciBvZiB0aGUgc2V0IG9mIHZhbGlkIHZhbHVlcw0KICAgIGZvciB0aGUg a2luZCBvZiB0aGUgcmVzdWx0LiAgVGhhdCBpcywgZm9yIGV4YW1wbGUsIHRoYXQgUkVBTCBpcw0K ICAgIHBlcm1pdHRlZCB0byBhY3QgY29uc2lzdGVudGx5IHdpdGggdGhlIHByZXNlbnQgYW5zd2Vy IHRvIHRoaXMNCiAgICBpbnRlcnByZXRhdGlvbiwgYnV0IGEgcHJvZ3JhbSBpcyBub3QgcGVybWl0 dGVkIHRvIGludm9rZQ0KICAgIFJFQUwoMy4xNDE1OTI2NTM1ODk3OTMyMzg0NjI2NDMzOGQwLGtp bmQoMS4wZTApKSBpZiB0aGUgcHJvY2Vzc29yDQogICAgdXNlcyAzMi1iaXQgSUVFRSBhcml0aG1l dGljIGZvciBkZWZhdWx0IHJlYWwsIGJlY2F1c2UgdGhlIHJlc3VsdA0KICAgIHdvdWxkIG5vdCBi ZSBhIG1lbWJlciBvZiB0aGUgc2V0IG9mIHZhbGlkIHZhbHVlcy4gIElmIHNvLCBpbiBvcmRlcg0K ICAgIHRvIGRldGVjdCBwcm9ncmFtcyB0aGF0IGFyZSBub3Qgc3RhbmRhcmQgY29uZm9ybWluZywg YSBoZWxwZnVsDQogICAgcHJvY2Vzc29yIHNob3VsZCBhbm5vdW5jZSBhbiBlcnJvciBpbiB0aGlz IGNpcmN1bXN0YW5jZSwgd2hpY2gNCiAgICByZXF1aXJlcyBwcm9kdWNpbmcgYSB2YWx1ZSB0aGF0 IGlzIGEgbWVtYmVyIG9mIHRoZSBzZXQgb2YgdmFsaWQNCiAgICB2YWx1ZXMsIGFuZCBjb21wYXJp bmcgaXQgdG8gdGhlIHByb3Bvc2VkIHJlc3VsdCB2YWx1ZSBpbnN0ZWFkIG9mDQogICAgdXNpbmcg aXQgYXMgdGhlIHJlc3VsdCB2YWx1ZS4gIE9uZSBtaWdodCBhcmd1ZSB0aGF0IDEzLjcuMSB3YXMN CiAgICBhaW1lZCwgZm9yIGV4YW1wbGUsIGF0IFNRUlQoLTEuMCksIGZvciB3aGljaCB0aGUgbWF0 aGVtYXRpY2FsDQogICAgZnVuY3Rpb24gYXBwcm94aW1hdGVkIGJ5IHRoZSBpbnRyaW5zaWMgZnVu Y3Rpb24gaGFzIG5vIHZhbHVlcyB0aGF0DQogICAgYXJlIHJlcHJlc2VudGFibGUgYnkgdGhlIHR5 cGUgYW5kIGtpbmQgb2YgdGhlIHJlc3VsdC4gIEJ1dCBpdA0KICAgIGRvZXNuJ3Qgc2F5IHNvLCBh bmQgdGhhdCBhcmd1bWVudCBkb2VzIG5vdCByZWFzb25hYmx5IGFwcGx5IHRvDQogICAgUkVBTC4g IFNpbmNlIDEzLjcuMTM4cDUgQ2FzZSAoaSkgZXhwbGljaXRseSBzYXlzIHRoYXQgUkVBTCBwcm9k dWNlcw0KICAgIGFuIGFwcHJveGltYXRpb24gdG8gaXRzIGFyZ3VtZW50LCBpdCBpcyBtb3JlIHJl YXNvbmFibGUgZm9yDQogICAgUkVBTCgzLjE0MTU5MjY1MzU4OTc5MzIzODQ2MjY0MzM4ZDAsa2lu ZCgxLjBlMCkpIHRvIHByb2R1Y2UgYW4NCiAgICBhcHByb3hpbWF0aW9uIHRoYXQgaXMgYSBtZW1i ZXIgb2YgdGhlIHNldCBvZiB2YWxpZCB2YWx1ZXMgZm9yIHRoZQ0KICAgIGtpbmQgb2YgdGhlIHJl c3VsdCwgdGhhbiBmb3IgaXRzIGludm9jYXRpb24gdG8gYmUgcHJvaGliaXRlZCwgb3IgZm9yDQog ICAgaXQgdG8gcHJvZHVjZSBhIHJlc3VsdCB0aGF0IGlzIG5vdCBhIG1lbWJlciBvZiB0aGUgc2V0 IG9mIHZhbGlkDQogICAgdmFsdWVzIGZvciB0aGUga2luZCBvZiB0aGUgcmVzdWx0Lg0KDQogICAg SWYgYSBwcm9jZXNzb3IgYWJzb2x1dGVseSBtdXN0IHJlZHVjZSBSRUFMIHdpdGggYSByZWFsIGFy Z3VtZW50IHRvDQogICAgdGhlIGlkZW50aXR5IG9wZXJhdGlvbiB1bmRlciBjZXJ0YWluIGNpcmN1 bXN0YW5jZXMsIGEgY29tbWFuZC1saW5lDQogICAgYXJndW1lbnQgdG8gY2F1c2UgdGhpcyBiZWhh dmlvciBjb3VsZCBiZSBwcm92aWRlZCwgd2l0aCBhIGNhdmVhdA0KICAgIHRoYXQgdXNpbmcgdGhh dCBzZXR0aW5nIGFkbWl0cyBiZWhhdmlvciB0aGF0IGlzIG5vdCBjb25zaXN0ZW50IHdpdGgNCiAg ICB0aGUgc3RhbmRhcmQuDQoNCi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uDQoNCkYwMy8wMTIxOiBSZXBsaWVzIGZyb20g dGhlIGVkaXRvcg0KDQo8PDwNCiAgICAgIEkgdGhpbmsgaXQgaXMgdW5hY2NlcHRhYmxlIHRvIHJl Y29tbWVuZCB0aGUgdXNlIG9mIHRoZSBWT0xBVElMRQ0KICAgICAgYXR0cmlidXRlIGZvciBhIHZh cmlhYmxlIHRoYXQgaXMgcmVmZXJlbmNlZCwgZGVmaW5lZCwgb3IgYmVjb21lcw0KICAgICAgdW5k ZWZpbmVkIG9ubHkgd2l0aGluIHRoZSBGb3J0cmFuIHByb2dyYW0uIFRoZSBkZXNpcmVkIGVmZmVj dA0KICAgICAgbWF5IGJlIG9idGFpbmVkIGJ5IGFzc2lnbmluZyB0aGUgaW50ZXJtZWRpYXRlIHJl c3VsdCB0byBhDQogICAgICB2YXJpYWJsZSB3aXRob3V0IHRoZSBWT0xBVElMRSBhdHRyaWJ1dGUg YmVjYXVzZSB0aGlzIHJ1bGVzIG91dA0KICAgICAgdGhlIGV4Y2VwdGlvbnMgZXhwbGFpbmVkIGlu IHRoZSBmaW5hbCBzZW50ZW5jZSBvZiB0aGUgZmlyc3QNCiAgICAgIHBhcmFncmFwaCBvZiB0aGUg YW5zd2VyICgiRnVydGhlcm1vcmUsIC4uLiIpLg0KPj4+DQoNCldlbGwgbm8uICBJbnRlci1zdGF0 ZW1lbnQgb3B0aW1pc2F0aW9uIGlzIGFsaXZlIGFuZCB3ZWxsIChyZSwgaW4gc3BpdGUNCm9mIEY5 MC8wMDAwMDE6IHNvbWUgdmVuZG9ycyBoYXZlIHRvIGNvbXBldGUgb24gU1BFQyBiZW5jaG1hcmtz IGFuZCB0aGUNCmxpa2UhKSwgYW5kIHRoZSBwZW9wbGUgbW9hbmluZyBhYm91dCB0aGUgUkVBTCgp IGludHJpbnNpYyBub3QgZG9pbmcNCndoYXQgdGhleSB3YW50IGZyZXF1ZW50bHkgYWxzbyB3YW50 IHRoZSBvcHRpbWlzYXRpb24gY3JhbmtlZCB1cCB0byB0aGF0DQpsZXZlbC4gSW4gdGhhdCBjYXNl LCBWT0xBVElMRSBpcyBzb21ldGhpbmcgdGhhdCBkb2VzLCBpbiBmYWN0LCB3b3JrLg0KDQpPbmUg bWlnaHQgcGxhdXNpYmx5IGFyZ3VlIHRoYXQgd2UgYXJlIGJlaW5nIG1vcmUgaGVscGZ1bCBoZXJl IHRoYW4gd2UNCm5lZWQgdG8uDQoNCk5pY2sgb3BpbmVkOg0KPDw8DQogICAuLi4gaXMgYSBjb21t b24gbXl0aCBpbiBhbW9uZyBDIGFuZCBDKysgYW5kIGV2ZW4gaW4gaW5mb3JtYXRpdmUgdGV4dA0K ICAgaW4gdGhlIHN0YW5kYXJkcyB0aGF0IHZvbGF0aWxlIGltcGxpZXMgdGhpcyBzZW1hbnRpYw0K Pj4+DQoNCklmIGluZm9ybWF0aXZlIHRleHQgaW4gdGhlIHN0YW5kYXJkIGltcGxpZXMgdGhpcyBz ZW1hbnRpYywgdGhhdCBpcyBhDQpjbGVhciBpbmRpY2F0aW9uIG9mIHRoZSBpbnRlbnQgb2YgdGhl IEMgY29tbWl0dGVlLg0KDQo8PDwNCiAgIGJ1dCBpdCBpcyBub3QganVzdGlmaWVkIGJ5IHRoZWly IG5vcm1hdGl2ZSB0ZXh0LA0KPj4+DQoNClRoYXQgaXMgeW91ciBvcGluaW9uLiAgWW91IG1pZ2h0 IG9yIG1pZ2h0IG5vdCBiZSByaWdodC4gIE15DQp1bmRlcnN0YW5kaW5nIG9mIHRoZSBub3JtYXRp dmUgdGV4dCBpcyBvdGhlcndpc2UgaS5lLiB0aGUgc2FtZSBhcyB0aGUNCmluZm9ybWF0aXZlIGlt cGxpY2F0aW9uLiAgSSBtaWdodCBvciBtaWdodCBub3QgYmUgcmlnaHQuICBVbmRlciB0aGUNCmNp cmN1bXN0YW5jZXMsIHNpbmNlIHRoaXMgaXMgdGhlIEZvcnRyYW4gY29tbWl0dGVlIG5vdCB0aGUg Qw0KY29tbWl0dGVlLCB3ZSBzaG91bGQgdGFrZSB0aGUgaW5mb3JtYXRpdmUgdGV4dCBhcyBiZWlu ZyBjb3JyZWN0DQpyYXRoZXIgdGhhbiB3aGF0IHNvbWUgb2YgdGhlIGJhcnJhY2tzLXJvb20gbGF3 eWVycyBzYXkuDQoNCjw8PA0KICAgbm9yIGRvIGFsbCBjb21waWxlcnMgc3VwcG9ydCBpdA0KPj4+ DQoNCk1hbnkgY29tcGlsZXJzIGhhdmUgbWFueSBidWdzIGluIG1hbnkgYXJlYXMsIGFuZCB2b2xh dGlsZSBpcyBubw0KZXhjZXB0aW9uIHRvIHRoaXMuICBJbmRlZWQsIHBhcGVycyBoYXZlIGJlZW4g d3JpdHRlbiBvbiBzdWNoIHZlcnkNCnRvcGljcy4gIEhvd2V2ZXIsIHRoaXMgY2FzZSBpcyB2ZXJ5 IHNpbXBsZSAobm8gbXVsdGktdGhyZWFkaW5nDQpyZXF1aXJlZCEpIGFuZCBpbiBteSBleHBlcmll bmNlIGl0IGRvZXMgd29yayByZWxpYWJseS4NCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpOVU1CRVI6IEYw My8wMTM5DQpUSVRMRTogRnVuY3Rpb25zIHJldHVybmluZyBwcm9jZWR1cmUgcG9pbnRlcnMNCktF WVdPUkRTOiBwcm9jZWR1cmUgcG9pbnRlcg0KREVGRUNUIFRZUEU6IEVycmF0dW0NClNUQVRVUzog SW4gRjIwMDggQ29ycmlnZW5kdW0gMw0KDQpRVUVTVElPTjoNCg0KKDEpIElzIGEgZnVuY3Rpb24g cGVybWl0dGVkIHRvIHJldHVybiBhIHByb2NlZHVyZSBwb2ludGVyPw0KICAgIE11Y2ggb2YgdGhl IGxhbmd1YWdlIHRhbGtzIGFib3V0IHRoZSBmdW5jdGlvbiByZXN1bHQgdmFyaWFibGUsDQogICAg YnV0IGEgcHJvY2VkdXJlIHBvaW50ZXIgaXMgbm90IGEgdmFyaWFibGUuICBGb3IgZXhhbXBsZSwg Mi4yLjMNCiAgICBzYXlzIFsxMjoxNl0NCiAgICAgICAiVGhlIFZBUklBQkxFIHRoYXQgcmV0dXJu cyB0aGUgdmFsdWUgb2YgYSBmdW5jdGlvbiBpcyBjYWxsZWQNCiAgICAgICAgdGhlIFJFU1VMVCBW QVJJQUJMRS4iDQogICAgKGVtcGhhc2lzIG1pbmUpOyB3aGljaCBpbmRpY2F0ZXMgdGhhdCB0aGUg dmFsdWUgb2YgYSBmdW5jdGlvbiBpcw0KICAgIHJldHVybmVkIGluIGEgdmFyaWFibGUuDQoNCigy KSBXaGVyZSBtYXkgYSBmdW5jdGlvbiByZWZlcmVuY2UgdGhhdCByZXR1cm5zIGEgcHJvY2VkdXJl IHBvaW50ZXINCiAgICBhcHBlYXI/ICBJbiBwYXJ0aWN1bGFyLA0KICAgIChhKSBhcyBhIDxzZWxl Y3Rvcj4gaW4gYSBTRUxFQ1QgVFlQRSBvciBhbiBBU1NPQ0lBVEUgc3RhdGVtZW50Ow0KICAgIChi KSB3aXRoaW4gcGFyZW50aGVzZXMgYXMgYSBwcmltYXJ5Ow0KICAgIChjKSBhcyB0aGUgYXJndW1l bnQgdG8gYW4gaW50cmluc2ljIGlucXVpcnkgZnVuY3Rpb24gc3VjaCBhcw0KICAgICAgICBLSU5E IG9yIExFTi4NCg0KKDMpIFsxMjoxOC0xOV0gc2F5cw0KICAgICAgImEgc3Vicm91dGluZSBtYXkg YmUgdXNlZCB0byBjaGFuZ2UgdGhlIHByb2dyYW0gc3RhdGUgYnkNCiAgICAgICBjaGFuZ2luZyB0 aGUgdmFsdWVzIG9mIGFueSBvZiB0aGUgZGF0YSBvYmplY3RzIGFjY2Vzc2libGUNCiAgICAgICB0 byB0aGUgc3Vicm91dGluZSIuDQogICAgQSBwcm9jZWR1cmUgcG9pbnRlciBpcyBub3QgYSBkYXRh IG9iamVjdCwgc28gaXMgdGhpcyBtZWFudCB0bw0KICAgIGltcGx5IHRoYXQgYSBzdWJyb3V0aW5l IGlzIG5vdCBwZXJtaXR0ZWQgdG8gY2hhbmdlIHRoZSBzdGF0ZSBvZiBhDQogICAgcHJvY2VkdXJl IHBvaW50ZXI/ICBTaW1pbGFyIHRleHQgZm9yIGZ1bmN0aW9ucyBhcHBlYXJzIGluIHRoZSBzYW1l DQogICAgcGFyYWdyYXBoLg0KDQpBTlNXRVI6DQoNCigxKSBZZXMsIGEgZnVuY3Rpb24gaXMgcGVy bWl0dGVkIHRvIHJldHVybiBhIHByb2NlZHVyZSBwb2ludGVyOyB0aGUNCiAgICAgdGV4dCBjYWxs aW5nIHRoaXMgYSB2YXJpYWJsZSBpcyBpbiBlcnJvci4gIEVkaXRzIGFyZSBzdXBwbGllZCB0bw0K ICAgICBjb3JyZWN0IHRoZXNlIG1pc3Rha2VzLg0KDQooMikgSXQgd2FzIGludGVuZGVkIHRoYXQg YSBmdW5jdGlvbiByZWZlcmVuY2UgdGhhdCByZXR1cm5zIGENCiAgICAgcHJvY2VkdXJlIHBvaW50 ZXIgb25seSBiZSBwZXJtaXR0ZWQgYXMgYW4gYXJndW1lbnQgdG8gdGhlDQogICAgIEFTU09DSUFU RUQgYW5kIE5VTEwgaW50cmluc2ljIGZ1bmN0aW9ucyBhbmQgaW4gcGxhY2VzIHdoZXJlIGFuDQog ICAgIG9yZGluYXJ5IHByb2NlZHVyZSBuYW1lIHdvdWxkIGJlIGFjY2VwdGFibGUuICBQYXJlbnRo ZXNlcyBhcm91bmQNCiAgICAgYSBwb2ludGVyIGFjdCB0byBkZXJlZmVyZW5jZSB0aGUgcG9pbnRl ciBhbmQgcmV0dXJuIGEgY29weSBvZiB0aGUNCiAgICAgdmFsdWU6IHRoaXMgYWN0aW9uIGlzIGlu YXBwbGljYWJsZSB0byBwcm9jZWR1cmVzLiBUaHVzIHRoZQ0KICAgICBhbnN3ZXJzIHRvIHRoZSBz cGVjaWZpYyBzdWItcXVlc3Rpb25zIGFyZSBObywgTm8sIGFuZCBObyBhZ2Fpbi4NCiAgICAgQ2xh cmlmeWluZyBlZGl0cyBhcmUgcHJvdmlkZWQuDQoNCigzKSBObywgdGhpcyBpbXBsaWNhdGlvbiBp cyBub3QgaW50ZW5kZWQuICBBIGNsYXJpZnlpbmcgZWRpdCBpcw0KICAgIHByb3ZpZGVkLg0KDQpF RElUUyBmb3IgKDFiKToNCg0KWzEwOjMzK10gSW5zZXJ0IG5ldyB0ZXJtIGFmdGVyICIxLjMuNzcg PDxmdW5jdGlvbj4+Ig0KICAiMS4zLjc3YSA8PGZ1bmN0aW9uIHJlc3VsdD4+DQogICBlbnRpdHkg dGhhdCByZXR1cm5zIHRoZSB2YWx1ZSBvZiBhIGZ1bmN0aW9uIi4NCg0KWzE1OjMxLTMzXSBEZWxl dGUgdGVybSAxLjMuMTIxIDw8cmVzdWx0IHZhcmlhYmxlPj4uDQoNCls1MjoyXSA0LjMuMS4ycDIs IGFmdGVyICJmdW5jdGlvbiByZXN1bHQiIGRlbGV0ZSAidmFyaWFibGUiLg0KDQpbNTg6MjNdIDQu NC4zLjJwNSwNCiAgICAgICAgInJlc3VsdCB2YXJpYWJsZSBpbiB0aGUgZnVuY3Rpb24iIC0+ICJm dW5jdGlvbiByZXN1bHQiLg0KDQpbODc6OV0gNS4xcDIgIml0cyByZXN1bHQgdmFyaWFibGUiIC0+ ICJ0aGUgZnVuY3Rpb24gcmVzdWx0Ii4NCg0KWzEwOToyNF0gNS41cDQsDQogICAgICAgICAibmFt ZSBvZiB0aGUgcmVzdWx0IHZhcmlhYmxlIG9mIHRoYXQgZnVuY3Rpb24gc3VicHJvZ3JhbSINCiAg ICAgICAgIC0+ICJyZXN1bHQgb2YgdGhhdCBmdW5jdGlvbiIuDQp7RnVuY3Rpb24gKnN1YnByb2dy YW0qcyBkbyBub3QgaGF2ZSByZXN1bHRzLCB0aGUgZnVuY3Rpb24gc3BlY2lmaWVkIGJ5DQogdGhl IEZVTkNUSU9OIHN0YXRlbWVudCBkb2VzLCBhcyBkbyB0aGUgb25lcyBkZWZpbmVkIGJ5IHRoZSBF TlRSWQ0KIHN0YXRlbWVudHMsIGJ1dCB0aGUgc3VicHJvZ3JhbSBpcyBqdXN0IHN5bnRheC59DQoN ClsxMTI6MTVdIDUuNy4xLjEgQzU4NywgInJlc3VsdCB2YXJpYWJsZSIgLT4gImZ1bmN0aW9uIHJl c3VsdCIuDQoNClsxMTQ6MjJdIDUuNy4yLjEgQzUxMDAsICJyZXN1bHQgdmFyaWFibGUiIC0+ICJm dW5jdGlvbiByZXN1bHQiLg0KDQpbMTMwOjI2XSA2LjcuMy4ycDIsIGFmdGVyICJmdW5jdGlvbiBy ZXN1bHQiIGRlbGV0ZSAidmFyaWFibGUiLg0KDQpbMjc4OjExXSAxMi4zLjEgInJlc3VsdCB2YWx1 ZSItPiJmdW5jdGlvbiByZXN1bHQiLg0Ke1JlYWRzIGEgYml0IGF3a3dhcmRseSwgYnV0IGl0IGlz IGltcG9ydGFudCB0byB1c2UgdGhlIGNvcnJlY3QgdGVybXMNCiBhbmQgdG8gYmUgY29uc2lzdGVu dCB3aXRoIDEyLjMuMyAod2hpY2ggZG9lcykgb3RoZXJ3aXNlIHRoaXMgaXMNCiB1bmRlZmluZWQg bWVhbmluZ2xlc3MgYmxhdGhlci59DQoNClszMDc6NSw5XSAxMi42LjIuMnAzLCAicmVzdWx0IHZh cmlhYmxlIiAtPiAiZnVuY3Rpb24gcmVzdWx0IiwgdHdpY2UuDQoNClszMDc6MTIsMTQsMTVdIHA0 LCAicmVzdWx0IHZhcmlhYmxlIiAtPiAiZnVuY3Rpb24gcmVzdWx0IiwgdGhyaWNlLg0KDQpbMzA3 OjE1LTE2XSBEZWxldGUgIlRoZSBjaGFyYWN0ZXJpc3RpY3MgLi4uIHZhcmlhYmxlLiIuDQoNClsz MDc6MTYtMTddICJpdHMgcmVzdWx0IHZhcmlhYmxlLiIgLT4gIml0cyBmdW5jdGlvbiByZXN1bHQu Ig0KDQpbMzA3OjE3XSAiaXMgYSBwb2ludGVyIiAtPiAiaXMgYSBkYXRhIHBvaW50ZXIiLg0KDQpb MzA3OjE4LDE4LDIwXSAicmVzdWx0IHZhcmlhYmxlIiAtPiAiZnVuY3Rpb24gcmVzdWx0IiwgdGhy aWNlLg0KDQpbMzA3OjIwKzJdIE5PVEUgMTIuNDEsICJUaGUgLi4uIHN1YnByb2dyYW0uIiAtPg0K ICAiVGhlIGZ1bmN0aW9uIHJlc3VsdCBpcyBzaW1pbGFyIHRvIGFueSBvdGhlciBlbnRpdHkgKHZh cmlhYmxlIG9yDQogICBwcm9jZWR1cmUgcG9pbnRlcikgbG9jYWwgdG8gdGhlIGZ1bmN0aW9uIHN1 YnByb2dyYW0uIi4NClszMDc6MjArNF0gInRoaXMgdmFyaWFibGUiIC0+ICJ0aGlzIGVudGl0eSIu DQpbMzA3OjIwKzVdICJ0aGF0IHZhcmlhYmxlIiAtPiAidGhhdCBlbnRpdHkiLg0KDQpbMzA5OjIz LDI0XSAxMi42LjIuNXAzLA0KICAgICAgICAgICAgInJlc3VsdCB2YXJpYWJsZSBuYW1lIiAtPiAi bmFtZSBvZiB0aGUgZnVuY3Rpb24gcmVzdWx0IiwNCiAgICAgICAgICAgIHR3aWNlLg0KDQpbMzEw OjJdIDEyLjYuMi42cDMsIGFmdGVyICJuYW1lIG9mIGl0cyByZXN1bHQiIGRlbGV0ZSAidmFyaWFi bGUiLg0KDQpbMzEwOjItM10gRGVsZXRlICJUaGUgY2hhcmFjdGVyaXN0aWNzIC4uLiB0aGUgcmVz dWx0IHZhcmlhYmxlLiIuDQoNClszMTA6NS02XSAicmVzdWx0IHZhcmlhYmxlcyBpZGVudGlmeSB0 aGUgc2FtZSB2YXJpYWJsZSINCiAgICAgICAgICAtPiAicmVzdWx0IG5hbWVzIGlkZW50aWZ5IHRo ZSBzYW1lIGVudGl0eSINCiAgICAgICAgICAgYW5kIGRlbGV0ZSAiLCBhbHRob3VnaCB0aGVpciBu YW1lcyBuZWVkIG5vdCBiZSB0aGUgc2FtZSIuDQoNClszMTA6Nl0gInNjYWxhcnMiIC0+ICJzY2Fs YXIgdmFyaWFibGVzIi4NCg0KWzMxNDozXSBBZnRlciAiVGhlIHJlc3VsdCIgZGVsZXRlICJ2YXJp YWJsZSIuDQoNCls0MzM6N10gInJlc3VsdCB2YXJpYWJsZSBpcyBhIHNjYWxhciItPiJyZXN1bHQg aXMgYSBzY2FsYXIgdmFyaWFibGUiLg0KDQpbNDQxOjcsMTBdIDE2LjMuMXA0LCAicmVzdWx0IHZh cmlhYmxlIiAtPiAiZnVuY3Rpb24gcmVzdWx0IiwgdHdpY2UuDQoNCls0NDE6MTgtMjBdIDE2LjMu M3AxLCAicmVzdWx0IHZhcmlhYmxlIiAtPiAiZnVuY3Rpb24gcmVzdWx0IiwgdGhyaWNlLg0KDQpb NDQ5OjMtNF0gMTYuNS4zLjFwMSAicmVzdWx0IHZhcmlhYmxlcyIgLT4NCiAgICAgICAgICAiZnVu Y3Rpb24gcmVzdWx0cyB0aGF0IGFyZSB2YXJpYWJsZXMiLg0KDQpbNDUwOjIwXSAxNi41LjMuNHA2 LA0KICAgICAgICAgInJlc3VsdCB2YXJpYWJsZXMiIC0+ICJmdW5jdGlvbiByZXN1bHRzIHRoYXQg YXJlIHZhcmlhYmxlcyIuDQoNCls0NTY6MTFdIDE2LjYuNnAxLCBpdGVtICgxNSkoZSksDQogICAg ICAgICAidGhlIHJlc3VsdCB2YXJpYWJsZSBvZiBhIGZ1bmN0aW9uIg0KICAgICAgICAgLT4gImEg dmFyaWFibGUgdGhhdCBpcyB0aGUgZnVuY3Rpb24gcmVzdWx0IG9mIHRoYXQgcHJvY2VkdXJlIg0K e0Fsc28gZml4ZXMgYWxsIGZ1bmN0aW9uIHJlc3VsdHMgYmVjb21pbmcgdW5kZWZpbmVkIHdoZW4g YSBzaW5nbGUNCiBwcm9jZWR1cmUgaXMgaW52b2tlZCF9DQoNCkVESVRTIGZvciAoMmIpLg0KDQpb MTMzOjI2K10gSW5zZXJ0IG5ldyBjb25zdHJhaW50DQogICJDNzAyYSAoUjcwMSkgVGhlIDxleHBy PiBzaGFsbCBub3QgYmUgYSBmdW5jdGlvbiByZWZlcmVuY2UgdGhhdA0KICAgICAgICAgcmV0dXJu cyBhIHByb2NlZHVyZSBwb2ludGVyLiINCg0KWzE3MDoyMytdIEluc2VydCBuZXcgY29uc3RyYWlu dA0KICAiQzgwNGEgKFI4MDUpIFRoZSA8ZXhwcj4gc2hhbGwgbm90IGJlIGEgZnVuY3Rpb24gcmVm ZXJlbmNlIHRoYXQNCiAgICAgICAgIHJldHVybnMgYSBwcm9jZWR1cmUgcG9pbnRlci4iDQoNClsz MTY6MTIrXSAxMy4yLjEgYWZ0ZXIgcDYsIGluc2VydCBuZXcgcGFyYWdyYXBoDQogICJBbiBhcmd1 bWVudCB0byBhbiBpbnRyaW5zaWMgcHJvY2VkdXJlIG90aGVyIHRoYW4gQVNTT0NJQVRFRCwgTlVM TCwNCiAgIG9yIFBSRVNFTlQgc2hhbGwgYmUgYSBkYXRhIG9iamVjdC4iDQoNCkVESVRTIGZvciAo MykuDQoNClszMDoyOF0gQWZ0ZXIgImRhdGEgb2JqZWN0cyIgaW5zZXJ0ICJvciBwcm9jZWR1cmUg cG9pbnRlcnMiLg0KDQpTVUJNSVRURUQgQlk6IE1hbGNvbG0gQ29oZW4NCg0KSElTVE9SWTogMDkt Mjk1ICAgIG0xOTAgIEYwMy8wMTM5IHN1Ym1pdHRlZCAtIFBhc3NlZCBieSBKMyBtZWV0aW5nOg0K ICAgICAgICAgICAgICAgICAgICAgICAgICBCIGFuc3dlcnMgcGFzc2VkDQogICAgICAgICAxMC0x MDUgICAgbTE5MSAgUGFzc2VkIGFzIGFtZW5kZWQgYnkgSjMgbGV0dGVyIGJhbGxvdCAjMjANCiAg ICAgICAgICAgICAgICAgICAgICAgICAgMDktMzA3DQogICAgICAgICBOMTgxNiAgICAgbTE5MSAg RmFpbGVkIFdHNSBiYWxsb3QgIzcge04xODA1LzZ9IC0gaW50ZXJwDQogICAgICAgICAgICAgICAg ICAgICAgICAgIHVwZGF0ZWQgLSBzZWUgMTAtMTM1cjENCiAgICAgICAgIDEzLTI0OSAgICBtMjAw ICBSZXZpc2VkIC0gcGFzc2VkIGJ5IEozIG1lZXRpbmcNCiAgICAgICAgIDEzLTI2MiAgICBtMjAx ICBQYXNzZWQgYXMgYW1lbmRlZCBieSBKMyBsZXR0ZXIgYmFsbG90ICMyOA0KICAgICAgICAgICAg ICAgICAgICAgICAgICAxMy0yNTVyMQ0KICAgICAgICAgTjE5OTAgICAgIG0yMDIgIFBhc3NlZCBi eSBXRzUgYmFsbG90IDYgTjE5ODcvODgvOTANCioqIEFkZCBleHRyYSBlZGl0IHRvIFszMDc6MTYt MTddOyAgY2hhbmdlIHRoZSBlZGl0IGZvciBbNDMzOjddDQogICAgICAgICBOMjAwMiAgICAgbTIw MyAgSW4gRjIwMDggQ29ycmlnZW5kdW0gMw0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0NClBhcnQgNDogQWN0aXZlIEZvcnRyYW4gMjAwOCBJbnRlcnByZXRhdGlvbiBSZXF1ZXN0cw0K PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQ0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCk5VTUJFUjogRjA4LzAwMjkNClRJVExF OiBHMCBlZGl0IGRlc2NyaXB0b3IgYW5kIGZsb2F0aW5nLXBvaW50IG91dHB1dA0KS0VZV09SRFM6 IEcgZWRpdCBkZXNjcmlwdG9yLCAwIHdpZHRoDQpERUZFQ1QgVFlQRTogRXJyYXR1bQ0KU1RBVFVT OiBKMyBjb25zaWRlcmF0aW9uIGluIHByb2dyZXNzDQoNClFVRVNUSU9OOg0KDQpGb3IgZGF0YSB0 eXBlcyBvdGhlciB0aGFuIGZsb2F0aW5nLXBvaW50LCB0aGUgZWZmZWN0IG9mIHRoZSBHMCBlZGl0 DQpkZXNjcmlwdG9yIGlzIHByZWNpc2VseSBkZWZpbmVkLiAgRm9yIGZsb2F0aW5nLXBvaW50IG91 dHB1dCwgdGhlDQplZmZlY3QgaXMgcHJlY2lzZWx5IGRlZmluZWQgb25seSBpZiB0aGUgdmFsdWUg aXMgYW4gSUVFRSBOYU4gb3INCkluZmluaXR5LCB0aGUgcmVzdWx0IGlzIG90aGVyd2lzZSBsZWZ0 IHVwIHRvIHRoZSBwcm9jZXNzb3IgdG8gc2VsZWN0DQoicmVhc29uYWJsZSIgdmFsdWVzIGZvciB3 LCBlLCBhbmQgZCAoaWYgZCBpcyB1bnNwZWNpZmllZCkuDQoNClRoZSBzdGFuZGFyZCBzdGF0ZXMg WzI1ODo3LTkgMTAuNy41LjIuMnAyXToNCg0KICAgICAgInRoZSBHMCBhbmQgRzAuZCBlZGl0IGRl c2NyaXB0b3JzIGZvbGxvdyB0aGUgcnVsZXMgZm9yIHRoZQ0KICAgICAgIEd3LmRFZSBlZGl0IGRl c2NyaXB0b3IsIGV4Y2VwdCB0aGF0IGFueSBsZWFkaW5nIG9yIHRyYWlsaW5nDQogICAgICAgYmxh bmtzIGFyZSByZW1vdmVkIi4NCg0KT25lIG1pZ2h0IGRlZHVjZSBmcm9tIHRoZSB3b3JkaW5nIG9m IHRoaXMgdGhhdCB0aGVyZSBpcyBubyB1cHBlciBsaW1pdA0Kb24gdGhlIGNob2ljZSBvZiB3LCBz aW5jZSB0aGUgcHJvZHVjdGlvbiBvZiBhZGRpdGlvbmFsIGxlYWRpbmcgKG9yDQp0cmFpbGluZykg YmxhbmtzIGhhcyBubyBlZmZlY3Qgb24gdGhlIG91dHB1dC4NCg0KUTEuIElzIGEgdmFsdWUgZm9y IHcgb3IgZSB0aGF0IHJlc3VsdHMgaW4gdGhlIGZpZWxkIGJlaW5nIGZpbGxlZCB3aXRoDQogICAg YXN0ZXJpc2tzIHJlYXNvbmFibGU/ICBUaGlzIGlzIG5vdCwgYWZ0ZXIgYWxsLCBhbiBlcnJvciBj b25kaXRpb24uDQoNClEyLiBJcyBhIHZhbHVlIGZvciBkIHRoYXQgcmVzdWx0cyBpbiBzaWduaWZp Y2FudCBsb3NzIG9mIHByZWNpc2lvbg0KICAgIHJlYXNvbmFibGU/ICBFLmcuIGQ9PTEsIG9yIGZv ciBhIGxlc3MgZXh0cmVtZSBleGFtcGxlLA0KICAgIGQ9PVBSRUNJU0lPTih2YWx1ZSkvMi4NCg0K UTMuIElzIGEgdmFsdWUgZm9yIGQgdGhhdCBwcm9kdWNlcyBtYW55IG1vcmUgZGlnaXRzIHRoYW4g dGhlIHByZWNpc2lvbg0KICAgIHJlYXNvbmFibGU/ICBFLmcuIGQ9PTEwMDAwMDAuICBPciwgZm9y IGEgbGVzcyBleHRyZW1lIGV4YW1wbGUsDQogICAgZD09UFJFQ0lTSU9OKHF1YWQpIHdpdGggYSBz aW5nbGUgcHJlY2lzaW9uIHZhbHVlLg0KDQpRNC4gSXMgYSB2YWx1ZSBmb3IgZSB0aGF0IHByb2R1 Y2VzIG1hbnkgbW9yZSBkaWdpdHMgaW4gdGhlIGV4cG9uZW50DQogICAgdGhhbiB0aGUgZXhwb25l bnQgcmFuZ2UgcmVhc29uYWJsZT8gIEUuZy4gZT09MTAwMDAwMC4NCg0KUTUuIElmIHRoZSBzdGFu ZGFyZCBjYW5ub3QgdGVsbCBtZSB3aGF0ICJyZWFzb25hYmxlIiBtZWFucywgd2hhdA0KICAgIHB1 cnBvc2UgZG9lcyBpdCBzZXJ2ZSBmb3IgaXQgdG8gc2F5IHRoYXQgaXQgbXVzdCBiZSByZWFzb25h YmxlPw0KICAgIEkgY2Fubm90IHNlZSBob3cgdG8gdGVsbCB3aGV0aGVyIGEgcHJvY2Vzc29yIGNv bmZvcm1zIHRvIHRoZQ0KICAgIHN0YW5kYXJkIGluIHRoaXMgcmVzcGVjdC4NCg0KRElTQ1VTU0lP TjoNCg0KVGhlIHN0YW5kYXJkIHBlcm1pdHMsIGJ1dCBkb2VzIG5vdCByZXF1aXJlLCB0aGUgImJl c3QiIHZhbHVlcyBvZiB3LCBkDQpvciBlIHRvIGJlIGNob3NlbiBmb3IgZWFjaCBpbnRlcm5hbCB2 YWx1ZS4NCg0KQU5TV0VSOg0KDQpBMS4gTm8sIHRoYXQgaXMgbm90IHJlYXNvbmFibGUuICBBbiBl ZGl0IGlzIHN1cHBsaWVkIHRvIGNsYXJpZnkgdGhlDQogICAgbWVhbmluZyBvZiAicmVhc29uYWJs ZSIuDQoNCkEyLiBObywgYSB2YWx1ZSBvZiBkIHRoYXQgcmVzdWx0cyBpbiBhIHNpZ25pZmljYW50 IGxvc3Mgb2YgcHJlY2lzaW9uDQogICAgaXMgbm90IHJlYXNvbmFibGUuICBBbiBlZGl0IGlzIHN1 cHBsaWVkIHRvIGNvcnJlY3QgdGhpcy4NCg0KQTMuIE5vLCBpdCBpcyBub3QgcmVhc29uYWJsZSBm b3IgZCB0byBiZSByaWRpY3Vsb3VzbHkgbGFyZ2UuDQogICAgQW4gZWRpdCBpcyBzdXBwbGllZCB0 byBjbGFyaWZ5IHRoZSBpbnRlbnQuDQoNCkE0LiBObywgZSBzaG91bGQgbm90IGJlIGJpZ2dlciB0 aGFuIHRoYXQgcmVxdWlyZWQgdG8gcmVwcmVzZW50IHRoZQ0KICAgIGxhcmdlc3QgZmluaXRlIG1h Y2hpbmUtcmVwcmVzZW50YWJsZSBudW1iZXIuICBBbiBlZGl0IGlzDQogICAgc3VwcGxpZWQgdG8g c3BlY2lmeSB0aGlzLg0KDQpBNS4gWWVzLCB0aGUgdXNlIG9mIHRoZSB3b3JkICJyZWFzb25hYmxl IiBpbiB0aGlzIGNvbnRleHQgaXMgZW50aXJlbHkNCiAgICBtZWFuaW5nbGVzcy4gIEFuIGVkaXQg aXMgc3VwcGxpZWQgdG8gcmVtb3ZlIHRoaXMgbWlzbGVhZGluZw0KICAgIHRlcm1pbm9sb2d5Lg0K DQpFRElUUyB0byAxMC0wMDdyMToNCg0KSW4gMTAuNy41LjIuMiwgcGFyYWdyYXBoIDI6DQoNClsy NTg6OV0gSW4gMTAuNy41LjIuMnAyIGxhc3Qgc2VudGVuY2U6DQogICJSZWFzb25hYmxlIHByb2Nl c3Nvci1kZXBlbmRlbnQiIC0+ICJQcm9jZXNzb3ItZGVwZW5kZW50Ii4NCntBNS59DQoNClsyNTg6 MTBdIEluIDcuNS4yLjJwMiBsYXN0IHNlbnRlbmNlLCBhZnRlciAidmFsdWUiIGluc2VydA0KICAi LCB0aGF0IGRvIG5vdCByZXN1bHQgaW4gdGhlIGZpZWxkIGJlaW5nIGZpbGxlZCB3aXRoIGFzdGVy aXNrcyIuDQp7QTEufQ0KDQpbMjU4OjEwXSBBcHBlbmQgbmV3IHNlbnRlbmNlcyB0byAxMC43LjUu Mi4ycDI6DQogICJUaGUgdmFsdWUgb2YgPGQ+IHNoYWxsIG5vdCByZXN1bHQgaW4gdGhlIHByb2R1 Y3Rpb24gb2YgYW4gb3V0cHV0DQogICB2YWx1ZSB0aGF0IGRpZmZlcnMgZnJvbSB0aGUgaW50ZXJu YWwgdmFsdWUgYnkgbW9yZSB0aGFuDQogICAxMDAqU1BBQ0lORyh2YWx1ZSksIGFuZCBzaGFsbCBu b3QgYmUgbW9yZSB0aGFuIHR3byBsYXJnZXIgdGhhbiB0aGUNCiAgIG1heGltdW0gbnVtYmVyIG9m IGRpZ2l0cyB0aGF0IG1pZ2h0IGJlIHJlcXVpcmVkIHRvIGRpc3Rpbmd1aXNoDQogICBiZXR3ZWVu IHR3byBkaWZmZXJlbnQgbWFjaGluZSBudW1iZXJzIG9mIHRoZSBraW5kIG9mIHRoZSBpbnRlcm5h bA0KICAgdmFsdWUuICBUaGUgdmFsdWUgb2YgPGU+IHNoYWxsIG5vdCBiZSBzbyBsYXJnZSB0aGF0 IHRoZSBleHBvbmVudA0KICAgd291bGQgaGF2ZSBhIGxlYWRpbmcgemVybyBib3RoIHdoZW4gdGhl IGludGVybmFsIHZhbHVlIGlzIHRoZQ0KICAgbGFyZ2VzdCBmaW5pdGUgbWFjaGluZSBudW1iZXIg YW5kIHdoZW4gaXQgaXMgdGhlIHNtYWxsZXN0IGZpbml0ZQ0KICAgbWFjaGluZSBudW1iZXIgb2Yg dGhhdCBraW5kLiINCntUaGUgZmlyc3Qgc2VudGVuY2UgbGltaXRzIHRoZSBjaG9pY2Ugb2YgPGQ+ IHRvIGxvc2Ugbm8gbW9yZSB0aGFuIDINCiBkaWdpdHMgb2YgcHJlY2lzaW9uIChBMikgYW5kIHRv IGhhdmUgbm8gbW9yZSB0aGFuIDIgc3B1cmlvdXMgZGlnaXRzDQogb2YgIHByZWNpc2lvbiAoQTMp OyBmb3Igc29tZSBmbG9hdGluZy1wb2ludCBmb3JtYXRzLCB0aGUgdXBwZXIgYm91bmQNCiBpcyBu b3Qgc3Ryb25nLCBiZWluZyBkIDw9IDIrTUFYKFBSRUNJU0lPTih2YWx1ZSkrMixSQU5HRSh2YWx1 ZSkqMikuDQogVGhlIHNlY29uZCBzZW50ZW5jZSB3b3VsZCBhbGxvdyBlPT00IGZvciBhIGxvcC1z aWRlZCBleHBvbmVudCByYW5nZSwNCiBlLmcuIC0xMTAwIHRvICs5MDAsIGJ1dCB3b3VsZCBsaW1p dCBlIHRvIGF0IG1vc3QgMyBpZiB0aGUgZXhwb25lbnQNCiByYW5nZSBpcyBlLmcuIC0zMDggdG8g KzMwOCAoQTQpLg0KIE5laXRoZXIgb2YgdGhlc2UgcmVzdHJpY3Rpb25zIHByZXZlbnQgYSBwcm9j ZXNzb3IgZnJvbSBwcm9kdWNpbmcNCiBmZXdlciBtYW50aXNzYSBvciBleHBvbmVudCBkaWdpdHMg Zm9yIHBhcnRpY3VsYXIgdmFsdWVzIGlmIHRoYXQgZG9lcw0KIG5vdCByZXN1bHQgaW4gc2VyaW91 cyBsb3NzIG9mIGFjY3VyYWN5Ln0NCg0KU1VCTUlUVEVEIEJZOiBNYWxjb2xtIENvaGVuDQoNCkhJ U1RPUlk6IDEwLTE3OSAgICBtMTkyICBGMDgvMDAyOSBzdWJtaXR0ZWQNCiAgICAgICAgIDEwLTE3 OXIxICBtMTkyICBEcmFmdCBhbnN3ZXIgd2l0aCBzdHJhdyB2b3RlIG9uIGFsdGVybmF0aXZlDQog ICAgICAgICAxMC0xNzlyMiAgbTE5MiAgUmV2aXNlZCBkcmFmdCAtIFBhc3NlZCBieSBKMyBtZWV0 aW5nDQogICAgICAgICAxMC0yMDIgICAgbTE5MiAgUGFzc2VkIGJ5IEozIGxldHRlciBiYWxsb3Qg IzIxIDEwLTE5OQ0KICAgICAgICAgMTEtMDA2QXIxIG0xOTYgIEFkanVzdCBlZGl0cyB0byByZWZl cmVuY2UgMTAtMDA3cjENCiAgICAgICAgIE4xODg5ICAgICBtMTk2ICBGYWlsZWQgV0c1IGJhbGxv dCAyIE4xODc3DQoNCkYwOC8wMDI5DQpDb3JiZXR0IE5PIHZvdGU6DQpJIGFncmVlIHRoYXQgdGhl IHdvcmQgInJlYXNvbmFibGUiIHNob3VsZCBub3QgYXBwZWFyIGluIHRoZQ0KRm9ydHJhbiBzdGFu ZGFyZC4gIFRoZSBmaXJzdCB0d28gcHJvcG9zZWQgZWRpdHMgc2hvdWxkIGJlDQppbmNvcnBvcmF0 ZWQuICBUaGUgdGhpcmQgZWRpdCBzaG91bGQgbm90IGJlIGFkb3B0ZWQuDQoNCkkgb2JqZWN0IHRv IHRoZSB0aGlyZCBlZGl0IG9uIGdlbmVyYWwgZ3JvdW5kcy4gIFRoZSBpc3N1ZXMgZGVhbHQNCndp dGggaW4gdGhlIHRoaXJkIGVkaXQgc2hvdWxkIGJlIG1hdHRlcnMgb2YgInF1YWxpdHkgb2YNCmlt cGxlbWVudGF0aW9uLiIgIEkgc2VlIG5vIHJlYXNvbiBmb3IgdGhlIEZvcnRyYW4gc3RhbmRhcmQg dG8NCnJlc3RyaWN0IGltcGxlbWVudG9ycycgY2hvaWNlcyBpbiB0aGlzIGFyZWEuDQoNCkkgYWxz byBvYmplY3QgdG8gdGhlIHRoaXJkIGVkaXQgb24gc3BlY2lmaWMgZ3JvdW5kcy4gIFRoZQ0KcHJv cG9zZWQgZWRpdCBtYWtlcyBubyBwcm92aXNpb24gZm9yIG5vbnplcm8gc2NhbGUgZmFjdG9ycy4g IElmDQphIG5vbnplcm8gc2NhbGUgZmFjdG9yIGlzIGluIGVmZmVjdCwgYW4gaW1wbGVtZW50YXRp b24gbWlnaHQNCnJlYXNvbmFibHkgY2hvb3NlIGEgdmFsdWUgb2YgZCB0aGF0IGlzIG91dHNpZGUg dGhlIHJhbmdlDQpzcGVjaWZpZWQgYnkgdGhlIGVkaXQsIGlmIG9ubHkgdG8gYXZvaWQgdGhlIHNj YWxlIGZhY3RvciBiZWluZw0Kb3V0c2lkZSB0aGUgYWxsb3dlZCByYW5nZSBvZiB2YWx1ZXMuDQoN ClRoZSBwaHJhc2UNCiAgICBhbmQgc2hhbGwgbm90IGJlIG5vIG1vcmUgdGhhbiB0d28gbGFyZ2Vy IHRoYW4gdGhlDQogICAgbWF4aW11bSBudW1iZXIgb2YgZGlnaXRzIHRoYXQgbWlnaHQgYmUgcmVx dWlyZWQgdG8NCiAgICBkaXN0aW5ndWlzaCBiZXR3ZWVuICAgICAgIHR3byBkaWZmZXJlbnQgbWFj aGluZQ0KICAgIG51bWJlcnMgb2YgdGhlIGtpbmQgb2YgdGhlIGludGVybmFsIHZhbHVlLg0Kc2hv dWxkIHNheSBlaXRoZXIgImFueSIgYmV0d2VlbiAiYmV0d2VlbiIgYW5kICJ0d28iLA0Kb3Igc2hv dWxkIHNheSAiYWxsIHBhaXJzIG9mIiBpbnN0ZWFkIG9mICJ0d28uIg0KDQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCg0KTlVNQkVSOiBGMDgvMDA0MQ0KVElUTEU6ICBTZWdtZW50IG9yZGVyaW5nIHJ1bGVzDQpL RVlXT1JEUzogc2VnbWVudCwgYWxsb2NhdGlvbg0KREVGRUNUIFRZUEU6IEVycmF0dW0NClNUQVRV UzogSjMgY29uc2lkZXJhdGlvbiBpbiBwcm9ncmVzcw0KDQpRVUVTVElPTjoNCg0KKDEpIFdhcyBp dCBpbnRlbmRlZCB0byBhbGxvdyB0aGUgYWxsb2NhdGlvbiBvZiBhIHZhcmlhYmxlIHRoYXQgaXMg bm90DQogICAgYSBzdWJvYmplY3Qgb2YgYSBjb2FycmF5IHRvIGJlIHVub3JkZXJlZCB3aXRoIHJl c3BlY3QgdG8gaXRzDQogICAgZGVmaW5pdGlvbiBieSBhbm90aGVyIGltYWdlIHRocm91Z2ggYSBw b2ludGVyIGNvbXBvbmVudCBvZiBhDQogICAgY29hcnJheT8NCg0KRm9yIGV4YW1wbGUsDQoNCiAg UFJPR1JBTSBleGFtcGxlMQ0KICAgIFRZUEUgdDENCiAgICAgIFJFQUwsQUxMT0NBVEFCTEUgOjog Yyg6KQ0KICAgIEVORCBUWVBFDQogICAgVFlQRSB0Mg0KICAgICAgVFlQRSh0MSksUE9JTlRFUiA6 OiBwDQogICAgRU5EIFRZUEUNCiAgICBUWVBFKHQxKSxUQVJHRVQgOjogeA0KICAgIFRZUEUodDIp IDo6IHlbKl0NCiAgICB5JXAgPT4geCAgICAgICAgICAgICAgICAgICAgICAgICAhIHlbbl0lcCA9 PiB4W25dIGZvciBhbGwgbi4NCiAgICBTWU5DIEFMTA0KICAgIElGIChUSElTX0lNQUdFKCk9PTEp IFRIRU4NCiAgICAgIEFMTE9DQVRFKHglYygxMDAwKSkgICAgICAgICAgICAhIEFsbG9jYXRlcyB4 WzFdJWMuDQogICAgRUxTRQ0KICAgICAgeVsxXSVwJWMoVEhJU19JTUFHRSgpKSA9IDk5OSAgICEg RGVmaW5lcyBzb21lIHBhcnQgb2YgeFsxXSVjLg0KICAgIEVORCBJRg0KICBFTkQgUFJPR1JBTQ0K DQooMikgSWYgYSB2YXJpYWJsZSBpcyBhbHJlYWR5IGRlZmluZWQgKGluaXRpYWxseSBvciBieSBz b21lIHNlZ21lbnQNCiAgICB0aGF0IHByZWNlZGVzIGFsbCBvdGhlciBzZWdtZW50cyBpbiB0aGlz IHF1ZXN0aW9uKSwgbWF5IG9uZSBpbWFnZQ0KICAgIHJlZmVyZW5jZSBpdCB3aGlsZSBhbm90aGVy IGltYWdlIGNhdXNlcyBpdCB0byBiZWNvbWUgdW5kZWZpbmVkIGluDQogICAgdW5vcmRlcmVkIHNl Z21lbnRzPw0KDQpGb3IgZXhhbXBsZSwgaXMNCg0KICBQUk9HUkFNIGV4YW1wbGUyDQogICAgUkVB TCA6OiB4KDEwMClbKl0NCiAgICB4ID0gMQ0KICAgIFNZTkMgQUxMDQogICAgSUYgKFRISVNfSU1B R0UoKT09MSkgVEhFTg0KICAgICAgUFJJTlQgKixTVU0oeCkNCiAgICBFTFNFDQogICAgICBDQUxM IGRlc3Ryb3koeCkNCiAgICBFTkQgSUYNCiAgQ09OVEFJTlMNCiAgICBTVUJST1VUSU5FIGRlc3Ry b3koeCkNCiAgICAgIFJFQUwsSU5URU5UKE9VVCkgOjogeCg6KQ0KICAgIEVORCBTVUJST1VUSU5F DQogIEVORCBQUk9HUkFNDQoNCnN0YW5kYXJkLWNvbmZvcm1pbmc/ICBUaGlzIGRvZXMgbm90IGFw cGVhciB0byB2aW9sYXRlIGFueSBvZiB0aGUNCnNlZ21lbnQgb3JkZXJpbmcgcmVxdWlyZW1lbnRz IGluIDguNS4yIGJlY2F1c2UgaXQgaXMgbm90IGRlZmluZWQgaW4NCmFueSB1bm9yZGVyZWQgc2Vn bWVudCAoc28gYnVsbGV0IDEgZG9lcyBub3QgYXBwbHkpLCB0aGVyZSBpcyBubw0KYWxsb2NhdGlv biBvciBwb2ludGVyIGFzc29jaWF0aW9uIHN0YXR1cyAoc28gYnVsbGV0IDIgZG9lcyBub3QgYXBw bHkpLA0KYW5kIHRoZXJlIGlzIG5vIGR1bW15IGFyZ3VtZW50IGJlaW5nIGRlZmluZWQgKHNvIGJ1 bGxldCAzIGRvZXMgbm90DQphcHBseSkuDQoNCkFOU1dFUjoNCg0KKDEpIE5vLCB0aGlzIGV4YW1w bGUgdmlvbGF0ZXMgdGhlIHJlcXVpcmVtZW50IG9mIHRoZSBmaXJzdCBidWxsZXQgaW4NCiAgICBw YXJhZ3JhcGggMyBvZiA4LjUuMiwgd2hpY2ggc2F5czoNCiAgICAgICJpZiBhIHZhcmlhYmxlIGlz IGRlZmluZWQgb24gYW4gaW1hZ2UgaW4gYSBzZWdtZW50LCBpdCBzaGFsbCBub3QNCiAgICAgICBi ZSByZWZlcmVuY2VkLCBkZWZpbmVkLCBvciBiZWNvbWUgdW5kZWZpbmVkIGluIGEgc2VnbWVudCBv bg0KICAgICAgIGFub3RoZXIgaW1hZ2UgdW5sZXNzIHRoZSBzZWdtZW50cyBhcmUgb3JkZXJlZCIu DQogICAgeFsxXSVjIGlzIGRlZmluZWQgaW4gc2VnbWVudCAyIGJ5IGltYWdlcyAyLU4sIGJ1dCBp cyBtYWRlDQogICAgdW5kZWZpbmVkIG9uIGltYWdlIDEgKGFsbG9jYXRpb24gbWFrZXMgYSB2YXJp YWJsZSB1bmRlZmluZWQgZXhjZXB0DQogICAgd2hlbiBkZWZhdWx0IGluaXRpYWxpemF0aW9uIG9j Y3VycykuDQoNCigyKSBObywgdGhpcyBleGFtcGxlIHdhcyBub3QgaW50ZW5kZWQgdG8gYmUgc3Rh bmRhcmQtY29uZm9ybWluZy4gIEFuDQogICAgZWRpdCBpcyBzdXBwbGllZCB0byBjbGFyaWZ5IHRo ZSBpbnRlbnQuDQoNCkVESVRTIHRvIDEwLTAwNzoNCg0KWzE4OToxNF0gSW4gOC41LjIgcGFyYWdy YXBoIDMsIGZpcnN0IGJ1bGxldCBwb2ludCwNCiAgQWZ0ZXIgImlmIGEgdmFyaWFibGUgaXMgZGVm aW5lZCINCiAgSW5zZXJ0ICJvciBiZWNvbWVzIHVuZGVmaW5lZCINCiAgKGJlZm9yZSAib24gYW4g aW1hZ2UgaW4gYSBzZWdtZW50IikuDQp7Rm9yYmlkIHVuY29vcmRpbmF0ZWQgdW5kZWZpbmluZ3Mg b2YgdmFyaWFibGVzLn0NCg0KU1VCTUlUVEVEIEJZOiBKb2huIFJlaWQNCg0KSElTVE9SWTogMTAt MjAxICAgIG0xOTMgIEYwOC8wMDQxIHN1Ym1pdHRlZA0KICAgICAgICAgMTAtMjAxcjEgIG0xOTMg IFJldmlzZWQgLSBQYXNzZWQgYnkgSjMgbWVldGluZw0KICAgICAgICAgMTEtMTI5ICAgIG0xOTQg IEZhaWxlZCBKMyBsZXR0ZXIgYmFsbG90ICMyMiAxMC0yNTQNCg0KKiogc3RhcnQgbmVnYXRpdmUg Y29tbWVudHMNCiAgSm9obiBSZWlkJ3MgTk8gdm90ZSBvbiBGMDgvMDA0MToNCg0KICAgIFRoZXJl IGFyZSBlcnJvcnMgaW4gYm90aCBleGFtcGxlcy4gSW4gZXhhbXBsZSAoMSksIHRoZSBjb21wb25l bnQgb2YNCiAgICB0eXBlIHQyIHNob3VsZCBoYXZlIHR5cGUgdDEuIEluIGV4YW1wbGUgKDIpLCB0 aGUgUFJJTlQgc3RhdGVtZW50DQogICAgc2hvdWxkIHJlZmVyZW5jZSB4IG9uIGFub3RoZXIgaW1h Z2UsIGUuZy4gUFJJTlQgKiwgeCgxKVsyXS4NCg0KICAgIE1vcmUgc2VyaW91c2x5LCB0aGUgZWRp dCBwcm9wb3NlZCBpbiAxMC0yMDEgaGFzIGJlZW4gcmVtb3ZlZC4gV2hpbGUNCiAgICBpdCBpcyBu b3QgbmVjZXNzYXJ5IGZvciBhbGxvY2F0aW9uLCBpdCBpcyBuZWVkZWQgZm9yIHBvaW50ZXINCiAg ICBhc3NvY2lhdGlvbi4gIFRoaXMgbWVhbnMgdGhhdCBpdCBpcyBkZXNpcmFibGUgdG8gcmV3cml0 ZSB0aGUNCiAgICBxdWVzdGlvbnMgYW5kIGFuc3dlcnMuICBIZXJlIGlzIG15IHN1Z2dlc3Rpb24N Cg0KICAgIFFVRVNUSU9OOg0KDQogICAgKDEpIElmIGEgdmFyaWFibGUgaXMgYWxyZWFkeSBkZWZp bmVkIChpbml0aWFsbHkgb3IgYnkgc29tZSBzZWdtZW50DQogICAgICAgIHRoYXQgcHJlY2VkZXMg YWxsIG90aGVyIHNlZ21lbnRzIGluIHRoaXMgcXVlc3Rpb24pLCBtYXkgb25lDQogICAgICAgIGlt YWdlIHJlZmVyZW5jZSBpdCB3aGlsZSBhbm90aGVyIGltYWdlIGNhdXNlcyBpdCB0byBiZWNvbWUN CiAgICAgICAgdW5kZWZpbmVkIGluIHVub3JkZXJlZCBzZWdtZW50cz8NCg0KICAgIEZvciBleGFt cGxlLCBpcw0KDQogICAgICBQUk9HUkFNIGV4YW1wbGUyDQogICAgICAgIFJFQUwgOjogeCgxMDAp WypdDQogICAgICAgIHggPSAxDQogICAgICAgIFNZTkMgQUxMDQogICAgICAgIElGIChUSElTX0lN QUdFKCk9PTEpIFRIRU4NCiAgICAgICAgICBQUklOVCAqLHgoMSlbMl0NCiAgICAgICAgRUxTRQ0K ICAgICAgICAgIENBTEwgZGVzdHJveSh4KQ0KICAgICAgICBFTkQgSUYNCiAgICAgIENPTlRBSU5T DQogICAgICAgIFNVQlJPVVRJTkUgZGVzdHJveSh4KQ0KICAgICAgICAgIFJFQUwsSU5URU5UKE9V VCkgOjogeCg6KQ0KICAgICAgICBFTkQgU1VCUk9VVElORQ0KICAgICAgRU5EIFBST0dSQU0NCg0K ICAgIHN0YW5kYXJkLWNvbmZvcm1pbmc/ICBUaGlzIGRvZXMgbm90IGFwcGVhciB0byB2aW9sYXRl IGFueSBvZiB0aGUNCiAgICBzZWdtZW50IG9yZGVyaW5nIHJlcXVpcmVtZW50cyBpbiA4LjUuMiBi ZWNhdXNlIGl0IGlzIG5vdCBkZWZpbmVkIGluDQogICAgYW55IHVub3JkZXJlZCBzZWdtZW50IChz byBidWxsZXQgMSBkb2VzIG5vdCBhcHBseSksIHRoZXJlIGlzIG5vDQogICAgYWxsb2NhdGlvbiBv ciBwb2ludGVyIGFzc29jaWF0aW9uIHN0YXR1cyAoc28gYnVsbGV0IDIgZG9lcyBub3QNCiAgICBh cHBseSksIGFuZCB0aGVyZSBpcyBubyBkdW1teSBhcmd1bWVudCBiZWluZyBkZWZpbmVkIChzbyBi dWxsZXQgMw0KICAgIGRvZXMgbm90IGFwcGx5KS4NCg0KICAgICgyKSBXYXMgaXQgaW50ZW5kZWQg dG8gYWxsb3cgYSBwb2ludGVyIGFzc2lnbm1lbnQgdG8gYSBwb2ludGVyIHRoYXQNCiAgICAgICAg aXMgbm90IGEgc3Vib2JqZWN0IG9mIGEgY29hcnJheSB0byBiZSB1bm9yZGVyZWQgd2l0aCByZXNw ZWN0IHRvDQogICAgICAgIGl0cyBkZWZpbml0aW9uIGJ5IGFub3RoZXIgaW1hZ2UgdGhyb3VnaCBh IHBvaW50ZXIgY29tcG9uZW50IG9mDQogICAgICAgIGEgY29hcnJheT8NCg0KICAgIEZvciBleGFt cGxlLA0KDQogICAgICBQUk9HUkFNIGV4YW1wbGUxDQogICAgICAgIFRZUEUgdA0KICAgICAgICAg IFJFQUwsUE9JTlRFUiA6OiBwDQogICAgICAgIEVORCBUWVBFDQogICAgICAgIFJFQUwsVEFSR0VU IDo6IGE9MC4wLCBiPTEuMA0KICAgICAgICBUWVBFKHQpIDo6IHlbKl0NCiAgICAgICAgeSVwID0+ IGEgICAgICAgICAgICAgICAgICAgICAgICAgISB5W25dJXAgPT4gYSBmb3IgYWxsIG4uDQogICAg ICAgIFNZTkMgQUxMDQogICAgICAgIElGIChUSElTX0lNQUdFKCk9PTEpIFRIRU4NCiAgICAgICAg ICB5JXAgPT4gYiAgICAgICAgICAgICAgICAgICAgICAgISB5WzFdJXAgPT4gYg0KICAgICAgICBF TFNFDQogICAgICAgICAgeVsxXSVwID0gOTk5ICAgICAgICAgICAgICAgICAgICEgRGVmaW5lcyBh WzFdIG9yIGJbMV0/DQogICAgICAgIEVORCBJRg0KICAgICAgRU5EIFBST0dSQU0NCg0KICAgIEFO U1dFUjoNCg0KICAgICgxKSBOby4gVGhpcyBjYXNlIGhhcyBiZWVuIG92ZXJsb29rZWQgaW4gdGhl IHNlZ21lbnQgb3JkZXJpbmcgcnVsZXMuDQogICAgICAgIEFuIGVkaXQgaXMgc3VwcGxpZWQgdG8g Y29ycmVjdCB0aGlzLg0KDQogICAgKDIpIE5vLiBUaGlzIGNhc2UsIHRvbywgaGFzIGJlZW4gb3Zl cmxvb2tlZCBpbiB0aGUgc2VnbWVudCBvcmRlcmluZw0KICAgICAgICBydWxlcy4gICBBbiBlZGl0 IGlzIHN1cHBsaWVkIHRvIGNvcnJlY3QgdGhpcy4NCg0KICAgIEVESVRTIHRvIDEwLTAwNzoNCg0K ICAgICBbMTg5OjE0XSBJbiA4LjUuMiBwYXJhZ3JhcGggMywgZmlyc3QgYnVsbGV0IHBvaW50LA0K ICAgICAgQWZ0ZXIgImlmIGEgdmFyaWFibGUgaXMgZGVmaW5lZCINCiAgICAgIEluc2VydCAib3Ig YmVjb21lcyB1bmRlZmluZWQiDQogICAgICAoYmVmb3JlICJvbiBhbiBpbWFnZSBpbiBhIHNlZ21l bnQiKS4NCg0KICAgIFsxODldIEluIDguNS4yIFNlZ21lbnRzLCBwYXJhZ3JhcGggMywgcmVwbGFj ZSB0aGUgc2Vjb25kIGJ1bGxldA0KICAgICAgICAgIGl0ZW0gYnkNCiAgICAgICAgImlmIHRoZSBh bGxvY2F0aW9uIG9yIHRoZSBwb2ludGVyIGFzc29jaWF0aW9uIHN0YXR1cyBvZiBhDQogICAgICAg ICB2YXJpYWJsZSBpcyBjaGFuZ2VkIG9uIGFuIGltYWdlIGluIGEgc2VnbWVudCwgdGhhdCB2YXJp YWJsZQ0KICAgICAgICAgc2hhbGwgbm90IGJlIHJlZmVyZW5jZWQgb3IgZGVmaW5lZCBpbiBhIHNl Z21lbnQgb24gYW5vdGhlcg0KICAgICAgICAgaW1hZ2UgdW5sZXNzIHRoZSBzZWdtZW50cyBhcmUg b3JkZXJlZCwgYW5kIi4NCg0KICBWYW4gU255ZGVyJ3MgTm8gdm90ZSBvbiBGMDgvMDA0MToNCg0K ICAgICJpcyBkZWZpbmVkIiBpcyBhIHN0YXRpYyBjb25jZXB0LiAgVGhlIHJlcXVpcmVtZW50IHNo b3VsZA0KICAgICBhbHdheXMgaGF2ZSBiZWVuICJiZWNvbWVzIGRlZmluZWQiLiAgVGhlcmVmb3Jl IHRoZSBlZGl0IHNob3VsZA0KICAgICBiZSB0byByZXBsYWNlICJ2YXJpYWJsZSBpcyBkZWZpbmVk IiB0byAidmFyaWFibGUgYmVjb21lcw0KICAgICBkZWZpbmVkIG9yIHVuZGVmaW5lZCIgLS0gb3Ig ZG8gd2UgbmVlZCBhbm90aGVyIGludGVycCB0bw0KICAgICByZXBhaXIgdGhpcz8NCg0KICBKaW0g WGlhJ3MgTm8gdm90ZSBvbiBGMDgvMDA0MToNCg0KICAgIFRoZSBmaXJzdCBleGFtcGxlIHNob3Vs ZCBiZSBmaXhlZCB0byBoYXZlIHQyIGNvbnRhaW5zIGEgcG9pbnRlcg0KICAgIGNvbXBvbmVudCBv ZiB0eXBlIHQxLiAgVGhlIHNlY29uZCBleGFtcGxlIGlzIHBlcmZlY3RseSBsZWdhbC4gIFNlZW1z DQogICAgd2UgbmVlZCB0byByZXdvcmsgb24gdGhpcyBpbnRlcnAuDQoNCiAgcmVzdWx0IG9mIGJh bGxvdCBvbiBGMDgvMDA0MToNCg0KICAgIEluIGV4YW1wbGUgKDEpLCB0aGUgY29tcG9uZW50IG9m IHR5cGUgdDIgaXMgY2hhbmdlZCB0byB0eXBlIHQxLg0KICAgIEhvd2V2ZXIsIG1vcmUgd29yayBp cyBuZWVkZWQgb24gdGhpcyBpbnRlcnAgYXMgYSByZXN1bHQgb2YgdGhlc2UNCiAgICBjb21tZW50 cyA9PiBGMDgvMDA0MSBmYWlscy4NCg0KICAgIFRoZSBlZGl0IGluIDEwLTIwMSByZWZlcnJlZCB0 byBhYm92ZSBpczoNCiAgICAgIFsxODldIEluIDguNS4yIFNlZ21lbnRzLCBwYXJhZ3JhcGggMywg cmVwbGFjZSB0aGUgc2Vjb25kIGJ1bGxldA0KICAgICAgaXRlbSBieQ0KICAgICAgICAiaWYgdGhl IGFsbG9jYXRpb24gb3IgdGhlIHBvaW50ZXIgYXNzb2NpYXRpb24gc3RhdHVzIG9mIGENCiAgICAg ICAgIHZhcmlhYmxlIGlzIGNoYW5nZWQgb24gYW4gaW1hZ2UgaW4gYSBzZWdtZW50LCB0aGF0IHZh cmlhYmxlDQogICAgICAgICBzaGFsbCBub3QgYmUgcmVmZXJlbmNlZCBvciBkZWZpbmVkIGluIGEg c2VnbWVudCBvbiBhbm90aGVyDQogICAgICAgICBpbWFnZSB1bmxlc3MgdGhlIHNlZ21lbnRzIGFy ZSBvcmRlcmVkLCBhbmQiDQoqKiBlbmQgbmVnYXRpdmUgY29tbWVudHMNCg0KLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KDQpOVU1CRVI6IEYwOC8wMDQ1DQpUSVRMRTogIGNvbnN0cmFpbnRzIG9uIGVudGl0aWVzIG9m IHR5cGUgTE9DS19UWVBFDQpLRVlXT1JEUzogbG9jaywgcG9seW1vcnBoaXNtDQpERUZFQ1QgVFlQ RTogRXJyYXR1bQ0KU1RBVFVTOiBKMyBjb25zaWRlcmF0aW9uIGluIHByb2dyZXNzDQoNClFVRVNU SU9OOg0KDQpDb25zaWRlciB0aGUgZm9sbG93aW5nIHByb2dyYW06DQoNCiAgUHJvZ3JhbSBleGFt cGxlDQogICAgVXNlIElzb19Gb3J0cmFuX0VudiwgT25seTpsb2NrX3R5cGUNCiAgICB0eXBlIDo6 IG0NCiAgICAgIGNsYXNzKCopLCBhbGxvY2F0YWJsZSA6OiBsb2NrDQogICAgZW5kIHR5cGUNCiAg ICB0eXBlKG0pIDo6IG9tWypdDQogICAgYWxsb2NhdGUobG9ja190eXBlIDo6IG9tJWxvY2spDQog ICAgY2FsbCBpbm5lcihvbSkgICAgICAgICAgICAgICAgICAhIFByb2JsZW0gY2FsbC4NCiAgQ29u dGFpbnMNCiAgICBTdWJyb3V0aW5lIGlubmVyKG9tbSkNCiAgICAgIFR5cGUobSksSW50ZW50KE91 dCkgOjogb21tDQogICAgICBQcmludCAqLEFsbG9jYXRlZChvbW0lbG9jaykNCiAgICBFbmQgU3Vi cm91dGluZQ0KICBFbmQgUHJvZ3JhbQ0KDQpDb25zdHJhaW50IEMxMzA0IGF0dGVtcHRzIHRvIHBy b2hpYml0IGEgdmFyaWFibGUgd2l0aCBhIExPQ0tfVFlQRQ0Kc3Vib2JqZWN0IGZyb20gYXBwZWFy aW5nIGluIGEgdmFyaWFibGUgZGVmaW5pdGlvbiBjb250ZXh0LCBzdWNoIGFzIHRoZQ0KY2FsbCB0 byBpbm5lciwgYnV0IHRoZSBkeW5hbWljIHR5cGUgb2Ygb20lbG9jayBjYW5ub3QgYmUgZGV0ZXJt aW5lZA0Kc3RhdGljYWxseS4NCg0KSXMgdGhpcyBwcm9ncmFtIHN0YW5kYXJkLWNvbmZvcm1pbmc/ DQoNCkFOU1dFUjoNCg0KVGhlIGV4YW1wbGUgd2FzIG5vdCBpbnRlbmRlZCB0byBiZSBzdGFuZGFy ZC1jb25mb3JtaW5nLiAgQW4gQUxMT0NBVEUNCnN0YXRlbWVudCB3aXRoIGEgPHR5cGUtc3BlYz4g c2hvdWxkIG5vdCBoYXZlIGJlZW4gcGVybWl0dGVkIHRvIGFkZA0KY29tcG9uZW50cyBvZiB0eXBl IExPQ0tfVFlQRTsgYW4gZWRpdCBpcyBzdXBwbGllZCB0byBjb3JyZWN0IHRoaXMNCmVycm9yLg0K DQpFRElUUyB0byAxMC0wMDc6DQoNClsxMjc6N10gSW4gQzY0MSwNCiAgQWZ0ZXIgIkNfUFRSIiBy ZXBsYWNlICJvciIgYnkgIiwiOw0KICBBZnRlciAiQ19GVU5QVFIiIGluc2VydA0KICAgICIsIExP Q0tfVFlQRSAoMTMuOC4yLjE2KSwgb3IgYSB0eXBlIHdpdGggYSBkaXJlY3QgY29tcG9uZW50IG9m DQogICAgIHR5cGUgTE9DS19UWVBFIHRoYXQgaXMgbm90IGEgZGlyZWN0IGNvbXBvbmVudCBvZiB0 aGUgZGVjbGFyZWQNCiAgICAgdHlwZSBvZiBhbnkgPGFsbG9jYXRlLW9iamVjdD4sIi4NCntGaXgg Y29uZGl0aW9uIHRvIHByb2hpYml0IExPQ0tfVFlQRSBhbmQgYW55IHR5cGUgd2l0aCBhIExPQ0tf VFlQRQ0KIGRpcmVjdCBjb21wb25lbnQuICBOb3RlIHRoYXQgd2Ugb25seSB3YW50IHRvIHByb2hp Yml0ICJuZXciIGxvY2tfdHlwZQ0KIGNvbXBvbmVudHMgZnJvbSBhcHBlYXJpbmcgaW4gdGhlIDx0 eXBlLXNwZWM+LCB3ZSBkb24ndCB3YW50IHRvIGZvcmJpZA0KIG9uZXMgdGhhdCBhcmUgYWxyZWFk eSBpbiB0aGUgZGVjbGFyZWQgdHlwZS59DQoNClsxMjc6OF0gQWZ0ZXIgIkxPQ0tfVFlQRSIgZGVs ZXRlICIoMTMuOC4yLjE2KSIuDQp7UmVmZXJlbmNlIG5vdyBhcHBlYXJzIG9uZSBsaW5lIGVhcmxp ZXIsIHNvIGlzIHVubmVjZXNzYXJ5Ln0NCg0KU1VCTUlUVEVEIEJZOiBSLiBCYWRlcg0KDQpISVNU T1JZOiAxMC0yMTAgICAgbTE5MyAgRjA4LzAwNDUgc3VibWl0dGVkDQogICAgICAgICAxMC0yMTBy MSAgbTE5MyAgUmV2aXNlZCAtIFBhc3NlZCBieSBKMyBtZWV0aW5nDQogICAgICAgICAxMS0xMjkg ICAgbTE5NCAgRmFpbGVkIGJ5IEozIGxldHRlciBiYWxsb3QgIzIyIDEwLTI1NA0KDQoqKiBzdGFy dCBuZWdhdGl2ZSBjb21tZW50cw0KICBKaW0gWGlhJ3MgTm8gdm90ZSBvbiBGMDgvMDA0NToNCg0K ICAgIFRoZSBlZGl0cyBtYWtlcyBpdCBpbGxlZ2FsIHRvIHNwZWNpZnkgTE9DS19UWVBFIGFzIDx0 eXBlLXNwZWM+IGlmDQogICAgdGhlIGNvYXJyYXkgaXRzZWxmIGlzIG9mIExPQ0tfVFlQRS4gIEZv ciBleGFtcGxlLA0KICAgICAgdHlwZShsb2NrX3R5cGUpLCBhbGxvY2F0YWJsZSA6OiBsb2Nrc1sq XQ0KICAgIFRoZSBlZGl0cyBtYWtlIHRoZSBmb2xsb3dpbmcgYWxsb2NhdGUgc3RhdGVtZW50IGls bGVnYWwNCiAgICAgIEFMTE9DQVRFIChMT0NLX1RZUEU6IGxvY2tzWypdKQ0KDQogIHJlc3VsdCBv ZiBiYWxsb3Qgb24gRjA4LzAwNDU6DQoNCiAgICAvaW50ZXJwIHdpbGwgdGFrZSB0aGlzIGJhY2sg Zm9yIG1vcmUgd29yayBzaW5jZSB3ZSB0aGluayB0aGF0IEppbQ0KICAgIGhhcyBhIHZhbGlkIGNv bXBsYWludCA9PiBGMDgvMDA0NSBmYWlscw0KDQogICAgUGVyaGFwcyB0aGUgZWRpdCBzaG91bGQg YmUgY2hhbmdlZCB0bw0KDQogICAgICBbMTI3OjddIEluIEM2NDEsDQogICAgICAgIEFmdGVyICJD X1BUUiIgcmVwbGFjZSAib3IiIGJ5ICIsIjsNCiAgICAgICAgQWZ0ZXIgIkNfRlVOUFRSIiBpbnNl cnQNCiAgICAgICAgICAiLCBvciBhIHR5cGUgd2l0aCBhIGRpcmVjdCBjb21wb25lbnQgb2YgdHlw ZSBMT0NLX1RZUEUNCiAgICAgICAgICAgKDEzLjguMi4xNikgdGhhdCBpcyBub3QgYSBkaXJlY3Qg Y29tcG9uZW50IG9mIHRoZSBkZWNsYXJlZA0KICAgICAgICAgICB0eXBlIG9mIGFueSA8YWxsb2Nh dGUtb2JqZWN0PiwiLg0KDQogICAgICBbMTI3OjcrXSBJbnNlcnQgbmV3IGNvbnN0cmFpbnQNCiAg ICAgICAgIkM2NDFhIChSNjI2KSBJZiBhbiA8YWxsb2NhdGUtb2JqZWN0PiBpcyB1bmxpbWl0ZWQg cG9seW1vcnBoaWMsDQogICAgICAgICAgICAgICA8dHlwZS1zcGVjPiBzaGFsbCBub3Qgc3BlY2lm eSB0aGUgdHlwZSBMT0NLX1RZUEUNCiAgICAgICAgICAgICAgICgxMy44LjIuMTYpLiINCioqIGVu ZCBuZWdhdGl2ZSBjb21tZW50cw0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCk5VTUJFUjogRjA4LzAwNzEN ClRJVExFOiBWZWN0b3Igc3Vic2NyaXB0IHRhcmdldA0KS0VZV09SRFM6IFBvaW50ZXIgYXNzaWdu bWVudCwgVmVjdG9yIHN1YnNjcmlwdA0KREVGRUNUIFRZUEU6IEVycmF0dW0NClNUQVRVUzogSW4g RjIwMDggQ29ycmlnZW5kdW0gMw0KDQpRVUVTVElPTjoNCg0KQ29uc2lkZXINCg0KICBQUk9HUkFN IG0xOTcwMDYNCiAgICBSRUFMLFRBUkdFVCA6OiB4KDEwMCkgPSBbIChpLGk9MSwxMDApIF0NCiAg ICBSRUFMLFBPSU5URVIgOjogcCg6KQ0KICAgIFRZUEUgdA0KICAgICAgUkVBTCxQT0lOVEVSIDo6 IHEoOikNCiAgICBFTkQgVFlQRQ0KICAgIFRZUEUodCkgeQ0KICAgIHAgPT4geCAgICAgICAgICAg ICAgICAgICAgICEgKDEpDQogICAgeSA9IHQoeCkgICAgICAgICAgICAgICAgICAgISAoMikNCiAg ICBwID0+IHgoIFsgMSw0LDksMjUgXSApICAgICAhICgzKQ0KICAgIHkgPSB0KHgoIFsgMSw0LDks MjUgXSApKSAgICEgKDQpDQogICAgUFJJTlQgKix5JXENCiAgRU5EIFBST0dSQU0NCg0KVGhlIHBv aW50ZXIgYXNzaWdubWVudCBzdGF0ZW1lbnQgYXQgKDEpIGFzc29jaWF0ZXMgUCB3aXRoIFguDQpU aGUgaW50cmluc2ljIGFzc2lnbm1lbnQgc3RhdGVtZW50IGF0ICgyKSBpbmNsdWRlcyB0aGUgZWZm ZWN0IG9mDQpwb2ludGVyIGFzc2lnbm1lbnQgb2YgWCB0byBZJVEsIGJ1dCBpcyBub3QgYSBwb2lu dGVyIGFzc2lnbm1lbnQNCnN0YXRlbWVudC4NCg0KVGhlIHBvaW50ZXIgYXNzaWdubWVudCBzdGF0 ZW1lbnQgYXQgKDMpIGlzIG5vdCBzdGFuZGFyZC1jb25mb3JtaW5nDQphY2NvcmRpbmcgdG8gNi41 LjMuMy4yIHBhcmFncmFwaCAyOg0KICAiQW4gYXJyYXkgc2VjdGlvbiB3aXRoIGEgdmVjdG9yIHN1 YnNjcmlwdCBzaGFsbCBub3QgYmUNCiAgIC4uLiB0aGUgPGRhdGEtdGFyZ2V0PiBpbiBhIHBvaW50 ZXIgYXNzaWdubWVudCBzdGF0ZW1lbnQiDQoNCkhvd2V2ZXIsIHRoZSBpbnRyaW5zaWMgYXNzaWdu bWVudCBzdGF0ZW1lbnQgYXQgKDQpIGlzIG5vdCBzdWJqZWN0IHRvDQp0aGlzIHJlcXVpcmVtZW50 IGFzIGl0IGlzIG5vdCBhIHBvaW50ZXIgYXNzaWdubWVudCBzdGF0ZW1lbnQuDQoNCk5vdGUgdGhh dCB0aGUgcXVvdGVkIHBhcmFncmFwaCBpcyBlbnRpcmVseSAgZHVwbGljYXRpdmUsIGFzIGluOg0K IC0gdGhlIGZpcnN0IGJ1bGxldCBpdGVtIGlzIGNvdmVyZWQgYnkgMTIuNS4yLjRwMTgsDQogLSB0 aGUgc2Vjb25kIGJ1bGxldCBpdGVtIGlzIGNvdmVyZWQgYnkgQzcyNCBpbiA3LjIuMi4yDQogICAo YnV0IEM3MjQgZG9lcyBub3QgY292ZXIgdGhpcyBjYXNlIGVpdGhlciksDQogLSB0aGUgdGhpcmQg YnVsbGV0IGl0ZW0gaXMgY292ZXJlZCBieSBDOTAxIGluIDkuNS4xLg0KRWRpdG9yaWFsIGltcHJv dmVtZW50cyBoYXZlIGJlZW4gbWFkZSBpbiBjb3JyaWdlbmR1bSAxLiAgVGhlIGVudGlyZQ0KcGFy YWdyYXBoIGhhcyBiZWVuIHJld3JpdHRlbi4NCg0KUTEuIFdhcyB0aGUgc3RhdGVtZW50IG1hcmtl ZCAoNCkgaW50ZW5kZWQgdG8gYmUgYWxsb3dlZD8NCg0KUTIuIElmIG5vdCwgd2FzIGl0IGludGVu ZGVkIHRvIGJlIHByb2hpYml0ZWQgYnkgYSBjb25zdHJhaW50IGxpa2UNCiAgICBDNzI0LCBvciB3 YXMgaXQgaW50ZW5kZWQgdG8gYmUgYSBzaW1wbGUgcmVxdWlyZW1lbnQ/DQogICAgKEVkaXRvcmlh bCBub3RlOiBpbiBhbnkgY2FzZSBzdXJlbHkgdGhlIHJlcXVpcmVtZW50IHNob3VsZCBhcHBlYXIN CiAgICBpbiB0aGUgcG9pbnRlciBhc3NpZ25tZW50IHN1YmNsYXVzZS4pDQoNCkFOU1dFUjoNCg0K QTEuIE5vLCB0aGlzIHdhcyBub3QgaW50ZW5kZWQuICBBbiBlZGl0IGlzIHN1cHBsaWVkIHRvIGNv cnJlY3QgdGhpcy4NCg0KQTIuIENvbnN0cmFpbnQgQzcyNCB3YXMgaW50ZW5kZWQgdG8gY292ZXIg dGhpcyBjYXNlLiAgQW4gZWRpdCBpcw0KICAgIHN1cHBsaWVkIHRvIGNvcnJlY3QgdGhpcy4NCg0K RURJVDoNCg0KWzE1ODoxOS0yMF0gSW4gNy4yLjIuMiBTeW50YXggb2YgdGhlIHBvaW50ZXIgYXNz aWdubWVudCBzdGF0ZW1lbnQsDQogICAgICAgICAgICBDNzI0LCBjaGFuZ2UgIiIoUjczNykgQSA8 dmFyaWFibGU+Ig0KICAgICAgICAgICAgdG8gIkEgdmFyaWFibGUgdGhhdCBpcyBhIHBvaW50ZXIg dGFyZ2V0IiwNCiAgICAgICAgICAgIG1ha2luZyB0aGUgd2hvbGUgY29uc3RyYWludCByZWFkOg0K ICAiQSB2YXJpYWJsZSB0aGF0IGlzIGEgcG9pbnRlciB0YXJnZXQgc2hhbGwgaGF2ZSBlaXRoZXIg dGhlIFRBUkdFVA0KICAgb3IgUE9JTlRFUiBhdHRyaWJ1dGUsIGFuZCBzaGFsbCBub3QgYmUgYW4g YXJyYXkgc2VjdGlvbiB3aXRoIGENCiAgIHZlY3RvciBzdWJzY3JpcHQuIg0Ke01ha2UgdGhlIGNv bnN0cmFpbnQgYXBwbHkgdG8gYWxsIGZvcm1zIG9mIHBvaW50ZXIgYXNzaWdubWVudC59DQoNCntO b3RpY2UgdGhhdCB0aGlzIGVkaXQgaW5jb3Jwb3JhdGVzIHRoZSBsaXN0IGl0ZW0gY29uY2Vybmlu ZyB2ZWN0b3INCnN1YnNjcmlwdHMgZnJvbSA2LjUuMy4zLjJwMiBzdGF0dXMgcXVvIGFudGUgY29y cmlnZW5kdW0gMS59DQoNClNVQk1JVFRFRCBCWTogTWFsY29sbSBDb2hlbg0KDQpISVNUT1JZOiAx Mi0xMjEgICAgbTE5NyAgRjA4LzAwNzEgc3VibWl0dGVkDQogICAgICAgICAxMi0xMjFyMSAgbTE5 NyAgUmV2aXNlZCB3b3JkaW5nIHdpdGggc2FtZSBlZGl0cyAtIHBhc3NlZA0KICAgICAgICAgICAg ICAgICAgICAgICAgICBieSBKMyBtZWV0aW5nDQogICAgICAgICAxMi0xNjVyMiAgbTE5OCAgRmFp bGVkIEozIGxldHRlciBiYWxsb3QgIzI1IDEyLTE0Nw0KICAgICAgICAgMTMtMjUwICAgIG0yMDAg IFJldmlzZWQgLSBwYXNzZWQgYnkgSjMgbWVldGluZw0KICAgICAgICAgMTMtMjYyICAgIG0yMDEg IFBhc3NlZCBKMyBsZXR0ZXIgYmFsbG90ICMyOCAxMy0yNTVyMQ0KICAgICAgICAgTjE5OTAgICAg IG0yMDIgIFBhc3NlZCBieSBXRzUgYmFsbG90IDYgTjE5ODcvODgvOTANCiAgICAgICAgIE4yMDAy ICAgICBtMjAzICBJbiBGMjAwOCBDb3JyaWdlbmR1bSAzDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KTlVN QkVSOiBGMDgvMDA3NQ0KVElUTEU6IFBvaW50ZXIgZnVuY3Rpb24gcmVmZXJlbmNlIGFzIHZhcmlh YmxlIGluIGFzc2lnbm1lbnQNCktFWVdPUkRTOiBQb2ludGVyIGZ1bmN0aW9uLCBhc3NpZ25tZW50 LCBkZWZpbmVkIG9wZXJhdG9yDQpERUZFQ1QgVFlQRTogRXJyYXR1bQ0KU1RBVFVTOiBJbiBGMjAw OCBDb3JyaWdlbmR1bSAzDQoNClFVRVNUSU9OOg0KDQooMSkgQ29uc2lkZXIgdGhlIGZvbGxvd2lu Zw0KDQogIG1vZHVsZSBGdW5jcw0KDQogICAgaW50ZXJmYWNlIG9wZXJhdG9yICggLm9wLiApDQog ICAgICBtb2R1bGUgcHJvY2VkdXJlIFVuYXJ5LCBCaW5hcnkNCiAgICBlbmQgaW50ZXJmYWNlDQoN CiAgY29udGFpbnMNCg0KICAgIGZ1bmN0aW9uIFVuYXJ5ICggQXJnICkNCiAgICAgIGludGVnZXIs IGludGVudChpbikgOjogQXJnDQogICAgICBpbnRlZ2VyLCBwb2ludGVyIDo6IFVuYXJ5DQogICAg Li4uDQogICAgZW5kIGZ1bmN0aW9uIFVuYXJ5DQoNCiAgICBmdW5jdGlvbiBCaW5hcnkgKCBBcmcx LCBBcmcyICkNCiAgICAgIGludGVnZXIsIGludGVudChpbikgOjogQXJnMSwgQXJnMg0KICAgICAg aW50ZWdlciwgcG9pbnRlciA6OiBCaW5hcnkNCiAgICAuLi4NCiAgICBlbmQgZnVuY3Rpb24gQmlu YXJ5DQoNCiAgZW5kIG1vZHVsZSBGdW5jcw0KDQogIHByb2dyYW0gV2hhdA0KDQogICAgdXNlIEZ1 bmNzDQogICAgaW50ZWdlciA6OiBYLCBZID0gNDINCg0KICAgIDEwIC5vcC4geCA9IHkNCg0KICBl bmQgcHJvZ3JhbSBXaGF0DQoNCklzIHRoZSAiMTAiIGluICIxMCAub3AuIHggPSB5IiBhbiBvcGVy YW5kLCBhbmQgdGhlcmVmb3JlIGFuIGFyZ3VtZW50IG9mDQphIHJlZmVyZW5jZSB0byBCaW5hcnks IG9yIGlzIC5vcC4gYSByZWZlcmVuY2UgdG8gVW5hcnkgYW5kICIxMCIgYQ0Kc3RhdGVtZW50IGxh YmVsPw0KDQooMikgQ29uc2lkZXIgdGhlIGZvbGxvd2luZw0KDQogIG1vZHVsZSBGdW5jcw0KDQog ICAgaW50ZXJmYWNlIG9wZXJhdG9yICggLm9wLiApDQogICAgICBtb2R1bGUgcHJvY2VkdXJlIFVu YXJ5LCBCaW5hcnkNCiAgICBlbmQgaW50ZXJmYWNlDQoNCiAgY29udGFpbnMNCg0KICAgIGZ1bmN0 aW9uIFVuYXJ5ICggQXJnICkNCiAgICAgIGludGVnZXIsIGludGVudChpbikgOjogQXJnDQogICAg ICBjaGFyYWN0ZXIobGVuPS4uLiksIHBvaW50ZXIgOjogVW5hcnkNCiAgICAuLi4NCiAgICBlbmQg ZnVuY3Rpb24gVW5hcnkNCg0KICAgIGZ1bmN0aW9uIEJpbmFyeSAoIEFyZzEsIEFyZzIgKQ0KICAg ICAgaW50ZWdlciwgaW50ZW50KGluKSA6OiBBcmcxLCBBcmcyDQogICAgICBjaGFyYWN0ZXIobGVu PS4uLiksIHBvaW50ZXIgOjogQmluYXJ5DQogICAgLi4uDQogICAgZW5kIGZ1bmN0aW9uIEJpbmFy eQ0KDQogIGVuZCBtb2R1bGUgRnVuY3MNCg0KICBwcm9ncmFtIFdoYXQNCg0KICAgIHVzZSBGdW5j cw0KICAgIGludGVnZXIgOjogWCA9IDQyLCBZDQoNCiAgICByZWFkICgxMCkgLm9wLiB4LCB5DQoN CiAgZW5kIHByb2dyYW0gV2hhdA0KDQpJcyAiMTAiIGFuIDxpby1jb250cm9sLXNwZWMtbGlzdD4s IG9yIGlzICIoMTApIC5vcC4geCIgYSA8Zm9ybWF0Pj8NCg0KTm90ZSB0aGF0IHRoaXMgcHJvZ3Jh bSBpcyB2YWxpZCBGb3J0cmFuIDkwLCBhbmQgIigxMCkgLm9wLiB4IiBpcw0KYSA8Zm9ybWF0PiBh Y2NvcmRpbmcgdG8gdGhlIEZvcnRyYW4gOTAgc3RhbmRhcmQuDQoNCkFOU1dFUjoNCg0KSXQgd2Fz IGFuIG92ZXJzaWdodCB0aGF0IHRoZSBwcm9ncmFtcyBpbiAoMSkgYW5kICgyKSBjb25mb3JtIHRv IHRoZQ0Kc3ludGF4IGFuZCBjb25zdHJhaW50cyBpbiB0d28gZGlmZmVyZW50IHdheXMuDQoNClRo ZSBwcm9ibGVtIHN0ZW1zIGZyb20gdGhlIG92ZXItYW1iaXRpb3VzIGV4dGVuc2lvbiBvZiBhbGxv d2luZw0KcG9pbnRlciBmdW5jdGlvbiByZWZlcmVuY2VzIHRvIGRlbm90ZSB2YXJpYWJsZXM7IHRo aXMgd2FzIHVuYW1iaWd1b3VzDQpmb3IgPGZ1bmN0aW9uLXJlZmVyZW5jZT4gc3ludGF4LCBidXQg aXMgbm90IGZvciBvcGVyYXRvciBzeW50YXguDQpBbHNvLCBvcGVyYXRvciBzeW50YXggaGFzIG90 aGVyIHJlc3RyaWN0aW9ucyBvbiBpdCB0aGF0IGFyZSBpbnRlbmRlZA0KdG8gcHJldmVudCBtb2Rp ZmljYXRpb24gb2YgYW4gb3BlcmFuZCwgYW5kIHRoZXNlIGFyZSBzdWJ2ZXJ0ZWQgaWYgdGhlDQpy ZXN1bHQgaXMgdHJlYXRlZCBhcyBhIHZhcmlhYmxlLg0KDQpFZGl0cyBhcmUgc3VwcGxpZWQgdG8g cmVtb3ZlIHRoZSB0cmVhdG1lbnQgb2YgcG9pbnRlci12YWx1ZWQgb3BlcmF0b3JzDQphcyB2YXJp YWJsZXMuDQoNCkVESVRTOg0KDQpbMTE3OjEzXSBJbiA2LjIsIFI2MDIsIGNoYW5nZSAiPGV4cHI+ IiB0byAiPGZ1bmN0aW9uLXJlZmVyZW5jZT4iLg0KDQpbMTE3OjE1XSBJbiA2LjIsIEM2MDIsDQog ICAgICAgICBjaGFuZ2UgIjxleHByPiAuLi4gaGFzIg0KICAgICAgICAgdG8gIjxmdW5jdGlvbi1y ZWZlcmVuY2U+IHNoYWxsIGhhdmUiLg0KDQpbMTU4OjE4K10gSW4gNy4yLjIuMiwgUjczNywgYWRk IG5ldyBwcm9kdWN0aW9uDQogICAgICAgICAgICAgIjw8b3I+PiA8ZXhwcj4iLg0Ke1Jlc3RvcmUg ZGVzY3JpcHRpb24gb2YgPGRhdGEtdGFyZ2V0PiB0byBGMjAwMyB2ZXJzaW9uLn0NCg0KWzE1ODoy MCtdIEluIDcuMi4yLjIsIEFmdGVyIEM3MjQsIGFkZCBuZXcgY29uc3RyYWludA0KICAiQzcyNGEg KFI3MzcpIEFuIDxleHByPiBzaGFsbCBiZSBhIHJlZmVyZW5jZSB0byBhIGZ1bmN0aW9uIHRoYXQg aGFzDQogICAgICAgICAgICAgICAgYSBkYXRhIHBvaW50ZXIgcmVzdWx0LiINCntSZXN0b3JlIEYy MDAzIGNvbnN0cmFpbnQgKG1vcmUgb3IgbGVzcykufQ0KDQpTVUJNSVRURUQgQlk6IFZhbiBTbnlk ZXINCg0KSElTVE9SWTogMTItMTQ5ICAgIG0xOTggIEYwOC8wMDc1IHN1Ym1pdHRlZA0KICAgICAg ICAgMTItMTQ5cjEgIG0xOTggIFJldmlzZWQgZWRpdA0KICAgICAgICAgMTItMTQ5cjIgIG0xOTgg IENsYXJpZmllZCBhbnN3ZXIsIHBhc3NlZCBKMyBtZWV0aW5nDQogICAgICAgICAxMi0xOTYgICAg bTE5OSAgU3Vic3VtZWQgRjA4LzAwNzYgYW5kIEZhaWxlZCBKMyBsZXR0ZXIgYmFsbG90DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICMyNiwgMTItMTg0DQogICAgICAgICAxMi0xOTcgICAg bTE5OSAgUmV2aXNlZCBhbnN3ZXIvZWRpdHMgLSBwYXNzZWQgYnkgSjMgbWVldGluZw0KICAgICAg ICAgMTMtMjM3ICAgIG0yMDAgIFBhc3NlZCBieSBKMyBsZXR0ZXIgYmFsbG90ICMyNyAxMy0yMDMN CiAgICAgICAgIE4xOTkwICAgICBtMjAyICBQYXNzZWQgYnkgV0c1IGJhbGxvdCA2IE4xOTg3Lzg4 LzkwDQogICAgICAgICBOMjAwMiAgICAgbTIwMyAgSW4gRjIwMDggQ29ycmlnZW5kdW0gMw0KDQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQoNCk5VTUJFUjogRjA4LzAwNzYNClRJVExFOiBQb2ludGVyIGZ1bmN0aW9u IHJlZmVyZW5jZSBpbiBSRUFEDQpLRVlXT1JEUzogUG9pbnRlciBmdW5jdGlvbiByZWZlcmVuY2Us IFJFQUQsIGRlZmluZWQgb3BlcmF0b3INCkRFRkVDVCBUWVBFOiBFcnJhdHVtDQpTVEFUVVM6IFN1 YnN1bWVkIGJ5IEYwOC8wMDc1IC0gTm8gZWRpdHMgaW4gRjIwMDggQ29ycmlnZW5kdW0gMw0KDQpR VUVTVElPTjoNCg0KQ29uc2lkZXIgdGhlIGZvbGxvd2luZw0KDQogIG1vZHVsZSBGdW5jcw0KDQog ICAgaW50ZXJmYWNlIG9wZXJhdG9yICggLm9wLiApDQogICAgICBtb2R1bGUgcHJvY2VkdXJlIFVu YXJ5LCBCaW5hcnkNCiAgICBlbmQgaW50ZXJmYWNlDQoNCiAgY29udGFpbnMNCg0KICAgIGZ1bmN0 aW9uIFVuYXJ5ICggQXJnICkNCiAgICAgIGludGVnZXIsIGludGVudChpbikgOjogQXJnDQogICAg ICBjaGFyYWN0ZXIobGVuPS4uLiksIHBvaW50ZXIgOjogVW5hcnkNCiAgICAuLi4NCiAgICBlbmQg ZnVuY3Rpb24gVW5hcnkNCg0KICAgIGZ1bmN0aW9uIEJpbmFyeSAoIEFyZzEsIEFyZzIgKQ0KICAg ICAgaW50ZWdlciwgaW50ZW50KGluKSA6OiBBcmcxLCBBcmcyDQogICAgICBjaGFyYWN0ZXIobGVu PS4uLiksIHBvaW50ZXIgOjogQmluYXJ5DQogICAgLi4uDQogICAgZW5kIGZ1bmN0aW9uIEJpbmFy eQ0KDQogIGVuZCBtb2R1bGUgRnVuY3MNCg0KICBwcm9ncmFtIFdoYXQNCg0KICAgIHVzZSBGdW5j cw0KICAgIGludGVnZXIgOjogWCA9IDQyLCBZDQoNCiAgICByZWFkICgxMCkgLm9wLiB4LCB5DQoN CiAgZW5kIHByb2dyYW0gV2hhdA0KDQpJcyAiMTAiIGFuIDxpby1jb250cm9sLXNwZWMtbGlzdD4s IG9yIGlzICIoMTApIC5vcC4geCIgYSA8Zm9ybWF0Pj8NCg0KTm90ZSB0aGF0IHRoaXMgcHJvZ3Jh bSBpcyB2YWxpZCBGb3J0cmFuIDkwLCBhbmQgIigxMCkgLm9wLiB4IiBpcw0KYSA8Zm9ybWF0PiBh Y2NvcmRpbmcgdG8gdGhlIEZvcnRyYW4gOTAgc3RhbmRhcmQuDQoNCiAgQW4gZWRpdCBpcyBzdXBw bGllZA0KdG8gcmVtb3ZlIHRoZSBhbWJpZ3VpdHkgaW4gdGhlIGN1cnJlbnQgc3RhbmRhcmQuDQoN CkFOU1dFUjoNCg0KVGhpcyBpcyBhbm90aGVyIGV4YW1wbGUgb2YgdGhlIHNhbWUgcHJvYmxlbSBh cyBGMDgvMDA3NSwgdml6IHN5bnRhY3RpYw0KYW1iaWd1aXR5IGNhdXNlZCBieSB0aGUgRjIwMDgg ZmVhdHVyZSAib3BlcmF0b3Igc3ludGF4IGZvciB2YXJpYWJsZQ0KZGVub3RhdGlvbiIuICBUaGVy ZWZvcmUgdGhpcyBpbnRlcnByZXRhdGlvbiByZXF1ZXN0IGlzIHN1YnN1bWVkIGJ5DQpGMDgvMDA3 NS4NCg0KRURJVFM6DQoNClNlZSBGMDgvMDA3NS4NCg0KU1VCTUlUVEVEIEJZOiBWYW4gU255ZGVy DQoNCkhJU1RPUlk6IDEyLTE1MCAgICBtMTk4ICBGMDgvMDA3NiBzdWJtaXR0ZWQNCiAgICAgICAg IDEyLTE1MHIxICBtMTk4ICBSZXZpc2VkIGFuc3dlciBhbmQgZWRpdHMsIHBhc3NlZCBKMyBtZWV0 aW5nDQogICAgICAgICAxMi0xOTYgICAgbTE5OSAgU3Vic3VtZWQgYnkgRjA4LzAwNzUsIEozIGxl dHRlciBiYWxsb3QgIzI2LA0KICAgICAgICAgICAgICAgICAgICAgICAgIDEyLTE4NA0KDQogIFJl c3VsdDogVGhpcyBpcyBhbm90aGVyIGluc3RhbmNlIG9mIHRoZSBzYW1lIHByb2JsZW0gKHN5bnRh Y3RpYw0KICAgICAgICAgIGFtYmlndWl0eSkgY2F1c2VkIGJ5IHRoZSBzYW1lIGZlYXR1cmUgKG9w ZXJhdG9yIHN5bnRheA0KICAgICAgICAgIGZvciB2YXJpYWJsZSBkZW5vdGF0aW9uKSBhcyBGMDgv MDA3NSwgc28gbmVlZHMgdG8gYmUNCiAgICAgICAgICBhbnN3ZXJlZCB0b2dldGhlciB3aXRoIEYw OC8wMDc1ID0+IGV4YW1wbGUgd2lsbCBiZSBhZGRlZCB0bw0KICAgICAgICAgIEYwOC8wMDc1LCBh bmQgRjA4LzAwNzYgaXMgdGhlcmVmb3JlIHN1YnN1bWVkIGJ5IEYwOC8wMDc1Lg0KDQogICAgICAg ICAxMi0xOTcgICAgbTE5OSAgRjA4LzAwNzUgcGFzc2VkIGJ5IEozIG1lZXRpbmcNCiAgICAgICAg IE4xOTkwICAgICBtMjAyICBQYXNzZWQgYnkgV0c1IGJhbGxvdCA2LCBOMTk4Ny84OC85MCAtDQog ICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnN1bWVkIGJ5IEYwOC8wMDc1DQogICAgICAgICBO MjAwMiAgICAgbTIwMyAgU3Vic3VtZWQgYnkgRjA4LzAwNzUgLSBubyBlZGl0cyBpbiBGMjAwOA0K ICAgICAgICAgICAgICAgICAgICAgICAgICBDb3JyaWdlbmR1bSAzDQoNCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N Cg0KTlVNQkVSOiBGMDgvMDA4Mw0KVElUTEU6IFR5cGUgcGFyYW1ldGVyIGRlZmF1bHQgZXhwcmVz c2lvbnMgYWxsb3cgY2lyY3VsYXIgZGVwZW5kZW5jZQ0KS0VZV09SRFM6IHR5cGUgcGFyYW1ldGVy IGV4cHJlc3Npb25zLCBjaXJjdWxhciBkZXBlbmRlbmNlDQpERUZFQ1QgVFlQRTogRXJyYXR1bQ0K U1RBVFVTOiBJbiBGMjAwOCBDb3JyaWdlbmR1bSAzDQoNClFVRVNUSU9OOg0KDQpDb25zaWRlcg0K DQogIHR5cGUgOjogVCAoIEksIEogKQ0KICAgIGludGVnZXIsIGtpbmQgOjogSSA9IEogKyAxDQog ICAgaW50ZWdlciwga2luZCA6OiBKID0gSSArIDENCiAgZW5kIHR5cGUgVA0KDQogIHR5cGUodCkg OjogWCgxLDIpDQogIHByaW50ICosIHglaSwgeCVqDQoNCiAgZW5kDQoNCjEuIElzIHRoZSBwcm9n cmFtIHN0YW5kYXJkIGNvbmZvcm1pbmc/DQoNCjIuIFdoYXQgZG9lcyBpdCBwcmludD8NCg0KQU5T V0VSOg0KDQoxLiBUaGUgcHJvZ3JhbSBpcyBub3QgY29uZm9ybWFudCBiZWNhdXNlIHRoZSBzdGFu ZGFyZCBkb2VzIG5vdCBlc3RhYmxpc2gNCmFuIGludGVycHJldGF0aW9uLg0KDQpBbiBlZGl0IGlz IHN1cHBsaWVkIHRvIG1ha2UgaXQgY2xlYXIgdGhhdCB0aGUgcHJvZ3JhbSBpcyBub3QgY29tZm9y bWFudC4NCg0KMi4gVGhlIHN0YW5kYXJkIGRvZXMgbm90IGVzdGFibGlzaCBhbiBpbnRlcnByZXRh dGlvbi4NCg0KRURJVFMgZm9yIDEwLTAwN3IxOg0KDQpbMTUyOjldIFJlcGxhY2UgaXRlbSAoOSkg aW4gdGhlIGxpc3QgaW4gNy4xLjEycDE6DQoNCiAgKDkpICJhIHByZXZpb3VzbHkgZGVjbGFyZWQg a2luZCB0eXBlIHBhcmFtZXRlciBvZiB0aGUgdHlwZSBiZWluZw0KICAgICAgIGRlZmluZWQsIg0K DQpTVUJNSVRURUQgQlk6IFZhbiBTbnlkZXINCg0KSElTVE9SWTogMTItMTcyICAgIG0xOTkgIEYw OC8wMDgzIHN1Ym1pdHRlZCAtIHBhc3NlZCBieSBKMyBtZWV0aW5nDQogICAgICAgICAxMy0yMzcg ICAgbTIwMCAgUGFzc2VkIGJ5IEozIGxldHRlciBiYWxsb3QgIzI3IDEzLTIwMw0KICAgICAgICAg TjE5OTAgICAgIG0yMDIgIFBhc3NlZCBieSBXRzUgYmFsbG90IDYgTjE5ODcvODgvOTANCiAgICAg ICAgIE4yMDAyICAgICBtMjAzICBJbiBGMjAwOCBDb3JyaWdlbmR1bSAzDQoNCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCg0KTlVNQkVSOiBGMDgvMDA4NA0KVElUTEU6IFBvaW50ZXIgYXJndW1lbnRzIHRvIFBVUkUg ZnVuY3Rpb25zDQpLRVlXT1JEUzogUFVSRSBmdW5jdGlvbiwgUE9JTlRFUiwgSU5URU5UKElOKQ0K REVGRUNUIFRZUEU6IEVycmF0dW0NClNUQVRVUzogSW4gRjIwMDggQ29ycmlnZW5kdW0gMw0KDQpR VUVTVElPTjoNCg0KIENvbnNpZGVyIHRoZSBmb2xsb3dpbmcgc3VicHJvZ3JhbToNCg0KICAgUmVh bCBQdXJlIEZ1bmN0aW9uIEYoIFggKQ0KICAgICBSZWFsLFBvaW50ZXIgOjogWA0KICAgICBSZWFs IDo6IEYNCiAgICAgZiA9IDEuMA0KICAgICB4ID0gMi4wICAgICEgKEEpDQogICAgIE51bGxpZnko eCkgISAoQikNCiAgIEVuZCBGdW5jdGlvbiBGDQoNCiBUaGlzIHN1YnByb2dyYW0gZG9lcyBub3Qg Y29uZm9ybSB0byBGb3J0cmFuIDIwMDMsIGJlY2F1c2UgYm90aA0KIHN0YXRlbWVudHMgKEEpIGFu ZCAoQikgdmlvbGF0ZSBjb25zdHJhaW50IEMxMjcyIHdoaWNoIHNheXMNCiAgICJDMTI3MiBJbiBh IHB1cmUgc3VicHJvZ3JhbSBhbnkgZGVzaWduYXRvciB3aXRoIGEgYmFzZSBvYmplY3QgdGhhdA0K ICAgICAgICAgIC4uLiBpcyBhIGR1bW15IGFyZ3VtZW50IG9mIGEgcHVyZSBmdW5jdGlvbiAuLi4g c2hhbGwgbm90IGJlDQogICAgICAgICAgdXNlZCAuLi4gW2luXSBhIHZhcmlhYmxlIGRlZmluaXRp b24gY29udGV4dCAuLi4iLg0KDQpIb3dldmVyLCB0aGUgY29ycmVzcG9uZGluZyBjb25zdHJhaW50 IGluIEZvcnRyYW4gMjAwOCwgQzEyODMsIGlzDQptaXNzaW5nIHRoZSBjb25kaXRpb24gdGhhdCBh cHBsaWVzIHRoZSBjb25zdHJhaW50IHRvIGEgZHVtbXkNCmFyZ3VtZW50IG9mIGEgcHVyZSBmdW5j dGlvbiwgZXhjZXB0IHdoZW4gaXQgaGFzIElOVEVOVChJTikuICBUaHVzDQp0aGUgc3RhdGVtZW50 cyBtYXJrZWQgKEEpIGFuZCAoQikgZG8gbm90IHZpb2xhdGUgQzEyODMsIGFuZA0KdGhlcmVmb3Jl IHRoaXMgc3VicHJvZ3JhbSBhcHBlYXJzIHRvIGNvbmZvcm0gdG8gRm9ydHJhbiAyMDA4Lg0KDQpX YXMgdGhpcyBzdWJwcm9ncmFtIGludGVuZGVkIHRvIGJlIHN0YW5kYXJkLWNvbmZvcm1pbmc/DQoN CkFOU1dFUjoNCg0KTm8sIHRoaXMgc3VicHJvZ3JhbSB3YXMgbm90IGludGVuZGVkIHRvIGJlIHN0 YW5kYXJkLWNvbmZvcm1pbmcuDQpBbiBlZGl0IGlzIHN1cHBsaWVkIHRvIHJlLWluc2VydCB0aGUg b21pdHRlZCBjb25kaXRpb24uDQoNCkVESVQgdG8gMTAtMDA3cjE6DQoNClszMTI6MzFdIEluIDEy LjcsIGNvbnN0cmFpbnQgQzEyODMsIGFmdGVyICJhc3NvY2lhdGlvbiIsDQogICAgICAgICBpbnNl cnQgIiwgaXMgYSBkdW1teSBhcmd1bWVudCBvZiBhIHB1cmUgZnVuY3Rpb24iLg0KDQpTVUJNSVRU RUQgQlk6IFRvYmlhcyBCdXJudXMNCg0KSElTVE9SWTogMTItMTc0ICAgIG0xOTkgIEYwOC8wMDg0 IHN1Ym1pdHRlZA0KICAgICAgICAgMTItMTc0cjEgIG0xOTkgIFJldmlzZWQNCiAgICAgICAgIDEy LTE3NHIyICBtMTk5ICBQYXNzZWQgYnkgSjMgbWVldGluZw0KICAgICAgICAgMTMtMjM3ICAgIG0y MDAgIFBhc3NlZCBieSBKMyBsZXR0ZXIgYmFsbG90ICMyNyAxMy0yMDMNCiAgICAgICAgIE4xOTkw ICAgICBtMjAyICBQYXNzZWQgYnkgV0c1IGJhbGxvdCA2IE4xOTg3Lzg4LzkwDQogICAgICAgICBO MjAwMiAgICAgbTIwMyAgSW4gRjIwMDggQ29ycmlnZW5kdW0gMw0KDQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoN Ck5VTUJFUjogRjA4LzAwODUNClRJVExFOiBQcm9ibGVtcyB3aXRoIFBBUkFNRVRFUnMNCktFWVdP UkRTOiBQQVJBTUVURVINCkRFRkVDVCBUWVBFOiBFcnJhdHVtDQpTVEFUVVM6IEluIEYyMDA4IENv cnJpZ2VuZHVtIDMNCg0KUVVFU1RJT046DQoNCigxKSBDb25zaWRlciB0aGUgcHJvZ3JhbSBmcmFn bWVudA0KDQogICAgU3Vicm91dGluZSBzDQogICAgICBQYXJhbWV0ZXIgKG49MSkNCiAgICAgIElu dGVnZXIgOjogeCxuICAgICAgICEoQSkNCiAgICAgIFBhcmFtZXRlciAoeD0zKQ0KDQogICAgVGhl IHR5cGUgZGVjbGFyYXRpb24gc3RhdGVtZW50IG1hcmtlZCAiIShBKSIsIGRlY2xhcmVzIHRoZQ0K ICAgIGVudGl0aWVzIFggYW5kIE4gdG8gYmUgb2YgdHlwZSBJTlRFR0VSLiAgRnVydGhlcm1vcmUs IGFzIHdlIHNlZSBieQ0KICAgIHRoZSBpbW1lZGlhdGVseSBwcmVjZWRpbmcgYW5kIGZvbGxvd2lu ZyBQQVJBTUVURVIgc3RhdGVtZW50cywgYm90aA0KICAgIFggYW5kIE4gYXJlIG5hbWVkIGNvbnN0 YW50cy4NCg0KICAgIFVuZm9ydHVuYXRlbHksIGEgY29uc3RyYWludCBzYXlzDQogICAgICBDNTA3 IChSNTAzKSAiQW4gPGluaXRpYWxpemF0aW9uPiBzaGFsbCBhcHBlYXIgaWYgdGhlIGVudGl0eSBp cyBhDQogICAgICAgICAgICAgICAgICAgbmFtZWQgY29uc3RhbnQgKDUuMy4xMykuIg0KICAgIChC VFcsIFI1MDMgaXMgPGVudGl0eS1kZWNsPi4pDQoNCiAgICBUaGVyZWZvcmUgb25lIGNvbmNsdWRl cyB0aGF0IHRoZSB0eXBlIGRlY2xhcmF0aW9uIHN0YXRlbWVudCBtYXJrZWQNCiAgICAiIShBKSIg aXMgbm90IGNvbmZvcm1pbmcgYXMgaXQgdmlvbGF0ZXMgQzUwNyBmb3IgYm90aCBYIGFuZCBOLg0K DQogICAgSXMgdGhpcyBzdGF0ZW1lbnQgaW50ZW5kZWQgdG8gYmUgY29uZm9ybWluZz8NCg0KKDIp IEZpcnN0bHksIGNvbnNpZGVyDQoNCiAgICBTdWJyb3V0aW5lIHMyKG4pDQogICAgICBJbnRlZ2Vy LFBhcmFtZXRlciA6OiB4KG46bisxKSA9IFsgMSwyIF0NCiAgICAgIENoYXJhY3RlcihuKSxQYXJh bWV0ZXIgOjogeSA9ICdhYmMnDQogICAgICAuLi4NCg0KICAgIFRoZSB0eXBlIGRlY2xhcmF0aW9u IHN0YXRlbWVudHMgYXJlIG5vdCBjb25mb3JtaW5nIGJlY2F1c2UNCiAgICBhY2NvcmRpbmcgdG8g NS4yLjJwMSwgWCBhbmQgWSBhcmUgYXV0b21hdGljIGRhdGEgb2JqZWN0cywgYW5kIEM1MDYNCiAg ICBzYXlzIHRoYXQgPGluaXRpYWxpemF0aW9uPiBzaGFsbCBub3QgYXBwZWFyIGluIHRoYXQgY2Fz ZS4NCg0KICAgIE5vdyBjb25zaWRlcg0KDQogICAgU3Vicm91dGluZSBzMmIobikNCiAgICAgIElt cGxpY2l0IENoYXJhY3RlcihuKSAoYS16KQ0KICAgICAgUGFyYW1ldGVyICh5ID0gJ2FiYycpDQog ICAgICBJbnRlZ2VyIDo6IHgobjpuKzEpDQogICAgICBQYXJhbWV0ZXIoeD1bMSwyXSkNCg0KICAg IFRoaXMgaXMgbm90IHZhbGlkIEZvcnRyYW4gMjAwMywgYmVjYXVzZSA1LjIgY29udGFpbnMgdGhl DQogICAgcmVxdWlyZW1lbnQ6DQogICAgICAiVGhlIGNvbWJpbmF0aW9uIG9mIGF0dHJpYnV0ZXMg dGhhdCBtYXkgYmUgc3BlY2lmaWVkIGZvciBhDQogICAgICAgcGFydGljdWxhciBlbnRpdHkgaXMg c3ViamVjdCB0byB0aGUgc2FtZSByZXN0cmljdGlvbnMgYXMgZm9yDQogICAgICAgdHlwZSBkZWNs YXJhdGlvbiBzdGF0ZW1lbnRzIHJlZ2FyZGxlc3Mgb2YgdGhlIG1ldGhvZCBvZg0KICAgICAgIHNw ZWNpZmljYXRpb24uICBUaGlzIGFsc28gYXBwbGllcyB0byBQUk9DRURVUkUsIEVYVEVSTkFMLCBh bmQNCiAgICAgICBJTlRSSU5TSUMgc3RhdGVtZW50cy4iDQoNCiAgICBUaGlzIHJlcXVpcmVtZW50 IGRvZXMgbm90IGFwcGVhciBpbiBGMjAwOC4gIEhvd2V2ZXIsIHRoZXJlIGlzIG5vDQogICAgaW5k aWNhdGlvbiBpbiB0aGUgSW50cm9kdWN0aW9uIG9mIHRoaXMgbmV3IGZlYXR1cmUuDQoNCiAgICBJ cyB0aGlzIGV4dGVuc2lvbiB0byBGb3J0cmFuIDIwMDMgZGVsaWJlcmF0ZT8NCg0KQU5TV0VSOg0K DQooMSkgWWVzLCB0aGUgdHlwZSBkZWNsYXJhdGlvbiBzdGF0ZW1lbnQgd2FzIGludGVuZGVkIHRv IGJlIGFsbG93ZWQuDQogICAgQW4gZWRpdCBpcyBzdXBwbGllZCB0byBjb3JyZWN0IHRoaXMgbWlz dGFrZS4NCg0KKDIpIE5vLCB0aGUgb21pc3Npb24gb2YgdGhpcyByZXF1aXJlbWVudCB3YXMgaW5h ZHZlcnRlbnQuICBBbiBlZGl0DQogICAgaXMgc3VwcGxpZWQgdG8gY29ycmVjdCB0aGlzIG1pc3Rh a2UuDQoNCkVESVRTOg0KDQpbODg6MTRdIEluIDUuMi4xLCBSZXBsYWNlIGNvbnN0cmFpbnQgIkM1 MDcgKDUwMykiIGNvbXBsZXRlbHkgd2l0aA0KICAiQzUwNyAoUjUwMSkgSWYgdGhlIFBBUkFNRVRF UiBrZXl3b3JkIGFwcGVhcnMsIDxpbml0aWFsaXphdGlvbj4NCiAgICAgICAgc2hhbGwgYXBwZWFy IGluIGVhY2ggPGVudGl0eS1kZWNsPi4iDQp7Rml4IFExLn0NCg0KWzg4OjE0K10gSW4gNS4yLjEs IGltbWVkaWF0ZWx5IGFmdGVyIGNvbnN0cmFpbnQgQzUwNywgaW5zZXJ0IG5ldw0KICAgICAgICAg Y29uc3RyYWludDoNCiAgIkM1MDdhIEFuIGV4cHJlc3Npb24gdGhhdCBzcGVjaWZpZXMgYSBsZW5n dGggdHlwZSBwYXJhbWV0ZXIgb3INCiAgICAgICAgIGFycmF5IGJvdW5kIG9mIGEgbmFtZWQgY29u c3RhbnQgc2hhbGwgYmUgYSBjb25zdGFudA0KICAgICAgICAgZXhwcmVzc2lvbi4iDQp7Rml4IFEy Ln0NCg0KU1VCTUlUVEVEIEJZOiBNYWxjb2xtIENvaGVuDQoNCkhJU1RPUlk6IDEyLTE4OSAgICBt MTk5ICBGMDgvMDA4NSBzdWJtaXR0ZWQNCiAgICAgICAgIDEyLTE4OXIxICBtMTk5ICBQYXNzZWQg YnkgSjMgbWVldGluZw0KICAgICAgICAgMTMtMjM3ICAgIG0yMDAgIEZhaWxlZCBhcyBhbWVuZGVk IGJ5IEozIGxldHRlciBiYWxsb3QNCiAgICAgICAgICAgICAgICAgICAgICAgICAgIzI3IDEzLTIw Mw0KICAgICAgICAgMTMtMjM5ICAgIG0yMDAgIFJldmlzZWQgLSBwYXNzZWQgYnkgSjMgbWVldGlu Zw0KICAgICAgICAgMTMtMjYyICAgIG0yMDEgIFBhc3NlZCBKMyBsZXR0ZXIgYmFsbG90ICMyOCAx My0yNTVyMQ0KICAgICAgICAgTjE5OTAgICAgIG0yMDIgIFBhc3NlZCBieSBXRzUgYmFsbG90IDYg TjE5ODcvODgvOTANCiAgICAgICAgIE4yMDAyICAgICBtMjAzICBJbiBGMjAwOCBDb3JyaWdlbmR1 bSAzDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KTlVNQkVSOiBGMDgvMDA4Ng0KVElUTEU6ICBJbXBsaWVk LXNoYXBlIGFuZCBzZXBhcmF0ZSBQQVJBTUVURVIgc3RhdGVtZW50DQpLRVlXT1JEUzogSW1wbGll ZC1zaGFwZSwgUEFSQU1FVEVSDQpERUZFQ1QgVFlQRTogRXJyYXR1bQ0KU1RBVFVTOiBJbiBGMjAw OCBDb3JyaWdlbmR1bSAzDQoNClFVRVNUSU9OOg0KDQpRMS4gIENvbnNpZGVyDQoNCiAgUHJvZ3Jh bSB0ZXN0MQ0KICAgIENoYXJhY3RlcigqKSBhLGIoKikNCiAgICBEaW1lbnNpb24gYygqKQ0KICAg IFBhcmFtZXRlciAoYT0nMTIzJywgYj1bJzEnLCcyJywnMyddKQ0KICAgIENoYXJhY3RlcigqKSxQ YXJhbWV0ZXIgOjogYyA9IFsgJzQ0JywnNTUnLCc2NicgXQ0KICAgIFByaW50ICosYSxiLGMNCiAg RW5kDQoNClRoZSBkZWZpbml0aW9uIG9mIHRoZSBhc3N1bWVkLWxlbmd0aCBjaGFyYWN0ZXIgbmFt ZWQgY29uc3RhbnQgQQ0KY29uZm9ybXMgdG8gRm9ydHJhbiA3NyB0byBGb3J0cmFuIDIwMDguICBI b3dldmVyLCB0aGUgZGVmaW5pdGlvbiBvZg0KdGhlIGltcGxpZWQtc2hhcGUgbmFtZWQgY29uc3Rh bnQgQiBhcHBlYXJzIG5vdCB0byBjb25mb3JtIHRvIEZvcnRyYW4NCjIwMDgsIGFzIHRoZSBzdGFu ZGFyZCBzYXlzIGluIDUuNC4xMXAyDQogICJBIG5hbWVkIGFycmF5IGNvbnN0YW50IGRlZmluZWQg YnkgYSBQQVJBTUVURVIgc3RhdGVtZW50IHNoYWxsIGhhdmUNCiAgIGl0cyBzaGFwZSBzcGVjaWZp ZWQgaW4gYSBwcmlvciBzcGVjaWZpY2F0aW9uIHN0YXRlbWVudC4iDQpPbiB0aGUgb3RoZXIgaGFu ZCwgdGhlIG5hbWVkIGNvbnN0YW50IEMgZG9lcyBub3QgaGF2ZSBzdWNoIGENCnJlcXVpcmVtZW50 LCBzbyBpdHMgZGVmaW5pdGlvbiB3b3VsZCBhcHBlYXIgdG8gYmUgY29uZm9ybWluZy4NCg0KVGhp cyBhcHBhcmVudCByZXF1aXJlbWVudCBvbiB0aGUgbmFtZWQgY29uc3RhbnQgQiB3b3VsZCB0aHVz IGFwcGVhciB0bw0KYmUgaW5jb25zaXN0ZW50IHdpdGggdGhvc2Ugb24gdGhlIG5hbWVkIGNvbnN0 YW50IEMsIGFzIHdlbGwgYXMNCmluY29uc2lzdGVudCB3aXRoIHRoZSB3YXkgdGhhdCBhc3N1bWVk IGxlbmd0aCB3b3JrcywgYW5kIHdpdGggdGhlDQpnZW5lcmFsIHByaW5jaXBsZSBvZiBhbGxvd2lu ZyBhdHRyaWJ1dGVzIHRvIGJlIHNwZWNpZmllZCBlaXRoZXIgaW4gYQ0Kc2luZ2xlIHR5cGUgZGVj bGFyYXRpb24gc3RhdGVtZW50IG9yIHdpdGggc2VwYXJhdGUgc3BlY2lmaWNhdGlvbg0Kc3RhdGVt ZW50cy4NCg0KSXMgdGhlIHByb2dyYW0gaW50ZW5kZWQgdG8gY29uZm9ybSB0byB0aGUgRm9ydHJh biBzdGFuZGFyZD8NCg0KUTIuIENvbnNpZGVyDQoNCiAgU3Vicm91dGluZSB0ZXN0MihhKQ0KICAg IFJlYWwsRGltZW5zaW9uKCopIDo6IGEsYw0KICAgIFBhcmFtZXRlciAoYyA9IFsgNDUuNiBdKQ0K ICAgIGEoOnNpemUoYykpID0gYw0KICBFbmQgU3Vicm91dGluZQ0KDQpUaGUgPGFycmF5LXNwZWM+ IGluIHRoZSB0eXBlIGRlY2xhcmF0aW9uIHN0YXRlbWVudCBpcyBhbWJpZ3VvdXM7IGlmIGl0DQpp cyBhbiA8aW1wbGllZC1zaGFwZS1zcGVjPiB0aGVuIHRoZSBkZWNsYXJhdGlvbiBvZiBBIGFzIGFu DQphc3N1bWVkLXNpemUgYXJyYXkgaXMgZXJyb25lb3VzLCBidXQgaWYgaXQgaXMgYW4gPGFzc3Vt ZWQtc2l6ZS1zcGVjPg0KdGhlbiB0aGUgZGVjbGFyYXRpb24gb2YgQyBhcyBhbiBpbXBsaWVkLXNo YXBlIGFycmF5IGlzIGVycm9uZW91cy4NCg0KSXMgdGhpcyBwcm9ncmFtLXVuaXQgaW50ZW5kZWQg dG8gYmUgc3RhbmRhcmQtY29uZm9ybWluZz8NCg0KQU5TV0VSOg0KDQpBMS4gWWVzLCB0aGUgcHJv Z3JhbSB3YXMgaW50ZW5kZWQgdG8gY29uZm9ybSB0byB0aGUgRm9ydHJhbiBzdGFuZGFyZC4NCiAg ICBBbiBlZGl0IGlzIHByb3ZpZGVkIHRvIG1vZGlmeSB0aGUgcmVxdWlyZW1lbnQgZm9yIHByaW9y DQogICAgc3BlY2lmaWNhdGlvbiBzbyBhcyB0byBhbGxvdyB0aGlzIGNhc2UuDQoNCkEyLiBZZXMs IHRoZSBwcm9ncmFtIGlzIGludGVuZGVkIHRvIGNvbmZvcm0gdG8gdGhlIEZvcnRyYW4gc3RhbmRh cmQuDQogICAgQW4gZWRpdCBpcyBwcm92aWRlZCB0byBhZGQgc3ludGF4IHRvIHBlcm1pdCB0aGlz IHVuYW1iaWd1b3VzbHkuDQoNCkVESVRTIHRvIDEwLTAwN3IxOg0KDQpbOTQ6MTBdIDUuMy44LjEs IFI1MTUsDQogICAgICAgIENoYW5nZSAiPGltcGxpZWQtc2hhcGUtc3BlYy1saXN0PiIgdG8gIjxp bXBsaWVkLXNoYXBlLXNwZWM+Ii4NCntUaGlzIHdpbGwgYmUgdGhlIHVuYW1iaWd1b3VzIGltcGxp ZWQtc2hhcGUgc3ludGF4Ln0NCg0KWzk0OjEwK10gSW5zZXJ0IG5ldyBwcm9kdWN0aW9uDQogICAg ICAgICAiPDxvcj4+IDxpbXBsaWVkLXNoYXBlLW9yLWFzc3VtZWQtc2l6ZS1zcGVjPiIuDQp7VGhp cyB3aWxsIGJlIHRoZSBvdGhlcndpc2UtYW1iaWd1b3VzIHN5bnRheC59DQoNCls5NTozMl0gNS4z LjguNXAxDQogIFJlcGxhY2Ugc2VudGVuY2UNCiAgICAiQW4gYXNzdW1lZC1zaXplIGFycmF5IGlz IGRlY2xhcmVkIHdpdGggYW4gPGFzc3VtZWQtc2l6ZS1zcGVjPi4iDQogIHdpdGgNCiAgICAiQSBk dW1teSBhcmd1bWVudCBpcyBkZWNsYXJlZCB0byBiZSBhbiBhc3N1bWVkLXNpemUgYXJyYXkgYnkg YW4NCiAgICAgPGFzc3VtZWQtc2l6ZS1zcGVjPiBvciBhbiA8aW1wbGllZC1zaGFwZS1vci1hc3N1 bWVkLXNpemUtc3BlYz4uIg0Ke05vdyB0d28gd2F5cyBvZiBkZWNsYXJpbmcgYXNzdW1lZCBzaXpl Ln0NCg0KWzk1OjMzLV0gSW5zZXJ0IG5ldyBCTkYgdGVybQ0KICAiUjUyMGEgPGFzc3VtZWQtaW1w bGllZC1zcGVjPiA8PGlzPj4gIFsgPGxvd2VyLWJvdW5kPiA6IF0gKiINCg0KWzk1OjMzXSBSNTIx IDxhc3N1bWVkLXNpemUtc3BlYz4sIGFmdGVyICI8PGlzPj4iDQogIFJlcGxhY2UgZW50aXJlIFJI Uw0KICAgICJbIDxleHBsaWNpdC1zaGFwZS1zcGVjPiwgXS4uLiBbIDxsb3dlci1ib3VuZD4gOiBd ICoiDQogIHdpdGgNCiAgICAiPGV4cGxpY2l0LXNoYXBlLXNwZWMtbGlzdD4sIDxhc3N1bWVkLWlt cGxpZWQtc3BlYz4iDQp7VGhlIHVuYW1iaWd1b3VzIGNhc2UgaGFzIGEgbGlzdCBvZiA8ZXhwbGlj aXQtc2hhcGUtc3BlYz5zLn0NCg0KWzk1OjM3K10gSW5zZXJ0IG5ldyBCTkYgcnVsZXMgYW5kIGNv bnN0cmFpbnQNCiAgIlI1MjFhIDxpbXBsaWVkLXNoYXBlLW9yLWFzc3VtZWQtc2l6ZS1zcGVjPiA8 PGlzPj4NCiAgICAgICAgICAgICAgICA8YXNzdW1lZC1pbXBsaWVkLXNwZWM+DQoNCiAgIEM1MzRh IEFuIG9iamVjdCB3aG9zZSBhcnJheSBib3VuZHMgYXJlIHNwZWNpZmllZCBieSBhbg0KICAgICAg ICAgPGltcGxpZWQtc2hhcGUtb3ItYXNzdW1lZC1zaXplLXNwZWM+IHNoYWxsIGJlIGEgZHVtbXkg ZGF0YQ0KICAgICAgICAgb2JqZWN0IG9yIGEgbmFtZWQgY29uc3RhbnQuIg0Ke1RoZSBvdGhlcndp c2UtYW1iaWd1b3VzIGNhc2UuICBOb3RlIGNhcmVmdWwgd29yZGluZy59DQoNCls5NjoyNC0yNV0g NS4zLjguNnAxDQogIFJlcGxhY2Ugc2VudGVuY2UNCiAgICAiQW4gaW1wbGllZC1zaGFwZSBhcnJh eSBpcyBkZWNsYXJlZC4uLiA8aW1wbGllZC1zaGFwZS1zcGVjLWxpc3Q+LiINCiAgd2l0aA0KICAg ICJBIG5hbWVkIGNvbnN0YW50IGlzIGRlY2xhcmVkIHRvIGJlIGFuIGltcGxpZWQtc2hhcGUgYXJy YXkgd2l0aCBhbg0KICAgICA8YXJyYXktc3BlYz4gdGhhdCBpcyBhbiA8aW1wbGllZC1zaGFwZS1v ci1hc3N1bWVkLXNpemUtc3BlYz4gb3INCiAgICAgYW4gPGltcGxpZWQtc2hhcGUtc3BlYz4uIg0K e05vdyB0d28gd2F5cyBvZiBkZWNsYXJpbmcgaW1wbGllZCBzaGFwZS59DQoNCls5NjoyNl0gUjUy MiwNCiAgUmVwbGFjZSByaWdodC1oYW5kLXNpZGUgKGFmdGVyICI8PGlzPj4iKQ0KICAgICJbIDxs b3dlci1ib3VuZD4gOiBdICoiDQogIHdpdGgNCiAgICAiPGFzc3VtZWQtaW1wbGllZC1zcGVjPiwg PGFzc3VtZWQtaW1wbGllZC1zcGVjLWxpc3Q+Ii4NCntUaGlzIGlzIG5vdyB0aGUgdW5hbWJpZ3Vv dXNseSBpbXBsaWVkLXNoYXBlIHNwZWMufQ0KDQpbOTY6MjhdIHAyLA0KICBDaGFuZ2UgIjxpbXBs aWVkLXNoYXBlLXNwZWM+cyIgLT4gIjxhc3N1bWVkLWltcGxpZWQtc3BlYz5zIg0KICBhbmQgICAg InRoZSA8aW1wbGllZC1zaGFwZS1zcGVjLWxpc3Q+IiAtPiAiaXRzIDxhcnJheS1zcGVjPiIsDQog IG1ha2luZyB0aGUgZW50aXJlIHBhcmFncmFwaCByZWFkOg0KICAgICJUaGUgcmFuayBvZiBhbiBp bXBsaWVkLXNoYXBlIGFycmF5IGlzIHRoZSBudW1iZXIgb2YNCiAgICAgPGFzc3VtZWQtaW1wbGll ZC1zcGVjPnMgaW4gaXRzIDxhcnJheS1zcGVjPi4iDQp7Q2hhbmdlIHJhbmsgZGV0ZXJtaW5hdGlv biB0byBhY2NvcmQgd2l0aCBuZXcgc3ludGF4IHRlcm0ufQ0KDQpbMTA3OjExXSA1LjQuMTFwMSAi c2hhcGUiIC0+ICJyYW5rIi4NCntJbiB0aGUgUEFSQU1FVEVSIHN0YXRlbWVudCwgb25seSByZXF1 aXJlIHRoZSByYW5rIHRvIGJlIHNwZWNpZmllZCBpbg0KIGEgcHJpb3Igc3BlY2lmaWNhdGlvbiBz dGF0ZW1lbnQufQ0KDQpOT1RFIGZvciBmdXR1cmUgaW52ZXN0aWdhdGlvbjoNCg0KICBUaGUgY3Vy cmVudCB3b3JkaW5nIG9mIEM1MzMgaXMgc2xpZ2h0bHkgZGVmZWN0aXZlLCBhcyBpdCBkb2VzIG5v dA0KICBjbGVhcmx5IHByb2hpYml0ICJSRUFMLERJTUVOU0lPTigqKSA6OiBkdW1teSxub25kdW1t eSIsIHNlZWluZyBhcw0KICBob3cgdGhhdCBkb2VzIGluZGVlZCBkZWNsYXJlICJ0aGUgYXJyYXkg Ym91bmRzIG9mIGEgZHVtbXkgZGF0YQ0KICBvYmplY3QiLiAgQzUzMyBzaG91bGQgcHJvYmFibHkg YmUgcmV3b3JkZWQgc2ltaWxhcmx5IHRvIEM1MzRhLg0KDQpTVUJNSVRURUQgQlk6IEJpbGwgTG9u Zw0KDQpISVNUT1JZOiAxMi0xOTEgICAgbTE5OSAgRjA4LzAwODYgc3VibWl0dGVkIC0gcmV2aXNl ZCBieSBNYWxjb2xtDQogICAgICAgICAgICAgICAgICAgICAgICAgIENvaGVuIC0gcGFzc2VkIGJ5 IEozIG1lZXRpbmcNCiAgICAgICAgIDEzLTIzNyAgICBtMjAwICBGYWlsZWQgbGV0dGVyIGJhbGxv dA0KICAgICAgICAgMTMtMjM1ICAgIG0yMDAgIFJldmlzZWQgd2l0aCBzdHJhdyB2b3Rlcw0KICAg ICAgICAgMTMtMjM1cjEgIG0yMDAgIFBhc3NlZCBieSBKMyBtZWV0aW5nDQogICAgICAgICAxMy0y NjIgICAgbTIwMSAgUGFzc2VkIGFzIGFtZW5kZWQgYnkgSjMgbGV0dGVyIGJhbGxvdCAjMjgNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgMTMtMjU1cjENCiAgICAgICAgIE4xOTkwICAgICBtMjAy ICBQYXNzZWQgYnkgV0c1IGJhbGxvdCA2IE4xOTg3Lzg4LzkwDQogICAgICAgICBOMjAwMiAgICAg bTIwMyAgSW4gRjIwMDggQ29ycmlnZW5kdW0gMw0KKiogUmV2aXNlZCBlZGl0cyBmcm9tIGRyYWZ0 IGNvcnJpZ2VuZHVtIGJhbGxvdCAtIHJlcGxhY2UgZW50aXJlIGludGVycA0KDQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQoNCk5VTUJFUjogRjA4LzAwODcNClRJVExFOiBNaXhlZC1raW5kIGNoYXJhY3RlciBhc3Np Z25tZW50DQpLRVlXT1JEUzogTWl4ZWQga2luZCwgY2hhcmFjdGVyIGFzc2lnbm1lbnQNCkRFRkVD VCBUWVBFOiBFcnJhdHVtDQpTVEFUVVM6IEluIEYyMDA4IENvcnJpZ2VuZHVtIDMNCg0KUVVFU1RJ T046DQoNCkZvciBhIHByb2Nlc3NvciB0aGF0IHN1cHBvcnRzIGJvdGggQVNDSUkgYW5kIElTTyAx MDY0NiBVQ1MtNA0KY2hhcmFjdGVyIGtpbmRzLCBhc3N1bWluZyB3aXRob3V0IGxvc3Mgb2YgZ2Vu ZXJhbGl0eSB0aGF0DQpTZWxlY3RlZF9DaGFyX0tpbmQoJ0FTQ0lJJykgaXMgZXF1YWwgdG8gMSBh bmQgdGhhdA0KU2VsZWN0ZWRfQ2hhcl9LaW5kKCdJU09fMTA2NDYnKSBpcyBlcXVhbCB0byAxMDY0 NiwNCmNvbnNpZGVyIHRoZSBmb2xsb3dpbmcgcHJvZ3JhbToNCg0KICBNb2R1bGUgY2hhcmtpbmRz DQogICAgSW50ZWdlcixQYXJhbWV0ZXIgOjogYXNjaWkgPSAxDQogICAgSW50ZWdlcixQYXJhbWV0 ZXIgOjogdWNzNCA9IDEwNjQ2DQogIEVuZCBNb2R1bGUNCiAgTW9kdWxlIG92ZXJsb2FkDQogICAg VXNlIGNoYXJraW5kcw0KICAgIEludGVyZmFjZSBBc3NpZ25tZW50KD0pDQogICAgICBNb2R1bGUg UHJvY2VkdXJlIGNoYXJfYXNnDQogICAgRW5kIEludGVyZmFjZQ0KICBDb250YWlucw0KICAgIFN1 YnJvdXRpbmUgY2hhcl9hc2coYSxiKQ0KICAgICAgQ2hhcmFjdGVyKCosYXNjaWkpLEludGVudChP dXQpIDo6IGENCiAgICAgIENoYXJhY3RlcigqLHVjczQpLEludGVudChJbikgOjogYg0KICAgICAg RG8gaT0xLE1pbihMZW4oYSksTGVuKGIpKQ0KICAgICAgICBhKGk6aSkgPSBBY2hhcihNb2QoSWFj aGFyKGIoaTppKSkrMSwxMjcpKQ0KICAgICAgRW5kIERvDQogICAgICBhKGk6KSA9IFJlcGVhdCgn KicsTGVuKGEpLUxlbihiKSkNCiAgICBFbmQgU3Vicm91dGluZQ0KICBFbmQgTW9kdWxlDQogIFBy b2dyYW0gdGVzdA0KICAgIFVzZSBvdmVybG9hZA0KICAgIENoYXJhY3RlcigxMCxhc2NpaSkgeA0K ICAgIHggPSB1Y3M0XydIZWxsbycNCiAgICBQcmludCAqLCciJyx4LCciJw0KICBFbmQgUHJvZ3Jh bQ0KDQpUaGlzIHByb2dyYW0gY29uZm9ybXMgdG8gRm9ydHJhbiA5NSwgd2hpY2ggcGVybWl0dGVk IHVzZXItZGVmaW5lZA0KYXNzaWdubWVudCBiZXR3ZWVuIGFsbCBjaGFyYWN0ZXJzIHdpdGggZGlm ZmVyZW50IGtpbmRzLg0KDQpIb3dldmVyLCBGb3J0cmFuIDIwMDggcHJvdmlkZXMgaW50cmluc2lj IGFzc2lnbm1lbnQgYmV0d2Vlbg0KSVNPIDEwNjQ2IGNoYXJhY3RlcnMgYW5kIEFTQ0lJIGNoYXJh Y3RlcnMsIHNvIHVzZXItZGVmaW5lZCBhc3NpZ25tZW50DQppcyBub3QgcGVybWl0dGVkICgxMi40 LjMuNC4zIGFuZCBUYWJsZSA3LjgpLg0KDQpUaHVzIHRoZXJlIHNlZW1zIHRvIGJlIGEgY29udHJh ZGljdGlvbiBiZXR3ZWVuIHRoZSBGb3J0cmFuIDk1DQpjb21wYXRpYmlsaXR5IGRlc2NyaXB0aW9u IGluIDEuNi4zIGFuZCAxMi40LjMuNC4zLg0KDQpJcyB0aGUgcHJvZ3JhbSBpbnRlbmRlZCB0byBj b25mb3JtIHRvIEZvcnRyYW4gMjAwOD8NCkFuZCBpZiBpdCBkb2VzLCBkb2VzIGl0IHByaW50DQog IkhlbGxvICAgICAiDQooaW50cmluc2ljIGFzc2lnbm1lbnQpDQogIklmbW1wKioqKioiDQoodXNl ci1kZWZpbmVkIGFzc2lnbm1lbnQpPw0KDQpBTlNXRVI6DQoNClRoZSBwcm9ncmFtIHdhcyBub3Qg aW50ZW5kZWQgdG8gY29uZm9ybSB0byB0aGUgc3RhbmRhcmQuDQpBbiBlZGl0IGlzIHByb3ZpZGVk IHRvIHJlbW92ZSB0aGUgY29udHJhZGljdGlvbi4NCg0KRURJVFM6DQoNClsyNDoxNF0gMS42LjNw MSwgIkFueSINCiAgICAgICAgLT4gIkV4Y2VwdCBhcyBpZGVudGlmaWVkIGluIHRoaXMgc3ViY2xh dXNlLCBhbnkiLg0Ke05vIGxvbmdlciB0cnVlLn0NCg0KWzI0OjE1XSBTcGxpdCB0aGUgc2VudGVu Y2UgIlRoZSAuLi4iIGludHJvZHVjaW5nIHRoZSBsaXN0IGludG8gYQ0KICAgICAgICBzZXBhcmF0 ZSBwYXJhZ3JhcGggKHdoaWNoIHdpbGwgYmUgdGhlIHRoaXJkIHBhcmFncmFwaCksIGFuZA0KICAg ICAgICBpbnNlcnQgYSBuZXcgcGFyYWdyYXBoIChhcyB0aGUgc2Vjb25kIHBhcmFncmFwaCkgYXMg Zm9sbG93czoNCiAgIkZvcnRyYW4gOTUgcGVybWl0dGVkIGRlZmluZWQgYXNzaWdubWVudCBiZXR3 ZWVuIGNoYXJhY3RlciBzdHJpbmdzDQogICBvZiB0aGUgc2FtZSByYW5rIGFuZCBkaWZmZXJlbnQg a2luZHMuICBUaGlzIHBhcnQgb2YgSVNPL0lFQyAxNTM5DQogICBkb2VzIG5vdCBwZXJtaXQgdGhh dCBpZiBib3RoIG9mIHRoZSBkaWZmZXJlbnQga2luZHMgYXJlIEFTQ0lJLA0KICAgSVNPIDEwNjQ2 LCBvciBkZWZhdWx0IGtpbmQuIg0Ke0Rlc2NyaWJlIHRoZSBpbmNvbXBhdGliaWxpdHkufQ0KDQpb MjU6MitdIDEuNi40LCBhZnRlciBwMywgaW5zZXJ0IGEgbmV3IHBhcmFncmFwaC4NCiAgIkZvcnRy YW4gOTAgcGVybWl0dGVkIGRlZmluZWQgYXNzaWdubWVudCBiZXR3ZWVuIGNoYXJhY3RlciBzdHJp bmdzDQogICBvZiB0aGUgc2FtZSByYW5rIGFuZCBkaWZmZXJlbnQga2luZHMuICBUaGlzIHBhcnQg b2YgSVNPL0lFQyAxNTM5DQogICBkb2VzIG5vdCBwZXJtaXQgdGhhdCBpZiBib3RoIG9mIHRoZSBk aWZmZXJlbnQga2luZHMgYXJlIEFTQ0lJLA0KICAgSVNPIDEwNjQ2LCBvciBkZWZhdWx0IGtpbmQu Ig0Ke0Rlc2NyaWJlIHRoZSBpbmNvbXBhdGliaWxpdHkufQ0KDQpTVUJNSVRURUQgQlk6IFZhbiBT bnlkZXINCg0KSElTVE9SWTogMTMtMjA0ICAgIG0yMDAgIEYwOC8wMDg3IHN1Ym1pdHRlZA0KICAg ICAgICAgMTMtMjA0cjEgIG0yMDAgIFJldmlzZWQgLSBwYXNzZWQgYnkgSjMgbWVldGluZw0KICAg ICAgICAgMTMtMjYyICAgIG0yMDEgIFBhc3NlZCBKMyBsZXR0ZXIgYmFsbG90ICMyOCAxMy0yNTVy MQ0KICAgICAgICAgTjE5OTAgICAgIG0yMDIgIFBhc3NlZCBieSBXRzUgYmFsbG90IDYgTjE5ODcv ODgvOTANCiAgICAgICAgIE4yMDAyICAgICBtMjAzICBJbiBGMjAwOCBDb3JyaWdlbmR1bSAzDQoN Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NCg0KTlVNQkVSOiBGMDgvMDA4OA0KVElUTEU6IENhbiBBTExPQ0FURSB3 aXRoIFNPVVJDRT0gaGF2ZSBzaWRlLWVmZmVjdHMgaW4gYSBQVVJFIHByb2M/DQpLRVlXT1JEUzog QWxsb2NhdGUsIFNPVVJDRT0sIFBVUkUsIHNpZGUtZWZmZWN0cw0KREVGRUNUIFRZUEU6IEVycmF0 dW0NClNUQVRVUzogSW4gRjIwMDggQ29ycmlnZW5kdW0gMw0KDQpRVUVTVElPTjoNCg0KT24gY29t cC5sYW5nLmZvcnRyYW4gSWFuIEhhcnZleSBicm91Z2h0IHVwIGEgcG9pbnRlci9QVVJFDQpxdWVz dGlvbi4NCg0KR2l2ZW4gYSB0eXBlIGRlZmluaXRpb24gbGlrZQ0KDQogdHlwZSA6OiBpbnRfcHRy DQogICAgaW50ZWdlciwgcG9pbnRlciA6OiBpDQogZW5kIHR5cGUgaW50X3B0cg0KDQpBbmQgYSBQ VVJFIGZ1bmN0aW9uIGxpa2UNCg0KICBQVVJFIGZ1bmN0aW9uIEZVTiAoYXJnKQ0KICAgIHR5cGUo aW50X3B0ciksIGludGVudChpbikgOjogYXJnDQogICAgdHlwZShpbnRfcHRyKSwgYWxsb2NhdGFi bGUgOjogdG1wDQogICAgRlVOID0gMQ0KICAgIGFsbG9jYXRlICh0bXAsIHNvdXJjZT1hcmcpDQog ICAgdG1wJWkgPSAyDQogIGVuZCBmdW5jdGlvbiBmdW4NCg0KSXMgRlVOIHN0YW5kYXJkIGNvbmZv cm1pbmc/DQoNCkRvZXNuJ3QgdGhlIHVzZSBvZiBzb3VyY2U9YXJnIGFsbG93IHRoZSBmdW5jdGlv biB0byBtb2RpZnkgYSBnbG9iYWwNCmVudGl0eSB2aWEgdGhlIHRtcCVpID0gLi4uPyAgVGhlcmUg ZG9uJ3Qgc2VlbSB0byBiZSBhbnkgY29uc3RyYWludHMgb24NCndoYXQgYXJnJWkgY2FuIHBvaW50 IHRvLCB3aGljaCBtZWFucyB0aGF0IHRoZSBhc3NpZ25tZW50IHRvIHRtcCVpIGNhbg0KaGF2ZSBz aWRlIGVmZmVjdHMuDQoNCk5vdGUgdGhhdCBDMTI4MygxKSBwcmV2ZW50cyB1c2FnZSBsaWtlDQog ICAgYXJnJWkgPSAyDQoNCkFOU1dFUjoNCg0KVGhpcyB3YXMgbm90IGludGVuZGVkIHRvIGJlIHN0 YW5kYXJkLWNvbmZvcm1pbmcuDQpBbiBlZGl0IGlzIHN1cHBsaWVkIHRvIHJlbWVkeSB0aGlzIG92 ZXJzaWdodC4NCg0KRURJVFM6DQoNClszMTI6MzddIEluIEMxMjgzLCBkZWxldGUgIm9yIiBhbmQg YWRkIGEgbmV3IGl0ZW0NCiAgIig0YSkgYXMgdGhlIDxzb3VyY2UtZXhwcj4gaW4gYSBTT1VSQ0U9 IGNsYXVzZSBpZiB0aGUgZGVzaWduYXRvciBpcw0KICAgICAgICBvZiBhIGRlcml2ZWQgdHlwZSB0 aGF0IGhhcyBhbiB1bHRpbWF0ZSBwb2ludGVyIGNvbXBvbmVudCwgb3IiDQoNClNVQk1JVFRFRCBC WTogRGljayBIZW5kcmlja3Nvbg0KDQpISVNUT1JZOiAxMy0yMjYgICAgbTIwMCAgRjA4LzAwODgg c3VibWl0dGVkDQogICAgICAgICAxMy0yMjZyMSAgbTIwMCAgRWRpdHMgYWRkZWQgLSBwYXNzZWQg YnkgSjMgbWVldGluZw0KICAgICAgICAgMTMtMjYyICAgIG0yMDEgIFBhc3NlZCBKMyBsZXRlciBi YWxsb3QgIzI4IDEzLTI1NXIxDQogICAgICAgICBOMTk5MCAgICAgbTIwMiAgUGFzc2VkIGJ5IFdH NSBiYWxsb3QgNiBOMTk4Ny84OC85MA0KICAgICAgICAgTjIwMDIgICAgIG0yMDMgIEluIEYyMDA4 IENvcnJpZ2VuZHVtIDMNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpOVU1CRVI6IEYwOC8wMDg5DQpUSVRM RTogIFZhcmlhYmxlLWRlbm90aW5nIGZ1bmN0aW9uIHJlZmVyZW5jZXMgY2hhbmdlIGV4aXN0aW5n DQogICAgICAgIHNlbWFudGljcw0KS0VZV09SRFM6IFBvaW50ZXIgZnVuY3Rpb24sIGFyZ3VtZW50 LCBBU1NPQ0lBVEUsIFNFTEVDVCBUWVBFDQpERUZFQ1QgVFlQRTogRXJyYXR1bQ0KU1RBVFVTOiBK MyBjb25zaWRlcmF0aW9uIGluIHByb2dyZXNzDQoNClFVRVNUSU9OOg0KDQpRdWVzdGlvbnMgMS0z IHVzZSB0aGlzIG1vZHVsZToNCg0KICBNb2R1bGUgbTIwMGMyDQogICAgSW50ZWdlcixUYXJnZXQg OjogeCA9IDQyDQogIENvbnRhaW5zDQogICAgRnVuY3Rpb24gZngoKQ0KICAgICAgSW50ZWdlcixQ b2ludGVyIDo6IGZ4DQogICAgICBmeCA9PiB4DQogICAgRW5kIEZ1bmN0aW9uDQogIEVuZCBNb2R1 bGUNCg0KUTEuIENvbnNpZGVyIHRoaXMgbWFpbiBwcm9ncmFtDQoNCiAgUHJvZ3JhbSBxMQ0KICAg IFVzZSBtMjAwYzINCiAgICBDYWxsIHRlc3QoeCxmeCgpKSAgICAgICAgICAgICAgICAgICEgVGhl IGNhbGwuDQogIENvbnRhaW5zDQogICAgU3Vicm91dGluZSB0ZXN0KGEsYikNCiAgICAgIEludGVn ZXIgOjogYSxiDQogICAgICBhID0gYSoxMCAgICAgICAgICAgICAgICAgICAgICAgICAhIFRoZSBh c3NpZ25tZW50Lg0KICAgICAgUHJpbnQgKixhLGINCiAgICBFbmQgU3Vicm91dGluZQ0KICBFbmQg UHJvZ3JhbQ0KDQpBY2NvcmRpbmcgdG8gRm9ydHJhbiAyMDAzLCAiZngoKSIgaW4gdGhlIENBTEwg c3RhdGVtZW50IGlzIGFuDQpleHByZXNzaW9uIGFuZCBub3QgYSB2YXJpYWJsZSwgYW5kIGhhcyB0 aGUgdmFsdWUgNDIuICBJdCBmb2xsb3dzDQp0aGF0IHRoZSBhc3NpZ25tZW50ICJhID0gYSoxMCIg aXMgc3RhbmRhcmQtY29uZm9ybWluZyBhbmQgZG9lcw0Kbm90IGFmZmVjdCB0aGUgdmFsdWUgb2Yg Qi4gIFRoZXJlZm9yZSB0aGlzIHByb2dyYW0gcHJpbnRzDQogNDIwIDQyDQoNCkhvd2V2ZXIsIGFj Y29yZGluZyB0byBGb3J0cmFuIDIwMDgsICJmeCgpIiBpbiB0aGUgQ0FMTCBzdGF0ZW1lbnQgaXMg YQ0KdmFyaWFibGUsIGFuZCB0aGVyZWZvcmUgdGhlIGFzc2lnbm1lbnQgZG9lcyBub3QgY29uZm9y bSB0byB0aGUNCnN0YW5kYXJkIGJlY2F1c2UgaXQgYWZmZWN0cyB0aGUgdmFsdWUgb2YgQiBhbmQg c28gdmlvbGF0ZXMgMTIuNS4yLjEzDQppdGVtICgzKSB3aGljaCByZXF1aXJlcyBhbGwgdXBkYXRl cyB0byBCIHRvIGdvIHRocm91Z2ggdGhlIGR1bW15DQphcmd1bWVudCwgYW5kIHRoZXJlZm9yZSB0 aGUgYmVoYXZpb3VyIG9mIHRoZSBwcm9ncmFtIGlzIHVuc3BlY2lmaWVkLg0KDQpUaGlzIGNvbmZs aWN0cyB3aXRoIHRoZSBzdGF0ZW1lbnQgaW4gY2xhdXNlIDEgdGhhdCBhbGwgRm9ydHJhbiAyMDAz DQpwcm9ncmFtcyByZW1haW4gY29uZm9ybWluZyBpbiBGb3J0cmFuIDIwMDguDQoNCklzIHRoaXMg cHJvZ3JhbSBpbnRlbmRlZCB0byByZW1haW4gc3RhbmRhcmQtY29uZm9ybWluZz8NCg0KUTIuIENv bnNpZGVyIHRoaXMgbWFpbiBwcm9ncmFtDQoNCiAgUHJvZ3JhbSBxMg0KICAgIFVzZSBtMjAwYzIN CiAgICBDYWxsIHRlc3QoeCxmeCgpKSAgICAgICAgICAgICAgICAgICEgVGhlIGNhbGwuDQogIENv bnRhaW5zDQogICAgU3Vicm91dGluZSB0ZXN0KGEsYikNCiAgICAgIEludGVnZXIsVGFyZ2V0IDo6 IGEsYg0KICAgICAgYSA9IGEqMTAgICAgICAgICAgICAgICAgICAgICAgICAgISBUaGUgYXNzaWdu bWVudC4NCiAgICAgIFByaW50ICosYSxiDQogICAgRW5kIFN1YnJvdXRpbmUNCiAgRW5kIFByb2dy YW0NCg0KQWNjb3JkaW5nIHRvIEZvcnRyYW4gMjAwMywgImZ4KCkiIGluIHRoZSBDQUxMIHN0YXRl bWVudCBpcyBhbg0KZXhwcmVzc2lvbiBhbmQgbm90IGEgdmFyaWFibGUsIGFuZCBoYXMgdGhlIHZh bHVlIDQyLiAgSXQgZm9sbG93cw0KdGhhdCB0aGUgYXNzaWdubWVudCAiYSA9IGEqMTAiIGlzIHN0 YW5kYXJkLWNvbmZvcm1pbmcgYW5kIGRvZXMNCm5vdCBhZmZlY3QgdGhlIHZhbHVlIG9mIEIuICBU aGVyZWZvcmUgdGhpcyBwcm9ncmFtIHByaW50cw0KIDQyMCA0Mg0KDQpIb3dldmVyLCBhY2NvcmRp bmcgdG8gRm9ydHJhbiAyMDA4LCAiZngoKSIgaW4gdGhlIENBTEwgc3RhdGVtZW50IGlzIGENCnZh cmlhYmxlLCBhbmQgdGhlcmVmb3JlIHRoZSBhc3NpZ25tZW50IHRvIEEgYWZmZWN0cyB0aGUgdmFs dWUgb2YgQiwgc28NCnRoZSBwcm9ncmFtIHdpbGwgcHJpbnQNCiA0MjAgNDIwDQoNClRoaXMgYXBw YXJlbnRseSBjb25mbGljdHMgd2l0aCB0aGUgc3RhdGVtZW50IGluIGNsYXVzZSAxIHRoYXQgRm9y dHJhbg0KMjAwOCBpcyBhbiB1cHdhcmRzIGNvbXBhdGlibGUgZXh0ZW5zaW9uIHRvIEZvcnRyYW4g MjAwMy4NCg0KSXMgdGhpcyBwcm9ncmFtIGludGVuZGVkIHRvIGhhdmUgYWx0ZXJlZCBzZW1hbnRp Y3M/DQoNClEzLiBDb25zaWRlciB0aGlzIG1haW4gcHJvZ3JhbQ0KDQogIFByb2dyYW0gcTMNCiAg ICBVc2UgbTIwMGMyDQogICAgQXNzb2NpYXRlKHk9PmZ4KCkpICAgISBUaGUgYXNzb2NpYXRpb24u DQogICAgICB4ID0gMCAgICAgICAgICAgICAgISBUaGUgYXNzaWdubWVudC4NCiAgICAgIFByaW50 ICoseCx5DQogICAgRW5kIEFzc29jaWF0ZQ0KICBFbmQgUHJvZ3JhbQ0KDQpUaGlzIG1haW4gcHJv Z3JhbSBhcHBhcmVudGx5IGNvbmZvcm1zIHRvIGJvdGggRm9ydHJhbiAyMDAzIGFuZCBGb3J0cmFu DQoyMDA4LCBidXQgYWNjb3JkaW5nIHRvIEZvcnRyYW4gMjAwMyAiZngoKSIgaW4gdGhlIGFzc29j aWF0aW9uIGlzIGFuDQpleHByZXNzaW9uLCBldmFsdWF0ZWQgb24gZW50cnkgdG8gdGhlIGNvbnN0 cnVjdCwgYW5kIHRoZXJlZm9yZSBZDQpiZWNvbWVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgdmFsdWUg NDIsIGFuZCB0aGVyZWZvcmUgdGhlIHByb2dyYW0gcHJpbnRzDQp0aGUgdmFsdWVzIChzcGFjaW5n IG1heSBkaWZmZXIpDQoNCiAwIDQyDQoNCndoZXJlYXMgYWNjb3JkaW5nIHRvIEZvcnRyYW4gMjAw OCAiZngoKSIgaW4gdGhlIGFzc29jaWF0aW9uIGlzIGENCnZhcmlhYmxlLCBhbmQgZXZlcnkgcmVm ZXJlbmNlIHRvIFkgaXMgYSByZWZlcmVuY2UgdG8gdGhlIGFzc29jaWF0ZWQNCnZhcmlhYmxlLCBz byB0aGUgYXNzaWdubWVudCBhbHNvIGNoYW5nZXMgdGhlIHZhbHVlIG9mIFkgYW5kIHRoZXJlZm9y ZQ0KdGhlIHByb2dyYW0gcHJpbnRzIHRoZSB2YWx1ZXMNCg0KIDAgMA0KDQpUaGlzIGFwcGFyZW50 bHkgY29uZmxpY3RzIHdpdGggdGhlIHN0YXRlbWVudCBpbiBjbGF1c2UgMSB0aGF0IEZvcnRyYW4N CjIwMDggaXMgYW4gdXB3YXJkcyBjb21wYXRpYmxlIGV4dGVuc2lvbiB0byBGb3J0cmFuIDIwMDMu DQoNCklzIHRoaXMgcHJvZ3JhbSBpbnRlbmRlZCB0byBoYXZlIGFsdGVyZWQgc2VtYW50aWNzPw0K DQpRNC4gQ29uc2lkZXIgdGhpcyBwcm9ncmFtDQoNCiAgTW9kdWxlIG0yMDBjMl9xNA0KICAgIElu dGVnZXIsVGFyZ2V0IDo6IHggPSA0Mg0KICBDb250YWlucw0KICAgIEZ1bmN0aW9uIGZ4KCkNCiAg ICAgIENsYXNzKCopLFBvaW50ZXIgOjogZngNCiAgICAgIGZ4ID0+IHgNCiAgICBFbmQgRnVuY3Rp b24NCiAgRW5kIE1vZHVsZQ0KICBQcm9ncmFtIHE0DQogICAgVXNlIG0yMDBjMl9xNA0KICAgIFNl bGVjdCBUeXBlIChxPT5meCgpKQ0KICAgIFR5cGUgSXMgKEludGVnZXIpDQogICAgICB4ID0gMA0K ICAgICAgUHJpbnQgKix4LHENCiAgICBFbmQgU2VsZWN0DQogIEVuZCBQcm9ncmFtDQoNClVzaW5n IHRoZSBzYW1lIGxvZ2ljIGFzIFEyLCB0aGlzIHNob3VsZCBwcmludCB0aGUgdmFsdWVzDQogMCA0 Mg0KaW4gRm9ydHJhbiAyMDAzLCBidXQgdGhlIHZhbHVlcw0KIDAgMA0KaW4gRm9ydHJhbiAyMDA4 Lg0KDQpBZ2FpbiwgdGhpcyBpcyBub3QgdXB3YXJkcyBjb21wYXRpYmxlIHdpdGggRm9ydHJhbiAy MDAzLg0KDQpJcyB0aGlzIHByb2dyYW0gaW50ZW5kZWQgdG8gaGF2ZSBhbHRlcmVkIHNlbWFudGlj cy4NCg0KQU5TV0VSOg0KDQpBMS4gVGhpcyBwcm9ncmFtIGlzIG5vdCBpbnRlbmRlZCB0byBiZSBj b25mb3JtaW5nIHRvIEZvcnRyYW4gMjAwOC4NCiAgICBBbiBlZGl0IGlzIHN1cHBsaWVkIHRvIG5v dGUgdGhlIGluY29tcGF0aWJpbGl0eSBiZXR3ZWVuIEZvcnRyYW4NCiAgICAyMDA4IGFuZCBwcmV2 aW91cyBGb3J0cmFuIHN0YW5kYXJkcy4NCg0KQTIuIFRoaXMgcHJvZ3JhbSB3YXMgaW50ZW5kZWQg dG8gaGF2ZSBkaWZmZXJlbnQgc2VtYW50aWNzIGluIEZvcnRyYW4NCiAgICAyMDA4LiAgQW4gZWRp dCBpcyBzdXBwbGllZCB0byBub3RlIHRoZSBpbmNvbXBhdGliaWxpdHkuDQoNCkEzLiBUaGlzIHBy b2dyYW0gd2FzIGludGVuZGVkIHRvIGhhdmUgZGlmZmVyZW50IHNlbWFudGljcyBpbiBGb3J0cmFu DQogICAgMjAwOC4gIEFuIGVkaXQgaXMgc3VwcGxpZWQgdG8gbm90ZSB0aGUgaW5jb21wYXRpYmls aXR5Lg0KDQpBNC4gVGhpcyBwcm9ncmFtIHdhcyBpbnRlbmRlZCB0byBoYXZlIGRpZmZlcmVudCBz ZW1hbnRpY3MgaW4gRm9ydHJhbg0KICAgIDIwMDguICBBbiBlZGl0IGlzIHN1cHBsaWVkIHRvIG5v dGUgdGhlIGluY29tcGF0aWJpbGl0eS4NCg0KRURJVFMgdG8gMTAtMDA3cjE6DQoNClsyNDoxMStd IDEuNi4yICJGb3J0cmFuIDIwMDMgY29tcGF0aWJpbGl0eSIsDQogIGluc2VydCBuZXcgcGFyYWdy YXBocyBhdCB0aGUgZW5kIG9mIHRoZSBzdWJjbGF1c2UsDQogIGFmdGVyIHRoZSBwYXJhZ3JhcGhz IGFkZGVkIGJ5IENvcnJpZ2VuZHVtIDI6DQoNCiAgIkFuIGFjdHVhbCBhcmd1bWVudCB0aGF0IGNv cnJlc3BvbmRzIHRvIGEgbm9ucG9pbnRlciBkdW1teSBhcmd1bWVudA0KICAgYW5kIHdoaWNoIGlz IGEgPGZ1bmN0aW9uLXJlZmVyZW5jZT4gdG8gYSBwb2ludGVyIGZ1bmN0aW9uIGlzDQogICByZWdh cmRlZCBhcyBhIHZhcmlhYmxlIGJ5IHRoaXMgcGFydCBvZiBJU08vSUVDIDE1MzkgYnV0IHdhcw0K ICAgcmVnYXJkZWQgYXMgYW4gZXhwcmVzc2lvbiBieSBGb3J0cmFuIDIwMDM7IGlmIHRoZSB0YXJn ZXQgb2YgdGhlDQogICBwb2ludGVyIHJlc3VsdCBpcyBtb2RpZmllZCBvdGhlciB0aGFuIHRocm91 Z2ggdGhhdCBkdW1teSBhcmd1bWVudA0KICAgZHVyaW5nIGV4ZWN1dGlvbiBvZiB0aGUgY2FsbGVk IHByb2NlZHVyZSwgYW5kIHRoYXQgZHVtbXkgYXJndW1lbnQNCiAgIGRvZXMgbm90IGhhdmUgdGhl IFBPSU5URVIgb3IgVEFSR0VUIGF0dHJpYnV0ZSwgdGhlIHByb2dyYW0gZG9lcyBub3QNCiAgIGNv bmZvcm0gdG8gdGhpcyBwYXJ0IG9mIElTTy9JRUMgMTUzOS4gIElmIHRoYXQgZHVtbXkgYXJndW1l bnQgZG9lcw0KICAgaGF2ZSB0aGUgUE9JTlRFUiBvciBUQVJHRVQgYXR0cmlidXRlLCBhbnkgZnVy dGhlciByZWZlcmVuY2UgdG8gdGhhdA0KICAgZHVtbXkgYXJndW1lbnQgd2lsbCBoYXZlIHRoZSBt b2RpZmllZCB2YWx1ZSBhY2NvcmRpbmcgdG8gdGhpcyBwYXJ0DQogICBvZiBJU08vSUVDIDE1Mzkg aW5zdGVhZCBvZiB0aGUgaW5pdGlhbCB2YWx1ZSBhcyBzcGVjaWZpZWQgYnkNCiAgIElTTy9JRUMg MTUzOS0xOjIwMDQuDQoNCiAgIEEgPHNlbGVjdG9yPiBmb3IgYW4gQVNTT0NJQVRFIG9yIFNFTEVD VCBUWVBFIGNvbnN0cnVjdCB0aGF0IGlzIGENCiAgIDxmdW5jdGlvbi1yZWZlcmVuY2U+IHRvIGEg cG9pbnRlciBmdW5jdGlvbiBpcyByZWdhcmRlZCBhcyBhDQogICB2YXJpYWJsZSBieSB0aGlzIHBh cnQgb2YgSVNPL0lFQyAxNTM5OyBpZiB0aGUgdGFyZ2V0IG9mIHRoZSBwb2ludGVyDQogICByZXN1 bHQgaXMgbW9kaWZpZWQgZHVyaW5nIGV4ZWN1dGlvbiBvZiB0aGUgY29uc3RydWN0LCBhbnkgZnVy dGhlcg0KICAgcmVmZXJlbmNlcyB0byB0aGUgPGFzc29jaWF0ZS1uYW1lPiB3aWxsIGhhdmUgdGhl IG1vZGlmaWVkIHZhbHVlDQogICBhY2NvcmRpbmcgdG8gdGhpcyBwYXJ0IG9mIElTTy9JRUMgMTUz OSBpbnN0ZWFkIG9mIHRoZSBpbml0aWFsIHZhbHVlDQogICBhcyBzcGVjaWZpZWQgYnkgSVNPL0lF QyAxNTM5LTE6MjAwNC4iDQoNClsyNDoxNC0xNl0gMS42LjMgIkZvcnRyYW4gOTUgY29tcGF0aWJp bGl0eSIsIHBhcmFncmFwaCAxLCBzZW50ZW5jZSAyLA0KICBDaGFuZ2UgIkFueSIgdG8gIkV4Y2Vw dCBhcyBpZGVudGlmaWVkIGluIHRoaXMgc3ViY2xhdXNlLCBhbnkiLA0KICBEZWxldGUgIlRoZSBm b2xsb3dpbmcgRm9ydHJhbiA5NSBmZWF0dXJlcyAuLiAxNTM5LiINCntXZSBhcmUgYWJvdXQgdG8g YWRkIGEgbm9uLWNvbmZvcm1hbmNlLCBzbyB0aGUgbGFzdCBzZW50ZW5jZSB3aWxsDQogYmVjb21l IHdyb25nIGFuZCBpdCBpcyBpbiBhbnkgY2FzZSB1bm5lY2Vzc2FyeS59DQoNClsyNDoxNy0yN10g Q2hhbmdlIGFsbCBidWxsZXQgcG9pbnRzIGludG8gc2VwYXJhdGUgcGFyYWdyYXBocy4NCntUaGVz ZSBhcmUgbm8gbG9uZ2VyIGEgbGlzdC59DQoNClsyNDoyNytdIEluc2VydCBuZXcgcGFyYWdyYXBo IGF0IGVuZCBvZiBzdWJjbGF1c2UNCiAgIkFuIGFjdHVhbCBhcmd1bWVudCB0aGF0IGNvcnJlc3Bv bmRzIHRvIGEgbm9ucG9pbnRlciBkdW1teSBhcmd1bWVudA0KICAgYW5kIHdoaWNoIGlzIGEgPGZ1 bmN0aW9uLXJlZmVyZW5jZT4gdG8gYSBwb2ludGVyIGZ1bmN0aW9uIGlzDQogICByZWdhcmRlZCBh cyBhIHZhcmlhYmxlIGJ5IHRoaXMgcGFydCBvZiBJU08vSUVDIDE1MzkgYnV0IHdhcw0KICAgcmVn YXJkZWQgYXMgYW4gZXhwcmVzc2lvbiBieSBGb3J0cmFuIDk1OyBpZiB0aGUgdGFyZ2V0IG9mIHRo ZQ0KICAgcG9pbnRlciByZXN1bHQgaXMgbW9kaWZpZWQgb3RoZXIgdGhhbiB0aHJvdWdoIHRoYXQg ZHVtbXkgYXJndW1lbnQNCiAgIGR1cmluZyBleGVjdXRpb24gb2YgdGhlIGNhbGxlZCBwcm9jZWR1 cmUsIHRoZSBwcm9ncmFtIGRvZXMgbm90DQogICBjb25mb3JtIHRvIHRoaXMgcGFydCBvZiBJU08v SUVDIDE1MzkuIg0KDQpbMjQ6MzBdIDEuNi40ICJGb3J0cmFuIDkwIGNvbXBhdGliaWxpdHkiLCBw YXJhZ3JhcGggMQ0KICBDaGFuZ2UgIkFueSIgdG8gIkV4Y2VwdCBhcyBpZGVudGlmaWVkIGluIHRo aXMgc3ViY2xhdXNlLCBhbnkiLA0KDQpbMjU6NitdIEluc2VydCBuZXcgcGFyYWdyYXBoIGF0IGVu ZCBvZiBzdWJjbGF1c2UuDQogICJBbiBhY3R1YWwgYXJndW1lbnQgdGhhdCBjb3JyZXNwb25kcyB0 byBhIG5vbnBvaW50ZXIgZHVtbXkgYXJndW1lbnQNCiAgIGFuZCB3aGljaCBpcyBhIDxmdW5jdGlv bi1yZWZlcmVuY2U+IHRvIGEgcG9pbnRlciBmdW5jdGlvbiBpcw0KICAgcmVnYXJkZWQgYXMgYSB2 YXJpYWJsZSBieSB0aGlzIHBhcnQgb2YgSVNPL0lFQyAxNTM5IGJ1dCB3YXMNCiAgIHJlZ2FyZGVk IGFzIGFuIGV4cHJlc3Npb24gYnkgRm9ydHJhbiA5NTsgaWYgdGhlIHRhcmdldCBvZiB0aGUNCiAg IHBvaW50ZXIgcmVzdWx0IGlzIG1vZGlmaWVkIG90aGVyIHRoYW4gdGhyb3VnaCB0aGF0IGR1bW15 IGFyZ3VtZW50DQogICBkdXJpbmcgZXhlY3V0aW9uIG9mIHRoZSBjYWxsZWQgcHJvY2VkdXJlLCB0 aGUgcHJvZ3JhbSBkb2VzIG5vdA0KICAgY29uZm9ybSB0byB0aGlzIHBhcnQgb2YgSVNPL0lFQyAx NTM5LiINCg0KU1VCTUlUVEVEIEJZOiBNYWxjb2xtIENvaGVuDQoNCkhJU1RPUlk6IDEzLTIyOCAg ICBtMjAwICBGMDgvMDA4OSBzdWJtaXR0ZWQNCiAgICAgICAgIDEzLTIyOHIxICBtMjAwICBSZXZp c2VkIC0gcGFzc2VkIGJ5IEozIG1lZXRpbmcNCiAgICAgICAgIDEzLTI2MiAgICBtMjAxICBQYXNz ZWQgYXMgYW1lbmRlZCBieSBKMyBsZXR0ZXIgYmFsbG90ICMyOA0KICAgICAgICAgICAgICAgICAg ICAgICAgICAxMy0yNTVyMQ0KICAgICAgICAgTjE5OTAgICAgIG0yMDIgIEZhaWxlZCBXRzUgYmFs bG90IE4xOTg4L24xOTg3DQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpGcm9tIE4xOTkwOiBG MDgvMDA4OQ0KDQpDb3JiZXR0IHJlYXNvbiBmb3IgTk8gdm90ZQ0KDQpRdWVzdGlvbnMgUTEgYW5k IFEyIGFzc3VtZSB0aGF0IGlmIGEgcG9pbnRlciBhY3R1YWwgYXJndW1lbnQNCmhhcyB0aGUgZm9y bSBvZiBhbiBleHByZXNzaW9uIGFuZCB0aGUgY29ycmVzcG9uZGluZyBkdW1teQ0KYXJndW1lbnQg aXMgYSBub25wb2ludGVyIGR1bW15IGFyZ3VtZW50IHdpdGhvdXQgdGhlIFZBTFVFDQphdHRyaWJ1 dGUsIHRoZSBkdW1teSBhcmd1bWVudCBiZWNvbWVzIGFyZ3VtZW50IGFzc29jaWF0ZWQNCndpdGgg dGhlIHZhbHVlIG9mIHRoZSB0YXJnZXQgb2YgdGhlIHZhbHVlIG9mIHRoZSBwb2ludGVyDQphY3R1 YWwgYXJndW1lbnQuICBPbiB0aGUgbmV3c2dyb3VwIGNvbXAubGFuZy5mb3J0cmFuLCBJYW4NCkhh cnZleSBwb2ludGVkIG91dCB0aGF0IHRoZSBGb3J0cmFuIHN0YW5kYXJkcyBkbyBub3Qgc3VwcG9y dA0KdGhhdCBwcmVtaXNlLiAgUGFyYWdyYXBoIDIgb2YgQ2xhdXNlIDEyLjUuMi4zIG9mIHRoZQ0K Rm9ydHJhbiAyMDA4IHN0YW5kYXJkIHN0YXRlcw0KDQogICAgIElmIGEgbm9ucG9pbnRlciBkdW1t eSBhcmd1bWVudCB3aXRob3V0IHRoZSBWQUxVRQ0KICAgICBhdHRyaWJ1dGUgY29ycmVzcG9uZHMg dG8gYSBwb2ludGVyIGFjdHVhbCBhcmd1bWVudA0KICAgICB0aGF0IGlzIHBvaW50ZXIgYXNzb2Np YXRlZCB3aXRoIGEgdGFyZ2V0LCB0aGUNCiAgICAgZHVtbXkgYXJndW1lbnQgYmVjb21lcyBhcmd1 bWVudCBhc3NvY2lhdGVkIHdpdGgNCiAgICAgdGhhdCB0YXJnZXQuDQoNClBhcmFncmFwaCA4IG9m IENsYXVzZSAxMi40LjEuMiBvZiB0aGUgRm9ydHJhbiAyMDAzIHN0YW5kYXJkDQpzdGF0ZXMNCg0K ICAgICBFeGNlcHQgaW4gcmVmZXJlbmNlcyB0byBpbnRyaW5zaWMgaW5xdWlyeSBmdW5jdGlvbnMs DQogICAgIGlmIHRoZSBkdW1teSBhcmd1bWVudCBpcyBub3QgYSBwb2ludGVyIGFuZCB0aGUNCiAg ICAgY29ycmVzcG9uZGluZyBhY3R1YWwgYXJndW1lbnQgaXMgYSBwb2ludGVyLCB0aGUNCiAgICAg YWN0dWFsIGFyZ3VtZW50IHNoYWxsIGJlIGFzc29jaWF0ZWQgd2l0aCBhIHRhcmdldA0KICAgICBh bmQgdGhlIGR1bW15IGFyZ3VtZW50IGJlY29tZXMgYXJndW1lbnQgYXNzb2NpYXRlZA0KICAgICB3 aXRoIHRoYXQgdGFyZ2V0Lg0KDQpQYXJhZ3JhcGggNiBvZiBDbGF1c2UgMTIuNC4xLjEgb2YgdGhl IEZvcnRyYW4gOTUgc3RhbmRhcmQNCnN0YXRlcw0KDQogICAgIElmIHRoZSBkdW1teSBhcmd1bWVu dCBpcyBub3QgYSBwb2ludGVyIGFuZCB0aGUNCiAgICAgY29ycmVzcG9uZGluZyBhY3R1YWwgYXJn dW1lbnQgaXMgYSBwb2ludGVyLCB0aGUNCiAgICAgYWN0dWFsIGFyZ3VtZW50IHNoYWxsIGJlIGN1 cnJlbnRseSBhc3NvY2lhdGVkDQogICAgIHdpdGggYSB0YXJnZXQgYW5kIHRoZSBkdW1teSBhcmd1 bWVudCBiZWNvbWVzDQogICAgIGFyZ3VtZW50IGFzc29jaWF0ZWQgd2l0aCB0aGF0IHRhcmdldA0K DQpUaGUgcGFyYWdyYXBoIGFkZGVkIGJldHdlZW4gcGFyYWdyYXBocyAzIGFuZCA0IG9mDQpDbGF1 c2UgMTIuNC4xLjEgb2YgdGhlIEZvcnRyYW4gOTAgc3RhbmRhcmQgYnkNCkNvcnJpZ2VuZHVtIDIg c3RhdGVzDQoNCiAgICAgSWYgdGhlIGR1bW15IGFyZ3VtZW50IGlzIG5vdCBhIHBvaW50ZXIgYW5k IHRoZQ0KICAgICBjb3JyZXNwb25kaW5nIGFjdHVhbCBhcmd1bWVudCBpcywgdGhlIGFjdHVhbA0K ICAgICBhcmd1bWVudCBtdXN0IGJlIGN1cnJlbnRseSBhc3NvY2lhdGVkIHdpdGggYQ0KICAgICB0 YXJnZXQgYW5kIHRoZSBkdW1teSBhcmd1bWVudCBiZWNvbWVzIGFyZ3VtZW50DQogICAgIGFzc29j aWF0ZWQgd2l0aCB0aGF0IHRhcmdldC4NCg0KVGhhdCB0ZXh0IHdhcyBhZGRlZCBhcyBhIHJlc3Vs dCBvZiBpbnRlcnByZXRhdGlvbg0KRjkwLzAwMDAzOS4NCg0KSW4gdGhlIGV4YW1wbGVzIGdpdmVu IGluIHF1ZXN0aW9ucyBRMSBhbmQgUTIsIHRoZQ0KYWN0dWFsIGFyZ3VtZW50IGZ4KCkgaXMgYSBw b2ludGVyIGFjdHVhbCBhcmd1bWVudA0KY29ycmVzcG9uZGluZyB0byBhIG5vbnBvaW50ZXIgZHVt bXkgYXJndW1lbnQuDQpUaGVyZWZvcmUsIHRoZSBkdW1teSBhcmd1bWVudCBiZWNvbWVzIGFyZ3Vt ZW50DQphc3NvY2lhdGVkIHdpdGggdGhlIHRhcmdldCBvZiB0aGUgcG9pbnRlciBhY3R1YWwNCmFy Z3VtZW50LCB3aGljaCBpcyB0aGUgbW9kdWxlIHZhcmlhYmxlIHguICBUaGUgZHVtbXkNCmFyZ3Vt ZW50IGRvZXMgbm90IGJlY29tZSBhcmd1bWVudCBhc3NvY2lhdGVkIHdpdGggdGhlDQp2YWx1ZSBv ZiB0aGUgdGFyZ2V0IG9mIHRoZSBwb2ludGVyLiAgVGh1cywgdGhlcmUgaXMNCm5vIHNlbWFudGlj IGRpZmZlcmVuY2UgYmV0d2VlbiBGb3J0cmFuIDIwMDggYW5kIHRoZQ0KcHJldmlvdXMgc3RhbmRh cmRzIGluIHRoaXMgcmVnYXJkLg0KDQpUaGUgYW5zd2VycyBhbmQgZWRpdHMgZ2l2ZW4gZm9yIHF1 ZXN0aW9ucyBRMSBhbmQgUTIgYXJlDQpiYXNlZCBvbiB0aGUgc2FtZSBwcmVtaXNlIGFzIHRoZSBx dWVzdGlvbnMgdGhlbXNlbHZlcw0KYW5kIHNob3VsZCBiZSByZWplY3RlZC4NCg0KSSBhc2tlZCBw ZW9wbGUgdG8gY29tcGlsZSBhbmQgcnVuIHRoZSBleGFtcGxlIHByb2dyYW1zDQpnaXZlbiBpbiBx dWVzdGlvbnMgUTEgYW5kIFEyIGFuZCB2YXJpYXRpb25zIG9mIHRoZW0NCnVzaW5nIGEgdmFyaWV0 eSBvZiBjb21waWxlcnMuICBJbiBtb3N0LCBidXQgbm90IGFsbCwNCmNhc2VzLCB0aGUgcmVzdWx0 cyB3ZXJlIGNvbnNpc3RlbnQgd2l0aCB0aGUgc2VtYW50aWNzDQpzdGF0ZWQgaW4gdGhlIEZvcnRy YW4gc3RhbmRhcmRzLCBub3Qgd2l0aCB0aGUgc2VtYW50aWNzDQphc3N1bWVkIGJ5IHF1ZXN0aW9u cyBRMSBhbmQgUTIuDQoNClF1ZXN0aW9ucyBRMyBhbmQgUTQgYXJlIGNvbnNpc3RlbnQgd2l0aCB0 aGUgc3RhbmRhcmRzLA0KYXMgYXJlIHRoZSBjb3JyZXNwb25kaW5nIGFuc3dlcnMgYW5kIGVkaXRz LCBidXQgSSBkbyBub3QNCmNhcmUgZm9yIHRoZSBuYXR1cmUgb2YgdGhlIGNoYW5nZXMgdGhhdCB3 aWxsIHJlc3VsdCBpZg0KaW50ZXJwcmV0YXRpb24gRjA4LzAwNzUgaXMgcGFzc2VkLiAgSSB0aGlu ayBjaGFuZ2luZyB0aGUNCmxhbmd1YWdlIHNvIHRoYXQgdGhlIGZvcm0gb2YgYSBmdW5jdGlvbiBy ZWZlcmVuY2UNCmRldGVybWluZXMgaXRzIG1lYW5pbmcgaXMgYSBtaXN0YWtlLg0KDQpMb25nIGNv bW1lbnQ6DQoNClR3aWNlIGluIHRoZSBlZGl0cyBhcHBlYXJzICIuLi5hIDxmdW5jdGlvbi1yZWZl cmVuY2U+IHRvIGENCnBvaW50ZXIgZnVuY3Rpb24gaXMgcmVnYXJkZWQgYXMgYSB2YXJpYWJsZS4u LiIuIFNob3VsZCB0aGlzDQpiZSBhICJkYXRhIHBvaW50ZXIgZnVuY3Rpb24iPw0KDQpTbnlkZXIg Y29tbWVudDoNCg0KVGhlIHRlcm0gInBvaW50ZXIgZnVuY3Rpb24iIGlzIG5vdCB1c2VkIGFzIGEg bm91biwNCmFsdGhvdWdoICJub25wb2ludGVyIGZ1bmN0aW9uIiBpcyBzbyB1c2VkIGF0IFs0NTQ6 MzZdLg0KSSBoYXZlIGEgc2xpZ2h0IHByZWZlcmVuY2UgdGhhdCAicG9pbnRlciBmdW5jdGlvbiIg aW4NCnRoZSBlZGl0IGZvciBbMjQ6MTErXSBiZSByZXBsYWNlZCBieSAiZnVuY3Rpb24gdGhhdA0K cmV0dXJucyBhIHBvaW50ZXIgcmVzdWx0IiBpbiBib3RoIHBhcmFncmFwaHMuICBUaGUNCnNhbWUg Y2hhbmdlIG91Z2h0IHRvIGJlIG1hZGUgaW4gdGhlIGVkaXRzIGZvciBbMjQ6MjcrXQ0KYW5kIFsy NTo2K10NCg0KQSBwYXJhbGxlbCBjaGFuZ2Ugb3VnaHQgdG8gYmUgbWFkZSBhdCBbNDU0OjM2XSwg YnV0DQp0aGF0IGNhbiBiZSBkb25lIGVkaXRvcmlhbGx5IHJhdGhlciB0aGFuIHdpdGhpbiB0aGlz DQppbnRlcnByZXRyYXRpb24uDQoNCkRlY2lzaW9uIG9mIC9JTlRFUlA6IEZhaWxlZC4NCg0KLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQoNCk5VTUJFUjogRjA4LzAwOTANClRJVExFOiBXaGF0IHJlc3RyaWN0aW9u cyBhcHBseSB0byBpbml0aWFsaXphdGlvbiBhbmQgUEFSQU1FVEVSPw0KS0VZV09SRFM6IFBBUkFN RVRFUiwgaW5pdGlhbGl6YXRpb24sIGNvbmZvcm1hYmxlLCB0eXBlIGNvbnZlcnNpb24NCkRFRkVD VCBUWVBFOiBFcnJhdHVtDQpTVEFUVVM6IEluIEYyMDA4IENvcnJpZ2VuZHVtIDMNCg0KUVVFU1RJ T046DQoNCkNvbnNpZGVyIHRoZSBwcm9ncmFtcw0KDQogIFByb2dyYW0gbTIwMGMzXzENCiAgICBJ bnRlZ2VyIDo6IGEoMTAsMTApDQogICAgUGFyYW1ldGVyIChhID0gWyAoaSxpPTEsMTAwKSBdICkN CiAgICBQcmludCAqLGENCiAgRW5kIFByb2dyYW0NCg0KICBQcm9ncmFtIG0yMDBjM18yDQogICAg UGFyYW1ldGVyIChiID0gJ29rJykNCiAgICBQcmludCAqLGINCiAgRW5kIFByb2dyYW0NCg0KICBQ cm9ncmFtIG0yMDBjM18zDQogICAgSW50ZWdlciA6OiB4KDIzKSA9IFsgMSBdDQogICAgUHJpbnQg Kix4DQogIEVuZCBQcm9ncmFtDQoNCiAgUHJvZ3JhbSBtMjAwYzNfNA0KICAgIEludGVnZXIgOjog eSA9ICdvaycNCiAgICBQcmludCAqLHkNCiAgRW5kIFByb2dyYW0NCg0KVGhlIFBBUkFNRVRFUiBz dGF0ZW1lbnQgZm9yIHRoZSBuYW1lZCBjb25zdGFudCBBIGhhcyBhbiBleHByZXNzaW9uDQp3aG9z ZSBzaGFwZSBkb2VzIG5vdCBjb25mb3JtIHdpdGggdGhhdCBvZiBBLiAgVGhlIFBBUkFNRVRFUiBz dGF0ZW1lbnQNCmZvciB0aGUgbmFtZWQgY29uc3RhbnQgQiBoYXMgYW4gZXhwcmVzc2lvbiB3aG9z ZSB0eXBlIGRvZXMgbm90IGNvbmZvcm0NCnRvIHRoYXQgb2YgQi4gIFRoZSA8aW5pdGlhbGl6YXRp b24+IGZvciBYIGlzIG5vdCBjb25mb3JtYWJsZSBpbiBzaGFwZS4NClRoZSA8aW5pdGlhbGl6YXRp b24+IGZvciBZIGlzIG5vdCBjb25mb3JtYWJsZSBpbiB0eXBlLg0KDQpUaGVyZSBhcHBlYXJzIHRv IGJlIG5vIHJlcXVpcmVtZW50IGVpdGhlciBmb3Igc2hhcGUgb3IgdHlwZQ0KY29uZm9ybWFuY2Us IGluIEZvcnRyYW4gMjAwOCBvciBpbiBwcmV2aW91cyBGb3J0cmFuIHN0YW5kYXJkcywgZXhjZXB0 DQpmb3IgaW5pdGlhbGl6aW5nIGRhdGEgcG9pbnRlcnMuDQoNClExLiBEbyBhbnkgb2YgdGhlc2Ug cHJvZ3JhbXMgY29uZm9ybSB0byBGb3J0cmFuIDIwMDg/DQoNClEyLiBJZiB0aGVyZSBpcyBtZWFu dCB0byBiZSBhIHJlcXVpcmVtZW50IGZvciB0aGUgc2hhcGVzIHRvIGNvbmZvcm0gb3INCiAgICBm b3IgdGhlIHR5cGVzIHRvIGJlIGNvbnZlcnRpYmxlLCBzaG91bGQgdGhpcyBub3QgYmUgYSBjb25z dHJhaW50Pw0KDQpBTlNXRVI6DQoNCkExLiBObywgdGhlc2UgcHJvZ3JhbXMgZG8gbm90IGNvbmZv cm0gdG8gRm9ydHJhbiAyMDA4LCBhcyBubw0KICAgIGludGVycHJldGF0aW9uIGlzIGVzdGFibGlz aGVkIGZvciBhbnkgb2YgdGhlbS4gIEVkaXRzIGFyZQ0KICAgIHByb3ZpZGVkIHRvIGNsYXJpZnkg dGhpcy4NCg0KQTIuIFRoaXMgaXMgbm90IGEgY29uc3RyYWludC4gIEEgZnV0dXJlIHJldmlzaW9u IG9mIEZvcnRyYW4gbWlnaHQNCiAgICBjaG9vc2UgdG8gbWFuZGF0ZSBkaWFnbm9zaXMgb2YgdGhl c2UgZXJyb3JzLg0KDQpFRElUIHRvIDEwLTAwN3IxOg0KDQpbODg6MzArXSA1LjIuMSBTeW50YXgs IEluc2VydCBuZXcgcGFyYWdyYXBoIGF0IGVuZCBvZiBzdWJjbGF1c2UNCiAgIklmIDxpbml0aWFs aXphdGlvbj4gYXBwZWFycyBmb3IgYSBub25wb2ludGVyIGVudGl0eSwNCiAgIC0gaXRzIHR5cGUg YW5kIHR5cGUgcGFyYW1ldGVycyBzaGFsbCBjb25mb3JtIGFzIHNwZWNpZmllZCBmb3INCiAgICAg aW50cmluc2ljIGFzc2lnbm1lbnQgKDcuMi4xLjIpOw0KICAgLSBpZiB0aGUgZW50aXR5IGhhcyBp bXBsaWVkIHNoYXBlLCB0aGUgcmFuayBvZiA8aW5pdGlhbGl6YXRpb24+DQogICAgIHNoYWxsIGJl IHRoZSBzYW1lIGFzIHRoZSByYW5rIG9mIHRoZSBlbnRpdHk7DQogICAtIGlmIHRoZSBlbnRpdHkg ZG9lcyBub3QgaGF2ZSBpbXBsaWVkIHNoYXBlLCA8aW5pdGlhbGl6YXRpb24+IHNoYWxsDQogICAg IGVpdGhlciBiZSBzY2FsYXIgb3IgaGF2ZSB0aGUgc2FtZSBzaGFwZSBhcyB0aGUgZW50aXR5LiIu DQoNClsxMDc6MTIrXSA1LjQuMTEgUEFSQU1FVEVSIHN0YXRlbWVudCwgYWZ0ZXIgcDIsIEluc2Vy dCBuZXcgcGFyYWdyYXBoDQogICJUaGUgY29uc3RhbnQgZXhwcmVzc2lvbiB0aGF0IGNvcnJlc3Bv bmRzIHRvIGEgbmFtZWQgY29uc3RhbnQgc2hhbGwNCiAgIGhhdmUgdHlwZSBhbmQgdHlwZSBwYXJh bWV0ZXJzIHRoYXQgY29uZm9ybSB3aXRoIHRoZSBuYW1lZCBjb25zdGFudA0KICAgYXMgc3BlY2lm aWVkIGZvciBpbnRyaW5zaWMgYXNzaWdubWVudCAoNy4yLjEuMikuICBJZiB0aGUgbmFtZWQNCiAg IGNvbnN0YW50IGhhcyBpbXBsaWVkIHNoYXBlLCB0aGUgZXhwcmVzc2lvbiBzaGFsbCBoYXZlIHRo ZSBzYW1lIHJhbmsNCiAgIGFzIHRoZSBuYW1lZCBjb25zdGFudDsgb3RoZXJ3aXNlLCB0aGUgZXhw cmVzc2lvbiBzaGFsbCBlaXRoZXIgYmUNCiAgIHNjYWxhciBvciBoYXZlIHRoZSBzYW1lIHJhbmsg YXMgdGhlIG5hbWVkIGNvbnN0YW50LiIuDQoNClNVQk1JVFRFRCBCWTogTWFsY29sbSBDb2hlbg0K DQpISVNUT1JZOiAxMy0yMjkgICAgbTIwMCAgRjA4LzAwOTAgc3VibWl0dGVkIC0gcGFzc2VkIGJ5 IEozIG1lZXRpbmcNCiAgICAgICAgIDEzLTI2MiAgICBtMjAxICBQYXNzZWQgSjMgbGV0dGVyIGJh bGxvdCAjMjggMTMtMjU1cjENCiAgICAgICAgIE4xOTkwICAgICBtMjAyICBQYXNzZWQgYnkgV0c1 IGJhbGxvdCA2IE4xOTg3Lzg4LzkwDQogICAgICAgICBOMjAwMiAgICAgbTIwMyAgSW4gRjIwMDgg Q29ycmlnZW5kdW0gMw0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KTlVNQkVSOiBGMDgvMDA5MQ0KVElU TEU6IERlcml2ZWQgdHlwZSB3aXRoIG5vIGNvbXBvbmVudHMNCktFWVdPUkQ6IERlcml2ZWQgdHlw ZQ0KREVGRUNUIFRZUEU6IEVycmF0dW0NClNUQVRVUzogSW4gRjIwMDggQ29ycmlnZW5kdW0gMw0K DQpRVUVTVElPTjoNCg0KUTEuIENvbnNpZGVyDQoNCiAgUHJvZ3JhbSBtN18xDQogIFR5cGUgZW1w dHkNCiAgRW5kIFR5cGUNCiAgVHlwZShlbXB0eSksVGFyZ2V0IDo6IHgNCiAgVHlwZShlbXB0eSks UG9pbnRlciA6OiB5DQogIHkgPT4geA0KICBQcmludCAqLEFzc29jaWF0ZWQoeSx4KQ0KICBFbmQN Cg0KSXMgdGhpcyBwcm9ncmFtIHN0YW5kYXJkLWNvbmZvcm1pbmcsIGFuZCBkb2VzIGl0IHByaW50 IFQgb3IgRj8NCg0KQWNjb3JkaW5nIHRvIDE2LjUuMy4ycDIsDQogIGl0ZW0gMSAgaXMgZGVmYXVs dCBpbnRlZ2VyIGV0YywgTi9BDQogIGl0ZW0gMiBpcyBkb3VibGUgcHJlY2lzaW9uIGV0YywgTi9B DQogIGl0ZW0gMyBpcyBkZWZhdWx0IGNoYXJhY3RlciwgTi9BDQogIGl0ZW0gNCBpcyBDIGNoYXJh Y3RlciwgTi9BDQogIGl0ZW0gNSBpcyBTRVFVRU5DRSB0eXBlLCBOL0ENCg0KQWNjb3JkaW5nIHRv IGl0ZW0gKDYpLA0KICAiYSBub25wb2ludGVyIHNjYWxhciBvYmplY3Qgb2YgYW55IHR5cGUgbm90 IHNwZWNpZmllZCBpbiBpdGVtcw0KICAgKDEpLSg1KSBvY2N1cGllcyBhIHNpbmdsZSB1bnNwZWNp ZmllZCBzdG9yYWdlIHVuaXQgdGhhdCBpcw0KICAgZGlmZmVyZW50IFtmcm9tIGV2ZXJ5dGhpbmcg ZWxzZV0iDQoNCklmIHRoYXQgYW5hbHlzaXMgaXMgY29ycmVjdCwgWCBvY2N1cGllcyBhIHNpbmds ZSB1bnNwZWNpZmllZCBzdG9yYWdlDQp1bml0LCBub3QgemVybyBzdG9yYWdlIHVuaXRzLCBhbmQg dGhlcmVmb3JlIFQgc2hvdWxkIGJlIHByaW50ZWQuDQoNClEyLiBDb25zaWRlcg0KDQogIFByb2dy YW0gbTdfMg0KICBUeXBlIHNlbXB0eQ0KICAgIFNlcXVlbmNlDQogIEVuZCBUeXBlDQogIFR5cGUo c2VtcHR5KSxUYXJnZXQgOjogeA0KICBUeXBlKHNlbXB0eSksUG9pbnRlciA6OiB5DQogIHkgPT4g eA0KICBQcmludCAqLEFzc29jaWF0ZWQoeSx4KQ0KICBFbmQNCg0KSXMgdGhpcyBwcm9ncmFtIHN0 YW5kYXJkLWNvbmZvcm1pbmcsIGFuZCBkb2VzIGl0IHByaW50IFQgb3IgRj8NCg0KTm93IFggZmFs bHMgaW50byBpdGVtIDUsIHdoaWNoIG1ha2VzIGl0IGEgInNlcXVlbmNlIG9mIHN0b3JhZ2UNCnNl cXVlbmNlcyBjb3JyZXNwb25kaW5nIHRvIHRoZSBzZXF1ZW5jZSBvZiBpdHMgdWx0aW1hdGUgY29t cG9uZW50cyI7DQp0aGVyZSBhcmUgbm8gdWx0aW1hdGUgY29tcG9uZW50cywgdGhpcyBtYWtlcyBp dCBhIHplcm8tc2l6ZWQgc3RvcmFnZQ0Kc2VxdWVuY2UgYW5kIHRoZXJlZm9yZSBGIHNob3VsZCBi ZSBwcmludGVkLg0KDQpUaGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgY29uc2lzdGVudCB3aXRoIHRo ZSBhcHBhcmVudCBhbnN3ZXIgdG8gUTEuDQoNClEzLiBDb25zaWRlcg0KDQogIFByb2dyYW0gbTdf Mw0KICBUeXBlIG51bWVyaWNfZW1wdHkNCiAgICBTZXF1ZW5jZQ0KICBFbmQgVHlwZQ0KICBUeXBl IGNoYXJhY3Rlcl9lbXB0eQ0KICAgIFNlcXVlbmNlDQogIEVuZCBUeXBlDQogIFR5cGUobnVtZXJp Y19lbXB0eSkgYQ0KICBJbnRlZ2VyIGINCiAgQ2hhcmFjdGVyIGMNCiAgVHlwZShjaGFyYWN0ZXJf ZW1wdHkpIGQNCiAgRXF1aXZhbGVuY2UoYSxiKSAgICAgICAgICAgICAhIEUxLg0KICBFcXVpdmFs ZW5jZShjLGQpICAgICAgICAgICAgICEgRTIuDQogIEVuZA0KDQpJcyB0aGlzIHByb2dyYW0gY29u Zm9ybWluZz8NCg0KQWNjb3JkaW5nIHRvIHRoZSBkZWZpbml0aW9ucyBpbiA0LjUuMi4zLCBOVU1F UklDX0VNUFRZIGlzIGEgbnVtZXJpYw0Kc2VxdWVuY2UgdHlwZSBhbmQgdGhlcmVmb3JlIG9uZSBt aWdodCBleHBlY3QgdG8gYmUgYWJsZSB0byBFUVVJVkFMRU5DRQ0KaXQgdG8gYW4gSU5URUdFUi4g IFNpbWlsYXJseSwgQ0hBUkFDVEVSX0VNUFRZIGlzIGEgY2hhcmFjdGVyIHNlcXVlbmNlDQp0eXBl IGFuZCB0aGVyZWZvcmUgb25lIG1pZ2h0IGV4cGVjdCB0byBiZSBhYmxlIHRvIEVRVUlWQUxFTkNF IGl0IHRvIGENCkNIQVJBQ1RFUi4NCg0KSG93ZXZlciwgTlVNRVJJQ19FTVBUWSBpcyBjbGVhcmx5 IGFsc28gYSBjaGFyYWN0ZXIgc2VxdWVuY2UgdHlwZSwgYW5kDQp0aGVyZWZvcmUgc3RhdGVtZW50 IEUxIHZpb2xhdGVzIEM1OTIgYmVjYXVzZSBCIGlzIG5vdCBjaGFyYWN0ZXIgb3INCmNoYXJhY3Rl ciBzZXF1ZW5jZS4NCg0KU2ltaWxhcmx5LCBDSEFSQUNURVJfRU1QVFkgaXMgY2xlYXJseSBhbHNv IGEgbnVtZXJpYyBzZXF1ZW5jZSB0eXBlLA0KYW5kIHRoZXJlZm9yZSBzdGF0ZW1lbnQgRTIgdmlv bGF0ZXMgQzU5MS4NCg0KSXQgc2VlbXMgdmVyeSBzdHJhbmdlIHRvIGhhdmUgYSB0eXBlIHRoYXQg aXMgc2ltdWx0YW5lb3VzbHkgbnVtZXJpYw0KYW5kIGNoYXJhY3RlciBzZXF1ZW5jZSB0eXBlLg0K DQpRNC4gQ29uc2lkZXINCg0KICBQcm9ncmFtIG03XzQNCiAgVHlwZSBudW1lcmljX2VtcHR5XzIN CiAgICBTZXF1ZW5jZQ0KICAgIFJlYWwgYygwKQ0KICBFbmQgVHlwZQ0KICBUeXBlIGNoYXJhY3Rl cl9lbXB0eV8yDQogICAgU2VxdWVuY2UNCiAgICBDaGFyYWN0ZXIoMCkgYw0KICBFbmQgVHlwZQ0K ICBUeXBlKG51bWVyaWNfZW1wdHlfMikgYQ0KICBJbnRlZ2VyIGINCiAgQ2hhcmFjdGVyIGMNCiAg VHlwZShjaGFyYWN0ZXJfZW1wdHlfMikgZA0KICBFcXVpdmFsZW5jZShhLGIpICAgICAgICAgICAg ICEgRTMuDQogIEVxdWl2YWxlbmNlKGMsZCkgICAgICAgICAgICAgISBFNC4NCiAgRW5kDQoNCkRv ZXMgdGhpcyBwcm9ncmFtIGNvbmZvcm0/DQoNCkFjY29yZGluZyB0byB0aGUgZGVmaW5pdGlvbnMg aW4gNC41LjIuMywgTlVNRVJJQ19FTVBUWV8yIGlzIGEgbnVtZXJpYw0Kc2VxdWVuY2UgdHlwZSBh bmQgbm90IGEgY2hhcmFjdGVyIHNlcXVlbmNlIHR5cGUsIGFuZCBjb252ZXJzZWx5DQpDSEFSQUNU RVJfRU1QVFlfMiBpcyBhIGNoYXJhY3RlciBzZXF1ZW5jZSB0eXBlIGFuZCBub3QgYSBudW1lcmlj DQpzZXF1ZW5jZSB0eXBlLCBhbmQgdGhlcmVmb3JlIHRoZSBjb25zdHJhaW50cyBmb3IgdGhlIHN0 YXRlbWVudHMgYXQgRTMNCmFuZCBFNCBhcmUgbm90IHZpb2xhdGVkLg0KDQpUaHVzIHRoaXMgYXBw ZWFycyB0byBiZSBjb25mb3JtaW5nLCBpbiBjb250cmFkaWN0aW9uIHRvIHRoZSBleGFtcGxlIGlu DQpRMywgZXZlbiB0aG91Z2ggdGhlIHN0b3JhZ2Ugc2VxdWVuY2Ugb2YgTlVNRVJJQ19FTVBUWSwN Ck5VTUVSSUNfRU1QVFlfMiwgQ0hBUkFDVEVSX0VNUFRZLCBhbmQgQ0hBUkFDVEVSX0VNUFRZXzIg YXJlIGFsbCB0aGUNCnNhbWUuDQoNClRoaXMgZG9lcyBub3QgbG9vayB2ZXJ5IGNvbnNpc3RlbnQg d2l0aCB0aGUgc2l0dWF0aW9uIGluIFEzLg0KDQpBTlNXRVI6DQoNCkExLiAgVGhlIHByb2dyYW0g aXMgY29uZm9ybWluZyBhbmQgcHJpbnRzIFQuDQoNCkEyLiAgVGhlIHByb2dyYW0gd2FzIG5vdCBp bnRlbmRlZCB0byBjb25mb3JtOyBTRVFVRU5DRSBtYWtlcyBubyBzZW5zZQ0KICAgICB3aGVuIHRo ZXJlIGFyZSBubyBjb21wb25lbnRzLiAgQW4gZWRpdCBpcyBuZWVkZWQgdG8gY29ycmVjdCB0aGlz Lg0KDQpBMy4gIFRoZSBwcm9ncmFtIGRvZXMgbm90IGNvbmZvcm0gYXMgYSBzZXF1ZW5jZSB0eXBl IG11c3QgaGF2ZSBhdA0KICAgICBsZWFzdCBvbmUgY29tcG9uZW50Lg0KDQpBNC4gIFRoZSBwcm9n cmFtIGlzIGNvbmZvcm1pbmcuICBUaGUgYXBwYXJlbnQgZGVzaWduIGluY29uc2lzdGVuY3kgaXMN CiAgICAgbm90IGFuIGVycm9yIGluIHRoZSBzdGFuZGFyZC4NCg0KRURJVCB0byAxMC0wMDdyMToN Cg0KWzYyOjE5XSA0LjUuMi4zLCBpbiBjb25zdHJhaW50IEM0MzYNCiAgICAgICAgQWZ0ZXIgImFw cGVhcnMsIiBpbnNlcnQgInRoZSB0eXBlIHNoYWxsIGhhdmUgYXQgbGVhc3Qgb25lDQogICAgICAg ICAgICAgICBjb21wb25lbnQsIi4NCg0KU1VCTUlUVEVEIEJZOiBNYWxjb2xtIENvaGVuDQoNCkhJ U1RPUlk6IDEzLTI2NiAgICBtMjAxICBGMDgvMDA5MSBzdWJtaXR0ZWQNCiAgICAgICAgIDEzLTI2 NnIxICBtMjAxICBSZXZpc2VkIC0gcGFzc2VkIGJ5IEozIG1lZXRpbmcNCiAgICAgICAgIDEzLTMx MyAgICBtMjAyICBQYXNzZWQgYXMgYW1lbmRlZCBieSBKMyBsZXR0ZXIgYmFsbG90IDEzLTI5Nw0K ICAgICAgICAgTjE5OTQgICAgIG0yMDIgIFBhc3NlZCBieSBXRzUgYmFsbG90IDcgTjE5OTEvOTIv OTQNCiAgICAgICAgIE4yMDAyICAgICBtMjAzICBJbiBGMjAwOCBDb3JyaWdlbmR1bSAzDQoNCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NCg0KTlVNQkVSOiBGMDgvMDA5Mg0KVElUTEU6IERlcml2ZWQgdHlwZSBwYXJh bWV0ZXIgcmVxdWlyZW1lbnRzDQpLRVlXT1JEOiBEZXJpdmVkIHR5cGUgcGFyYW1ldGVyDQpERUZF Q1QgVFlQRTogRXJyYXR1bQ0KU1RBVFVTOiBJbiBGMjAwOCBDb3JyaWdlbmR1bSAzDQoNClFVRVNU SU9OOg0KDQpDb25zaWRlcg0KDQogIFR5cGUgdDEoYSxhKQ0KICAgIEludGVnZXIsS2luZCA6OiBh DQogICAgSW50ZWdlcixMZW4gOjogYQ0KICBFbmQgVHlwZQ0KICBUeXBlIHQyKGEpDQogICAgSW50 ZWdlcixLaW5kIDo6IGEsYSxhDQogIEVuZCBUeXBlDQoNClRoZXNlIHR5cGUgZGVmaW5pdGlvbiBh cHBlYXJzIHRvIHZhbGlkLCBpbiB0aGF0DQooYSkgdGhlcmUgaXMgbm8gcmVxdWlyZW1lbnQgdGhh dCBhIHR5cGUgcGFyYW1ldGVyIGFwcGVhcnMgb25seSBvbmNlIGluDQogICAgdGhlIDx0eXBlLXBh cmFtLW5hbWUtbGlzdD47DQooYikgdGhlcmUgaXMgbm8gcmVxdWlyZW1lbnQgdGhhdCBhIHR5cGUg cGFyYW1ldGVyIGFwcGVhcnMgaW4gb25seSBvbmUNCiAgICA8dHlwZS1wYXJhbS1kZWYtc3RtdD4s IGFuZCBvbmx5IG9uY2UuDQoNCldlcmUgdGhlc2UgaW50ZW5kZWQgdG8gYmUgdmFsaWQ/ICBXaGF0 IGlzIHRoZWlyIG1lYW5pbmc/DQoNCkFOU1dFUjoNCg0KVGhlc2Ugd2VyZSBub3QgaW50ZW5kZWQg dG8gYmUgdmFsaWQsIGFuZCB0aGV5IGFyZSBub3QgdmFsaWQgYmVjYXVzZQ0KdGhlIHN0YW5kYXJk IGRvZXMgbm90IGVzdGFibGlzaCBhbiBpbnRlcnByZXRhdGlvbiBmb3IgdGhlbS4gIFVuaXF1ZQ0K bmFtZXMgZm9yIHR5cGUgcGFyYW1ldGVycyBjYW4gcG9zc2libHkgYmUgZGVkdWNlZCBmcm9tIHRo ZSBzY29waW5nDQpydWxlcy4NCg0KRWRpdHMgYXJlIHN1cHBsaWVkIHRvIG1ha2UgdGhlIHJlcXVp cmVtZW50cyBleHBsaWNpdC4NCg0KRURJVFMgdG8gMTAtMDA3cjE6DQoNCls2MToxOStdIEluIDQu NS4yLjEsIGFmdGVyIEM0MjcgaW5zZXJ0IG5ldyBjb25zdHJhaW50DQogICJDNDI3YSAoUjQyNikg VGhlIHNhbWUgPHR5cGUtcGFyYW0tbmFtZT4gc2hhbGwgbm90IGFwcGVhciBtb3JlIHRoYW4NCiAg ICAgICAgIG9uY2UgaW4gYSA8ZGVyaXZlZC10eXBlLXN0bXQ+LiINCntSZXF1aXJlIHVuaXF1ZSBu YW1lcyBmb3IgdHlwZSBwYXJhbWV0ZXJzLn0NCg0KWzY0OjhdIEluIDQuNS4zLjEsIEM0MzgsIGFm dGVyICJzaGFsbCBhcHBlYXIiIGluc2VydCAiZXhhY3RseSBvbmNlIi4NCntGb3JiaWQgbXVsdGlw bGUgZGVjbGFyYXRpb25zIG9mIGEgdHlwZSBwYXJhbWV0ZXIsIHdoZXRoZXIgaW4gdGhlIHNhbWUN CiA8dHlwZS1wYXJhbS1kZWYtc3RtdD4gb3IgbW9yZSB0aGFuIG9uZS59DQoNClNVQk1JVFRFRCBC WTogTWFsY29sbSBDb2hlbg0KDQpISVNUT1JZOiAxMy0yNjcgICAgbTIwMSAgRjA4LzAwOTIgc3Vi bWl0dGVkIC0gcGFzc2VkIGJ5IEozIG1lZXRpbmcNCiAgICAgICAgIDEzLTMxMyAgICBtMjAyICBQ YXNzZWQgYXMgYW1lbmRlZCBieSBKMyBsZXR0ZXIgYmFsbG90IDEzLTI5Nw0KICAgICAgICAgTjE5 OTQgICAgIG0yMDIgIFBhc3NlZCBieSBXRzUgYmFsbG90IDcgTjE5OTEvOTIvOTQNCiAgICAgICAg IE4yMDAyICAgICBtMjAzICBJbiBGMjAwOCBDb3JyaWdlbmR1bSAzDQoNCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N Cg0KTlVNQkVSOiBGMDgvMDA5Mw0KVElUTEU6IFByb2Nlc3MgZXhpdCBzdGF0dXMgYW5kIGVycm9y IHRlcm1pbmF0aW9uDQpLRVlXT1JEOiBFUlJPUiBTVE9QDQpERUZFQ1QgVFlQRTogRXJyYXR1bQ0K U1RBVFVTOiBJbiBGMjAwOCBDb3JyaWdlbmR1bSAzDQoNClFVRVNUSU9OOg0KDQpNYW55IG9wZXJh dGluZyBzeXN0ZW1zIHRvZGF5IChlLmcuIFBvc2l4LXJlbGF0ZWQgb25lcykgdXNlIGEgcHJvY2Vz cw0KZXhpdCBzdGF0dXMgb2YgemVybyB0byBpbmRpY2F0ZSBzdWNjZXNzZnVsIGV4ZWN1dGlvbiwg d2hlcmVhcyBub256ZXJvDQppbmRpY2F0ZXMgYW4gZXJyb3IuICAoT2NjYXNpb25hbGx5IG5vbnpl cm8gdmFsdWVzLCBlLmcuIDEsIGFsc28NCmluZGljYXRlIHN1Y2Nlc3MuKQ0KDQpGb3J0cmFuIFNU T1AgYW5kIEVSUk9SIFNUT1Agd2l0aCBhbiBpbnRlZ2VyIDxzdG9wLWNvZGU+IGFyZQ0KcmVjb21t ZW5kZWQgdG8gdXNlIHRoZSA8c3RvcC1jb2RlPiBhcyB0aGUgZXhpdCBzdGF0dXMuICBUaGUgU1RP UA0Kc3RhdGVtZW50IHdpdGhvdXQgYW4gaW50ZWdlciA8c3RvcC1jb2RlPiBpcyByZWNvbW1lbmRl ZCB0byBoYXZlIGFuDQpleGl0IHN0YXR1cyBvZiB6ZXJvOyB0aGlzIGNvbmZvcm1zIHRvIGNvbW1v biBwcmFjdGljZSBzaW5jZSBTVE9QDQppbml0aWF0ZXMgbm9ybWFsIHRlcm1pbmF0aW9uLg0KDQpU aGUgc3RhbmRhcmQgaXMgc2lsZW50IG9uIHRoZSBlZmZlY3Qgb2YgZXJyb3IgdGVybWluYXRpb24s IGV4Y2VwdCBpbg0KdGhlIGNhc2Ugb2YgYW4gRVJST1IgU1RPUCAoc2FucyBpbnRlZ2VyIDxzdG9w LWNvZGU+KSB3aGljaCBpcw0KdW5leHBlY3RlZGx5IHJlY29tbWVuZGVkIHRvIGFsc28gcmV0dXJu IGFuIGV4aXQgc3RhdHVzIG9mIHplcm8uDQoNClExLiBJcyB0aGlzIGludGVudGlvbmFsPyAgU2hv dWxkIHRoZSBleGl0IGNvZGUgZm9yIEVSUk9SIFNUT1Agbm90IGhhdmUNCiAgICBiZWVuIHJlY29t bWVuZGVkIHRvIGJlIG5vbnplcm8/DQoNClEyLiBTaG91bGQgdGhlIHJlY29tbWVuZGF0aW9uIGZv ciBhbiBFUlJPUiBTVE9QIG5vdCBhbHNvIGFwcGx5IHRvDQogICAgZXJyb3IgdGVybWluYXRpb24g Ynkgb3RoZXIgY2F1c2VzPw0KDQpBTlNXRVI6DQoNCkExLiBJdCB3YXMgbm90IGludGVuZGVkIHRv IHJlY29tbWVuZCByZXR1cm5pbmcgInN1Y2Nlc3MiIGZvciBlcnJvcg0KICAgIHRlcm1pbmF0aW9u LiAgQW4gZWRpdCBpcyBzdXBwbGllZCB0byBjb3JyZWN0IHRoaXMuDQoNCkEyLiBZZXMsIHRoZSBy ZWNvbW1lbmRhdGlvbiBmb3IgYW4gRVJST1IgU1RPUCB3aXRob3V0IGFuIGludGVnZXINCiAgICA8 c3RvcC1jb2RlPiBzaG91bGQgYWxzbyBhcHBseSB0byBvdGhlciBtZWFucyBvZiBzdGFuZGFyZC1k ZWZpbmVkDQogICAgZXJyb3IgdGVybWluYXRpb24uICBBbiBlZGl0IGlzIHN1cHBsaWVkIHRvIGNv cnJlY3QgdGhpcyBvbWlzc2lvbi4NCg0KRURJVCB0byAxMC0wMDdyMToNCg0KWzMzOjM2K10gMi4z LjUsIGJlZm9yZSBOb3RlIDIuNywgaW5zZXJ0IG5ldyBub3RlDQogICJOT1RFIDIuNmENCiAgIElm IHRoZSBwcm9jZXNzb3Igc3VwcG9ydHMgdGhlIGNvbmNlcHQgb2YgYSBwcm9jZXNzIGV4aXQgc3Rh dHVzLCBpdA0KICAgaXMgcmVjb21tZW5kZWQgdGhhdCBlcnJvciB0ZXJtaW5hdGlvbiBpbml0aWF0 ZWQgb3RoZXIgdGhhbiBieSBhbg0KICAgRVJST1IgU1RPUCBzdGF0ZW1lbnQgc3VwcGxpZXMgYSBw cm9jZXNzb3ItZGVwZW5kZW50IG5vbnplcm8gdmFsdWUNCiAgIGFzIHRoZSBwcm9jZXNzIGV4aXQg c3RhdHVzLiINCntSZWNvbW1lbmRhdGlvbiBmb3IgZXJyb3IgdGVybWluYXRpb24gb3RoZXIgdGhh biBieSBFUlJPUiBTVE9QLn0NCg0KWzE4ODoxMCsxMF0gSW4gOC40LCBOb3RlIDguMzAsDQogICAg ICAgICAgICBCZWZvcmUgImlzIG9mIHR5cGUgY2hhcmFjdGVyIG9yIGRvZXMgbm90IGFwcGVhciIN CiAgICAgICAgICAgIEluc2VydCAiaW4gYSBTVE9QIHN0YXRlbWVudCIuDQp7TGltaXQgemVybyBy ZWNvbW1lbmRhdGlvbiB0byBTVE9QLCBub3QgRVJST1IgU1RPUC59DQoNClsxODg6MTArMTErXSBB dCB0aGUgZW5kIG9mIE5vdGUgOC4zMCwgaW5zZXJ0IGEgbmV3IHBhcmFncmFwaA0KICAiSWYgdGhl IDxzdG9wLWNvZGU+IGluIGFuIEVSUk9SIFNUT1Agc3RhdGVtZW50IGlzIG9mIHR5cGUgY2hhcmFj dGVyDQogICBvciBkb2VzIG5vdCBhcHBlYXIsIGl0IGlzIHJlY29tbWVuZGVkIHRoYXQgYSBwcm9j ZXNzb3ItZGVwZW5kZW50DQogICBub256ZXJvIHZhbHVlIGJlIHN1cHBsaWVkIGFzIHRoZSBwcm9j ZXNzIGV4aXQgc3RhdHVzLCBpZiB0aGUNCiAgIHByb2Nlc3NvciBzdXBwb3J0cyB0aGF0IGNvbmNl cHQuIg0Ke1NwZWNpZnkgbm9uemVybyBleGl0IGZvciBFUlJPUiBTVE9QLn0NCg0KWzQ1OToxNytd IEFmdGVyIHRoZSBidWxsZXQgaXRlbSAiaG93IHNvb24gYW4gaW1hZ2UgdGVybWluYXRlcyBpZg0K ICBhbm90aGVyIGltYWdlIGluaXRpYXRlcyBlcnJvciB0ZXJtaW5hdGlvbiAoMi4zLjUpOyINCiAg SW5zZXJ0IG5ldyBidWxsZXQgcG9pbnQNCiAgInRoZSByZWNvbW1lbmRlZCBwcm9jZXNzIGV4aXQg c3RhdHVzIHdoZW4gZXJyb3IgdGVybWluYXRpb24gaXMNCiAgIGluaXRpYXRlZCBvdGhlciB0aGFu IGJ5IGFuIEVSUk9SIFNUT1Agc3RhdGVtZW50IHdpdGggYW4gaW50ZWdlcg0KICAgPHN0b3AtY29k ZT4gKDIuMy41KTsiDQp7UHJvYmFibHkgdW5uZWNlc3NhcnksIHNlZWluZyBob3cgaXQgaXMgb25s eSBhIHJlY29tbWVuZGF0aW9uLCBidXQNCiBtYXliZSBhIGdvb2QgaWRlYSBhbnl3YXkufQ0KDQpT VUJNSVRURUQgQlk6IEJpbGwgTG9uZy9NYWxjb2xtIENvaGVuDQoNCkhJU1RPUlk6IDEzLTI2OCAg ICBtMjAxICBGMDgvMDA5MyBzdWJtaXR0ZWQgLSBwYXNzZWQgYnkgSjMgbWVldGluZw0KICAgICAg ICAgMTMtMzEzICAgIG0yMDIgIFBhc3NlZCBhcyBhbWVuZGVkIGJ5IEozIGxldHRlciBiYWxsb3Qg MTMtMjk3DQogICAgICAgICBOMTk5NCAgICAgbTIwMiAgUGFzc2VkIGFzIGFtZW5kZWQgYnkgV0c1 IGJhbGxvdCA3IE4xOTkxLzkyLzk0DQoqKiBbNDYwOjI0K10gbW92ZWQgdG8gWzQ1OToxNytdDQog ICAgICAgICBOMjAwMiAgICAgbTIwMyAgSW4gRjIwMDggQ29ycmlnZW5kdW0gMw0KDQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQoNCk5VTUJFUjogRjA4LzAwOTQNClRJVExFOiBQcm9jZWR1cmUgc3RhdGVtZW50IGFu ZCBkb3VibGUgY29sb24NCktFWVdPUkQ6IFBST0NFRFVSRSwgSW50ZXJmYWNlIGJsb2NrDQpERUZF Q1QgVFlQRTogRXJyYXR1bQ0KU1RBVFVTOiBJbiBGMjAwOCBDb3JyaWdlbmR1bSAzDQoNClFVRVNU SU9OOg0KDQpGb3J0cmFuIDIwMDMgZGlkIG5vdCBwZXJtaXQgYSBkb3VibGUgY29sb24gaW4gdGhl IDxwcm9jZWR1cmUtc3RtdD4gaW4NCmFuIGludGVyZmFjZSBibG9jay4gIEZvcnRyYW4gMjAwOCBz eW50YXggc2VlbXMgdG8gYWxsb3cgdGhpcywgYnV0IGl0DQppcyBub3QgbWVudGlvbmVkIGluIHRo ZSBJbnRyb2R1Y3Rpb24gYXMgYSBuZXcgRjIwMDggZmVhdHVyZS4NCg0KSXMgdGhpcyBhcHBhcmVu dCBuZXcgZmVhdHVyZSBkZWxpYmVyYXRlPw0KDQpBTlNXRVI6DQoNClllcywgdGhpcyBuZXcgZmVh dHVyZSB3YXMgaW50ZW5kZWQuDQoNCkFuIGVkaXQgaXMgcHJvdmlkZWQgdG8gYWRkIG1lbnRpb24g b2YgaXQgdG8gdGhlIEludHJvZHVjdGlvbi4NCg0KRURJVDoNCg0KW3h2aV0gSW50cm9kdWN0aW9u LCBwMiwgIlByb2dyYW1zIGFuZCBwcm9jZWR1cmVzOiIgYnVsbGV0LA0KICAgICAgQWZ0ZXIgImVt cHR5IENPTlRBSU5TIHNlY3Rpb24gaXMgYWxsb3dlZC4iDQogICAgICBJbnNlcnQgIkEgUFJPQ0VE VVJFIHN0YXRlbWVudCBjYW4gaGF2ZSBhIGRvdWJsZSBjb2xvbiBiZWZvcmUNCiAgICAgICAgICAg ICAgdGhlIGZpcnN0IHByb2NlZHVyZSBuYW1lLiINCg0KU1VCTUlUVEVEIEJZOiBNYWxjb2xtIENv aGVuDQoNCkhJU1RPUlk6IDEzLTI3NCAgICBtMjAxICBGMDgvMDA5NCBzdWJtaXR0ZWQgLSBwYXNz ZWQgYnkgSjMgbWVldGluZw0KICAgICAgICAgMTMtMzEzICAgIG0yMDIgIFBhc3NlZCBieSBKMyBs ZXR0ZXIgYmFsbG90IDEzLTI5Nw0KICAgICAgICAgTjE5OTQgICAgIG0yMDIgIFBhc3NlZCBieSBX RzUgYmFsbG90IDcgTjE5OTEvOTIvOTQNCiAgICAgICAgIE4yMDAyICAgICBtMjAzICBJbiBGMjAw OCBDb3JyaWdlbmR1bSAzDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KTlVNQkVSOiBGMDgvMDA5NQ0KVElU TEU6IElzIFBSRVNFTlQgYWxsb3dlZCBpbiBzcGVjaWZpY2F0aW9uIGFuZCBjb25zdGFudCBleHBy ZXNzaW9ucw0KS0VZV09SRDogUFJFU0VOVCwgb3B0aW9uYWwgZHVtbXkgYXJndW1lbnQNCkRFRkVD VCBUWVBFOiBFcnJhdHVtDQpTVEFUVVM6IEluIEYyMDA4IENvcnJpZ2VuZHVtIDMNCg0KUVVFU1RJ T046DQoNClExLiBDb25zaWRlcg0KDQogIFN1YnJvdXRpbmUgczEoYSkNCiAgICBJbnRlZ2VyLE9w dGlvbmFsIDo6IGENCiAgICBMb2dpY2FsLFBhcmFtZXRlciA6OiB4ID0gUHJlc2VudChhKQ0KICAg IFByaW50ICoseA0KICBFbmQgU3Vicm91dGluZQ0KDQpEb2VzIHRoaXMgcHJvZ3JhbSB1bml0IGNv bmZvcm0gdG8gdGhlIHN0YW5kYXJkPw0KNy4xLjEyIGl0ZW0gKDQpIHBlcm1pdHMNCiAgImEgc3Bl Y2lmaWNhdGlvbiBpbnF1aXJ5IHdoZXJlIGVhY2ggZGVzaWduYXRvciBvciBmdW5jdGlvbiBhcmd1 bWVudA0KICAgaXMgLi4uDQogICAgIChiKSBhIHZhcmlhYmxlIHdob3NlIHByb3BlcnRpZXMgaW5x dWlyZWQgYWJvdXQgYXJlIG5vdA0KICAgICAgICAoaSkgYXNzdW1lZCwNCiAgICAgICAgKGlpKSBk ZWZlcnJlZCwgb3INCiAgICAgICAgKGlpaSkgZGVmaW5lZCBieSBhbiBleHByZXNzaW9uIHRoYXQg aXMgbm90IGEgY29uc3RhbnQNCiAgICAgICAgICAgICAgZXhwcmVzc2lvbiwiDQpQUkVTRU5UIGlz IGEgc3BlY2lmaWNhdGlvbiBpbnF1aXJ5IChiZWNhdXNlIGl0IGlzIGFuIGludHJpbnNpYyBpbnF1 aXJ5DQpmdW5jdGlvbiksIGFuZCB0aGUgc3RhbmRhcmQgZG9lcyBub3Qgc2F5IHRoYXQgdGhlICJw cmVzZW5jZSIgb2YgYW4NCm9wdGlvbmFsIGR1bW15IGFyZ3VtZW50IGlzIGFuIGFzc3VtZWQgb3Ig ZGVmZXJyZWQgYXR0cmlidXRlLCBhbmQgaXQNCmRvZXMgbm90IGFwcGVhciB0byBiZSAiZGVmaW5l ZCBieSBhbiBleHByZXNzaW9uIiBlaXRoZXIuDQoNCk9uIHRoZSBvdGhlciBoYW5kLCB0aGUgc3Rh bmRhcmQgZG9lcyBub3Qgc2F5IGFueXRoaW5nIGFib3V0IHdoYXQga2luZA0Kb2YgcHJvcGVydHkg dGhlIHByZXNlbmNlIGlzLg0KDQpRMi4gQ29uc2lkZXINCg0KICBTdWJyb3V0aW5lIHMyKGEpDQog ICAgSW50ZWdlcixPcHRpb25hbCA6OiBhDQogICAgUmVhbCB4KE1lcmdlKDIsMyxQcmVzZW50KGEp KSkNCiAgICBJZiAoUHJlc2VudChhKSkgVGhlbg0KICAgICAgeCA9IFsgMSwyLGEgXQ0KICAgIEVs c2UNCiAgICAgIHggPSBbIDEsMiBdDQogICAgRW5kIElmDQogICAgUHJpbnQgKix4DQogIEVuZCBT dWJyb3V0aW5lDQoNCkRvZXMgdGhpcyBwcm9ncmFtIHVuaXQgY29uZm9ybSB0byB0aGUgc3RhbmRh cmQ/ICBJdCBhcHBlYXJzIHRvIHNhdGlzZnkNCnRoZSBydWxlcyBmb3Igc3BlY2lmaWNhdGlvbiBl eHByZXNzaW9uLCBzaW1pbGFybHkgdG8gaG93IGl0IHNhdGlzZmllcw0KdGhlIHJ1bGVzIGZvciBh IGNvbnN0YW50IGV4cHJlc3Npb24sIGJ1dCB0aGVuIHRoZSBzdGFuZGFyZCBpcyBzaWxlbnQNCmFz IHRvIHdoYXQgc29ydCBvZiBwcm9wZXJ0eSAicHJlc2VuY2UiIGlzLi4uDQoNClEzLiBDb25zaWRl cg0KDQogIFN1YnJvdXRpbmUgczMoYSkNCiAgICBDaGFyYWN0ZXIoKiksT3B0aW9uYWwgOjogYQ0K ICAgIFJlYWwgeChMZW4oYSkpDQogICAgUHJpbnQgKixTaXplKHgpDQogIEVuZCBTdWJyb3V0aW5l DQoNCkRvZXMgdGhpcyBwcm9ncmFtIHVuaXQgY29uZm9ybSB0byB0aGUgc3RhbmRhcmQ/ICBVc2lu ZyB0aGUgc2FtZQ0KcmVhc29uaW5nIGFzIFExIGFuZCBRMiwgaXQgYXBwZWFycyB0byBjb25mb3Jt LCBidXQgaWYgQSBpcyBhYnNlbnQsDQpMRU4oQSkgaXMgbm90IHBlcm1pdHRlZCBieSAxMi41LjIu MTIuDQoNCkFOU1dFUjoNCg0KQTEuIFByb2dyYW0gdW5pdCBTMSB3YXMgbm90IGludGVuZGVkIHRv IGNvbmZvcm0gdG8gdGhlIHN0YW5kYXJkLg0KICAgIEFuIGVkaXQgaXMgcHJvdmlkZWQgdG8gY2xh cmlmeSB0aGF0IHRoaXMgaXMgbm90IHZhbGlkLg0KDQpBMi4gUHJvZ3JhbSB1bml0IFMyIHdhcyBp bnRlbmRlZCB0byBjb25mb3JtIHRvIHRoZSBzdGFuZGFyZC4NCiAgICBBbiBlZGl0IGlzIHByb3Zp ZGVkIHRvIGNsYXJpZnkgdGhhdCB0aGlzIGlzIHZhbGlkLg0KDQpBMy4gUHJvZ3JhbSB1bml0IFMz IHdhcyBub3QgaW50ZW5kZWQgdG8gY29uZm9ybSB0byB0aGUgc3RhbmRhcmQuDQogICAgQW4gZWRp dCBpcyBwcm92aWRlZCB0byBjbGFyaWZ5IHRoYXQgdGhpcyBpcyBub3QgdmFsaWQuDQoNCkVESVRT IHRvIDEwLTAwN3IxOg0KDQpbMTUwOjI0XSA3LjEuMTFwMiwgaXRlbSAoOSkoYikNCiAgYWZ0ZXIg InZhcmlhYmxlIiBpbnNlcnQgIix0aGF0IGlzIG5vdCBhbiBvcHRpb25hbCBkdW1teSBhcmd1bWVu dCwgIi4NCntQcmV2ZW50IHNwZWNpZmljYXRpb24gZW5xdWlyaWVzIG9uIG9wdGlvbmFsIGR1bW15 IGFyZ3VtZW50cy59DQoNClsxNTA6MjcrXSA3LjEuMTFwMiwgYWZ0ZXIgaXRlbSAoOSkgZW50aXJl bHksDQogIGluc2VydCAiKDlhKSBhIHNwZWNpZmljYXRpb24gaW5xdWlyeSB0aGF0IGlzIGEgY29u c3RhbnQgZXhwcmVzc2lvbiwNCiAgICAgICAgICAoOWIpIGEgcmVmZXJlbmNlIHRvIHRoZSBpbnRy aW5zaWMgZnVuY3Rpb24gUFJFU0VOVCwiDQp7QWxsb3cgaW5xdWlyaWVzIG9uIG9wdGlvbmFsIGR1 bW15IGFyZ3VtZW50cyB0aGF0IHdpbGwgbm90IHZpb2xhdGUgdGhlDQogcnVsZXMgaW4gMTIuNS4y LjEyIHdoZW4gdGhlIGR1bW15IGlzIGFic2VudCwNCiBhbmQgYWxsb3cgUFJFU0VOVCB0byBiZSB1 c2VkLn0NCg0KWzE1MDozN10gNy4xLjExcDQsIGl0ZW0gKDEpDQogIGFmdGVyICJpbnRyaW5zaWMg aW5xdWlyeSBmdW5jdGlvbiIgaW5zZXJ0ICJvdGhlciB0aGFuIFBSRVNFTlQiLg0Ke1JlbW92ZSBQ UkVTRU5UIGZyb20gbGlzdCBvZiBzcGVjaWZpY2F0aW9uIGlucXVpcmllcywgdGhpcyBmaXhlcw0K IGNvbnN0YW50IGV4cHJlc3Npb25zLn0NCg0KU1VCTUlUVEVEIEJZOiBNYWxjb2xtIENvaGVuL1Zh biBTbnlkZXINCg0KSElTVE9SWTogMTMtMjc4ICAgIG0yMDEgIEYwOC8wMDk1IHN1Ym1pdHRlZA0K ICAgICAgICAgMTMtMjc4cjEgIG0yMDEgIFBhc3NlZCBieSBKMyBtZWV0aW5nDQogICAgICAgICAx My0zMTMgICAgbTIwMiAgUGFzc2VkIGJ5IEozIGxldHRlciBiYWxsb3QgMTMtMjk3DQogICAgICAg ICBOMTk5NCAgICAgbTIwMiAgUGFzc2VkIGJ5IFdHNSBiYWxsb3QgNyBOMTk5MS85Mi85NA0KICAg ICAgICAgTjIwMDIgICAgIG0yMDMgIEluIEYyMDA4IENvcnJpZ2VuZHVtIDMNCg0KLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQ0KDQpOVU1CRVI6IEYwOC8wMDk2DQpUSVRMRTogSXMgVkFMVUUgcGVybWl0dGVkIGZvciBh biBhcnJheSBpbiBhIEJJTkQoQykgcHJvY2VkdXJlPw0KS0VZV09SRDogYXJyYXksIEJJTkQoQyks IFZBTFVFDQpERUZFQ1QgVFlQRTogRXJyYXR1bQ0KU1RBVFVTOiBJbiBGMjAwOCBDb3JyaWdlbmR1 bSAzDQoNClFVRVNUSU9OOg0KDQpDb25zaWRlcg0KDQogIElOVEVSRkFDRQ0KICAgIFNVQlJPVVRJ TkUgcyhhKSBCSU5EKEMpDQogICAgICBVU0UgSVNPX0NfQklORElORw0KICAgICAgUkVBTChDX2Zs b2F0KSxWQUxVRSA6OiBhKDEwMCkNCiAgICBFTkQNCiAgRU5EIElOVEVSRkFDRQ0KDQpRMS4gRG9l cyB0aGlzIGludGVyZmFjZSBjb25mb3JtIHRvIHRoZSBGb3J0cmFuIHN0YW5kYXJkPw0KDQpRMi4g SWYgc28sIHdoYXQgcHJvdG90eXBlIGRvZXMgaXQgaW50ZXJvcGVyYXRlIHdpdGg/DQoNCkFOU1dF UjoNCg0KQTEuIEMgZG9lcyBub3QgaGF2ZSBhcnJheXMgdGhhdCBhcmUgcGFzc2VkIGJ5IHZhbHVl LCBzbyB0aGlzIHdhcyBub3QNCiAgICBpbnRlbmRlZCB0byBjb25mb3JtIHRvIHRoZSBGb3J0cmFu IHN0YW5kYXJkLiAgQW4gZWRpdCBpcyBwcm92aWRlZA0KICAgIHRvIGNsYXJpZnkgdGhpcy4NCg0K QTIuIFRoaXMgcXVlc3Rpb24gaXMgbW9vdC4NCg0KRURJVFMgdG8gMTAtMDA3cjE6DQoNClszMDY6 MzFdIDEyLjYuMi4yLCBDMTI1NSwgYWZ0ZXIgIigxNS4zLjUsIDE1LjMuNikiIGluc2VydA0KICAi dGhhdCBpcyBub3QgYW4gYXJyYXkgd2l0aCB0aGUgVkFMVUUgYXR0cmlidXRlLCINCntEbyBub3Qg cGVybWl0IEJJTkQoQykgdG8gaGF2ZSBhcnJheXMgYnkgdmFsdWUufQ0Ke05vdGU6IFRTIDI5MTEz IHJlcGxhY2VzIHRoaXMgc2FtZSBjb25zdHJhaW50Ln0NCg0KWzQzMzoxMl0gMTUuMy43cDIsIGl0 ZW0gKDQpLCBhZnRlciAiYW55IiBpbnNlcnQgInNjYWxhciIuDQp7RG8gbm90IGRlc2NyaWJlIGFy cmF5cyBieSB2YWx1ZSBpbiBhIHByb3RvdHlwZS59DQoNClNVQk1JVFRFRCBCWTogTWFsY29sbSBD b2hlbg0KDQpISVNUT1JZOiAxMy0yODQgICAgbTIwMSAgRjA4LzAwOTYgc3VibWl0dGVkIC0gcGFz c2VkIGJ5IEozIG1lZXRpbmcNCiAgICAgICAgIDEzLTMxMyAgICBtMjAyICBQYXNzZWQgYXMgYW1l bmRlZCBieSBKMyBsZXR0ZXIgYmFsbG90IDEzLTI5Nw0KICAgICAgICAgTjE5OTQgICAgIG0yMDIg IFBhc3NlZCBieSBXRzUgYmFsbG90IDcgTjE5OTEvOTIvOTQNCiAgICAgICAgIE4yMDAyICAgICBt MjAzICBJbiBGMjAwOCBDb3JyaWdlbmR1bSAzDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KTlVNQkVSOiBG MDgvMDA5Nw0KVElUTEU6IElzIHRoZSBvcHRpb25hbCBjb21tYSBhbGxvd2VkIGluIFRZUEUoQ0hB UkFDVEVSKi4uLik/DQpLRVlXT1JEOiBUWVBFLCBDSEFSQUNURVINCkRFRkVDVCBUWVBFOiBFcnJh dHVtDQpTVEFUVVM6IEluIEYyMDA4IENvcnJpZ2VuZHVtIDMNCg0KUVVFU1RJT046DQoNCkNvbnNp ZGVyDQoNCiAgQ0hBUkFDVEVSKjEsIEENCiAgVFlQRShDSEFSQUNURVIqMSwpIEINCg0KVGhlIG9w dGlvbmFsIGNvbW1hIGluIHRoZSBkZWNsYXJhdGlvbiBvZiBCIGxvb2tzIHVnbHkuDQpJcyB0aGlz IGRlbGliZXJhdGU/DQoNCkFOU1dFUjoNCg0KTm8sIHRoaXMgc3ludGF4IHdhcyBpbmFkdmVydGVu dGx5IGFsbG93ZWQuICBBbiBlZGl0IGlzIHByb3ZpZGVkIHRvDQpyZW1vdmUgaXQuDQoNCkVESVRT IHRvIDEwLTAwN3IxOg0KDQpbNTE6MjYrXSA0LjMuMS4xLCBhZnRlciBDNDA2LCBpbnNlcnQgbmV3 IGNvbnN0cmFpbnQNCiAgIkM0MDZhIChSNDAzKSBJbiBUWVBFKDxpbnRyaW5zaWMtdHlwZS1zcGVj PikgdGhlDQogICAgICAgICA8aW50cmluc2ljLXR5cGUtc3BlYz4gc2hhbGwgbm90IGVuZCB3aXRo IGEgY29tbWEuIg0KDQpTVUJNSVRURUQgQlk6IE1hbGNvbG0gQ29oZW4NCg0KSElTVE9SWTogMTMt Mjg1ICAgIG0yMDEgIEYwOC8wMDk3IHN1Ym1pdHRlZCAtIHBhc3NlZCBieSBKMyBtZWV0aW5nDQog ICAgICAgICAxMy0zMTMgICAgbTIwMiAgUGFzc2VkIGJ5IEozIGxldHRlciBiYWxsb3QgMTMtMjk3 DQogICAgICAgICBOMTk5NCAgICAgbTIwMiAgUGFzc2VkIGJ5IFdHNSBiYWxsb3QgNyBOMTk5MS85 Mi85NA0KICAgICAgICAgTjIwMDIgICAgIG0yMDMgIEluIEYyMDA4IENvcnJpZ2VuZHVtIDMNCg0K LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KDQpOVU1CRVI6IEYwOC8wMDk4DQpUSVRMRTogSG93IG1hbnkgQUNRVUlS RURfTE9DSz0gc3BlY2lmaWVycyBhcmUgYWxsb3dlZCBpbiBhIExPQ0sgc3RtdD8NCktFWVdPUkQ6 IExPQ0sNCkRFRkVDVCBUWVBFOiBFcnJhdHVtDQpTVEFUVVM6IEluIEYyMDA4IENvcnJpZ2VuZHVt IDMNCg0KUVVFU1RJT046DQoNCkNvbnNpZGVyDQoNCiAgTE9DSyAoIHgsIEFDUVVJUkVEX0xPQ0s9 bjEsIEFDUVVJUkVEX0xPQ0s9bjIsIFNUQVQ9bjMsIFNUQVQ9bjQgKQ0KDQpJcyB0aGlzIGNvbmZv cm1pbmc/DQoNCk11bHRpcGxlIFNUQVQ9IGFyZSBwcm9oaWJpdGVkIGZyb20gYSA8c3luYy1zdGF0 LWxpc3Q+LCBidXQgdGhpcyBpcyBhDQo8bG9jay1zdGF0LWxpc3Q+IHNvIHRoYXQgZG9lcyBub3Qg YXBwbHkuICBUaGVyZSBpcyBubyBjb25zdHJhaW50DQphbnl3aGVyZSBhYm91dCBob3cgbWFueSBB Q1FVSVJFRF9MT0NLPSBzcGVjaWZpZXJzIG1heSBhcHBlYXIuDQoNCkFOU1dFUjoNCg0KTm8sIHRo aXMgd2FzIG5vdCBpbnRlbmRlZCB0byBiZSBjb25mb3JtaW5nLiAgTm8gc3BlY2lmaWVyIHdhcyBp bnRlbmRlZA0KdG8gYmUgYWxsb3dlZCB0byBhcHBlYXIgbW9yZSB0aGFuIG9uY2UuDQoNCkVESVRT IHRvIDEwLTAwN3IxOg0KDQpbMTk0OjIrXSA4LjUuNiwgYWZ0ZXIgUjg2NCwgaW5zZXJ0IG5ldyBj b25zdHJhaW50DQogICJDODUyYSBObyBzcGVjaWZpZXIgc2hhbGwgYXBwZWFyIG1vcmUgdGhhbiBv bmNlIGluIGEgZ2l2ZW4NCiAgICAgICAgIDxsb2NrLXN0YXQtbGlzdD4uIg0KDQpTVUJNSVRURUQg Qlk6IE1hbGNvbG0gQ29oZW4NCg0KSElTVE9SWTogMTMtMjg2ICAgIG0yMDEgIEYwOC8wMDk4IHN1 Ym1pdHRlZCAtIHBhc3NlZCBieSBKMyBtZWV0aW5nDQogICAgICAgICAxMy0zMTMgICAgbTIwMiAg UGFzc2VkIGJ5IEozIGxldHRlciBiYWxsb3QgMTMtMjk3DQogICAgICAgICBOMTk5NCAgICAgbTIw MiAgUGFzc2VkIGJ5IFdHNSBiYWxsb3QgNyBOMTk5MS85Mi85NA0KICAgICAgICAgTjIwMDIgICAg IG0yMDMgIEluIEYyMDA4IENvcnJpZ2VuZHVtIDMNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpOVU1CRVI6 IEYwOC8wMDk5DQpUSVRMRTogVk9MQVRJTEUgaW4gc3BlY2lmaWNhdGlvbiBleHByZXNzaW9ucw0K S0VZV09SRDogVk9MQVRJTEUsIHNwZWNpZmljYXRpb24gZXhwcmVzc2lvbg0KREVGRUNUIFRZUEU6 IEludGVycHJldGF0aW9uLg0KU1RBVFVTOiBQYXNzZWQgYnkgV0c1IGJhbGxvdA0KDQpRVUVTVElP TjoNCg0KSXMgdGhlIGZvbGxvd2luZyBzdWJwcm9ncmFtIHJlcXVpcmVkIGFsd2F5cyB0byBwcmlu dCAiVCBUIj8NCg0KICBzdWJyb3V0aW5lIFdvYmJseSAoIE4gKQ0KICAgIGludGVnZXIsIHZvbGF0 aWxlIDo6IE4NCiAgICBpbnRlZ2VyIDo6IEEgKCBuLCBuICkNCiAgICBpbnRlZ2VyIDo6IEIgKCBu ICogbiApDQogICAgcHJpbnQgKiwgc2l6ZShhKSA9PSBzaXplKGIpLCBzaXplKGEsMSkgPT0gc2l6 ZShhLDIpDQogIGVuZCBzdWJyb3V0aW5lIFdvYmJseQ0KDQpBTlNXRVI6DQoNCk5vLg0KDQpUaGVy ZSBhcmUgdGhyZWUgc3BlY2lmaWNhdGlvbiBleHByZXNzaW9ucyBpbiB0aGUgc3Vicm91dGluZSwg YW5kIHRoZQ0Kdm9sYXRpbGUgdmFyaWFibGUgTiBhcHBlYXJzIGluIGVhY2ggb2YgdGhlbS4gIFNp bmNlLCBiZWluZyB2b2xhdGlsZSwNCnRoZSB2YXJpYWJsZSBOIG1pZ2h0IGhhdmUgYSBkaWZmZXJl bnQgdmFsdWUgZWFjaCB0aW1lIGl0IGlzDQpyZWZlcmVuY2VkLCB0aGVzZSB0aHJlZSBzcGVjaWZp Y2F0aW9uIGV4cHJlc3Npb25zIG1pZ2h0IHJlY2VpdmUNCmRpZmZlcmVudCB2YWx1ZXMgZm9yIHRo ZWlyIHJlZmVyZW5jZXMgdG8gTi4gIElmIHRoYXQgaGFwcGVucywgdGhlDQphcnJheSBzaXplcyBt aWdodCB3ZWxsIGJlIGRpZmZlcmVudC4NCg0KRURJVFM6DQoNCk5vbmUuDQoNClNVQk1JVFRFRCBC WTogVmFuIFNueWRlcg0KDQpISVNUT1JZOiAxMy0yOThyMSAgbTIwMiAgRjA4LzAwOTkgc3VibWl0 dGVkDQogICAgICAgICAxMy0yOThyMiAgbTIwMiAgUmV2aXNlZCBhbnN3ZXIgLSBwYXNzZWQgYnkg SjMgbWVldGluZw0KICAgICAgICAgMTQtMTkyICAgIG0yMDQgIFBhc3NlZCBieSBKMyBsZXR0ZXIg YmFsbG90IDE0LTE0Ng0KICAgICAgICAgTjIwNDcgICAgIG0yMDYgIFBhc3NlZCBieSBXRzUgYmFs bG90IDggTjIwNDIvNDMNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpOVU1CRVI6IEYwOC8wMTAwDQpUSVRM RTogSU1QT1JUIHN0YXRlbWVudCBhbmQgcHJpb3IgZXhwbGljaXQgZGVjbGFyYXRpb24NCktFWVdP UkQ6IElNUE9SVCBzdGF0ZW1lbnQsIHByaW9yIGV4cGxpY2l0IGRlY2xhcmF0aW9uDQpERUZFQ1Qg VFlQRTogRXJyYXR1bQ0KU1RBVFVTOiBQYXNzZWQgYnkgV0c1IGJhbGxvdA0KDQpRVUVTVElPTjoN Cg0KUTEuIERvZXMgdGhlIGZvbGxvd2luZyBwcm9ncmFtIGZyYWdtZW50IGNvbmZvcm0gdG8gdGhl IDIwMDggc3RhbmRhcmQ/DQoNCiAgc3Vicm91dGluZSBTICggUCApDQogICAgaW50ZXJmYWNlDQog ICAgICBzdWJyb3V0aW5lIFEgKCBYICkNCiAgICAgICAgcmVhbCwgaW50ZW50KGlub3V0KSA6OiBY DQogICAgICBlbmQgc3Vicm91dGluZSBRDQogICAgZW5kIGludGVyZmFjZQ0KICAgIGludGVyZmFj ZQ0KICAgICAgc3Vicm91dGluZSBQICggQSApDQogICAgICAgIGltcG9ydA0KICAgICAgICBwcm9j ZWR1cmUgKFIpIDo6IEENCiAgICAgIGVuZCBzdWJyb3V0aW5lIFANCiAgICBlbmQgaW50ZXJmYWNl DQogICAgcHJvY2VkdXJlIChRKSA6OiBSDQogIGVuZCBzdWJyb3V0aW5lIFMNCg0KMTIuNC4zLjNw MiBzYXlzICJJZiBhbiBlbnRpdHkgdGhhdCBpcyBtYWRlIGFjY2Vzc2libGUgYnkgdGhpcyBtZWFu cyBpcw0KYWNjZXNzZWQgYnkgaG9zdCBhc3NvY2lhdGlvbiBhbmQgaXMgZGVmaW5lZCBpbiB0aGUg aG9zdCBzY29waW5nIHVuaXQsIGl0DQpzaGFsbCBiZSBleHBsaWNpdGx5IGRlY2xhcmVkIHByaW9y IHRvIHRoZSBpbnRlcmZhY2UgYm9keS4iDQoNCkhvd2V2ZXIsIGFsdGhvdWdoIHRoZSBwcm9jZWR1 cmUgUiBpcyBkZWNsYXJlZCBpbiB0aGUgaG9zdCBzY29waW5nIHVuaXQNCml0IGlzIG5vdCBkZWZp bmVkIGluIHRoZSBob3N0IHNjb3BpbmcgdW5pdCwgc28gdGhpcyBpcyBpbmVmZmVjdGl2ZS4NCg0K UTIuIElmIHRoZSBJTVBPUlQgc3RhdGVtZW50IHdlcmUgY2hhbmdlZCB0byAiSU1QT1JUIFIiLCB3 b3VsZCB0aGF0IGJlDQogICAgY29uZm9ybWluZz8NCg0KMTIuNC4zLjNwMSBzYXlzDQogICJBbiBl bnRpdHkgdGhhdCBpcyBpbXBvcnRlZCBpbiB0aGlzIG1hbm5lciBhbmQgaXMgZGVmaW5lZCBpbiB0 aGUNCiAgIGhvc3Qgc2NvcGluZyB1bml0IHNoYWxsIGJlIGV4cGxpY2l0bHkgZGVjbGFyZWQgcHJp b3IgdG8gdGhlDQogICBpbnRlcmZhY2UgYm9keS4iDQoNCkFnYWluLCBwcm9jZWR1cmUgUiBpcyBk ZWNsYXJlZCBidXQgbm90IGRlZmluZWQgaW4gdGhlIGhvc3Qgc2NvcGluZw0KdW5pdCwgc28gdGhp cyByZXF1aXJlbWVudCBpcyBpbmVmZmVjdGl2ZS4NCg0KQU5TV0VSOg0KDQpUaGVzZSBleGFtcGxl cyB3ZXJlIG5vdCBpbnRlbmRlZCB0byBjb25mb3JtIHRvIHRoZSBGb3J0cmFuIHN0YW5kYXJkLg0K QW4gZWRpdCBpcyBwcm92aWRlZC4NCg0KRURJVFM6DQoNClsyODI6N10gMTIuNC4zLjNwMSwgYWZ0 ZXIgImltcG9ydGVkIGluIHRoaXMgbWFubmVyIGFuZCBpcyINCiAgICAgICAgY2hhbmdlICJkZWZp bmVkIiB0byAiZGVjbGFyZWQiLg0KDQpbMjgyOjE0XSBwMiwgYWZ0ZXIgImlzIGFjY2Vzc2VkIGJ5 IGhvc3QgYXNzb2NpYXRpb24gYW5kIGlzIg0KICAgICAgICAgY2hhbmdlICJkZWZpbmVkIiB0byAi ZGVjbGFyZWQiLg0KDQpTVUJNSVRURUQgQlk6IFZhbiBTbnlkZXINCg0KSElTVE9SWTogMTMtMzA1 ICAgIG0yMDIgIEYwOC8wMTAwIHN1Ym1pdHRlZA0KICAgICAgICAgMTMtMzA1cjEgIG0yMDIgIFJl dmlzZWQgYW5zd2VyICYgZWRpdHMgLSBwYXNzZWQgYnkgSjMgbWVldGluZw0KICAgICAgICAgMTQt MTkyICAgIG0yMDQgIFBhc3NlZCBieSBKMyBsZXR0ZXIgYmFsbG90IDE0LTE0Ng0KICAgICAgICAg TjIwNDcgICAgIG0yMDYgIFBhc3NlZCBieSBXRzUgYmFsbG90IDggTjIwNDIvNDMNCg0KLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQ0KDQpOVU1CRVI6IEYwOC8wMTAxDQpUSVRMRTogTkFNRUxJU1QgYW5kIG11bHRpcGxl IG9jY3VycmVuY2VzIG9mIGEgdmFyaWFibGUNCktFWVdPUkQ6IE5BTUVMSVNUDQpERUZFQ1QgVFlQ RTogRXJyYXR1bQ0KU1RBVFVTOiBQYXNzZWQgYnkgV0c1IGJhbGxvdA0KDQpRVUVTVElPTjoNCg0K Q29uc2lkZXINCg0KICBQcm9ncmFtIHAxDQogICAgUmVhbCA6OiB4ID0gMywgeSA9IDQNCiAgICBO YW1lbGlzdCAvbi8geCwgeQ0KICAgIFdyaXRlICgqLG4pDQogIEVuZCBQcm9ncmFtDQoNCkFjY29y ZGluZyB0byA1LjYsDQogICJUaGUgb3JkZXIgaW4gd2hpY2ggdGhlIHZhcmlhYmxlcyBhcmUgc3Bl Y2lmaWVkIGluIHRoZSBOQU1FTElTVA0KICAgc3RhdGVtZW50IGRldGVybWluZXMgdGhlIG9yZGVy IGluIHdoaWNoIHRoZSB2YWx1ZXMgYXBwZWFyIG9uDQogICBvdXRwdXQuIg0KDQpIb3dldmVyLCB0 aGlzIHN0b3BzIHNob3J0IG9mIHNheWluZyB0aGF0IHRoZSBvcmRlciBpcyB0aGUgc2FtZSwgbWVy ZWx5DQp0aGF0IGl0IGRldGVybWluZXMgaXQuICBQZXJoYXBzIGl0IG1pZ2h0IGJlIHN0YW5kYXJk LWNvbmZvcm1pbmcgZm9yIGENCnByb2Nlc3NvciB0byBhbHdheXMgcHJvZHVjZSB0aGUgdmFsdWVz IGluIHJldmVyc2Ugb3JkZXIsIGZvciBleGFtcGxlLg0KMTAuMTEuNCBkb2VzIG5vdCBzZWVtIHRv IGFkZHJlc3MgdGhlIGlzc3VlIG9mIHdoYXQgdGhlIG9yZGVyIGlzLg0KDQpRMTogSXMgdGhlIG9y ZGVyIG1lYW50IHRvIGJlIHRoZSBzYW1lPw0KDQpDb25zaWRlcg0KDQogIFByb2dyYW0gcDINCiAg ICBSZWFsIDo6IHggPSAzLCB5ID0gNA0KICAgIE5hbWVsaXN0IC9uLyB4LCB5LCB4DQogICAgV3Jp dGUgKCosbikNCiAgRW5kIFByb2dyYW0NCg0KVGhpcyBwcm9ncmFtIGRpZCBub3QgY29uZm9ybSB0 byBGb3J0cmFuIDkwLCBidXQgZG9lcyBjb25mb3JtIHRvDQpGb3J0cmFuIDIwMDMgYW5kIGxhdGVy LiAgVGhlIEZvcnRyYW4gMjAwOCBzdGFuZGFyZCBzYXlzICg1LjZwMik6DQoNCiAgIlRoZSBvcmRl ciBpbiB3aGljaCB0aGUgdmFyaWFibGVzIGFyZSBzcGVjaWZpZWQgaW4gdGhlIE5BTUVMSVNUDQog ICBzdGF0ZW1lbnQgZGV0ZXJtaW5lcyB0aGUgb3JkZXIgaW4gd2hpY2ggdGhlIHZhbHVlcyBhcHBl YXIgb24NCiAgIG91dHB1dC4iDQoNCkhvd2V2ZXIsIHRoZXJlIGFyZSBvbmx5IHR3byB2YXJpYWJs ZXMgaW4gdGhlIE5BTUVMSVNUIHN0YXRlbWVudCwgWA0KYW5kIFkuICBUaGVyZWZvcmUgaXQgc2Vl bXMgdG8gYmUgYW1iaWd1b3VzIHdoZXRoZXIgdGhlIG91dHB1dCBzaG91bGQNCmJlIHNvbWV0aGlu ZyBsaWtlDQogICZOIFg9MyBZPTQgLw0Kb3INCiAgJk4gWT00IFg9MyAvDQoNClNvbWUgY29tcGls ZXJzIHByb2R1Y2UNCiAgJk4gWD0zIFk9NCBYPTMgLw0KYnV0IHRoaXMgaXMgbm90IGFuIG9yZGVy aW5nIG9mIHRoZSB2YXJpYWJsZXMgWCBhbmQgWS4NCg0KUTIuIElzIHRoaXMgcHJvZ3JhbSBpbnRl bmRlZCB0byBjb25mb3JtIHRvIHRoZSBzdGFuZGFyZCwgYW5kIGlmIHNvLA0KICAgIHdoYXQgaXMg dGhlIGludGVuZGVkIG91dHB1dD8NCg0KQU5TV0VSOg0KDQpBMS4gWWVzLCB0aGUgb3JkZXIgaXMg bWVhbnQgdG8gYmUgdGhlIHNhbWUuICBBbiBlZGl0IGlzIHN1cHBsaWVkIHRvDQogICAgY2xhcmlm eSB0aGlzLg0KDQpBMi4gVGhlIHByb2dyYW0gd2FzIGludGVuZGVkIHRvIGNvbmZvcm0gdG8gdGhl IHN0YW5kYXJkLCBhbmQgdGhlIG91dHB1dA0KICAgIHdhcyBpbnRlbmRlZCB0byBiZSB0aGUgdGhp cmQgb3B0aW9uLiAgQW4gZWRpdCBpcyBzdXBwbGllZCB0bw0KICAgIGNvcnJlY3QgdGhlIHRleHQg aW4gNS42Lg0KDQpFRElUOg0KDQpbMTExOjEzLTE0XSA1LjZwMiwgcmVwbGFjZSBlbnRpcmUgcGFy YWdyYXBoIHdpdGgNCiAgIlRoZSBvcmRlciBpbiB3aGljaCB0aGUgdmFsdWVzIGFwcGVhciBvbiBv dXRwdXQgaXMgdGhlIHNhbWUgYXMgdGhlDQogICBvcmRlciBvZiB0aGUgPG5hbWVsaXN0LWdyb3Vw LW9iamVjdD5zIGluIHRoZSBuYW1lbGlzdCBncm91cCBvYmplY3QNCiAgIGxpc3Q7IGlmIGEgdmFy aWFibGUgYXBwZWFycyBtb3JlIHRoYW4gb25jZSBhcyBhDQogICA8bmFtZWxpc3QtZ3JvdXAtb2Jq ZWN0PiBmb3IgdGhlIHNhbWUgbmFtZWxpc3QgZ3JvdXAsIGl0cyB2YWx1ZQ0KICAgYXBwZWFycyBv bmNlIGZvciBlYWNoIG9jY3VycmVuY2UiLg0KDQpTVUJNSVRURUQgQlk6IE1hbGNvbG0gQ29oZW4N Cg0KSElTVE9SWTogMTMtMzE0ICAgIG0yMDIgIEYwOC8wMTAxIHN1Ym1pdHRlZCwgZmlyc3Qgb3B0 aW9uIHNlbGVjdGVkIGJ5DQogICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmF3IHZvdGUgLSBw YXNzZWQgYnkgSjMgbWVldGluZw0KICAgICAgICAgMTQtMTkyICAgIG0yMDQgIFBhc3NlZCBieSBK MyBsZXR0ZXIgYmFsbG90IDE0LTE0Ng0KICAgICAgICAgTjIwNDcgICAgIG0yMDYgIFBhc3NlZCBi eSBXRzUgYmFsbG90IDggTjIwNDIvNDMNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpOVU1CRVI6IEYwOC8w MTAyDQpUSVRMRTogTUVSR0UgYW5kIHBvbHltb3JwaGlzbQ0KS0VZV09SRDogTUVSR0UsIHBvbHlt b3JwaGljDQpERUZFQ1QgVFlQRTogRXJyYXR1bQ0KU1RBVFVTOiBQYXNzZWQgYnkgV0c1IGJhbGxv dA0KDQpRVUVTVElPTjoNCg0KQ29uc2lkZXINCg0KICBQcm9ncmFtIHRlc3QNCiAgICBUeXBlIHQN CiAgICBFbmQgVHlwZQ0KICAgIFR5cGUsRXh0ZW5kcyh0KSA6OiB0Mg0KICAgIEVuZCBUeXBlDQog ICAgQ2xhc3ModCksQWxsb2NhdGFibGUgOjogeCx5DQogICAgVHlwZSh0KSxBbGxvY2F0YWJsZSA6 OiBhDQogICAgeCA9IHQoKQ0KICAgIHkgPSB0MigpDQogICAgYSA9IHQoKQ0KICAgIERvIGk9MSwy DQogICAgICBTZWxlY3QgVHlwZSAoej0+TWVyZ2UoYSx4LGk9PTEpKSAgICEgQQ0KICAgICAgVHlw ZSBJcyAodCkNCiAgICAgICAgUHJpbnQgKiwnb2snDQogICAgICBUeXBlIElzICh0MikNCiAgICAg ICAgUHJpbnQgKiwnRkFJTCcNCiAgICAgIEVuZCBTZWxlY3QNCiAgICBFbmQgRG8NCiAgICBEbyBp PTEsMg0KICAgICAgU2VsZWN0IFR5cGUgKHo9Pk1lcmdlKHgsYSxpPT0xKSkgICAhIEINCiAgICAg IFR5cGUgSXMgKHQpDQogICAgICAgIFByaW50ICosJ29rJw0KICAgICAgVHlwZSBJcyAodDIpDQog ICAgICAgIFByaW50ICosJ0ZBSUwnDQogICAgICBFbmQgU2VsZWN0DQogICAgRW5kIERvDQogICAg RG8gaT0xLDINCiAgICAgIFNlbGVjdCBUeXBlICh6PT5NZXJnZShhLHksaT09MSkpICAgISBDDQog ICAgICBUeXBlIElzICh0KQ0KICAgICAgICBQcmludCAqLCd0Jw0KICAgICAgVHlwZSBJcyAodDIp DQogICAgICAgIFByaW50ICosJ3QyJw0KICAgICAgRW5kIFNlbGVjdA0KICAgIEVuZCBEbw0KICAg IERvIGk9MSwyDQogICAgICBTZWxlY3QgVHlwZSAoej0+TWVyZ2UoeSxhLGk9PTEpKSAgICEgRA0K ICAgICAgVHlwZSBJcyAodCkNCiAgICAgICAgUHJpbnQgKiwndCcNCiAgICAgIFR5cGUgSXMgKHQy KQ0KICAgICAgICBQcmludCAqLCd0MicNCiAgICAgIEVuZCBTZWxlY3QNCiAgICBFbmQgRG8NCiAg ICBEbyBpPTEsMg0KICAgICAgU2VsZWN0IFR5cGUgKHo9Pk1lcmdlKHgseSxpPT0xKSkgICAhIEUN CiAgICAgIFR5cGUgSXMgKHQpDQogICAgICAgIFByaW50ICosJ3QnDQogICAgICBUeXBlIElzICh0 MikNCiAgICAgICAgUHJpbnQgKiwndDInDQogICAgICBFbmQgU2VsZWN0DQogICAgRW5kIERvDQog IEVuZCBQcm9ncmFtDQoNCkFjY29yZGluZyB0byB0aGUgc3RhbmRhcmQsIHRoZSB0eXBlIG9mIHRo ZSByZXN1bHQgb2YgTUVSR0UgaXMgdGhlIHNhbWUNCmFzIHRoZSB0eXBlIG9mIFRTT1VSQ0UuICBP bmUgbWlnaHQgaW1hZ2luZSB0aGF0IHRoaXMgbWVhbnMgdGhhdCB0aGUNCnJlc3VsdCBpcyBwb2x5 bW9ycGhpYyBpZiBhbmQgb25seSBpZiBUU09VUkNFIGlzIHBvbHltb3JwaGljLiAgVGhpcw0Kd291 bGQgYmUgYSBzbGlnaHRseSB1bnVzdWFsIGFuZCB1bmV4cGVjdGVkIGFzeW1tZXRyeS4NCg0KQWxz bywgdGhlIHR5cGVzIG9mIEZTT1VSQ0UgYW5kIFRTT1VSQ0UgaGF2ZSB0byBiZSB0aGUgc2FtZS4g IElmIHRoaXMNCm1lYW5zIGJvdGggdGhlIGRlY2xhcmVkIGFuZCBkeW5hbWljIHR5cGVzLCBvbmUg bWlnaHQgaW1hZ2luZSB0aGF0IHRoaXMNCm1lYW5zIHRoYXQgdGhlIHJlc3VsdCBpcyBwb2x5bW9y cGhpYyBpZiBhbmQgb25seSBpZiBib3RoIEZTT1VSQ0UgYW5kDQpUU09VUkNFIGFyZSBwb2x5bW9y cGhpYywgc2luY2Ugb3RoZXJ3aXNlIHRoZSBub24tcG9seW1vcnBoaWMgYXJndW1lbnQNCmRlY2lk ZXMgdGhlIHR5cGUuDQoNCk9uIHRoZSBvdGhlciBoYW5kLCBpZiB0aGUgdHlwZSByZXF1aXJlbWVu dHMgYXJlIHRhbGtpbmcgYWJvdXQgdGhlDQpkZWNsYXJlZCB0eXBlIG9ubHksIG9uZSBtaWdodCBp bWFnaW5lIHRoYXQgdGhlIHJlc3VsdCBpcyBwb2x5bW9ycGhpYw0KaWYgZWl0aGVyIFRTT1VSQ0Ug b3IgRlNPVVJDRSBpcyBwb2x5bW9ycGhpYy4NCg0KSG93ZXZlciwgaW4gYW55IGNhc2UgdGhlcmUg d291bGQgc2VlbSB0byBiZSBhbiBlcnJvciBpbiB0aGUgc3RhbmRhcmQsDQpzaW5jZSB0aGUgcmVz dWx0IGlzIHNwZWNpZmllZCB0byBiZSB0aGUgc2FtZSBhcyBUU09VUkNFLCByYXRoZXIgdGhhbg0K dGhlIHNhbWUgYXMgd2hpY2hldmVyIGFyZ3VtZW50IGlzIGNob3NlbiB0byBiZSB0aGUgcmVzdWx0 IHZhbHVlOyBpZg0KdGhpcyByZWZlcnMgdG8gdGhlIGR5bmFtaWMgdHlwZSwgaXQgaXMgY29udHJh ZGljdG9yeSB3aGVuIEZTT1VSQ0UgaXMNCmNob3NlbiBhcyB0aGUgcmVzdWx0IHZhbHVlLiAgQW5k IGlmIGl0IGRvZXMgbm90IHJlZmVyIHRvIHRoZSBkeW5hbWljDQp0eXBlLCB0aGVyZSBhcHBlYXJz IHRvIGJlIG5vIHN0YXRlbWVudCB3aGljaCBzYXlzIHdoYXQgdGhlIGR5bmFtaWMNCnR5cGUgb2Yg dGhlIHJlc3VsdCBpcy4NCg0KUTEuICBJcyB0aGUgYXBwYXJlbnQgYXN5bW1ldHJ5IGJldHdlZW4g dGhlIHRyZWF0bWVudCBvZiBUU09VUkNFIGFuZA0KICAgICBGU09VUkNFIGludGVuZGVkPw0KDQpR Mi4gIFdoaWNoIG9mIHRoZSBNRVJHRSBpbnZvY2F0aW9ucyBBLUUgYXJlIHBvbHltb3JwaGljPw0K DQpRMy4gIFdoZW4gdGhlIHJlc3VsdCBvZiBNRVJHRSBpcyBwb2x5bW9ycGhpYywgYXJlIHRoZSBk eW5hbWljIHR5cGVzIG9mDQogICAgIFRTT1VSQ0UgYW5kIEZTT1VSQ0UgcGVybWl0dGVkIHRvIGJl IGRpZmZlcmVudD8gIEFuZCBpZiB0aGV5IGFyZSwNCiAgICAgaXMgdGhlIGR5bmFtaWMgdHlwZSBv ZiB0aGUgcmVzdWx0IHRoZSBzYW1lIGFzIHRoZSBjaG9zZW4gYXJndW1lbnQNCiAgICAgYW5kIG5v dCBuZWNlc3NhcmlseSB0aGUgc2FtZSBhcyBUU09VUkNFPw0KDQpBTlNXRVI6DQoNCkExLiBUaGVy ZSBpcyBubyBhc3ltbWV0cnkgYmV0d2VlbiBUU09VUkNFIGFuZCBGU09VUkNFLCBiZWNhdXNlIHRo ZXkNCiAgICBhcmUgcmVxdWlyZWQgdG8gaGF2ZSB0aGUgc2FtZSB0eXBlIGFuZCB0eXBlIHBhcmFt ZXRlcnMuICBUaGlzDQogICAgbWVhbnMgdGhhdCBib3RoIHRoZSBkZWNsYXJlZCBhbmQgZHluYW1p YyB0eXBlcyBhbmQgdHlwZSBwYXJhbWV0ZXJzDQogICAgbXVzdCBiZSB0aGUgc2FtZS4NCg0KQTIu IE9ubHkgTUVSR0UgaW52b2NhdGlvbiBFIGlzIHBvbHltb3JwaGljLiAgQW4gZWRpdCBpcyBwcm92 aWRlZCB0bw0KICAgIGNsYXJpZnkgdGhpcy4NCg0KQTMuIE5vLCB0aGUgZHluYW1pYyB0eXBlcyBh bmQgdHlwZSBwYXJhbWV0ZXJzIGFyZSByZXF1aXJlZCB0byBiZSB0aGUNCiAgICBzYW1lLg0KDQpO b3RlIHRoYXQgYmVjYXVzZSBNRVJHRSBpcyBlbGVtZW50YWwsIGl0IG5lZWRzIHRoZSB0eXBlIGFu ZCB0eXBlDQpwYXJhbWV0ZXJzIHRvIGJlIHRoZSBzYW1lIGZvciBib3RoIHRoZSBkZWNsYXJlZCBh bmQgZHluYW1pYyB0eXBlcywNCm90aGVyd2lzZSB0aGUgcHJpbmNpcGxlIHRoYXQgYWxsIGVsZW1l bnRzIG9mIGFuIGFycmF5IGhhdmUgdGhlIHNhbWUNCihkZWNsYXJlZCBhbmQgZHluYW1pYykgdHlw ZSBhbmQgdHlwZSBwYXJhbWV0ZXJzIHdvdWxkIGJlIGJyb2tlbi4NCg0KRURJVFM6DQoNClszNjg6 MjZdIDEzLjcuMTEwcDQgKFJlc3VsdCBDaGFyYWN0ZXJpc3RpY3MpLA0KICAgICAgICAgIlNhbWUg YXMgVFNPVVJDRS4iIC0+DQogICAgICAgICAiU2FtZSB0eXBlIGFuZCB0eXBlIHBhcmFtZXRlcnMg YXMgVFNPVVJDRS4gIEJlY2F1c2UgVFNPVVJDRQ0KICAgICAgICAgIGFuZCBGU09VUkNFIGFyZSBy ZXF1aXJlZCB0byBoYXZlIHRoZSBzYW1lIHR5cGUgYW5kIHR5cGUNCiAgICAgICAgICBwYXJhbWV0 ZXJzIChmb3IgYm90aCB0aGUgZGVjbGFyZWQgYW5kIGR5bmFtaWMgdHlwZXMpLCB0aGUNCiAgICAg ICAgICByZXN1bHQgaXMgcG9seW1vcnBoaWMgaWYgYW5kIG9ubHkgaWYgYm90aCBUU09VUkNFIGFu ZA0KICAgICAgICAgIEZTT1VSQ0UgYXJlIHBvbHltb3JwaGljLiINCg0KU1VCTUlUVEVEIEJZOiBN YWxjb2xtIENvaGVuDQoNCkhJU1RPUlk6IDEzLTMyMSAgICBtMjAyICBGMDgvMDEwMiBzdWJtaXR0 ZWQNCiAgICAgICAgIDEzLTMyMXIxICBtMjAyICBSZXZpc2VkIGV4YW1wbGUgLSBwYXNzZWQgYnkg SjMgbWVldGluZw0KICAgICAgICAgMTQtMTkyICAgIG0yMDQgIFBhc3NlZCBieSBKMyBsZXR0ZXIg YmFsbG90IDE0LTE0Ng0KICAgICAgICAgTjIwNDcgICAgIG0yMDYgIFBhc3NlZCBieSBXRzUgYmFs bG90IDggTjIwNDIvNDMNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpOVU1CRVI6IEYwOC8wMTAzDQpUSVRM RTogUG9pbnRlcnMgdG8gaW50ZXJuYWwgcHJvY2VkdXJlcyB3aXRoIGRpZmZlcmVudCBob3N0IGlu c3RhbmNlcw0KS0VZV09SRDogaW50ZXJuYWwgcHJvY2VkdXJlLCBwcm9jZWR1cmUgcG9pbnRlciwg aG9zdCBpbnN0YW5jZQ0KREVGRUNUIFRZUEU6IEVycmF0dW0NClNUQVRVUzogUGFzc2VkIGJ5IFdH NSBiYWxsb3QNCg0KUVVFU1RJT046DQoNCkNvbnNpZGVyOg0KDQogICAgTU9EVUxFIFRZUEVTDQog ICAgICBBQlNUUkFDVCBJTlRFUkZBQ0UNCiAgICAgICAgU1VCUk9VVElORSBTVUJST1VUSU5FKCkN CiAgICAgICAgRU5EIFNVQlJPVVRJTkUgU1VCUk9VVElORQ0KICAgICAgRU5EIElOVEVSRkFDRQ0K ICAgICAgVFlQRSBQUFMNCiAgICAgICAgUFJPQ0VEVVJFKFNVQlJPVVRJTkUpLCBQT0lOVEVSLCBO T1BBU1MgOjogU1VfUFRSDQogICAgICBFTkQgVFlQRSBQUFMNCiAgICBFTkQgTU9EVUxFIFRZUEVT DQoNCiAgICBTVUJST1VUSU5FIENQUFMoUFBBKQ0KICAgICAgVVNFIFRZUEVTDQogICAgICBUWVBF KFBQUyksIERJTUVOU0lPTig6KSA6OiBQUEENCiAgICAgIElOVEVHRVIgSSwgSiwgTg0KICAgICAg TiA9IFNJWkUoUFBBKQ0KICAgICAgRE8gSSA9IDEsIE4NCiAgICAgICAgQ0FMTCBQUEEoSSklU1Vf UFRSKCkNCiAgICAgIEVORCBETw0KICAgICAgUFJJTlQgKiwoKEFTU09DSUFURUQoUFBBKEkpJVNV X1BUUixQUEEoSiklU1VfUFRSKSxJPTEsTiksSj0xLE4pDQogICAgRU5EIFNVQlJPVVRJTkUgQ1BQ Uw0KDQogICAgUkVDVVJTSVZFIFNVQlJPVVRJTkUgT1VURVIoUFBBKQ0KICAgICAgVVNFIFRZUEVT DQogICAgICBUWVBFKFBQUyksIERJTUVOU0lPTig6KSA6OiBQUEENCiAgICAgIElOVEVSRkFDRQ0K ICAgICAgICBTVUJST1VUSU5FIENQUFMoUFBBKQ0KICAgICAgICAgIFVTRSBUWVBFUw0KICAgICAg ICAgIFRZUEUoUFBTKSwgRElNRU5TSU9OKDopIDo6IFBQQQ0KICAgICAgICBFTkQgU1VCUk9VVElO RSBDUFBTDQogICAgICBFTkQgSU5URVJGQUNFDQogICAgICBJRiAoU0laRShQUEEpIC5FUS4gMykg VEhFTg0KICAgICAgICBDQUxMIENQUFMoUFBBKQ0KICAgICAgRUxTRQ0KICAgICAgICBDQUxMIE9V VEVSKCAoLyBQUEEsIFBQUyhJTk5FUikgLykgKQ0KICAgICAgRU5EIElGDQogICAgQ09OVEFJTlMN CiAgICAgIFNVQlJPVVRJTkUgSU5ORVIoKQ0KICAgICAgICBXUklURSAoKiwqKSAnU0laRShQUEEp ID0nLCBTSVpFKFBQQSkNCiAgICAgIEVORCBTVUJST1VUSU5FIElOTkVSDQogICAgRU5EIFNVQlJP VVRJTkUgT1VURVINCg0KICAgIFBST0dSQU0gTUFJTg0KICAgICAgVVNFIFRZUEVTDQogICAgICBJ TlRFUkZBQ0UNCiAgICAgICAgUkVDVVJTSVZFIFNVQlJPVVRJTkUgT1VURVIoUFBBKQ0KICAgICAg ICAgIFVTRSBUWVBFUw0KICAgICAgICAgIFRZUEUoUFBTKSwgRElNRU5TSU9OKDopIDo6IFBQQQ0K ICAgICAgICBFTkQgU1VCUk9VVElORSBPVVRFUg0KICAgICAgRU5EIElOVEVSRkFDRQ0KICAgICAg VFlQRShQUFMpLERJTUVOU0lPTigwKSA6OiBQUEENCiAgICAgIENBTEwgT1VURVIoUFBBKQ0KICAg IEVORCBQUk9HUkFNIE1BSU4NCg0KRG9lcyB0aGlzIHByb2dyYW0gcHJpbnQgYWxsIHRydWUgdmFs dWVzPw0KDQpUaGUgcHJvY2VkdXJlIHBvaW50ZXJzIGFyZSBhbGwgYXNzb2NpYXRlZCB3aXRoIHRo ZSBpbnRlcm5hbCBwcm9jZWR1cmUNCklOTkVSLCB3aGljaCBtaWdodCBsZWFkIG9uZSB0byBiZWxp ZXZlIHRoYXQgdGhlIGFuc3dlciBpcyB5ZXMgKHRoYXQNCmlzLCB0aGV5IGFyZSBhbGwgYXNzb2Np YXRlZCB3aXRoIHRoZSBzYW1lIHRhcmdldCksIGJ1dCBlYWNoIHByb2NlZHVyZQ0KcG9pbnRlciBh dCBlYWNoIG5lc3RpbmcgbGV2ZWwgaGFzIGEgZGlmZmVyZW50IGhvc3QgaW5zdGFuY2UsIHdoaWNo DQptaWdodCBsZWFkIG9uZSB0byBiZWxpZXZlIHRoYXQgdGhlIGFuc3dlciBpcyBubyAoYW5kIHRo YXQgdGhlcmVmb3JlDQpvbmx5IG9uZSBvZiBlYWNoIG9mIHRoZSAzLWVsZW1lbnQgc2VxdWVuY2Vz IHByaW50ZWQgd2lsbCBiZSBUKS4NCg0KQU5TV0VSOg0KDQpObywgdGhlIHByb2dyYW0gZG9lcyBu b3QgcHJpbnQgYWxsIHRydWUgdmFsdWVzOyB0d28gcHJvY2VkdXJlIHBvaW50ZXJzDQp0byB0aGUg InNhbWUiIGludGVybmFsIHByb2NlZHVyZSBhcmUgb25seSBhc3NvY2lhdGVkIGlmIHRoZSBob3N0 DQppbnN0YW5jZXMgYXJlIGFsc28gdGhlIHNhbWUuICBBbiBlZGl0IGlzIHN1cHBsaWVkIHRvIHRo ZSBzdGFuZGFyZCB0bw0KY2xhcmlmeSB0aGlzLg0KDQpFRElUUzoNCg0KWzMzMDoyMF0gMTMuNy4x NnA1IENhc2UgKGlpKSwgYWZ0ZXIgIndpdGggVEFSR0VUIiBpbnNlcnQNCiAgImFuZCwgaWYgVEFS R0VUIGlzIGFuIGludGVybmFsIHByb2NlZHVyZSwgdGhleSBoYXZlIHRoZSBzYW1lIGhvc3QNCiAg IGluc3RhbmNlIi4NCg0KWzMzMDoyMl0gQ2FzZSAoaWlpKSwgYWZ0ZXIgInNhbWUgcHJvY2VkdXJl IiBpbnNlcnQNCiAgImFuZCwgaWYgdGhlIHByb2NlZHVyZSBpcyBhbiBpbnRlcm5hbCBwcm9jZWR1 cmUsIHRoZXkgaGF2ZSB0aGUgc2FtZQ0KICAgaG9zdCBpbnN0YW5jZSIuDQoNClNVQk1JVFRFRCBC WTogUm9iZXJ0IENvcmJldHQNCg0KSElTVE9SWTogMTMtMzU3ICAgbTIwMiAgRjA4LzAxMDMgc3Vi bWl0dGVkIHdpdGggZm91ciBhbnN3ZXJzDQogICAgICAgICAxMy0zNTdyMSBtMjAyICBTZWxlY3Rl ZCBhbnN3ZXIsIGFkZGVkIGVkaXRzIC0gcGFzc2VkIGJ5IEozDQogICAgICAgICAgICAgICAgICAg ICAgICAgbWVldGluZw0KICAgICAgICAgMTQtMTkyICAgIG0yMDQgIFBhc3NlZCBieSBKMyBsZXR0 ZXIgYmFsbG90IDE0LTE0Ng0KICAgICAgICAgTjIwNDcgICAgIG0yMDYgIFBhc3NlZCBieSBXRzUg YmFsbG90IDggTjIwNDIvNDMNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpOVU1CRVI6IEYwOC8wMTA0DQpU SVRMRTogSUVFRSBJbnF1aXJ5IEZ1bmN0aW9ucw0KREVGRUNUIFRZUEU6IEVycmF0dW0NClNUQVRV UzogUGFzc2VkIGJ5IFdHNSBiYWxsb3QNCg0KQWxsIHJlZmVyZW5jZXMgYXJlIHRvIEZvcnRyYW4g MjAwOCAxMC0wMDdyMS4NCg0KT24gY29tcC5sYW5nLmZvcnRyYW4gRnJhbmNpcyBDb3VkZXJ0IGFz a2VkDQogVGhlIEZvcnRyYW4gMjAwOCBzdGFuZGFyZCBkZWZpbmVzIGFuIGlucXVpcnkgZnVuY3Rp b24NCiBhcyBhbiAiaW50cmluc2ljIGZ1bmN0aW9uLCBvciBmdW5jdGlvbiBpbiBhbiBpbnRyaW5z aWMNCiBtb2R1bGUsIHdob3NlIHJlc3VsdCBkZXBlbmRzIG9uIHRoZSBwcm9wZXJ0aWVzIG9mIG9u ZQ0KIG9yIG1vcmUgb2YgaXRzIGFyZ3VtZW50cyBpbnN0ZWFkIG9mIHRoZWlyIHZhbHVlcyIuDQog MTAtMDA3cjEgc2VjdGlvbiAxLjMuODkgWzExOjI3LTMwXQ0KDQogSSB3b25kZXI6IGJ5IHRoYXQg ZGVmaW5pdGlvbiwgaG93IGNhbiB0aGUNCiBJRUVFX1NVUFBPUlRfSEFMVElORyhGTEFHKSBmdW5j dGlvbiBmcm9tIHRoZQ0KIElFRUVfRVhDRVBUSU9OUyBpbnRyaW5zaWMgbW9kdWxlIGJlIGFuIGlu cXVpcnkgZnVuY3Rpb24/DQogSXRzIHJlc3VsdCBkZXBlbmRzIG9uIHRoZSB2YWx1ZSBvZiBGTEFH LCBub3QgaXRzDQogcHJvcGVydGllcy4NCg0KUVVFU1RJT05TOg0KDQpRdWVzdGlvbiAxLg0KDQpB cmUgdGhlIGZ1bmN0aW9ucw0KDQogSUVFRV9zdXBwb3J0X2ZsYWcNCiBJRUVFX3N1cHBvcnRfaGFs dGluZw0KIElFRUVfc3VwcG9ydF9yb3VuZGluZw0KIGNfYXNzb2NpYXRlZA0KIGNfZnVubG9jDQog Y19sb2MNCg0KaW50ZW5kZWQgdG8gYmUgaW5xdWlyeSBmdW5jdGlvbnM/DQoNClF1ZXN0aW9uIDIu DQoNCkFyZSB0aGV5IGNvbnNpc3RlbnQgd2l0aCB0aGUgZGVmaW5pdGlvbiBvZiBpbnF1aXJ5DQpm dW5jdGlvbnM/DQoNClF1ZXN0aW9uIDMuDQoNCkFyZSB0aGV5IGFsbG93ZWQgaW4gU3BlY2lmaWNh dGlvbiBleHByZXNzaW9ucz8NCg0KUXVlc3Rpb24gNC4NCg0KQXJlIHRoZXkgYWxsb3dlZCBpbiBD b25zdGFudCBleHByZXNzaW9ucz8NCg0KQU5TV0VSUzoNCg0KQW5zd2VyIDEuDQoNCk5vLiAgVGhl c2UgaW50cmluc2ljIG1vZHVsZSBmdW5jdGlvbnMNCg0KIElFRUVfc3VwcG9ydF9mbGFnDQogSUVF RV9zdXBwb3J0X2hhbHRpbmcNCiBJRUVFX3N1cHBvcnRfcm91bmRpbmcNCiBjX2Fzc29jaWF0ZWQN CiBjX2Z1bmxvYw0KIGNfbG9jDQoNCmFyZSBub3QgaW5xdWlyeSBmdW5jdGlvbnMgYmVjYXVzZSB0 aGVpciByZXN1bHRzIGRlcGVuZCBvbiBvdGhlciB0aGFuDQp0aGUgcHJvcGVydGllcyBvZiB0aGVp ciBhcmd1bWVudHMuICBFZGl0cyBhcmUgcHJvdmlkZWQgdG8gY29ycmVjdGx5DQppZGVudGlmeSB0 aGVzZSBmdW5jdGlvbnMgYXMgdHJhbnNmb3JtYXRpb25hbDoNCg0KWzE4OjM1LTM3XSBzZWN0aW9u IDEuMy4xNDYNCnRyYW5zZm9ybWF0aW9uYWwgZnVuY3Rpb24NCmludHJpbnNpYyBmdW5jdGlvbiwg b3IgZnVuY3Rpb24gaW4gYW4gaW50cmluc2ljIG1vZHVsZSwgdGhhdA0KaXMgbmVpdGhlciBlbGVt ZW50YWwgbm9yIGFuIGlucXVpcnkgZnVuY3Rpb24NCg0KQW5zd2VyIDIuDQoNCk5vLiAgVGhlaXIg Y3VycmVudCBjbGFzc2lmaWNhdGlvbiBpcyBpbmNvbnNpc3RlbnQgd2l0aCB0aGUgZGVmaW5pdGlv bg0Kb2YgaW5xdWlyeSBmdW5jdGlvbnMuDQoNCkFuc3dlciAzLg0KDQpUaGV5IHNob3VsZCBiZSBh bGxvd2VkIGluIHNwZWNpZmljYXRpb24gZXhwcmVzc2lvbnMuICBFZGl0cyBhcmUNCnByb3ZpZGVk IHRvIGNvcnJlY3QgdGhpcy4NCg0KQW5zd2VyIDQuDQoNCk5vLiBPbmx5IHRoZSAzIElFRUVfKiBm dW5jdGlvbnMgc2hvdWxkIGJlIGFsbG93ZWQgaW4gY29uc3RhbnQNCmV4cHJlc3Npb25zLCBub3Qg dGhlIDMgQ18qIGZ1bmN0aW9ucy4gIEVkaXRzIGFyZSBwcm92aWRlZCB0byBjb3JyZWN0DQp0aGlz Lg0KDQpFRElUUyB0byAxMC0wMDdyMToNCg0KWzE1MDoyOCtdIHNlY3Rpb24gNy4xLjExIFNwZWNp ZmljYXRpb24gZXhwcmVzc2lvbiwgcGFyYWdyYXBoIDIsDQphZnRlciBidWxsZXQgKDEwKSwgaW5z ZXJ0IGEgbmV3IGJ1bGxldDoNCg0KIihubikgYSByZWZlcmVuY2UgdG8gYSB0cmFuc2Zvcm1hdGlv bmFsIGZ1bmN0aW9uIGZyb20gdGhlDQppbnRyaW5zaWMgbW9kdWxlIElFRUVfQVJJVEhNRVRJQyAo MTQpLCBJRUVFX0VYQ0VQVElPTlMgKDE0KSwgb3INCklTT19DX0JJTkRJTkcgKDE1LjIpLCB3aGVy ZSBlYWNoIGFyZ3VtZW50IGlzIGEgcmVzdHJpY3RlZA0KZXhwcmVzc2lvbiwiDQoNClsxNTI6Ny04 XSBzZWN0aW9uIDcuMS4xMiBDb25zdGFudCBleHByZXNzaW9uLCBwYXJhZ3JhcGggMSwgcmVwbGFj ZQ0KYnVsbGV0ICg4KToNCg0KIig4KSBhIHJlZmVyZW5jZSB0byB0aGUgdHJhbnNmb3JtYXRpb25h bCBmdW5jdGlvbg0KSUVFRV9TRUxFQ1RFRF9SRUFMX0tJTkQgZnJvbSB0aGUgaW50cmluc2ljIG1v ZHVsZQ0KSUVFRSBBUklUSE1FVElDICgxNCksIHdoZXJlIGVhY2ggYXJndW1lbnQgaXMgYSBjb25z dGFudA0KZXhwcmVzc2lvbiwiDQoNCndpdGg6DQoNCiIoOCkgYSByZWZlcmVuY2UgdG8gYSB0cmFu c2Zvcm1hdGlvbmFsIGZ1bmN0aW9uIGZyb20gdGhlDQppbnRyaW5zaWMgbW9kdWxlIElFRUVfQVJJ VEhNRVRJQyBvciBJRUVFX0VYQ0VQVElPTlMgKDE0KSwgd2hlcmUNCmVhY2ggYXJndW1lbnQgaXMg YSBjb25zdGFudCBleHByZXNzaW9uLCINCg0KWzQwODoxLV0gc2VjdGlvbiAxNC4xMCBTdW1tYXJ5 IG9mIHRoZSBwcm9jZWR1cmVzLCBwYXJhZ3JhcGggMywNCmluIFRhYmxlIDE0LjEsIGZvciBwcm9j ZWR1cmUgSUVFRV9TVVBQT1JUX1JPVU5ESU5HOiBjaGFuZ2UgdGhlDQoiQ2xhc3MiIGNvbHVtbiBl bnRyeSBmcm9tICJJIiB0byAiVCIuDQoNCls0MDg6MS1dIHNlY3Rpb24gMTQuMTAgU3VtbWFyeSBv ZiB0aGUgcHJvY2VkdXJlcywgcGFyYWdyYXBoIDMsDQppbiBUYWJsZSAxNC4yLCBmb3IgcHJvY2Vk dXJlcyBJRUVFX1NVUFBPUlRfRkxBRyBhbmQNCklFRUVfU1VQUE9SVF9IQUxUSU5HOiBjaGFuZ2Ug dGhlICJDbGFzcyIgY29sdW1uIGVudHJpZXMgZnJvbQ0KIkkiIHRvICJUIi4NCg0KWzQxODoxNl0g c2VjdGlvbiAxNC4xMS4yNyBJRUVFX1NVUFBPUlRfRkxBRyAoRkxBRykgb3INCklFRUVfU1VQUE9S VF9GTEFHIChGTEFHLCBYKSwgcGFyYWdyYXBoIDI6DQoNCiJJbnF1aXJ5IGZ1bmN0aW9uLiIgLT4g IlRyYW5zZm9ybWF0aW9uYWwgZnVuY3Rpb24uIg0KDQpbNDE4OjMyXSBzZWN0aW9uIDE0LjExLjI4 IElFRUUgU1VQUE9SVCBIQUxUSU5HIChGTEFHKSwNCnBhcmFncmFwaCAyOg0KDQoiSW5xdWlyeSBm dW5jdGlvbi4iIC0+ICJUcmFuc2Zvcm1hdGlvbmFsIGZ1bmN0aW9uLiINCg0KWzQyMDo0XSBzZWN0 aW9uIDE0LjExLjMyIElFRUVfU1VQUE9SVF9ST1VORElORyAoUk9VTkRfIFZBTFVFKSBvcg0KSUVF RV9TVVBQT1JUX1JPVU5ESU5HIChST1VORF9WQUxVRSwgWCksIHBhcmFncmFwaCAyOg0KDQoiSW5x dWlyeSBmdW5jdGlvbi4iIC0+ICJUcmFuc2Zvcm1hdGlvbmFsIGZ1bmN0aW9uLiINCg0KWzQyNjox OV0gc2VjdGlvbiAxNS4yLjMuMiBDX0FTU09DSUFURUQgKENfUFRSXzEgWywgQ19QVFJfMl0pLA0K cGFyYWdyYXBoIDI6DQoNCiJJbnF1aXJ5IGZ1bmN0aW9uLiIgLT4gIlRyYW5zZm9ybWF0aW9uYWwg ZnVuY3Rpb24uIg0KDQpbNDI4OjldIHNlY3Rpb24gMTUuMi4zLjUgQ19GVU5MT0MgKFgpLCBwYXJh Z3JhcGggMjoNCg0KIklucXVpcnkgZnVuY3Rpb24uIiAtPiAiVHJhbnNmb3JtYXRpb25hbCBmdW5j dGlvbi4iDQoNCls0Mjg6MjFdIHNlY3Rpb24gMTUuMi4zLjYgQ19MT0MgKFgpLCBwYXJhZ3JhcGgg MjoNCg0KIklucXVpcnkgZnVuY3Rpb24uIiAtPiAiVHJhbnNmb3JtYXRpb25hbCBmdW5jdGlvbi4i DQoNClNVQk1JVFRFRCBCWTogRGljayBIZW5kcmlja3Nvbg0KDQpISVNUT1JZOiAxNC0xMDAgICAg bTIwMyAgRjA4LzAxMDQgc3VibWl0dGVkDQogICAgICAgICAxNC0xMDByMSAgbTIwMyAgQW5zd2Vy IHByb3Bvc2VkDQogICAgICAgICAxNC0xMDByMiAgbTIwMyAgUGFzc2VkIGJ5IEozIG1lZXRpbmcN CiAgICAgICAgIDE0LTE5MiAgICBtMjA0ICBQYXNzZWQgYXMgYW1lbmRlZCBieSBKMyBsZXR0ZXIg YmFsbG90IDE0LTE0Ng0KICAgICAgICAgTjIwNDcgICAgIG0yMDYgIFBhc3NlZCBhcyBhbWVuZGVk IGJ5IFdHNSBiYWxsb3QgOCBOMjA0Mi80Mw0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCk5VTUJFUjogRjA4 LzAxMDUNClRJVExFOiBJcyB0aGUgQVNZTkNIUk9OT1VTIGF0dHJpYnV0ZSBhbGxvd2VkIHdpdGgg dGhlIFZBTFVFIGF0dHJpYnV0ZT8NCktFWVdPUkRTOiBBU1lOQ0hST05PVVMsIFZBTFVFDQpERUZF Q1QgVFlQRTogSW50ZXJwcmV0YXRpb24NClNUQVRVUzogUGFzc2VkIGJ5IEozIGxldHRlciBiYWxs b3QNCg0KUVVFU1RJT046DQoNCkluIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgVkFMVUUgYXR0cmli dXRlLCBbMTAxOjIzLTI0XSBzZWN0aW9uDQo1LjMuMThwMSwgY29uc3RyYWludCBDNTU4IGRpc2Fs bG93cyB0aGUgVk9MQVRJTEUgYXR0cmlidXRlIHdpdGggdGhlDQpWQUxVRSBhdHRyaWJ1dGU6DQoN CiAgIkM1NTggQW4gZW50aXR5IHdpdGggdGhlIFZBTFVFIGF0dHJpYnV0ZSBzaGFsbCBub3QgaGF2 ZSB0aGUNCiAgICAgICAgQUxMT0NBVEFCTEUsIElOVEVOVCAoSU5PVVQpLCBJTlRFTlQgKE9VVCks IFBPSU5URVIsIG9yDQogICAgICAgIFZPTEFUSUxFIGF0dHJpYnV0ZXMuIg0KDQpCdXQgdGhlcmUg aXMgbm8gcHJvaGliaXRpb24gb2YgdGhlIEFTWU5DSFJPTk9VUyBhdHRyaWJ1dGUgd2l0aCB0aGUN ClZBTFVFIGF0dHJpYnV0ZS4gIFNob3VsZCB0aGlzIGNvbWJpbmF0aW9uIGFsc28gYmUgZGlzYWxs b3dlZD8NCg0KQU5TV0VSOg0KDQpObywgdGhlIGNvbWJpbmF0aW9uIG9mIFZBTFVFIGFuZCBBU1lO Q0hST05PVVMgYXR0cmlidXRlcyBzaG91bGQgbm90IGJlDQpkaXNhbGxvd2VkLiAgVGhhdCBpcywg dGhlIGNvbWJpbmF0aW9uIG9mIFZBTFVFIGFuZCBBU1lOQ0hST05PVVMNCmF0dHJpYnV0ZXMgc2hv dWxkIGNvbnRpbnVlIHRvIGJlIGFsbG93ZWQuDQoNCkEgZHVtbXkgYXJndW1lbnQgd2l0aCB0aGUg VkFMVUUgYXR0cmlidXRlIGlzIG5vdCBhcmd1bWVudCBhc3NvY2lhdGVkDQp3aXRoIHRoZSBjb3Jy ZXNwb25kaW5nIGFjdHVhbCBhcmd1bWVudC4gIFJhdGhlciwgaXQgaXMgYXNzb2NpYXRlZCB3aXRo DQphbiBhbm9ueW1vdXMgZGF0YSBvYmplY3Qgd2hvc2UgdmFsdWUgaXMgY29waWVkIGZyb20gdGhl IGFjdHVhbA0KYXJndW1lbnQgYmVmb3JlIGV4ZWN1dGlvbiBvZiB0aGUgZXhlY3V0YWJsZSBjb25z dHJ1Y3RzIG9mIHRoZQ0Kc3VicHJvZ3JhbSBjb21tZW5jZXMsIGFuZCBiZWZvcmUgZXhwcmVzc2lv bnMgaW4gdGhlIHNwZWNpZmljYXRpb24gcGFydA0KYXJlIGV2YWx1YXRlZC4gIFRoZXJlZm9yZSwg aXQgY2FuIHN1Y2Nlc3NmdWxseSB0YWtlIHBhcnQgaW4NCmFzeW5jaHJvbm91cyBvcGVyYXRpb25z IHRoYXQgYm90aCBzdGFydCBhbmQgY29tcGxldGUgd2l0aGluIHRoYXQNCnByb2NlZHVyZSBjYWxs LCBpbmRlcGVuZGVudGx5IG9mIHdoZXRoZXIgdGhlIGNvcnJlc3BvbmRpbmcgYWN0dWFsDQphcmd1 bWVudCBoYXMgb3IgaGFzIG5vdCB0aGUgQVNZTkNIUk9OT1VTIGF0dHJpYnV0ZS4NCg0KVGhlcmUg aXMgbm8gcHJvYmxlbSBpZiBhIGR1bW15IGFyZ3VtZW50IGhhcyB0aGUgVkFMVUUgYXR0cmlidXRl IGFuZA0KdGhlIGNvcnJlc3BvbmRpbmcgYWN0dWFsIGFyZ3VtZW50IGhhcyB0aGUgQVNZTkNIUk9O T1VTIGF0dHJpYnV0ZSwNCmluZGVwZW5kZW50bHkgb2Ygd2hldGhlciB0aGUgZHVtbXkgYXJndW1l bnQgaGFzIHRoZSBBU1lOQ0hST05PVVMNCmF0dHJpYnV0ZS4gIFN1YmNsYXVzZSA5LjYuNC4xLCBw YXJhZ3JhcGggNiBbMjIwOjEzLTE1XSwgcHJvaGliaXRzIGFuDQphY3R1YWwgYXJndW1lbnQgdGhh dCBpcyBwYXJ0IG9mIGEgcGVuZGluZyBpbnB1dC9vdXRwdXQgc3RvcmFnZQ0Kc2VxdWVuY2UgYWZm ZWN0b3IgZnJvbSBiZWluZyBhc3NvY2lhdGVkIHdpdGggYSBkdW1teSBhcmd1bWVudCB0aGF0IGhh cw0KdGhlIFZBTFVFIGF0dHJpYnV0ZS4NCg0KRURJVCB0byAxMC0wMDdyMToNCg0KTm9uZS4NCg0K U1VCTUlUVEVEIEJZOiBTdGFuIFdoaXRsb2NrDQoNCkhJU1RPUlk6IDE0LTEwOSAgICBtMjAzICBG MDgvMDEwNSBzdWJtaXR0ZWQgLSBkaXNhbGxvdyBmYWlsZWQNCiAgICAgICAgIDE0LTEwOXIxICBt MjAzICB0cnkgYWxsb3cgLSBwYXNzZWQgYnkgSjMgbWVldGluZw0KICAgICAgICAgMTQtMTkyICAg IG0yMDQgIEZhaWxlZCBKMyBsZXR0ZXIgYmFsbG90ICMzMCAxNC0xNDYNCiAgICAgICAgIDE0LTI2 OSAgICBtMjA1ICBSZXZpc2VkIGFuc3dlciAtIFBhc3NlZCBieSBKMyBtZWV0aW5nDQogICAgICAg ICAxNS0xMjEgICAgbTIwNiAgUGFzc2VkIGFzIGFtZW5kZWQgYnkgSjMgbGV0dGVyIGJhbGxvdCAx NC0yNzkNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpOVU1CRVI6IEYwOC8wMTA2DQpUSVRMRTogIE1PVkVf QUxMT0MgZm9yIGEgcmVtb3RlIGFycmF5DQpLRVlXT1JEUzogYWxsb2NhdGlvbiwgY29pbmRleGVk DQpERUZFQ1QgVFlQRTogRXJyYXR1bQ0KU1RBVFVTOiBQYXNzZWQgYnkgV0c1IGJhbGxvdA0KDQpR VUVTVElPTjoNCg0KV2FzIGl0IGludGVuZGVkIHRoYXQgTU9WRV9BTExPQyBjYW4gYWZmZWN0IHRo ZSBhbGxvY2F0aW9uIHN0YXR1cyBvZiBhbg0KYXJyYXkgb24gYW4gaW1hZ2Ugb3RoZXIgdGhhbiB0 aGUgZXhlY3V0aW5nIGltYWdlPyBBbiBleGFtcGxlIGlzDQoNCiAgICAgQ0FMTCBNT1ZFX0FMTE9D KEEsQltJXSVBKQ0KDQpBTlNXRVI6DQoNCk5vLCBpdCB3YXMgbm90IGludGVuZGVkIHRoYXQgdGhl IGV4ZWN1dGluZyBpbWFnZSBjYW4gYWZmZWN0IHRoZQ0KYWxsb2NhdGlvbiBzdGF0dXMgb2YgYW4g YXJyYXkgb24gYW4gaW1hZ2Ugb3RoZXIgdGhhbiB0aGUgZXhlY3V0aW5nDQppbWFnZS4gRWRpdHMg YXJlIHByb3ZpZGVkIHRvIGNvcnJlY3QgdGhpcy4NCg0KRURJVFMgdG8gMTAtMDA3cjE6DQoNCjEz LjcuMTE4IE1PVkVfQUxMT0MoRlJPTSxUTyksIHBhcmEgMzoNCg0KWzM3MjoxOF0gSW4gdGhlIGRl c2NyaXB0aW9uIG9mIEZST00sIGFmdGVyICJJdCBzaGFsbCBiZSBhbGxvY2F0YWJsZSIsDQphZGQg ImFuZCBzaGFsbCBub3QgYmUgYSBjb2luZGV4ZWQgb2JqZWN0Ii4NCg0KWzM3MjoxOV0gSW4gdGhl IGRlc2NyaXB0aW9uIG9mIFRPLCBhZnRlciAiSXQgc2hhbGwgYmUgYWxsb2NhdGFibGUiLA0KYWRk ICJhbmQgc2hhbGwgbm90IGJlIGEgY29pbmRleGVkIG9iamVjdCIuDQoNClNVQk1JVFRFRCBCWTog Sm9obiBSZWlkDQoNCkhJU1RPUlk6IDE0LTExOSAgICBtMjAzICBGMDgvMDEwNiBzdWJtaXR0ZWQg LSBwYXNzZWQgYnkgSjMgbWVldGluZw0KICAgICAgICAgMTQtMTkyICAgIG0yMDQgIFBhc3NlZCBi eSBKMyBsZXR0ZXIgYmFsbG90IDE0LTE0Ng0KICAgICAgICAgTjIwNDcgICAgIG0yMDYgIFBhc3Nl ZCBieSBXRzUgYmFsbG90IDggTjIwNDIvNDMNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpOVU1CRVI6IEYw OC8wMTA3DQpUSVRMRTogTE9DS19UWVBFLCB1bHRpbWF0ZSBjb21wb25lbnRzLCBzdWJjb21wb25l bnRzLCBhbmQgY29hcnJheXMNCktFWVdPUkQ6IExPQ0tfVFlQRSwgdWx0aW1hdGUgY29tcG9uZW50 cywgc3ViY29tcG9uZW50cywgY29hcnJheXMNCkRFRkVDVCBUWVBFOiBFcnJhdHVtDQpTVEFUVVM6 IEozIGNvbnNpZGVyYXRpb24gaW4gcHJvZ3Jlc3MNCg0KRElTQ1VTU0lPTjoNCg0KQ29uc3RyYWlu dCBDNDMzIGluIHN1YmNsYXVzZSA0LjUuMi4xIHJlYWRzOg0KDQpDNDMzIChSNDI1KSBJZiBFWFRF TkRTIGFwcGVhcnMgYW5kIHRoZSB0eXBlIGJlaW5nIGRlZmluZWQgaGFzIGFuDQogIHVsdGltYXRl IGNvbXBvbmVudCBvZiB0eXBlIExPQ0tfVFlQRSBmcm9tIHRoZSBpbnRyaW5zaWMgbW9kdWxlIElT Tw0KICBGT1JUUkFOIEVOViwgaXRzIHBhcmVudCB0eXBlIHNoYWxsIGhhdmUgYW4gdWx0aW1hdGUg Y29tcG9uZW50IG9mIHR5cGUNCiAgTE9DSyBUWVBFLg0KDQpUaGlzIHdhcyBpbnRlbmRlZCB0byBw cmV2ZW50IGNvbXByb21pc2luZyBwcm90ZWN0aW9uIG9mIG9iamVjdHMgb2YgdHlwZQ0KTE9DS19U WVBFIGJ5IHVzaW5nIHR5cGUgZXh0ZW5zaW9uIGFuZCBwb2x5bW9ycGhpc20uDQoNCkFjY29yZGlu ZyB0byBzdWJjbGF1c2UgMS4zLjMzLjQsIGFuIHVsdGltYXRlIGNvbXBvbmVudCBpcyBhDQoNCiAg Y29tcG9uZW50IHRoYXQgaXMgb2YgaW50cmluc2ljIHR5cGUsIGEgcG9pbnRlciwgb3IgYWxsb2Nh dGFibGU7IG9yIGFuDQogIHVsdGltYXRlIGNvbXBvbmVudCBvZiBhIG5vbnBvaW50ZXIgbm9uYWxs b2NhdGFibGUgY29tcG9uZW50IG9mIGRlcml2ZWQNCiAgdHlwZQ0KDQpUaGUgdHlwZSBMT0NLX1RZ UEUgaXMgbm90IGludHJpbnNpYy4gIFRoZXJlZm9yZSwgaWYgYSB0eXBlIGhhcyBhDQpub25hbGxv Y2F0YWJsZSBjb21wb25lbnQgb2YgdHlwZSBMT0NLX1RZUEUsIGl0IGRvZXMgbm90IGhhdmUgYW4g dWx0aW1hdGUNCmNvbXBvbmVudCBvZiB0eXBlIExPQ0tfVFlQRS4gIFRoZXJlZm9yZSwgY29uc3Ry YWludCBDNDMzIGZhaWxzIHRvDQpwcm90ZWN0IGVudGl0aWVzIG9mIHR5cGUgTE9DS19UWVBFLg0K DQpDb25zdHJhaW50IEM0MzMgcHJvaGliaXRzIHJlYXNvbmFibGUgY29uc3RydWN0aW9ucywgc3Vj aCBhcyBleHRlbmRpbmcNCnRoZSB0eXBlIExPQ0tfVFlQRSwgb3IgZXh0ZW5kaW5nIGEgdHlwZSB0 aGF0IGhhcyBhbiBhbGxvY2F0YWJsZQ0KY29tcG9uZW50IHRoYXQgaGFzIGEgY29tcG9uZW50IG9m IHR5cGUgTE9DS19UWVBFLCBiZWNhdXNlIHRoZSBwYXJlbnQNCnR5cGUgZG9lcyBub3QgaGF2ZSBh biB1bHRpbWF0ZSBjb21wb25lbnQgb2YgdHlwZSBMT0NLX1RZUEUuDQoNCkNvbnN0cmFpbnQgQzEz MDIgaW4gc3ViY2xhdXNlIDEzLjguMi4xNiByZWFkczoNCg0KQzEzMDIgQSBuYW1lZCB2YXJpYWJs ZSBvZiB0eXBlIExPQ0sgVFlQRSBzaGFsbCBiZSBhIGNvYXJyYXkuIEEgbmFtZWQNCiAgdmFyaWFi bGUgd2l0aCBhIG5vbmNvYXJyYXkgc3ViY29tcG9uZW50IG9mIHR5cGUgTE9DSyBUWVBFIHNoYWxs IGJlIGENCiAgY29hcnJheS4NCg0KVGhpcyB3YXMgaW50ZW5kZWQgdG8gcmVxdWlyZSB0aGF0IGNv bXBvbmVudHMgb2YgdHlwZSBMT0NLX1RZUEUsIGF0IGFueQ0KbGV2ZWwgb2YgY29tcG9uZW50IHNl bGVjdGlvbiwgYmUgY29hcnJheXMuDQoNCkFjY29yZGluZyB0byBzdWJjbGF1c2UgMS4zLjMzLjMs IGEgc3ViY29tcG9uZW50IGlzIGENCg0KICA8c3RydWN0dXJlPiBkaXJlY3QgY29tcG9uZW50IHRo YXQgaXMgYSBzdWJvYmplY3Qgb2YgYSBzdHJ1Y3R1cmUNCg0KQWNjb3JkaW5nIHRvIHN1YmNsYXVz ZSAxLjMuMzMuMSwgYSBkaXJlY3QgY29tcG9uZW50IGlzDQoNCiAgb25lIG9mIHRoZSBjb21wb25l bnRzLCBvciBvbmUgb2YgdGhlIGRpcmVjdCBjb21wb25lbnRzIG9mIGEgbm9ucG9pbnRlcg0KICBu b25hbGxvY2F0YWJsZSBjb21wb25lbnQuDQoNClRoZSBkZWZpbml0aW9uIG9mIHRoZSB0ZXJtICJz dWJjb21wb25lbnQiIGRvZXMgbm90IGluY2x1ZGUgY29tcG9uZW50cyBvZg0KYWxsb2NhdGFibGUg Y29tcG9uZW50cy4gIFRoZXJlZm9yZSwgYmVjYXVzZSBvZiB0aGUgdXNlIG9mIHRoZSB0ZXJtDQoi c3ViY29tcG9uZW50LCIgaWYgYW4gb2JqZWN0IGhhcyBhbiBhbGxvY2F0YWJsZSBjb21wb25lbnQg dGhhdCBpbiB0dXJuDQpoYXMgYSBjb21wb25lbnQgb2YgdHlwZSBMT0NLX1RZUEUsIEMxMzAyIGNh biBmYWlsIHRvIHJlcXVpcmUgYSBjb21wb25lbnQNCm9mIHR5cGUgTE9DS19UWVBFIHRvIGJlIGEg Y29hcnJheS4NCg0KUVVFU1RJT05TOg0KDQpBc3N1bWUgdHlwZSBMT0NLX1RZUEUgZnJvbSBJU09f Rm9ydHJhbl9FbnYgaXMgYWNjZXNzaWJsZS4NCg0KMS4gSXMgdGhlIGRlZmluaXRpb24gb2YgdHlw ZSBPbmUgYmVsb3cgc3RhbmRhcmQgY29uZm9ybWluZz8NCg0KdHlwZSwgZXh0ZW5kcyhMT0NLX1RZ UEUpIDo6IE9uZQ0KICB0eXBlKGxvY2tfdHlwZSksIGFsbG9jYXRhYmxlIDo6IExPQ0sNCmVuZCB0 eXBlIE9uZQ0KDQoyLiBJcyB0aGUgZGVmaW5pdGlvbiBvZiB0eXBlIEZvdXIgYmVsb3cgc3RhbmRh cmQgY29uZm9ybWluZz8NCg0KdHlwZSA6OiBUd28NCiAgdHlwZShsb2NrX3R5cGUpLCBhbGxvY2F0 YWJsZSA6OiBMT0NLWzpdDQplbmQgdHlwZSBUd28NCg0KdHlwZSA6OiBUaHJlZQ0KICB0eXBlKHR3 byksIGFsbG9jYXRhYmxlIDo6IEwNCmVuZCB0eXBlIFRocmVlDQoNClR5cGUsIGV4dGVuZHMoVGhy ZWUpIDo6IEZvdXINCiAgdHlwZShsb2NrX3R5cGUpLCBhbGxvY2F0YWJsZSA6OiBMT0NLWzpdDQpl bmQgdHlwZSBGb3VyDQoNCjMuIElzIHRoZSBkZWZpbml0aW9uIG9mIHR5cGUgU2l4IGJlbG93IHN0 YW5kYXJkIGNvbmZvcm1pbmc/DQoNCnR5cGUgOjogRml2ZQ0KZW5kIHR5cGUgRml2ZQ0KDQp0eXBl LCBleHRlbmRzKEZpdmUpIDo6IFNpeA0KICB0eXBlKHR3byksIGFsbG9jYXRhYmxlIDo6IEwNCmVu ZCB0eXBlIFNpeA0KDQo0LiBJcyB0aGUgZGVjbGFyYXRpb24gb2YgdGhlIHZhcmlhYmxlIFggYmVs b3cgc3RhbmRhcmQgY29uZm9ybWluZz8NCg0KICB0eXBlIDo6IFNldmVuDQogICAgdHlwZShsb2Nr X3R5cGUpIDo6IEwNCiAgZW5kIHR5cGUgU2V2ZW4NCg0KICB0eXBlIDo6IEVpZ2h0DQogICAgdHlw ZShzZXZlbiksIGFsbG9jYXRhYmxlIDo6IEMNCiAgZW5kIHR5cGUgRWlnaHQNCg0KICB0eXBlKGVp Z2h0KSA6OiBYDQoNCkFOU1dFUlM6DQoNCjEuIFRoaXMgd2FzIGludGVuZGVkIHRvIGJlIHBlcm1p dHRlZC4gIEFuIGVkaXQgaXMgcHJvdmlkZWQgdG8gcmVwYWlyDQogICB0aGUgY29uc3RyYWludCBv biBhZGRpbmcgYSBMT0NLX1RZUEUgY29tcG9uZW50IGR1cmluZyB0eXBlDQogICBleHRlbnNpb24u DQoNCjIuIFRoaXMgd2FzIGludGVuZGVkIHRvIGJlIHBlcm1pdHRlZC4gIEFuIGVkaXQgaXMgcHJv dmlkZWQgdG8gcmVwYWlyDQogICB0aGUgY29uc3RyYWludCBvbiBhZGRpbmcgYSBMT0NLX1RZUEUg Y29tcG9uZW50IGR1cmluZyB0eXBlDQogICBleHRlbnNpb24uDQoNCjMuIFRoaXMgd2FzIG5vdCBp bnRlbmRlZCB0byBiZSBwZXJtaXR0ZWQuICBBbiBlZGl0IGlzIHByb3ZpZGVkIHRvDQogICByZXBh aXIgdGhlIGNvbnN0cmFpbnQgb24gYWRkaW5nIGEgTE9DS19UWVBFIGNvbXBvbmVudCBkdXJpbmcg dHlwZQ0KICAgZXh0ZW5zaW9uLg0KDQo0LiBUaGlzIHdhcyBub3QgaW50ZW5kZWQgdG8gYmUgcGVy bWl0dGVkLiAgQW4gZWRpdCBpcyBwcm92aWRlZCB0bw0KICAgcmVwYWlyIHRoZSBjb25zdHJhaW50 IG9uIGRlY2xhcmluZyBvYmplY3RzIHdoaWNoIGhhdmUgYSBwb3RlbnRpYWwNCiAgIHN1Ym9iamVj dCBvZiB0eXBlIExPQ0tfVFlQRS4NCg0KRURJVFM6DQoNCls2OjcrXSBBZnRlciBkZWZpbml0aW9u IDEuMy4zMy4yIHBhcmVudCBjb21wb25lbnQsIGluc2VydCBuZXcgdGVybQ0KICAiMS4zLjMzLjJh DQogICBwb3RlbnRpYWwgc3Vib2JqZWN0IGNvbXBvbmVudA0KICAgbm9ucG9pbnRlciBjb21wb25l bnQsIG9yIHBvdGVudGlhbCBzdWJvYmplY3QgY29tcG9uZW50IG9mIGENCiAgIG5vbnBvaW50ZXIg Y29tcG9uZW50ICg0LjUuMSkiLg0KDQpbNjE6MjctMjldIDQuNS4yLjEgU3ludGF4LCBDNDMzLA0K ICAgICAgICAgICAidWx0aW1hdGUiIC0+ICJwb3RlbnRpYWwgc3Vib2JqZWN0IiwgdHdpY2UuDQog ICAgICAgICAgIEFmdGVyICJwYXJlbnQgdHlwZSINCiAgICAgICAgICAgaW5zZXJ0ICJzaGFsbCBi ZSBMT0NLX1RZUEUgb3IiLg0KDQpbMTI3OjgtOV0gNi43LjEuMSBTeW50YXgsIEM2NDIsIHNwbGl0 IGludG8gdHdvIGNvbnN0cmFpbnRzIGFzIGZvbGxvd3M6DQogICJDNjQyIElmIGFuIDxhbGxvY2F0 ZS1vYmplY3Q+IGlzIGEgY29hcnJheSwgdGhlIGRlY2xhcmVkIHR5cGUgb2YNCiAgICAgICAgPHNv dXJjZS1leHByPiBzaGFsbCBub3QgYmUgQ19QVFIgb3IgQ19GVU5QVFIuDQoNCiAgIEM2NDJhIElm IGFuIDxhbGxvY2F0ZS1vYmplY3Q+IGlzIGEgY29hcnJheSwgdGhlIGRlY2xhcmVkIHR5cGUgb2YN CiAgICAgICAgIDxzb3VyY2UtZXhwcj4gaW4gYSBTT1VSQ0U9IHNwZWNpZmllciBzaGFsbCBub3Qg YmUgTE9DS19UWVBFDQogICAgICAgICAoMTMuOC4yLjE2KSwgbm9yIHNoYWxsIGl0IGhhdmUgYSBw b3RlbnRpYWwgc3Vib2JqZWN0DQogICAgICAgICBjb21wb25lbnQgb2YgdHlwZSBMT0NLX1RZUEUu Ig0Ke0ZpeCBzdWJvYmplY3QgY29tcG9uZW50LCB0aGVyZSBpcyBubyBwcm9ibGVtIHdpdGggTU9M RD0ufQ0KDQpbMTI3OjE4LTE5XSA2LjcuMS4xLCBwNCwNCiAgIklmIiAtPiAiSWYgYW4gQUxMT0NB VEUgc3RhdGVtZW50IGhhcyBhIFNPVVJDRT0gY2xhdXNlIGFuZCBhbiIsDQp7VGhlcmUgaXMgbm8g cHJvYmxlbSB3aXRoIE1PTEQ9LiAgInN1YmNvbXBvbmVudCIgd29ya3Mgb2sgaGVyZSBiZWNhdXNl DQogd2UgaGF2ZSBhbiBvYmplY3Qgbm90IGEgdHlwZS59DQoNClszOTk6MTctMThdIDEzLjguMi4x NiBMT0NLX1RZUEUsIEMxMzAyLA0KICAgICAgICAgICAgQ2hhbmdlICJ3aXRoIGEgbm9uY29hcnJh eSBzdWJjb21wb25lbnQiDQogICAgICAgICAgICB0byAib2YgYSB0eXBlIHRoYXQgaGFzIGEgbm9u Y29hcnJheSBwb3RlbnRpYWwgc3Vib2JqZWN0DQogICAgICAgICAgICAgICAgY29tcG9uZW50Ii4N CntDb25zdHJhaW50cyBuZWVkIHRvIGJlIGFib3V0IHRoZSB0eXBlLH0NCkFMVEVSTkFUSVZFIHJl cGxhY2UgZW50aXJlIGNvbnN0cmFpbnQgd2l0aA0KICAiQzEzMDIgQSBuYW1lZCB2YXJpYWJsZSBz aGFsbCBiZSBhIGNvYXJyYXkgaWYgaXRzIGRlY2xhcmVkIHR5cGUgaXMNCiAgICAgICAgIExPQ0tf VFlQRSBvciBoYXMgYSBwb3RlbnRpYWwgc3Vib2JqZWN0IGNvbXBvbmVudCB3aG9zZQ0KICAgICAg ICAgZGVjbGFyZWQgdHlwZSBpcyBMT0NLX1RZUEUuIg0Ke1RoaXMgbWFrZXMgaXQgY2xlYXIgdGhh dCB3ZSBhcmUgdGFsa2luZyBhYm91dCB0aGUgZGVjbGFyZWQgdHlwZS59DQoNClNVQk1JVFRFRCBC WTogVmFuIFNueWRlcg0KDQpISVNUT1JZOiAxNC0xNTQgICAgbTIwNCAgRjA4LzAxMDcgc3VibWl0 dGVkDQogICAgICAgICAxNC0xNTRyMyAgbTIwNCAgUmV2aXNlZA0KDQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoN Ck5VTUJFUjogRjA4LzAxMDgNClRJVExFOiB1bHRpbWF0ZSBjb21wb25lbnRzIGFuZCBjb2FycmF5 cw0KS0VZV09SRDogdWx0aW1hdGUgY29tcG9uZW50cywgY29hcnJheXMNCkRFRkVDVCBUWVBFOiBJ bnRlcnByZXRhdGlvbg0KU1RBVFVTOiBQYXNzZWQgYnkgV0c1IGJhbGxvdA0KDQpRVUVTVElPTlM6 DQoNCjEuIElzIHRoZSBkZWNsYXJhdGlvbiBvZiBWIHBlcm1pdHRlZDoNCg0KICB0eXBlIDo6IG9u ZQ0KICAgIHJlYWwsIGFsbG9jYXRhYmxlIDo6IENbOl0NCiAgZW5kIHR5cGUgb25lDQoNCiAgdHlw ZSA6OiB0d28NCiAgICB0eXBlKG9uZSksIGFsbG9jYXRhYmxlIDo6IEENCiAgZW5kIHR5cGUgdHdv DQoNCiAgdHlwZSh0d28pLCBwb2ludGVyIDo6IFYoOikNCg0KMi4gSXMgdGhlIGRlY2xhcmF0aW9u IG9mIFggcGVybWl0dGVkOg0KDQogIHR5cGUgOjogdGhyZWUNCiAgICByZWFsIDo6IEMNCiAgZW5k IHR5cGUgdGhyZWUNCg0KICB0eXBlIDo6IGZvdXINCiAgICB0eXBlKHRocmVlKSwgYWxsb2NhdGFi bGUgOjogQVs6XQ0KICBlbmQgdHlwZSBmb3VyDQoNCiAgdHlwZShmb3VyKSA6OiBYDQoNCkFOU1dF UlM6DQoNCjEuIFR5cGUgdHdvIGlzIG5vdCBjb25mb3JtaW5nLCBiZWNhdXNlIHRoZSBlbnRpdHkg QSBoYXMgYSBjb2FycmF5DQogICB1bHRpbWF0ZSBjb21wb25lbnQgYW5kIEM1MjUgcmVxdWlyZXMg c3VjaCBhbiBlbnRpdHkgdG8gYmUgYQ0KICAgbm9ucG9pbnRlciBub25hbGxvY2F0YWJsZSBzY2Fs YXIuICBUaGVyZWZvcmUgdGhlIGRlY2xhcmF0aW9uIG9mIFYNCiAgIGlzIG5vdCBwZXJtaXR0ZWQu DQoNCjIuIFggc2F0aXNmaWVzIEM1MjUsIHNvIGRlY2xhcmF0aW9uIG9mIFggaXMgcGVybWl0dGVk LiAgWCBoYXMgYW4NCiAgIHVsdGltYXRlIChhbGxvY2F0YWJsZSkgY29hcnJheSBjb21wb25lbnQg KEFbOl0pLCBhbmQgdGhlcmVmb3JlDQogICBhY2NvcmRpbmcgdG8gQzUyNiBtdXN0IGJlIGEgZHVt bXkgYXJndW1lbnQgb3IgaGF2ZSB0aGUgU0FWRSBhdHRyaWJ1dGUuDQoNCkVESVRTOg0KDQpOb25l Lg0KDQpTVUJNSVRURUQgQlk6IFZhbiBTbnlkZXINCg0KSElTVE9SWTogMTQtMTYzICAgIG0yMDQg IEYwOC8wMTA4IHN1Ym1pdHRlZA0KICAgICAgICAgMTQtMTYzcjEgIG0yMDQgIEZpeGVkIGV4YW1w bGVzIGluIHF1ZXN0aW9ucywgcmV2aXNlZA0KICAgICAgICAgICAgICAgICAgICAgICAgIGFuc3dl ciAtIHBhc3NlZCBieSBKMyBtZWV0aW5nDQogICAgICAgICAxNC0yNTggICAgbTIwNSAgUGFzc2Vk IGFzIGFtZW5kZWQgYnkgSjMgbGV0dGVyIGJhbGxvdCAjMzENCiAgICAgICAgICAgICAgICAgICAg ICAgICAgMTQtMjMzcjENCiAgICAgICAgIE4yMDQ3ICAgICBtMjA2ICBQYXNzZWQgYnkgV0c1IGJh bGxvdCA4IE4yMDQyLzQzDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KTlVNQkVSOiBGMDgvMDEwOQ0KVElU TEU6IExPQ0tfVFlQRSBhbmQgdW5saW1pdGVkIHBvbHltb3JwaGljDQpLRVlXT1JEOiBMT0NLX1RZ UEUsIHVubGltaXRlZCBwb2x5bW9ycGhpYw0KREVGRUNUIFRZUEU6IEVycmF0dW0NClNUQVRVUzog SjMgY29uc2lkZXJhdGlvbiBpbiBwcm9ncmVzcw0KDQpRVUVTVElPTjoNCg0KQXNzdW1lIHR5cGUg TE9DS19UWVBFIGZyb20gdGhlIGludHJpbnNpYyBtb2R1bGUgSVNPX0ZvcnRyYW5fRW52IGlzDQph dmFpbGFibGUuDQoNClExLiBJcyBhbGxvY2F0aW9uIG9mIFglQyBwZXJtaXR0ZWQ/DQoNCiAgVFlQ RSB0DQogICAgVFlQRShMT0NLX1RZUEUpLEFMTE9DQVRBQkxFIDo6IGMNCiAgRU5EIFRZUEUNCiAg VFlQRSh0KSA6OiB4WypdLHlbKl0NCiAgQUxMT0NBVEUoeSVjKQ0KICBBTExPQ0FURSh4JWMsU09V UkNFPXklYykNCg0KUTIuIElzIGFsbG9jYXRpb24gb2YgQyBwZXJtaXR0ZWQ/DQoNCiAgY2xhc3Mo KiksIHBvaW50ZXIgOjogQw0KICB0eXBlKGxvY2tfdHlwZSksIGludGVudChpbikgOjogTFsqXQ0K DQogIGFsbG9jYXRlICggQywgc291cmNlPUwgKQ0KDQpRMy4gSXMgYWxsb2NhdGlvbiBvZiBDIHBl cm1pdHRlZD8NCg0KICBjbGFzcygqKSwgcG9pbnRlciA6OiBDDQoNCiAgYWxsb2NhdGUgKCBMT0NL X1RZUEUgOjogQyApDQoNClE0LiBJcyBwb2ludGVyIGFzc2lnbm1lbnQgdG8gQyBwZXJtaXR0ZWQ/ DQoNCiAgY2xhc3MoKiksIHBvaW50ZXIgOjogQw0KICB0eXBlKGxvY2tfdHlwZSksIGludGVudChp biksIHRhcmdldCA6OiBMWypdDQoNCiAgYyA9PiBMDQoNClE1LiBJcyB0aGlzIEFMTE9DQVRFIHN0 YXRlbWVudCBjb25mb3JtaW5nPw0KDQogIENMQVNTKCopLEFMTE9DQVRBQkxFLCBTQVZFIDo6IENb Ol0NCiAgVFlQRShMT0NLX1RZUEUpLCAgICAgIFNBVkUgOjogWFsqXQ0KICBBTExPQ0FURShDLE1P TEQ9WCkNCg0KQU5TV0VSOg0KDQpBMS4gQWxsb2NhdGlvbiBvZiBYJUMgaXMgbm90IGludGVuZGVk IHRvIGJlIGFsbG93ZWQuICBBbiBlZGl0IGlzDQogICAgc3VwcGxpZWQgdG8gY29ycmVjdCB0aGUg cmVxdWlyZW1lbnRzIG9uIGFsbG9jYXRpb24gb2YgTE9DS19UWVBFLg0KDQpBMi4gQWxsb2NhdGlv biBvZiBDIGlzIG5vdCBpbnRlbmRlZCB0byBiZSBhbGxvd2VkLiAgQW4gZWRpdCBpcw0KICAgIHN1 cHBsaWVkIHRvIGNvcnJlY3QgdGhlIHJlcXVpcmVtZW50cyBvbiBhbGxvY2F0aW9uIG9mIExPQ0tf VFlQRS4NCg0KQTMuIFRoaXMgYWxsb2NhdGlvbiBvZiBDIGlzIHBlcm1pdHRlZC4gIEl0IGNhbm5v dCB2aW9sYXRlIEMxMzAyIGJlY2F1c2UNCiAgICB0aGF0IGlzIGEgc3ludGF4IGNvbnN0cmFpbnQu ICBPbmx5IHRoaW5ncyB0aGF0IGFyZSBzdGF0aWNhbGx5DQogICAgZGV0ZWN0YWJsZSBzdGF0aWMg cHJvcGVydGllcyBvZiB0aGUgcHJvZ3JhbSBzb3VyY2UgdGV4dCBjYW4gYmUNCiAgICBzeW50YXgg Y29uc3RyYWludHMuICBUaGF0IG1lYW5zIHRoYXQgInR5cGUiIGluIEMxMzAyIGNhbiBvbmx5IG1l YW4NCiAgICAiZGVjbGFyZWQgdHlwZSIuDQoNCiAgICBDIGlzIENMQVNTKCopIHNvIGhhcyBubyBk ZWNsYXJlZCB0eXBlIGFuZCB0aGVyZWZvcmUgY2Fubm90DQogICAgdmlvbGF0ZSBDMTMwMi4NCg0K ICAgIEVkaXRzIGFyZSBnaXZlbiB0byBmaXggQzEzMDIgdG8gc2F5ICJkZWNsYXJlZCB0eXBlIiBl eHBsaWNpdGx5IHRvDQogICAgYXZvaWQgdGhpcyBjb25mdXNpb24uDQoNCkE0LiBQb2ludGVyIGFz c2lnbm1lbnQgdG8gQyBpcyBwZXJtaXR0ZWQuDQoNCkE1LiBUaGlzIHN0YXRlbWVudCB3YXMgaW50 ZW5kZWQgdG8gYmUgcGVybWl0dGVkLiAgQW4gZWRpdCBpcyBzdXBwbGllZA0KICAgIHRvIGNvcnJl Y3QgdGhlIHJlcXVpcmVtZW50cy4NCg0KRURJVFM6DQoNCls2OjcrXSBBZnRlciBkZWZpbml0aW9u IDEuMy4zMy4yIHBhcmVudCBjb21wb25lbnQsIGluc2VydCBuZXcgdGVybQ0KICAiMS4zLjMzLjJh DQogICBwb3RlbnRpYWwgc3Vib2JqZWN0IGNvbXBvbmVudA0KICAgbm9ucG9pbnRlciBjb21wb25l bnQsIG9yIHBvdGVudGlhbCBzdWJvYmplY3QgY29tcG9uZW50IG9mIGENCiAgIG5vbnBvaW50ZXIg Y29tcG9uZW50ICg0LjUuMSkiLg0KDQpbMTI3OjgtOV0gNi43LjEuMSBTeW50YXgsIEM2NDIsDQog ICAgICAgICAgQ2hhbmdlICJDX1BUUiwiIHRvICJDX1BUUiBvciINCiAgICAgICAgICBEZWxldGUg IiwgTE9DS19UWVBFIC4uLiBMT0NLX1RZUEUiLg0KDQpbMTI3OjkrXSBJbnNlcnQgbmV3IGNvbnN0 cmFpbnQNCiAgIkM2NDNhIChSNjI3KSBJZiBTT1VSQ0U9IGFwcGVhcnMsIHRoZSBkZWNsYXJlZCB0 eXBlIG9mIDxzb3VyY2UtZXhwcj4NCiAgICAgICAgIHNoYWxsIG5vdCBiZSBMT0NLX1RZUEUgb3Ig aGF2ZSBhIHBvdGVudGlhbCBzdWJvYmplY3QNCiAgICAgICAgIGNvbXBvbmVudCBvZiB0eXBlIExP Q0tfVFlQRS4iDQoNClsxMjc6MTgtMTldIDYuNy4xLjEsIHA0LA0KICAiSWYiIC0+ICJJZiBhbiBB TExPQ0FURSBzdGF0ZW1lbnQgaGFzIGEgU09VUkNFPSBzcGVjaWZpZXIgYW5kIGFuIiwNCntUaGVy ZSBpcyBubyBwcm9ibGVtIHdpdGggTU9MRD0uICAic3ViY29tcG9uZW50IiB3b3JrcyBvayBoZXJl IGJlY2F1c2UNCiB3ZSBoYXZlIGFuIG9iamVjdCBub3QgYSB0eXBlLn0NCg0KWzM5OToxN10gMTMu OC4yLjE2IExPQ0tfVFlQRSwgQzEzMDINCiAgICAgInZhcmlhYmxlIG9mIHR5cGUgTE9DSyBUWVBF Ig0KICAtPiAidmFyaWFibGUgd2l0aCBkZWNsYXJlZCB0eXBlIExPQ0tfVFlQRSIuDQoNClNVQk1J VFRFRCBCWTogVmFuIFNueWRlcg0KDQpISVNUT1JZOiAxNC0xNjQgICAgbTIwNCAgRjA4LzAxMDkg c3VibWl0dGVkDQogICAgICAgICAxNC0xNjRyMyAgbTIwNCAgQXMgYW1lbmRlZCwgcGFzc2VkIGJ5 IEozIG1lZXRpbmcNCiAgICAgICAgIDE0LTI1OCAgICBtMjA1ICBGYWlsZWQgdGhlIEozIGxldHRl ciBiYWxsb3QgIzMxIDE0LTIzM3IxDQoNCiAgTWFsY29sbSBDb2hlbidzIHllcyB2b3RlIHdpdGgg Y29tbWVudCBvbiBGMDgvMDEwOToNCg0KICAgIEJpbGwgTG9uZyB3cml0ZXM6DQogICAgICAiVGhl IGV4YW1wbGUgUTMgaGFzIGEgdmFyaWFibGUsIEMsIG9mIHR5cGUgTE9DS19UWVBFIHRoYXQNCiAg ICAgICBpcyBub3QgYSBjb2FycmF5LiBUaGlzIHZpb2xhdGVzIEMxMzAyLiAgIEFuc3dlciBBMyBp cyB3cm9uZy4iDQoNCiAgICBObywgaXQgY2Fubm90IHZpb2xhdGUgQzEzMDIgYmVjYXVzZSB0aGF0 IGlzIGEgc3ludGF4IGNvbnN0cmFpbnQuDQogICAgT25seSB0aGluZ3MgdGhhdCBhcmUgc3RhdGlj YWxseSBkZXRlY3RhYmxlIHN0YXRpYyBwcm9wZXJ0aWVzIG9mDQogICAgdGhlIHByb2dyYW0gc291 cmNlIHRleHQgY2FuIGJlIHN5bnRheCBjb25zdHJhaW50cy4gIFRoYXQgbWVhbnMNCiAgICB0aGF0 ICJ0eXBlIiBpbiBDMTMwMiBjYW4gb25seSBtZWFuICJkZWNsYXJlZCB0eXBlIi4NCg0KICAgIEMg aXMgQ0xBU1MoKikgc28gaGFzIG5vIGRlY2xhcmVkIHR5cGUgYW5kIHRoZXJlZm9yZSBjYW5ub3QN CiAgICB2aW9sYXRlIEMxMzAyLg0KDQogICAgQzEzMDIgb3VnaHQgdG8gYmUgZml4ZWQgdG8gc2F5 ICJkZWNsYXJlZCB0eXBlIiBleHBsaWNpdGx5LCB0bw0KICAgIGF2b2lkIHRoaXMgY29uZnVzaW9u Ow0KDQogICAgICBbMzk5OjE3XSAxMy44LjIuMTYgTE9DS19UWVBFLCBDMTMwMg0KICAgICAgICAg ICAgInZhcmlhYmxlIG9mIHR5cGUgTE9DSyBUWVBFIg0KICAgICAgICAgLT4gInZhcmlhYmxlIHdp dGggZGVjbGFyZWQgdHlwZSBMT0NLX1RZUEUiLg0KDQogICAgQmlsbCBjb250aW51ZXM6DQogICAg ICAiRm9yIHRoZSBzYW1lIHJlYXNvbiB0aGUgZXhhbXBsZSBRNCBpcyBkZWZlY3RpdmUgYW5kIGFu c3dlcg0KICAgICAgIEE0IGlzIHdyb25nLiAiDQoNCiAgICBGb3IgdGhlIHNhbWUgcmVhc29uLCB0 aGVyZSBpcyBub3RoaW5nIHdyb25nIHdpdGggUTQuDQoNCiAgICBCaWxsIGNvbnRpbnVlczoNCiAg ICAgICJUaGUgZXhhbXBsZSBjb2RlIGluIFE1IGlzIGFsc28gZGVmZWN0aXZlLCBhbHRob3VnaCBj b3VsZCBiZQ0KICAgICAgIHJlcGFpcmVkIGJ5IGNoYW5naW5nIHRoZSBkZWNsYXJhdGlvbiBvZiBY IHRvDQoNCiAgICAgICAgIFRZUEUoTE9DS19UWVBFKSxTQVZFIDo6IFhbKl0NCg0KICAgICAgVGhh dCBzZWVtcyB0byBiZSBzdWZmaWNpZW50IHRvIG1ha2UgYW5zd2VyIEE1IGFjY2VwdGFibGUuIg0K DQogICAgWCBzaG91bGQgY2VydGFpbmx5IGJlIGV4cGxpY2l0bHkgbWFkZSBhIGNvYXJyYXksIGJ1 dCBnaXZpbmcgaXQNCiAgICBTQVZFIHNlZW1zIHVubmVjZXNzYXJ5ICh0aGlzIG1pZ2h0IGJlIGEg bWFpbiBwcm9ncmFtIG9yIG1vZHVsZSwNCiAgICBvciBtaWdodCBiZSBhIHN1YnByb2dyYW0gd2l0 aCBhIGdsb2JhbCBTQVZFLCBvciBYIG1pZ2h0IGJlIGENCiAgICBkdW1teSBhcmd1bWVudCkuICBJ IGd1ZXNzIGl0IGRvZXNuJ3QgaHVydCB0aG91Z2ggKG90aGVyIHRoYW4NCiAgICBsb29raW5nIGEg Yml0IHN0cmFuZ2UgdG8gaGF2ZSBYIHNhdmVkIGJ1dCBDIG5vdCwgc28gaWYgd2UncmUNCiAgICBn b2luZyB0byBTQVZFIG9uZSB3ZSBzaG91bGQgU0FWRSB0aGUgb3RoZXIpLg0KDQogIFZhbiBTbnlk ZXIncyB5ZXMgdm90ZSB3aXRoIENvbW1lbnQgb24gRjA4LzAxMDk6DQoNCiAgICAiQzY0MyIgaW4g ZWRpdCBhdCBbMTI3OjgtOV0gb3VnaHQgdG8gYmUgIkM2NDIiDQoNCiAgUmVzdWx0IGZvciBGMDgv MDEwOToNCg0KICAgIC9JTlRFUlAgYWNjZXB0cyBWYW4ncyAiQzY0MyBzaG91bGQgYmUgQzY0MiIu ICBJbiBRNSBtYWtlIFggYSBjb2FycmF5DQogICAgYW5kIGFkZCBTQVZFIHRvIGJvdGggQyBhbmQg WC4gIE1ha2UgdGhlIGVkaXQgdG8gY2xhcmlmeSBDMTMwMi4NCiAgICAvSU5URVJQIGFncmVlcyB3 aXRoIE1hbGNvbG0gdGhhdCBRMyBhbmQgUTQgYXJlIHRoZW0gb2suICBUaGlzIGlzIGENCiAgICBk aWZmaWN1bHQgc3ViamVjdCBhbmQgL0lOVEVSUCBiZWxpZXZlcyB0aGF0IHRoZSBKMyBtZWV0aW5n IHNob3VsZA0KICAgIHZvdGUgYWdhaW4gb24gRjA4LzAxMDkgd2l0aCB0aGVzZSBjaGFuZ2VzLg0K DQogICAgRjA4LzAxMDkgZmFpbGVkIHRoZSBKMyBsZXR0ZXIgYmFsbG90Lg0KDQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQoNCk5VTUJFUjogRjA4LzAxMTANClRJVExFOiBJbnRlcmRlcGVuZGVuY2Ugb2Ygc3BlY2lm aWVyIHZhbHVlcyBpbiBpbnB1dC9vdXRwdXQgc3RhdGVtZW50cw0KS0VZV09SRDogc3BlY2lmaWVy LCBpbnB1dC9vdXRwdXQgc3RhdGVtZW50DQpERUZFQ1QgVFlQRTogRXJyYXR1bQ0KU1RBVFVTOiBQ YXNzZWQgYnkgSjMgbGV0dGVyIGJhbGxvdA0KDQpRVUVTVElPTlM6DQoNCjEuIEFyZSB0aGUgZm9s bG93aW5nIElOUVVJUkUgc3RhdGVtZW50cyBwZXJtaXR0ZWQ/DQoNCiAgICBMT0dJQ0FMIDo6IEV4 aXN0LCBPcGVuZWQNCiAgICBJTlFVSVJFICggRklMRT0nZnJlZCcsIEVYSVNUPWV4aXN0ICkNCiAg ICBJTlFVSVJFICggVU5JVD00MiwgT1BFTkVEPW9wZW5lZCApDQoNCjIuIElzIHRoZSBmb2xsb3dp bmcgSU5RVUlSRSBzdGF0ZW1lbnQgcGVybWl0dGVkPw0KDQogICAgSU5URUdFUiA6OiBVDQogICAg SU5URVJGQUNFDQogICAgICBGVU5DVElPTiBQICggQSApDQogICAgICAgIElOVEVHRVIsIElOVEVO VChJTikgOjogQQ0KICAgICAgICBJTlRFR0VSLCBQT0lOVEVSIDo6IFANCiAgICAgIEVORCBGVU5D VElPTiBQDQogICAgRU5EIElOVEVSRkFDRQ0KICAgIElOUVVJUkUgKCBGSUxFPSdmcmVkJywgTlVN QkVSPXUsIFBPUz1wKHUpICkNCg0KMy4gSXMgdGhlIGZvbGxvd2luZyBSRUFEIHN0YXRlbWVudCBw ZXJtaXR0ZWQ/DQoNCiAgICBJTlRFR0VSIDo6IFNUQVRTKDQyKQ0KICAgIE5BTUVMSVNUIC9JTi8g Vg0KICAgIFJFQUQgKCAqLCBJTiwgSU9TVEFUPVNUQVRTKFYpICkNCg0KQU5TV0VSUzoNCg0KMS4g QWNjb3JkaW5nIHRvIDkuMTJwNSBbMjQzOjMtNV0NCg0KICAiVGhlIHZhbHVlIG9mIGEgc3BlY2lm aWVyIGluIGFuIGlucHV0L291dHB1dCBzdGF0ZW1lbnQgc2hhbGwgbm90DQogIGRlcGVuZCBvbiB0 aGUgZGVmaW5pdGlvbiBvciBldmFsdWF0aW9uIG9mIGFueSBvdGhlciBzcGVjaWZpZXIgaW4gdGhl DQogIDxpby1jb250cm9sLXNwZWMtbGlzdD4gb3IgPGlucXVpcmUtc3BlYy1saXN0PiBpbiB0aGF0 IHN0YXRlbWVudC4iDQoNCnRoZSBJTlFVSVJFIHN0YXRlbWVudHMgYXJlIHByb2hpYml0ZWQgYmVj YXVzZSB0aGUgdmFsdWVzIG9mIHRoZQ0KdmFyaWFibGVzIEVYSVNUIGFuZCBPUEVOIGRlcGVuZCB1 cG9uIHRoZSB2YWx1ZXMgb2YgdGhlIEZJTEU9IGFuZCBVTklUPQ0Kc3BlY2lmaWVycywgcmVzcGVj dGl2ZWx5LiAgVGhleSB3ZXJlIGludGVuZGVkIHRvIGJlIHBlcm1pdHRlZC4gIEVkaXRzDQphcmUg cHJvdmlkZWQgdG8gY29ycmVjdCB0aGlzIG1pc3Rha2UuDQoNCjIuIEFjY29yZGluZyB0byA5LjEy cDYgWzI0Mzo2LThdDQoNCiAgIlRoZSB2YWx1ZSBvZiBhbnkgc3Vic2NyaXB0IG9yIHN1YnN0cmlu ZyBib3VuZCBvZiBhIHZhcmlhYmxlIHRoYXQNCiAgYXBwZWFycyBpbiBhIHNwZWNpZmllciBpbiBh biBpbnB1dC9vdXRwdXQgc3RhdGVtZW50IHNoYWxsIG5vdCBkZXBlbmQNCiAgb24gYW55IDxpbnB1 dC1pdGVtPiwgPGlvLWltcGxpZWQtZG8+IDxkby12YXJpYWJsZT4sIG9yIG9uIHRoZQ0KICBkZWZp bml0aW9uIG9yIGV2YWx1YXRpb24gb2YgYW55IG90aGVyIHNwZWNpZmllciBpbiB0aGUNCiAgPGlv LWNvbnRyb2wtc3BlYz4gb3IgPGlucXVpcmUtc3BlYz4gaW4gdGhhdCBzdGF0ZW1lbnQuIg0KDQp0 aGUgSU5RVUlSRSBzdGF0ZW1lbnQgaXMgbm90IHByb2hpYml0ZWQgYmVjYXVzZSBVIGlzIG5vdCBh IHN1YnNjcmlwdA0Kb3Igc3Vic3RyaW5nIGJvdW5kLg0KDQpBY2NvcmRpbmcgdG8gNy4xLjRwMiBb MTM5OjMtNF0NCg0KICAiVGhlIGV2YWx1YXRpb24gb2YgYSBmdW5jdGlvbiByZWZlcmVuY2Ugc2hh bGwgbmVpdGhlciBhZmZlY3Qgbm9yIGJlDQogICBhZmZlY3RlZCBieSB0aGUgZXZhbHVhdGlvbiBv ZiBhbnkgb3RoZXIgZW50aXR5IHdpdGhpbiB0aGUNCiAgIHN0YXRlbWVudC4iDQoNCnRoZSBJTlFV SVJFIHN0YXRlbWVudCBpcyBub3QgcHJvaGliaXRlZCBiZWNhdXNlLCBhbHRob3VnaCBVIGlzDQph c3NpZ25lZCBhIHZhbHVlLCBpdCBpcyBub3QgZXZhbHVhdGVkLg0KDQpUaGUgSU5RVUlSRSBzdGF0 ZW1lbnQgd2FzIGludGVuZGVkIHRvIGJlIHByb2hpYml0ZWQuICBFZGl0cyBhcmUNCnByb3ZpZGVk IHRvIGNvcnJlY3QgdGhpcyBtaXN0YWtlLg0KDQozLiBBY2NvcmRpbmcgdG8gOS4xMnA2IFsyNDM6 Ni04XQ0KDQogICJUaGUgdmFsdWUgb2YgYW55IHN1YnNjcmlwdCBvciBzdWJzdHJpbmcgYm91bmQg b2YgYSB2YXJpYWJsZSB0aGF0DQogIGFwcGVhcnMgaW4gYSBzcGVjaWZpZXIgaW4gYW4gaW5wdXQv b3V0cHV0IHN0YXRlbWVudCBzaGFsbCBub3QgZGVwZW5kDQogIG9uIGFueSA8aW5wdXQtaXRlbT4s IDxpby1pbXBsaWVkLWRvPiA8ZG8tdmFyaWFibGU+LCBvciBvbiB0aGUNCiAgZGVmaW5pdGlvbiBv ciBldmFsdWF0aW9uIG9mIGFueSBvdGhlciBzcGVjaWZpZXIgaW4gdGhlDQogIDxpby1jb250cm9s LXNwZWM+IG9yIDxpbnF1aXJlLXNwZWM+IGluIHRoYXQgc3RhdGVtZW50LiINCg0KYW5kIDkuMTJw NyBbMjQzOjktMTFdDQoNCiAgIkluIGEgZGF0YSB0cmFuc2ZlciBzdGF0ZW1lbnQsIHRoZSB2YXJp YWJsZSBzcGVjaWZpZWQgaW4gYW4gSU9TVEFUPSwNCiAgSU9NU0c9LCBvciBTSVpFPSBzcGVjaWZp ZXIsIGlmIGFueSwgc2hhbGwgbm90IGJlIGFzc29jaWF0ZWQgd2l0aCBhbnkNCiAgZW50aXR5IGlu IHRoZSAuLi4gPG5hbWVsaXN0LWdyb3VwLW9iamVjdC1saXN0Pi4uLi4iDQoNCmFuZCA5LjEycDgg WzI0MzoxMi0xNF0NCg0KICAiSW4gYSBkYXRhIHRyYW5zZmVyIHN0YXRlbWVudCwgaWYgYSB2YXJp YWJsZSBzcGVjaWZpZWQgaW4gYW4NCiAgSU9TVEFUPSwgSU9NU0c9LCBvciBTSVpFPSBzcGVjaWZp ZXIgaXMgYW4gYXJyYXkgZWxlbWVudCByZWZlcmVuY2UsDQogIGl0cyBzdWJzY3JpcHQgdmFsdWVz IHNoYWxsIG5vdCBiZSBhZmZlY3RlZCBieSB0aGUgZGF0YSB0cmFuc2ZlciwgdGhlDQogIDxpby1p bXBsaWVkLWRvPiBwcm9jZXNzaW5nLCBvciB0aGUgZGVmaW5pdGlvbiBvciBldmFsdWF0aW9uIG9m IGFueQ0KICBvdGhlciBzcGVjaWZpZXIgaW4gdGhlIDxpby1jb250cm9sLXNwZWMtbGlzdD4uIg0K DQp0aGUgUkVBRCBzdGF0ZW1lbnQgaXMgbm90IHByb2hpYml0ZWQgYmVjYXVzZSBWIGRvZXMgbm90 ICJkZXBlbmQgb24gYW55DQo8aW5wdXQtaXRlbT4sIDxpby1pbXBsaWVkLWRvPiA8ZG8tdmFyaWFi bGU+LCBvciBvbiB0aGUgZGVmaW5pdGlvbiBvcg0KZXZhbHVhdGlvbiBvZiBhbnkgb3RoZXIgc3Bl Y2lmaWVyIGluIHRoZSA8aW8tY29udHJvbC1zcGVjPiBvcg0KPGlucXVpcmUtc3BlYz4gaW4gdGhh dCBzdGF0ZW1lbnQuIiAgIEFsdGhvdWdoIFYgaXMgaW5wdXQgZnJvbQ0KbmFtZWxpc3QsIGl0IGlz IG5vdCAidGhlIHZhcmlhYmxlIHNwZWNpZmllZCBpbiBhbiBJT1NUQVQ9LCBJT01TRz0sIG9yDQpT SVpFPSBzcGVjaWZpZXIuIiAgVGhlIFJFQUQgc3RhdGVtZW50IHdhcyBpbnRlbmRlZCB0byBiZSBw cm9oaWJpdGVkLg0KRWRpdHMgYXJlIHByb3ZpZGVkIHRvIGNvcnJlY3QgdGhpcyBtaXN0YWtlLg0K DQpFRElUUyB0byAxMC0wMDdyMToNCg0KWzI0MzozLTUgOS4xMnA1XSBXaXRoaW4gdGhlIHNlY29u ZCBzZW50ZW5jZSwgcHJvdmlkZWQgYnkgQ29ycmlnZW5kdW0NCjIsIHJlcGxhY2UgInZhbHVlcyBv ZiBhbnkgPGlucHV0LWl0ZW0+IG9yIiB3aXRoICJ2YWx1ZSBvZiBhbnkiLg0KQXBwZW5kICIsIG9y IGJlIGFmZmVjdGVkIGJ5IGRhdGEgdHJhbnNmZXIgY2F1c2VkIGJ5IHRoYXQgc3RhdGVtZW50Ii4N ClRoYXQgc2VudGVuY2UgYmVjb21lcw0KDQogICJUaGUgdmFsdWUgb2YgYW4gPGludGVybmFsLWZp bGUtdmFyaWFibGU+IG9yIG9mIGEgRk1UPSwgSUQ9LCBJT01TRz0sDQogICBJT1NUQVQ9LCBvciBT SVpFPSBzcGVjaWZpZXIgc2hhbGwgbm90IGRlcGVuZCBvbiB0aGUgdmFsdWUgb2YgYW55DQogICA8 aW8taW1wbGllZC1kbz4gPGRvLXZhcmlhYmxlPiBpbiB0aGUgc2FtZSBzdGF0ZW1lbnQsIG9yIGJl IGFmZmVjdGVkDQogICBieSBkYXRhIHRyYW5zZmVyIGNhdXNlZCBieSB0aGF0IHN0YXRlbWVudC4i DQoNCntVc2luZyAiZGF0YSB0cmFuc2ZlciIgaW5zdGVhZCBvZiAiPGlucHV0LWl0ZW0+IiBjb3Zl cnMgdGhlIG5hbWVsaXN0DQpjYXNlLn0NCg0KWzI0Mzo2LTcgOS4xMnA2XSBSZXBsYWNlICJ2YWx1 ZSBvZiBhbnkgc3Vic2NyaXB0IG9yIHN1YnN0cmluZyBib3VuZCINCndpdGggImRlbm90YXRpb24i LiAgUmVwbGFjZSAiZGVwZW5kIC4uLiA8ZG8tdmFyaWFibGU+IiB3aXRoICJiZQ0KYWZmZWN0ZWQg YnkgdGhlIGRhdGEgdHJhbnNmZXIsIHRoZSA8aW8taW1wbGllZC1kbz4gcHJvY2Vzc2luZyIuICBU aGUNCnBhcmFncmFwaCBiZWNvbWVzDQoNCiAgIlRoZSBkZW5vdGF0aW9uIG9mIGEgdmFyaWFibGUg dGhhdCBhcHBlYXJzIGluIGEgc3BlY2lmaWVyIGluIGFuDQogICBpbnB1dC9vdXRwdXQgc3RhdGVt ZW50IHNoYWxsIG5vdCBiZSBhZmZlY3RlZCBieSB0aGUgZGF0YSB0cmFuc2ZlciwNCiAgIHRoZSA8 aW8taW1wbGllZC1kbz4gcHJvY2Vzc2luZywgb3IgdGhlIGRlZmluaXRpb24gb3IgZXZhbHVhdGlv biBvZg0KICAgYW55IG90aGVyIHNwZWNpZmllciBpbiB0aGUgPGlvLWNvbnRyb2wtc3BlYy1saXN0 PiBvcg0KICAgPGlucXVpcmUtc3BlYy1saXN0PiBpbiB0aGF0IHN0YXRlbWVudC4iDQoNCkFmdGVy IHRoZSBwYXJhZ3JhcGgsIGluc2VydCBhIG5vdGU6DQoNCiAgTk9URSA5Lm5uDQogIFRoZSBzZW1h bnRpY3Mgb2YgaG93IGEgdmFyaWFibGUgaXMgZGVub3RlZCBpcyBpdHMgImRlbm90YXRpb24iOw0K ICB0aGlzIGluY2x1ZGVzIHN1Y2ggdGhpbmdzIGFzIGNvbXBvbmVudCBhbmQgYXJyYXkgZWxlbWVu dCBzZWxlY3Rpb24uDQogIEFueXRoaW5nIHRoYXQgYWZmZWN0cyB0aGlzIHByb2Nlc3MgaXMgcHJv aGliaXRlZCBpbiB0aGlzIGNvbnRleHQ7DQogIHRoYXQgaW5jbHVkZXMgdGhlIHZhbHVlcyBvZiBh bnkgc3Vic2NyaXB0cyB1c2VkLCBhbmQgaWYgdGhlDQogIHZhcmlhYmxlIGlzIHNwZWNpZmllZCBi eSBhIHBvaW50ZXIgZnVuY3Rpb24gcmVmZXJlbmNlLCBhbnl0aGluZw0KICB0aGF0IGFmZmVjdHMg dGhlIGV2YWx1YXRpb24gb2YgdGhhdCBmdW5jdGlvbi4NCg0Ke1VzaW5nICJkYXRhIHRyYW5zZmVy IiBpbnN0ZWFkIG9mICI8aW5wdXQtaXRlbT4iIGNvdmVycyB0aGUgbmFtZWxpc3QNCmNhc2UufQ0K DQpbMjQzOjkgOS4xMnA3XSAiSW5zZXJ0ICJJRD0sIiBiZWZvcmUgIklPU1RBVCIuDQoNCntOb3Qg bWVudGlvbmVkIGluIGEgcXVlc3Rpb24sIGJ1dCB3YXMgYSBwcm9ibGVtLn0NCg0KWzI0MzoxMi0x NCA5LjEycDhdIFJlcGFpcmluZyB0aGUgcGFyYWdyYXBoIHdvdWxkIG1ha2UgaXQgZXF1aXZhbGVu dA0KKGlmIG5vdCBpZGVudGljYWwpIHRvIDkuMTJwNiwgYXMgcmV2aXNlZCBhYm92ZS4gIFRoZXJl Zm9yZSwgZGVsZXRlDQp0aGUgcGFyYWdyYXBoLg0KDQpTVUJNSVRURUQgQlk6IFZhbiBTbnlkZXIN Cg0KSElTVE9SWTogMTQtMTkzICAgIG0yMDQgIEYwOC8wMTEwIHN1Ym1pdHRlZA0KICAgICAgICAg MTQtMTkzcjEgIG0yMDQgIFJldmlzZWQNCiAgICAgICAgIDE0LTI3MnIxICBtMjA1ICBQYXNzZWQg YnkgSjMgbWVldGluZw0KICAgICAgICAgMTUtMTIxICAgIG0yMDYgIFBhc3NlZCBieSBKMyBsZXR0 ZXIgYmFsbG90IDE0LTI3OQ0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCk5VTUJFUjogRjA4LzAxMTENClRJ VExFOiBVbmRlZmluaXRpb24NCktFWVdPUkQ6IHVuZGVmaW5pdGlvbg0KREVGRUNUIFRZUEU6IEVy cmF0dW0NClNUQVRVUzogSjMgY29uc2lkZXJhdGlvbiBpbiBwcm9ncmVzcw0KDQpRVUVTVElPTlM6 DQoNCjEuIERvZXMgdGhlIGZvbGxvd2luZyBjYXVzZSBEIHRvIGJlY29tZSB1bmRlZmluZWQ/ICBP dWdodCBpdD8NCg0KICBpbnRlZ2VyIDo6IEkoMikNCiAgZG91YmxlIHByZWNpc2lvbiA6OiBEDQog IGVxdWl2YWxlbmNlICggRCwgSSApDQogIGQgPSA0Mi4wDQogIGkoMSkgPSA2NjYNCg0KMi4gRG9l cyB0aGUgZm9sbG93aW5nIGNhdXNlIEMgdG8gYmVjb21lIHVuZGVmaW5lZD8gIE91Z2h0IGl0Pw0K DQogIGludGVnZXIsIHBhcmFtZXRlciA6OiBSSyA9IGtpbmQoMC4wZDApDQogIHJlYWwocmspLCBw b2ludGVyIDo6IFANCiAgY29tcGxleChyayksIHRhcmdldCA6OiBDID0gKCAxLjAsIDIuMCApDQog IGMgPSAoIDEuMGQwLCAyLjBkMCApDQogIHAgPT4gYyVyZQ0KICBwID0gMjQuMGQwDQoNCjMuIERv ZXMgdGhlIGZvbGxvd2luZyBjYXVzZSBEMSB0byBiZWNvbWUgdW5kZWZpbmVkPyAgRG9lcyBpdCBj YXVzZSBDJUlNDQp0byBiZWNvbWUgdW5kZWZpbmVkPyAgT3VnaHQgaXQ/DQoNCiAgaW50ZWdlciwg cGFyYW1ldGVyIDo6IFJLID0ga2luZCgwLjBkMCkNCiAgcmVhbChyayksIHBvaW50ZXIgOjogRDEs IEQyDQogIGNvbXBsZXgocmspLCB0YXJnZXQgOjogQw0KICBjID0gKCAxLjBkMCwgMi4wZDAgKQ0K ICBkMSA9PiBjJXJlDQogIGQyID0+IGMlaW0NCiAgY2FsbCBzICggZDIgKQ0KICAuLi4NCiAgY29u dGFpbnMNCiAgICBzdWJyb3V0aW5lIFMgKCBEICkNCiAgICAgIHJlYWwocmspLCBpbnRlbnQob3V0 KSA6OiBEDQogIC4uLi4NCg0KNC4gRG9lcyB0aGUgZm9sbG93aW5nIGNhdXNlIFkgdG8gYmVjb21l IHVuZGVmaW5lZD8gIE91Z2h0IGl0Pw0KDQogIHR5cGUgOjogVDENCiAgICBzZXF1ZW5jZQ0KICAg IGludGVnZXIgOjogQzEgPSA0Mg0KICBlbmQgdHlwZSBUMQ0KICB0eXBlIDo6IFQyDQogICAgc2Vx dWVuY2UNCiAgICByZWFsIDo6IEMxID0gNDIuMGUwDQogIGVuZCB0eXBlIFQyDQogIHR5cGUodDEp IDo6IFgNCiAgdHlwZSh0MikgOjogWQ0KICBlcXVpdmFsZW5jZSAoIFgsIFkgKQ0KICB4ID0gdDEo MjEpDQoNCkFOU1dFUlM6DQoNCjEuIEl0ZW0gKDEpIGluIHN1YmNsYXVzZSAxNi42LjYgc2F5cw0K DQogICJXaGVuIGEgc2NhbGFyIHZhcmlhYmxlIG9mIGludHJpbnNpYyB0eXBlIGJlY29tZXMgZGVm aW5lZCwgYWxsIHRvdGFsbHkNCiAgYXNzb2NpYXRlZCB2YXJpYWJsZXMgb2YgZGlmZmVyZW50IHR5 cGUgYmVjb21lIHVuZGVmaW5lZC4uLi4gIFdoZW4gYQ0KICBzY2FsYXIgdmFyaWFibGUgYmVjb21l cyB1bmRlZmluZWQsIGFsbCBwYXJ0aWFsbHkgYXNzb2NpYXRlZCBkb3VibGUNCiAgcHJlY2lzaW9u IHNjYWxhciB2YXJpYWJsZXMgYmVjb21lIHVuZGVmaW5lZC4iDQoNCkQgaXMgbm90IHRvdGFsbHkg YXNzb2NpYXRlZCB3aXRoIEkuICBJIGRvZXMgbm90IGJlY29tZSB1bmRlZmluZWQuDQpUaGVyZWZv cmUsIEQgZG9lcyBub3QgYmVjb21lIHVuZGVmaW5lZC4gIEQgb3VnaHQgdG8gYmVjb21lIHVuZGVm aW5lZC4NCkVkaXRzIGFyZSBwcm92aWRlZCB0byBjb3JyZWN0IHRoaXMgbWlzdGFrZS4NCg0KMi4g SXRlbSAoMSkgaW4gc3ViY2xhdXNlIDE2LjYuNiBzYXlzDQoNCiAgIldoZW4gYSBkb3VibGUgcHJl Y2lzaW9uIHNjYWxhciB2YXJpYWJsZSBiZWNvbWVzIGRlZmluZWQsIGFsbA0KICBwYXJ0aWFsbHkg YXNzb2NpYXRlZCBzY2FsYXIgdmFyaWFibGVzIGJlY29tZSB1bmRlZmluZWQuIg0KDQpQIGlzIHBh cnRseSBhc3NvY2lhdGVkIHdpdGggQywgYW5kIHRoZXJlZm9yZSBDIGJlY29tZXMgdW5kZWZpbmVk IGJ5IHRoZQ0KYXNzaWdubWVudCB0byB0aGUgc2NhbGFyIHZhcmlhYmxlIFAuICBDIG91Z2h0IG5v dCB0byBiZWNvbWUgdW5kZWZpbmVkLg0KRWRpdHMgYXJlIHByb3ZpZGVkIHRvIGNvcnJlY3QgdGhp cyBtaXN0YWtlLg0KDQozLiBJdGVtICgxKSBpbiBzdWJjbGF1c2UgMTYuNi42IHNheXMNCg0KICAi V2hlbiBhIHNjYWxhciB2YXJpYWJsZSBiZWNvbWVzIHVuZGVmaW5lZCwgYWxsIHBhcnRpYWxseSBh c3NvY2lhdGVkDQogIGRvdWJsZSBwcmVjaXNpb24gc2NhbGFyIHZhcmlhYmxlcyBiZWNvbWUgdW5k ZWZpbmVkLiINCg0KICBTdWJjbGF1c2UgMTYuNi4xcDUgc2F5cw0KDQogICJBIGNvbXBsZXguLi4g c2NhbGFyIG9iamVjdCBpcyBkZWZpbmVkIGlmIGFuZCBvbmx5IGlmIGFsbCBvZiBpdHMNCiAgc3Vi b2JqZWN0cyBhcmUgZGVmaW5lZC4iDQoNClRoZSBhc3NvY2lhdGlvbiBvZiB0aGUgc2NhbGFyIHZh cmlhYmxlIEQyIHdpdGggYW4gSU5URU5UKE9VVCkgZHVtbXkNCmFyZ3VtZW50IGNhdXNlcyBpdCBi ZWNvbWUgdW5kZWZpbmVkLiAgMTYuNi42cDEoMSkgZG9lcyBub3Qgc3BlY2lmeSB0aGF0DQp3aGVu IGEgc2NhbGFyIHJlYWwgdmFyaWFibGUgYmVjb21lcyB1bmRlZmluZWQsIGEgdG90YWxseSBhc3Nv Y2lhdGVkIHBhcnQNCm9mIGEgY29tcGxleCB2YXJpYWJsZSBiZWNvbWVzIHVuZGVmaW5lZC4gIEFz c3VtaW5nIEMlSU0gb3VnaHQgdG8gYmVjb21lDQp1bmRlZmluZWQsIHRoZW4gQyBvdWdodCB0byBi ZWNvbWUgdW5kZWZpbmVkLCBldmVuIHRob3VnaCBDJVJFIGlzIG5vdA0KdW5kZWZpbmVkLiAgRDEg aXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBDJVJFLCBhbmQgdGhlcmVmb3JlIGJlY29tZXMNCnVuZGVm aW5lZCB3aGVuIEMlSU0gYmVjb21lcyB1bmRlZmluZWQuICBDJUlNIG91Z2h0IHRvIGJlY29tZSB1 bmRlZmluZWQsDQphbmQgRDEgb3VnaHQgbm90IHRvIGJlY29tZSB1bmRlZmluZWQuICBFZGl0cyBh cmUgcHJvdmlkZWQgdG8gY29ycmVjdA0KdGhpcyBtaXN0YWtlLg0KDQo0LiBJdGVtICgxKSBpbiBz dWJjbGF1c2UgMTYuNi42IHNheXMNCg0KICAiV2hlbiBhIHNjYWxhciB2YXJpYWJsZSBvZiBpbnRy aW5zaWMgdHlwZSBiZWNvbWVzIGRlZmluZWQsIGFsbCB0b3RhbGx5DQogIGFzc29jaWF0ZWQgdmFy aWFibGVzIG9mIGRpZmZlcmVudCB0eXBlIGJlY29tZSB1bmRlZmluZWQuDQoNClggYW5kIFkgYXJl IHRvdGFsbHkgYXNzb2NpYXRlZCwgYW5kIG9mIGRpZmZlcmVudCB0eXBlLCBidXQgbmVpdGhlciBv bmUgaXMNCm9mIGludHJpbnNpYyB0eXBlLiAgVGhlcmVmb3JlLCBZIGRvZXMgbm90IGJlY29tZSB1 bmRlZmluZWQgYXMgYQ0KY29uc2VxdWVuY2Ugb2YgWCBiZWNvbWluZyBkZWZpbmVkLiAgWSBvdWdo dCB0byBiZWNvbWUgdW5kZWZpbmVkLiAgRWRpdHMNCmFyZSBwcm92aWRlZCB0byBjb3JyZWN0IHRo aXMgbWlzdGFrZS4NCg0KRURJVFM6DQoNCkluIFN1YmNsYXVzZSAxNi42LjZwMSwgaXRlbSgxKSwg d2l0aGluIHRoZSBmaXJzdCBzZW50ZW5jZSwgcmVtb3ZlICJvZg0KaW50cmluc2ljIHR5cGUiLiAg QmVmb3JlICJkaWZmZXJlbnQiIGluc2VydCAidGhlIHNhbWUgdHlwZSB3aXRoDQpkaWZmZXJlbnQg dmFsdWVzIG9mIGtpbmQgdHlwZSBwYXJhbWV0ZXJzLCBvciBvZiINCg0KSW4gU3ViY2xhdXNlIDE2 LjYuNnAxLCByZXBsYWNlIGl0ZW0oMSkgd2l0aCB0aGUgZm9sbG93aW5nIGZvdXIgc2VudGVuY2Vz DQooYWxsIGluIG9uZSBwYXJhZ3JhcGgpDQoNCiAgIldoZW4gYSBzY2FsYXIgdmFyaWFibGUgYmVj b21lcyBkZWZpbmVkLCBhbGwgdG90YWxseSBhc3NvY2lhdGVkDQogIHZhcmlhYmxlcyBvZiBkaWZm ZXJlbnQgdHlwZSBiZWNvbWUgdW5kZWZpbmVkLg0KDQp7UmVtb3ZpbmcgIm9mIGludHJpbnNpYyB0 eXBlIiBmcm9tIHRoZSBleGlzdGluZyBmaXJzdCBzZW50ZW5jZSBvZg0KMTYuNi42cDEoMSkgYWRk cmVzc2VzIHF1ZXN0aW9uIDQufQ0KDQogIFdoZW4gYSBzY2FsYXIgdmFyaWFibGUgYmVjb21lcyBk ZWZpbmVkLCBhbGwgcGFydGlhbGx5IGFzc29jaWF0ZWQNCiAgdmFyaWFibGVzIG9mIGRpZmZlcmVu dCB0eXBlLCBvciBvZiB0aGUgc2FtZSB0eXBlIGlmIGNvcnJlc3BvbmRpbmcga2luZA0KICB0eXBl IHBhcmFtZXRlcnMgaGF2ZSBkaWZmZXJlbnQgdmFsdWVzLCBiZWNvbWUgdW5kZWZpbmVkLCB1bmxl c3MgdGhlDQogIHNjYWxhciB2YXJpYWJsZSBpcyB0b3RhbGx5IGFzc29jaWF0ZWQgd2l0aCBhIHN1 Ym9iamVjdCBvZiB0aGUNCiAgcGFydGlhbGx5IGFzc29jaWF0ZWQgdmFyaWFibGUsIHRoYXQgc3Vi b2JqZWN0IGlzIG9mIHRoZSBzYW1lIHR5cGUgYXMNCiAgdGhlIHNjYWxhciB2YXJpYWJsZSwgYW5k IGNvcnJlc3BvbmRpbmcga2luZCB0eXBlIHBhcmFtZXRlcnMgaGF2ZSB0aGUNCiAgc2FtZSB2YWx1 ZXMuDQoNCntUaGlzIGFkZHJlc3NlcyBxdWVzdGlvbnMgMSBhbmQgMi4gIFRoZSByZWZlcmVuY2Vz IHRvIGtpbmQgdHlwZQ0KcGFyYW1ldGVyIHZhbHVlcyBhZGRyZXNzIHRoZSBwb3NzaWJpbGl0eSBv ZiBwYXJ0aWFsbHkgYXNzb2NpYXRpbmcgYQ0KZG91YmxlIHByZWNpc2lvbiB2YXJpYWJsZSB3aXRo IGEgZGVmYXVsdCByZWFsIHZhcmlhYmxlLiAgRGVmYXVsdCByZWFsDQphbmQgZG91YmxlIHByZWNp c2lvbiBhcmUgbm93IHRoZSBzYW1lIHR5cGUgKHNpbmNlIDE5OTApLCBidXQgd2l0aCBhDQpkaWZm ZXJlbnQga2luZCB0eXBlIHBhcmFtZXRlciB2YWx1ZS59DQoNCiAgV2hlbiBhIHNjYWxhciB2YXJp YWJsZSBiZWNvbWVzIHVuZGVmaW5lZCwgYWxsIHBhcnRpYWxseSBhc3NvY2lhdGVkDQogIHZhcmlh YmxlcyBiZWNvbWUgdW5kZWZpbmVkLCB1bmxlc3MgdGhlIHBhcnRpYWxseSBhc3NvY2lhdGVkIHZh cmlhYmxlDQogIGlzIHRvdGFsbHkgYXNzb2NpYXRlZCB3aXRoIGEgc3Vib2JqZWN0IG9mIHRoZSBz Y2FsYXIgdmFyaWFibGUgdGhhdA0KICBkb2VzIG5vdCBiZWNvbWUgdW5kZWZpbmVkLg0KDQogIFdo ZW4gYSBzY2FsYXIgdmFyaWFibGUgYmVjb21lcyB1bmRlZmluZWQsIGFsbCB0b3RhbGx5IGFzc29j aWF0ZWQNCiAgc3Vib2JqZWN0cyBvZiBvdGhlciB2YXJpYWJsZXMgYmVjb21lIHVuZGVmaW5lZCBp ZiB0aG9zZSBzdWJvYmplY3RzIGFyZQ0KICBvZiBkaWZmZXJlbnQgdHlwZSBmcm9tIHRoZSBzY2Fs YXIgdmFyaWFibGUsIG9yIGNvcnJlc3BvbmRpbmcga2luZCB0eXBlDQogIHBhcmFtZXRlcnMgaGF2 ZSBkaWZmZXJlbnQgdmFsdWVzLiINCg0Ke1RoZSB0aGlyZCBhbmQgZm91cnRoIHNlbnRlbmNlcyBh ZGRyZXNzIHF1ZXN0aW9uIDMufQ0KDQpTVUJNSVRURUQgQlk6IFZhbiBTbnlkZXINCg0KSElTVE9S WTogMTQtMTk1ICAgIG0yMDQgIEYwOC8wMTExIHN1Ym1pdHRlZA0KDQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoN Ck5VTUJFUjogRjA4LzAxMTINClRJVExFOiBTVEFUPSBhbmQgRVJSTVNHPSBpbiBBTExPQ0FURSBh bmQgREVBTExPQ0FURQ0KS0VZV09SRFM6IFNUQVQ9LCBFUlJNU0c9LCBBTExPQ0FURSwgREVBTExP Q0FURQ0KREVGRUNUIFRZUEU6IEVycmF0dW0NClNUQVRVUzogUGFzc2VkIGJ5IFdHNSBiYWxsb3QN Cg0KUVVFU1RJT046DQoNCkNvbnNpZGVyDQoNCiAgQ0hBUkFDVEVSKDgwKSB0ZXh0KDA6MTAwKSwg bXNnDQogIElOVEVHRVIgc3RhdCxpc3RhdCgwOjgwKQ0KICBSRUFMLEFMTE9DQVRBQkxFIDo6IHgo OikseSg6LDopDQogIC4uLg0KICBBTExPQ0FURSh4KDEwKSxTVEFUPXN0YXQsRVJSTVNHPXRleHQo c3RhdCkpICEgQQ0KICBERUFMTE9DQVRFKHgsU1RBVD1zdGF0LEVSUk1TRz10ZXh0KHN0YXQpKSAg ICEgQg0KICBtc2cgPSAnJw0KICBBTExPQ0FURSh5KDk5OTk5OSw5OTk5OTkpLFNUQVQ9aXN0YXQo TEVOX1RSSU0obXNnKSksRVJSTVNHPW1zZykgISBDDQogIG1zZyA9ICcnDQogIERFQUxMT0NBVEUo eCxTVEFUPWlzdGF0KExFTl9UUklNKG1zZykpLEVSUk1TRz1tc2cpICEgRA0KDQpJbiBlYWNoIG9m IHRoZSBzdGF0ZW1lbnRzIGxhYmVsbGVkIEEtRCwgdGhlcmUgaXMgYSBkZXBlbmRlbmN5IGJldHdl ZW4NCnRoZSBTVEFUPSBzcGVjaWZpZXIgYW5kIHRoZSBFUlJNU0c9IHNwZWNpZmllciAoZnJvbSBT VEFUPSB0byBFUlJNU0c9DQppbiBBIGFuZCBCLCBhbmQgZnJvbSBFUlJNU0c9IHRvIFNUQVQgaW4g QyBhbmQgRCkuICBUaGVyZSBhcHBlYXJzIHRvIGJlDQpubyBwcm9oaWJpdGlvbiBhZ2FpbnN0IHRo aXMgKHRob3VnaCB0aGVyZSBhcmUgbWFueSBwcm9oaWJpdGlvbnMNCmFnYWluc3Qgb3RoZXIgZGVw ZW5kZW5jaWVzIGluIEFMTE9DQVRFIGFuZCBERUFMTE9DQVRFKS4NCg0KQXJlIGFsbCB0aGVzZSBl eGFtcGxlcyBjb25mb3JtaW5nLCBhbmQgaWYgc28sIGlzIHRoZSBkZXBlbmRlbnQNCnZhcmlhYmxl IHJlZmVyZW5jZWQgd2l0aCB0aGUgdmFsdWUgb2YgdGhlIG90aGVyIHZhcmlhYmxlIGF0IHRoZQ0K YmVnaW5uaW5nIG9mIGV4ZWN1dGlvbiBvZiB0aGUgc3RhdGVtZW50IG9yIGF0IHRoZSBlbmQgb2Yg ZXhlY3V0aW9uIG9mDQp0aGUgc3RhdGVtZW50Pw0KDQpBTlNXRVI6DQoNClRoZXNlIGFyZSBub3Qg c3RhbmRhcmQtY29uZm9ybWluZywgYXMgbm8gaW50ZXJwcmV0YXRpb24gaXMgZXN0YWJsaXNoZWQN CmZvciB0aGVtLiAgQW4gZWRpdCBpcyBzdXBwbGllZCB0byBjbGFyaWZ5IHRoaXMgcHJvaGliaXRp b24uDQoNCkVESVRTOg0KDQpbMTMyOjRdIDYuNy40IFNUQVQ9IHNwZWNpZmllciwgcDEsIGFwcGVu ZA0KICAiVGhlIDxzdGF0LXZhcmlhYmxlPiBzaGFsbCBub3QgZGVwZW5kIG9uIHRoZSB2YWx1ZSBv ZiB0aGUNCiAgIDxlcnJtc2ctdmFyaWFibGU+LiIuDQoNClsxMzI6MjJdIDYuNy41IEVSUk1TRz0g c3BlY2lmaWVyLCBwMSwgYXBwZW5kDQogICJUaGUgPGVycm1zZy12YXJpYWJsZT4gc2hhbGwgbm90 IGRlcGVuZCBvbiB0aGUgdmFsdWUgb2YgdGhlDQogICA8c3RhdC12YXJpYWJsZT4uIi4NCg0KU1VC TUlUVEVEIEJZOiBNYWxjb2xtIENvaGVuDQoNCkhJU1RPUlk6IDE0LTIwOCAgICBtMjA0ICBGMDgv MDExMiBzdWJtaXR0ZWQgLSBwYXNzZWQgYnkgSjMgbWVldGluZw0KICAgICAgICAgMTQtMjU4ICAg IG0yMDUgIFBhc3NlZCBieSBKMyBsZXR0ZXIgYmFsbG90ICMzMSAxNC0yMzNyMQ0KICAgICAgICAg TjIwNDcgICAgIG0yMDYgIFBhc3NlZCBieSBXRzUgYmFsbG90IDggTjIwNDIvNDMNCg0KLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQ0KDQpOVU1CRVI6IEYwOC8wMTEzDQpUSVRMRTogU3BlY2lmaWVycyBpbiBpbWFnZSBj b250cm9sIHN0YXRlbWVudHMNCktFWVdPUkRTOiBTVEFUPSwgRVJSTVNHPSwgQUNRVUlSRURfTE9D Sz0sIGltYWdlIGNvbnRyb2wNCkRFRkVDVCBUWVBFOiBFcnJhdHVtDQpTVEFUVVM6IFBhc3NlZCBi eSBXRzUgYmFsbG90DQoNClFVRVNUSU9OOg0KDQpDb25zaWRlcg0KDQogIENIQVJBQ1RFUig4MCkg dGV4dCgwOjEwMCksbXNnDQogIElOVEVHRVIgc3RhdCxpc3RhdCgyKQ0KICBSRUFMLEFMTE9DQVRB QkxFIDo6IHgoOikNCiAgVFlQRShMT0NLX1RZUEUpIDo6IGxvY2tbKl0sIGFsb2NrKDA6ODApWypd DQogIExPR0lDQUwgYWNxLCBhYWNxKDA6ODApDQogIC4uLg0KICBTWU5DIEFMTChTVEFUPXN0YXQs RVJSTVNHPXRleHQoc3RhdCkpICAgICAgICEgQQ0KICBTWU5DIElNQUdFUyAoKixTVEFUPXN0YXQs RVJSTVNHPXRleHQoc3RhdCkpICEgQg0KICBTWU5DIE1FTU9SWShTVEFUPXN0YXQsRVJSTVNHPXRl eHQoc3RhdCkpICAgICEgQw0KICBMT0NLKGxvY2ssQUNRVUlSRURfTE9DSz1hY3EsICYNCiAgICAg ICBTVEFUPWlzdGF0KE1FUkdFKDEsMixhY3EpKSwgJg0KICAgICAgIEVSUk1TRz10ZXh0KGlzdGF0 KE1FUkdFKDEsMixhY3EpKSkpICAgICEgRA0KICBVTkxPQ0sobG9jayxTVEFUPXN0YXQsRVJSTVNH PXRleHQoc3RhdCkpICAgICEgRQ0KICBMT0NLKGFsb2NrKHN0YXQpLFNUQVQ9c3RhdCkgICAgICAg ICAgICAgICAgICEgRg0KICBtc2cgPSAnJw0KICBVTkxPQ0soYWxvY2soTEVOX1RSSU0obXNnKSks U1RBVD1zdGF0LCAmDQogICAgICAgICBFUlJNU0c9bXNnKSAgICAgICAgICAgICAgICAgICAgICAg ICAgISBHDQogIHN0YXQgPSAxMw0KICBTWU5DIElNQUdFUyhzdGF0LFNUQVQ9c3RhdCkgICAgICAg ICAgICAgICAgICEgSA0KICBtc2cgPSAnb29wcycNCiAgU1lOQyBJTUFHRVMoTEVOX1RSSU0obXNn KSxTVEFUPXN0YXQsICYNCiAgICAgICAgICAgICAgRVJSTVNHPW1zZykgICAgICAgICAgICAgICAg ICAgICAhIEkNCg0KSW4gZWFjaCBvZiB0aGUgc3RhdGVtZW50cyBsYWJlbGxlZCBBLUYsIHRoZXJl IGlzIGEgZGVwZW5kZW5jeSBiZXR3ZWVuDQp0aGUgU1RBVD0gc3BlY2lmaWVyIGFuZCB0aGUgRVJS TVNHPSBzcGVjaWZpZXIuICBUaGVyZSBhcHBlYXJzIHRvIGJlIG5vDQpwcm9oaWJpdGlvbiBhZ2Fp bnN0IHRoaXMuDQoNCkFkZGl0aW9uYWxseSwgaW4gdGhlIExPQ0sgc3RhdGVtZW50IChEKSwgdGhl cmUgaXMgYSBkZXBlbmRlbmN5IGJldHdlZW4NCnRoZSBBQ1FVSVJFRF9MT0NLPSBzcGVjaWZpZXIg YW5kIHRoZSBTVEFUPSBzcGVjaWZpZXIgKHRoZXJlIGlzIG5vDQpkZXBlbmRlbmN5IGJldHdlZW4g QUNRVUlSRURfTE9DSz0gYW5kIEVSUk1TRz0gYmVjYXVzZSB0aGUgZm9ybWVyIGlzDQpvbmx5IHNl dCBvbiBzdWNjZXNzZnVsIGV4ZWN1dGlvbiBhbmQgdGhlIGxhdHRlciBpcyBvbmx5IHNldCBvbiBh bg0KZXJyb3IgY29uZGl0aW9uKS4gIFRoZXJlIGFwcGVhcnMgdG8gYmUgbm8gcmVzdHJpY3Rpb25z IGF0IGFsbCBvbiBhbnkNCmRlcGVuZGVuY2llcyBmcm9tIEFDUVVJUkVEX0xPQ0s9Lg0KDQpJbiB0 aGUgTE9DSyBzdGF0ZW1lbnQgKEYpLCB0aGVyZSBpcyBhIGRlcGVuZGVuY3kgYmV0d2VlbiB0aGUg U1RBVD0NCnNwZWNpZmllciBhbmQgdGhlIGxvY2sgdmFyaWFibGUuICBTaW1pbGFybHkgZm9yIHRo ZSBVTkxPQ0sgKEcpLCB0aGVyZQ0KaXMgYSBkZXBlbmRlbmN5IGJldHdlZW4gdGhlIGxvY2sgdmFy aWFibGUgYW5kIHRoZSBFUlJNU0c9IHNwZWNpZmllci4NCg0KSW4gdGhlIFNZTkMgSU1BR0VTIHN0 YXRlbWVudCAoSCksIHRoZXJlIGlzIGEgZGVwZW5kZW5jeSBiZXR3ZWVuIHRoZQ0KU1RBVD0gdmFy aWFibGUgYW5kIHRoZSBpbWFnZSBzZXQuICBJbiB0aGUgU1lOQyBJTUFHRVMgc3RhdGVtZW50IChJ KSwNCnRoZXJlIGlzIGEgZGVwZW5kZW5jeSBiZXR3ZWVuIHRoZSBFUlJNU0c9IHZhcmlhYmxlIGFu ZCB0aGUgaW1hZ2Ugc2V0Lg0KDQpBcmUgYWxsIHRoZXNlIGV4YW1wbGVzIGNvbmZvcm1pbmcsIGFu ZCBpZiBzbywgaXMgdGhlIGRlcGVuZGVudA0KdmFyaWFibGUgcmVmZXJlbmNlZCB3aXRoIHRoZSB2 YWx1ZSBvZiB0aGUgb3RoZXIgdmFyaWFibGUgYXQgdGhlDQpiZWdpbm5pbmcgb2YgZXhlY3V0aW9u IG9mIHRoZSBzdGF0ZW1lbnQgb3IgYXQgdGhlIGVuZCBvZiBleGVjdXRpb24gb2YNCnRoZSBzdGF0 ZW1lbnQ/DQoNCkFOU1dFUjoNCg0KTm8gaW50ZXJwcmV0YXRpb24gaXMgZXN0YWJsaXNoZWQgYW5k IHRoZXJlZm9yZSB0aGVzZSBhcmUgbm90DQpjb25mb3JtaW5nLiAgQW4gZWRpdCBpcyBwcm92aWRl ZCB0byBjbGFyaWZ5IHRoaXMuDQoNCkVESVRTOg0KDQpbMTkwOjE2LV0gOC41LjQgU1lOQyBJTUFH RVMgc3RhdGVtZW50LCBpbnNlcnQgbmV3IHAxLA0KICAiVGhlIHZhbHVlIG9mIDxpbWFnZS1zZXQ+ IHNoYWxsIG5vdCBkZXBlbmQgb24gdGhlIHZhbHVlIG9mDQogICA8c3RhdC12YXJpYWJsZT4gb3Ig PGVycm1zZy12YXJpYWJsZT4uIi4NCg0KWzE5NDo2LV0gOC41LjYgTE9DSyBhbmQgVU5MT0NLIHN0 YXRlbWVudHMsIGluc2VydCBuZXcgcDEsDQogICJUaGUgPGxvY2stdmFyaWFibGU+IHNoYWxsIG5v dCBkZXBlbmQgb24gdGhlIHZhbHVlIG9mDQogICA8c3RhdC12YXJpYWJsZT4sIDxlcnJtc2ctdmFy aWFibGU+LCBvciB0aGUNCiAgIDxzY2FsYXItbG9naWNhbC12YXJpYWJsZT4gaW4gdGhlIEFDUVVJ UkVEX0xPQ0s9IHNwZWNpZmllci4NCiAgIFRoZSA8c2NhbGFyLWxvZ2ljYWwtdmFyaWFibGU+IHNo YWxsIG5vdCBkZXBlbmQgb24gdGhlIHZhbHVlIG9mDQogICB0aGUgPGxvY2stdmFyaWFibGU+LCA8 c3RhdC12YXJpYWJsZT4sIG9yIDxlcnJtc2ctdmFyaWFibGU+LiIuDQoNClsxOTU6Mi1dIDguNS43 IFNUQVQ9IGFuZCBFUlJNU0c9IHNwZWNpZmllcnMuLi4sIGluc2VydCBuZXcgcDEsDQogICJUaGUg PHN0YXQtdmFyaWFibGU+IHNoYWxsIG5vdCBkZXBlbmQgb24gdGhlIHZhbHVlIG9mIHRoZQ0KICAg PGVycm1zZy12YXJpYWJsZT4sIDxsb2NrLXZhcmlhYmxlPiwgb3IgdGhlDQogICA8c2NhbGFyLWxv Z2ljYWwtdmFyaWFibGU+IGluIHRoZSBBQ1FVSVJFRF9MT0NLPSBzcGVjaWZpZXIuDQogICBUaGUg PGVycm1zZy12YXJpYWJsZT4gc2hhbGwgbm90IGRlcGVuZCBvbiB0aGUgdmFsdWUgb2YgdGhlDQog ICA8c3RhdC12YXJpYWJsZT4sIDxsb2NrLXZhcmlhYmxlPiwgb3IgdGhlIDxzY2FsYXItbG9naWNh bC12YXJpYWJsZT4NCiAgIGluIHRoZSBBQ1FVSVJFRF9MT0NLPSBzcGVjaWZpZXIuIi4NCg0KU1VC TUlUVEVEIEJZOiBNYWxjb2xtIENvaGVuDQoNCkhJU1RPUlk6IDE0LTIwOSAgICBtMjA0ICBGMDgv MDExMyBzdWJtaXR0ZWQgLSBwYXNzZWQgYnkgSjMgbWVldGluZw0KICAgICAgICAgMTQtMjU4ICAg IG0yMDUgIFBhc3NlZCBieSBKMyBsZXR0ZXIgYmFsbG90ICMzMSAxNC0yMzNyMQ0KICAgICAgICAg TjIwNDcgICAgIG0yMDYgIFBhc3NlZCBieSBXRzUgYmFsbG90IDggTjIwNDIvNDMNCg0KLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQ0KDQpOVU1CRVI6IEYwOC8wMTE0DQpUSVRMRTogQ2FuIExPQ0tfVFlQRSBjb21wb25l bnRzIGhhdmUgdGhlIFBPSU5URVIgYXR0cmlidXRlPw0KS0VZV09SRDogTE9DS19UWVBFIGNvbXBv bmVudCwgUE9JTlRFUg0KREVGRUNUIFRZUEU6IEVycmF0dW0NClNUQVRVUzogSjMgY29uc2lkZXJh dGlvbiBpbiBwcm9ncmVzcw0KDQpBc3N1bWUgTE9DS19UWVBFIGlzIGFjY2Vzc2libGUgZnJvbSBJ U09fRm9ydHJhbl9FbnYuDQoNClFVRVNUSU9OOg0KDQpUaGUgZm9sbG93aW5nIHR5cGUgZGVmaW5p dGlvbiBhbmQgdmFyaWFibGUgZGVjbGFyYXRpb24gYXJlIHBlcm1pdHRlZCBieQ0KQzEzMDI6DQoN CiAgdHlwZSA6OiBPbmUNCiAgICB0eXBlKGxvY2tfdHlwZSksIHBvaW50ZXIgOjogTA0KICBlbmQg dHlwZSBPbmUNCg0KICB0eXBlKG9uZSksIGFsbG9jYXRhYmxlIDo6IEwxWypdDQoNCkMxMzAyIHJl cXVpcmVzIGEgbmFtZWQgdmFyaWFibGUgb2YgTE9DS19UWVBFIHRvIGJlIGEgY29hcnJheS4gIEM1 MjYNCnJlcXVpcmVzIGEgY29hcnJheSB0byBiZSBhbGxvY2F0YWJsZSBvciB0byBoYXZlIHRoZSBT QVZFIGF0dHJpYnV0ZS4NCg0KVGhlIGZvbGxvd2luZyBkZWNsYXJhdGlvbiBpcyBhcHBhcmVudGx5 IHByb2hpYml0ZWQgYmVjYXVzZSBMNCBpcw0Kbm90IGEgY29hcnJheToNCg0KICB0eXBlKGxvY2tf dHlwZSksIHBvaW50ZXIgOjogTDQNCg0KV2FzIGl0IGludGVuZGVkIHRoYXQgcG9pbnRlciBjb21w b25lbnRzIG9mIHR5cGUgTE9DS19UWVBFIGJlIHBlcm1pdHRlZCwNCmJ1dCB0aGF0IG5hbWVkIHZh cmlhYmxlcyBvZiB0eXBlIExPQ0tfVFlQRSB3aXRoIHRoZSBQT0lOVEVSIGF0dHJpYnV0ZSBiZQ0K cHJvaGliaXRlZD8NCg0KQU5TV0VSOg0KDQpJdCB3YXMgaW50ZW5kZWQgdGhhdCBjb21wb25lbnRz IG9mIHR5cGUgTE9DS19UWVBFIG5vdCBiZSBwZXJtaXR0ZWQgdG8NCmhhdmUgdGhlIFBPSU5URVIg YXR0cmlidXRlLiAgRWRpdHMgYXJlIHByb3ZpZGVkIHRvIGNvcnJlY3QgdGhpcyBtaXN0YWtlLg0K DQpFRElUUzoNCg0KWzM5OToxOCtdIDEzLjguMi4xNiBMT0NLX1RZUEUsIGFmdGVyIEMxMzAyLCBp bnNlcnQgbmV3IGNvbnN0cmFpbnQNCiAgIkMxMzAyYSBBIGNvbXBvbmVudCBvZiB0eXBlIExPQ0tf VFlQRSwgb3IgdGhhdCBoYXMgYSBub25hbGxvY2F0YWJsZQ0KICAgICAgICAgZGlyZWN0IGNvbXBv bmVudCBvZiB0eXBlIExPQ0tfVFlQRSwgc2hhbGwgbm90IGhhdmUgdGhlDQogICAgICAgICBQT0lO VEVSIGF0dHJpYnV0ZS4iLg0KDQpTVUJNSVRURUQgQlk6IFZhbiBTbnlkZXINCg0KSElTVE9SWTog MTQtMTQwICAgIG0yMDQgIEYwOC8wMTE0IHN1Ym1pdHRlZA0KICAgICAgICAgMTQtMTQwcjEgIG0y MDQgIFJldmlzZWQgdG8gcmV2ZXJzZSBkZWNpc2lvbg0KICAgICAgICAgMTQtMTQwcjIgIG0yMDQg IFBhc3NlZCBieSBKMyBtZWV0aW5nDQogICAgICAgICAxNC0yNTggICAgbTIwNSAgRmFpbGVkIEoz IGxldHRlciBiYWxsb3QgIzMxIDE0LTIzM3IxDQoNCiAgTWFsY29sbSBDb2hlbidzIE5vIHZvdGUg b24gRjA4LzAxMTQ6DQoNCiAgICBUaGlzIGlzIGp1c3QgdGhlIHdyb25nIGRlY2lzaW9uLiAgUGVv cGxlIHVzZSBwb2ludGVycyBmb3IgYWxsDQogICAga2luZHMgb2YgcmVhc29ucywgZS5nLiBzd2l0 Y2hpbmcgYmV0d2VlbiB0d28gZGlmZmVyZW50IHN0cnVjdHVyZXMsDQogICAgZW11bGF0aW5nIG9w dGlvbmFsaXR5LCBldGMuICBXZSBhbGxvdyBwb2ludGVycyB0byBiZSBmb2xsb3dlZA0KICAgIGNy b3NzLWltYWdlIGZyb20gYSBjb2FycmF5LCB3aGljaCBtZWFucyB0aGF0IHBvaW50ZXJzIHdpdGgg YQ0KICAgIHBvdGVudGlhbCBzdWJvYmplY3Qgb2YgdHlwZSBMT0NLX1RZUEUgd291bGQgaW5kZWVk IGJlIHVzZWZ1bA0KICAgIGluIHN1Y2ggc2NlbmFyaW9zLg0KDQogICAgV2Ugc2hvdWxkIG5vdCBh ZGQgdGhpcyBuZXcgcmVzdHJpY3Rpb247IHJhdGhlciwgd2Ugc2hvdWxkIHJlbW92ZQ0KICAgIHRo ZSBtaXNndWlkZWQgInN0eWxlIHByZWZlcmVuY2UiIHRoYXQgaXMgY3VycmVudGx5IGJhZGx5IGV4 cHJlc3NlZA0KICAgIGJ5IEMxMzAyLg0KDQogIFJvYmVydCBDb3JiZXR0J3MgeWVzIHZvdGUgd2l0 aCBDb21tZW50IG9uIEYwOC8wMTE0Og0KDQogICAgSSBmaW5kIHRoZSB0ZXh0IG9mIHRoZSBwcm9w b3NlZCBlZGl0IGRpZmZpY3VsdCB0byByZWFkLiAgSSBwcmVmZXINCg0KICAgICAgIkMxMzAyYSBB IGNvbXBvbmVudCB0aGF0IGlzIG9mIHR5cGUgTE9DS19UWVBFIG9yIHRoYXQgaGFzIGENCiAgICAg ICAgICAgICAgbm9uYWxsb2NhdGFibGUgZGlyZWN0IGNvbXBvbmVudCBvZiB0eXBlIExPQ0tfVFlQ RQ0KICAgICAgICAgICAgICBzaGFsbCBub3QgaGF2ZSB0aGUgUE9JTlRFUiBhdHRyaWJ1dGUuIi4N Cg0KICBSZXN1bHQgZm9yIEYwOC8wMTE0Og0KDQogICAgL0lOVEVSUCByZWNvbW1lbmRzIHRoYXQg RjA4LzAxMTQgYmUgcmV0dXJuZWQgdG8gSjMgZm9yIGZ1cnRoZXINCiAgICBjb25zaWRlcmF0aW9u IG9mIE1hbGNvbG0gYW5kIFJvYmVydCdzIGNvbW1lbnRzIGFsb25nIHdpdGggY2hlY2tpbmcNCiAg ICBvdGhlciBwZW5kaW5nIGludGVycHMgYWJvdXQgTE9DS19UWVBFOg0KDQogICAgICAgICBGMDgv MDA0NSAgIGNvbnN0cmFpbnRzIG9uIGVudGl0aWVzIG9mIHR5cGUgTE9DS19UWVBFDQogICAgICAg ICBGMDgvMDEwNyAgIExPQ0tfVFlQRSwgdWx0aW1hdGUgY29tcG9uZW50cywgc3ViY29tcG9uZW50 cywgYW5kDQogICAgICAgICAgICAgICAgICAgICAgY29hcnJheXMNCiAgICAgICAgIEYwOC8wMTA5 ICAgTE9DS19UWVBFIGFuZCB1bmxpbWl0ZWQgcG9seW1vcnBoaWMNCg0KLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K DQpOVU1CRVI6IEYwOC8wMTE1DQpUSVRMRTogQVNZTkNIUk9OT1VTIGFuZCBhcmd1bWVudCBwYXNz aW5nDQpLRVlXT1JEOiBBU1lOQ0hST05PVVMNCkRFRkVDVCBUWVBFOiBFcnJhdHVtDQpTVEFUVVM6 IFBhc3NlZCBieSBKMyBsZXR0ZXIgYmFsbG90DQoNClFVRVNUSU9OOg0KDQpDb25zaWRlcg0KDQog IFBST0dSQU0gTWFpbg0KICAgIElOVEVHRVIsIEFTWU5DSFJPTk9VUyA6OiBhcnJheSg1KSA9IC0x DQogICAgT1BFTiAoMTEsIEZJTEU9J2p1bmsnLCBBU1lOQ0hST05PVVM9J3llcycsIEFDVElPTj0n cmVhZCcpDQogICAgQ0FMTCBhc3luY19yZWFkKGFycmF5KQ0KICAgIENBTEwgZnJlZChhcnJheSg6 OjIpKSAhIFByb2JsZW1hdGljPw0KICAgIFdBSVQgKDExKQ0KICAgIFBSSU5UICosIGFycmF5DQog IENPTlRBSU5TDQogICAgU1VCUk9VVElORSBhc3luY19yZWFkKGFycmF5KQ0KICAgICAgSU5URUdF UiwgQVNZTkNIUk9OT1VTLCBJTlRFTlQoSU5PVVQpIDo6IGFycmF5KDopDQogICAgICBSRUFEICgx MSwgKiwgQVNZTkNIUk9OT1VTPSd5ZXMnKSBhcnJheQ0KICAgIEVORCBTVUJST1VUSU5FDQogIEVO RCBQUk9HUkFNDQogIFNVQlJPVVRJTkUgRnJlZCAoYXJnKSAgISBJbiBnZW5lcmFsLCBhbiBleHRl cm5hbCBwcm9jZWR1cmUNCiAgICBJTlRFR0VSIDo6IGFyZygqKSAgICAhIE90aGVyd2lzZSB1bnVz ZWQNCiAgICBDT05USU5VRSAgICAgICAgICAgICAhIEluIGdlbmVyYWwsIHNvbWV0aGluZyB0aGF0 IHRha2VzIG1vcmUgdGltZQ0KICBFTkQgU1VCUk9VVElORQ0KDQpJcyB0aGUgY2FsbCB0byAiRnJl ZCIgc3RhbmRhcmQtY29uZm9ybWluZz8NCg0KSXQgaXMgbm90IGV4Y2x1ZGVkIGJ5IDUuMy40cDIs IGJlY2F1c2UgJ2FycmF5JyBpcyBtZXJlbHkgYXNzb2NpYXRlZA0Kd2l0aCAnYXJnJyBpbiBzdWJy b3V0aW5lIEZyZWQsIGFuZCBub3QgdXNlZCBpbiBhbnkgZXhlY3V0YWJsZQ0Kc3RhdGVtZW50IG9y IHNwZWNpZmljYXRpb24gZXhwcmVzc2lvbiB0aGVyZS4gIEhvd2V2ZXIsIGlmIGNvcHktaW4vb3V0 DQppcyB1c2VkIGZvciBhcmd1bWVudCBwYXNzaW5nIGFuZCB0aGUgYWN0dWFsIGkvbyB0cmFuc2Zl ciBvY2N1cnMgaW4NCmJldHdlZW4gdGhlIGNvcHktaW4gYW5kIGNvcHktb3V0LCB0aGUgd3Jvbmcg YW5zd2VycyB3aWxsIGJlIGdpdmVuLg0KDQpBTlNXRVI6DQoNClRoaXMgcHJvZ3JhbSB3YXMgbm90 IGludGVuZGVkIHRvIGJlIGNvbmZvcm1pbmcuICBBbiBlZGl0IGlzIHByb3ZpZGVkDQp0byBjb3Jy ZWN0IHRoaXMgb3ZlcnNpZ2h0Lg0KDQpFRElUUzoNCg0KWzkwOjE1XSA1LjMuNCBBU1lOQ0hST05P VVMgYXR0cmlidXRlLCBwMiwgZmlyc3QgYnVsbGV0LA0KICAgICAgICBiZXR3ZWVuICJ0aGUgdmFy aWFibGUiIGFuZCAiYXBwZWFycyINCiAgICAgICAgaW5zZXJ0ICJpcyBhIGR1bW15IGFyZ3VtZW50 IG9yIi4NCg0KU1VCTUlUVEVEIEJZOiBOaWNrIE1hY2xhcmVuDQoNCkhJU1RPUlk6IDE0LTIxOCAg ICBtMjA1ICBGMDgvMDExNSBzdWJtaXR0ZWQNCiAgICAgICAgIDE0LTIxOHIxICBtMjA1ICBSZXZp c2VkDQogICAgICAgICAxNC0yMThyMiAgbTIwNSAgUGFzc2VkIGJ5IEozIG1lZXRpbmcNCiAgICAg ICAgIDE1LTEyMSAgICBtMjA2ICBQYXNzZWQgYnkgSjMgbGV0dGVyIGJhbGxvdCAxNC0yNzkNCg0K LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KDQpOVU1CRVI6IEYwOC8wMTE2DQpUSVRMRTogSW50ZXJvcGVyYWJsZSBw cm9jZWR1cmVzDQpLRVlXT1JEOiBJbnRlcm9wZXJhYmlsaXR5LCBwcm9jZWR1cmUNCkRFRkVDVCBU WVBFOiBFcnJhdHVtDQpTVEFUVVM6IFBhc3NlZCBieSBKMyBsZXR0ZXIgYmFsbG90DQoNClFVRVNU SU9OOg0KDQpJbiBhbGwgY2FzZXMsIEFsZiBpcyBhIEZvcnRyYW4gcHJvY2VkdXJlIGxpa2UgdGhp czoNCg0KICAgIFNVQlJPVVRJTkUgQWxmIChBcmcpIEJJTkQoQyxOQU1FPSdBbGYnKQ0KICAgICAg ICBJTlRFUkZBQ0UNCiAgICAgICAgICAgIFNVQlJPVVRJTkUgQXJnICgpIEJJTkQoQykNCiAgICAg ICAgICAgIEVORCBTVUJST1VUSU5FIEFyZw0KICAgICAgICBFTkQgSU5URVJGQUNFDQogICAgICAg IENBTEwgQXJnDQogICAgRU5EIFNVQlJPVVRJTkUgQWxmDQoNClExLiBDb25zaWRlcg0KDQogICAg ZXh0ZXJuIHZvaWQgQmVydCAodm9pZCkgew0KICAgICAgICA7DQogICAgfQ0KDQogICAgaW50IG1h aW4gKHZvaWQpIHsNCiAgICAgICAgQWxmKEJlcnQpOw0KICAgIH0NCg0KMTUuNS4xcDIgcmVxdWly ZXMgYSBwcm9jZWR1cmUgZGVmaW5lZCBieSBtZWFucyBvdGhlciB0aGFuIEZvcnRyYW4gdG8NCmhh dmUgdGhlIHNhbWUgYmluZGluZyBsYWJlbCBhcyB0aGUgaW50ZXJmYWNlLiAgRnVuY3Rpb24gQmVy dCgpIGhhcyBhDQpiaW5kaW5nIGxhYmVsIG9mICdCZXJ0JywgYnV0IDE1LjUuMnAyIHN0YXRlcyB0 aGF0IHRoZSBkdW1teSBhcmd1bWVudA0KQXJnIGhhcyBubyBiaW5kaW5nIGxhYmVsLCB0aGVyZWZv cmUgMTUuNS4xcDIgaXMgbm90IHNhdGlzZmllZC4NCg0KV2FzIHRoaXMgaW50ZW5kZWQgdG8gYmUg Y29uZm9ybWluZz8NCg0KUTIuIENvbnNpZGVyDQoNCiAgICBzdGF0aWMgdm9pZCBGcmVkICh2b2lk KSB7DQogICAgICAgIDsNCiAgICB9DQoNCiAgICBpbnQgbWFpbiAodm9pZCkgew0KICAgICAgICBB bGYoRnJlZCk7DQogICAgfQ0KDQoxNS41LjFwMiByZXF1aXJlcyBhIHByb2NlZHVyZSBkZWZpbmVk IGJ5IG1lYW5zIG90aGVyIHRoYW4gRm9ydHJhbiB0bw0KaGF2ZSBhIG5hbWUgdGhhdCBoYXMgZXh0 ZXJuYWwgbGlua2FnZSBhcyBkZWZpbmVkIGJ5IDYuMi4yIG9mIElTTy9JRUMNCjk4OTk6MTk5OS4g IEZ1bmN0aW9uIEZyZWQoKSBoYXMgbm8gc3VjaCBuYW1lLCBhcyBpdHMgZGVmaW5pdGlvbiBoYXMN CmludGVybmFsIGxpbmthZ2UuICBIb3dldmVyLCBsaW5rYWdlIGluIEMgYWZmZWN0cyBvbmx5IHRo ZSB2aXNpYmlsaXR5DQpvZiB0aGUgZXh0ZXJuYWwgbmFtZSwgYW5kIGhhcyBubyBhcHBsaWNhdGlv biB0byBlaXRoZXIgdHlwZXMgb3INCnZhbHVlcywgd2hldGhlciBpbiB0aGUgZm9ybSBvZiBmdW5j dGlvbiBwYXJhbWV0ZXJzIG9yIG90aGVyIHBvaW50ZXJzLg0KDQpXYXMgdGhpcyBpbnRlbmRlZCB0 byBiZSBjb25mb3JtaW5nPw0KDQpRMy4gQ29uc2lkZXINCg0KICAgIGV4dGVybiBpbmxpbmUgdm9p ZCBhcmcgKHZvaWQpIHsNCiAgICAgICAgOw0KICAgIH0NCg0KICAgIGludCBtYWluICh2b2lkKSB7 DQogICAgICAgIEFsZihKb2UpOw0KICAgIH0NCg0KQzk5IDYuNy40IGRlc2NyaWJlcyB0aGUgaW5s aW5lIHNwZWNpZmllci4gIFRoaXMgZG9lcyBub3QgcHJldmVudCBpdA0KZnJvbSBoYXZpbmcgZXh0 ZXJuYWwgbGlua2FnZSwgYnV0DQogICJBbiBpbmxpbmUgZGVmaW5pdGlvbiBkb2VzIG5vdCBwcm92 aWRlIGFuIGV4dGVybmFsIGRlZmluaXRpb24gZm9yDQogICB0aGUgZnVuY3Rpb24iDQppLmUuIGRl c3BpdGUgaGF2aW5nIGV4dGVybmFsIGxpbmthZ2UsIHRoZXJlIG1pZ2h0IGJlIG5vIGV4dGVybmFs DQpkZWZpbml0aW9uIHRoYXQgY291bGQgYmUgaW52b2tlZCBmcm9tIEZvcnRyYW4uDQoNCldhcyBp dCBub3QgYW4gb3ZlcnNpZ2h0IG5vdCB0byBleGNsdWRlIGlubGluZSBpbiAxNS41LjE/DQoNCkFO U1dFUlM6DQoNCkExLiBZZXMsIHRoaXMgd2FzIGludGVuZGVkIHRvIGJlIGNvbmZvcm1pbmcuICBB biBlZGl0IGlzIHByb3ZpZGVkIHRvDQogICAgY29ycmVjdCB0aGlzIG1pc3Rha2UuDQoNCkEyLiBZ ZXMsIHRoaXMgd2FzIGludGVuZGVkIHRvIGJlIGNvbmZvcm1pbmcuICBBbiBlZGl0IGlzIHByb3Zp ZGVkIHRvDQogICAgY29ycmVjdCB0aGlzIG1pc3Rha2UuDQoNCkEzLiBBIEMgZnVuY3Rpb24gd2l0 aCBubyBleHRlcm5hbCBkZWZpbml0aW9uIGlzIG5vdCAiZGVmaW5lZCBieQ0KICAgIG1lYW5zIG90 aGVyIHRoYW4gRm9ydHJhbiIgc28gbXVjaCBhcyAibm90IGRlZmluZWQiLiAgVGhpcyB3YXMNCiAg ICBub3QgaW50ZW5kZWQgdG8gYmUgY29uZm9ybWluZy4gIEFuIGVkaXQgaXMgcHJvdmlkZWQgdG8g Y2xhcmlmeQ0KICAgIHRoaXMgc2l0dWF0aW9uLg0KDQpFRElUUzoNCg0KWzQzNjoxNV0gMTUuNS4x IERlZmluaXRpb24gYW5kIHJlZmVyZW5jZSBvZiBpbnRlcm9wZXJhYmxlIHByb2NlZHVyZXMsDQog ICAgICAgICBwMSwgQXBwZW5kIHNlbnRlbmNlDQogICJBIEMgZnVuY3Rpb24gdGhhdCBoYXMgYW4g aW5saW5lIGRlZmluaXRpb24gYW5kIG5vIGV4dGVybmFsDQogICBkZWZpbml0aW9uIGlzIG5vdCBj b25zaWRlcmVkIHRvIGJlIGRlZmluZWQgaW4gdGhpcyBzZW5zZS4iLg0KDQpJbiAxNS41LjFwMiwg YXBwbHkgdGhlc2UgZWRpdHMNCls0MzY6MTZdIEFmdGVyICJtZWFucyBvdGhlciB0aGFuIEZvcnRy YW4sIiBkZWxldGUgIml0IHNoYWxsIiwNCls0MzY6MTddIEJlZm9yZSAiYmUgZGVzY3JpYmFibGUi IGluc2VydCAiaXQgc2hhbGwiLA0KICAgICAgICAgYWZ0ZXIgInRoZSBpbnRlcmZhY2UsIiBpbnNl cnQgImFuZCIsDQpbNDM2OjE4LTE5XSBCZWZvcmUgImhhdmUgYSBuYW1lIg0KICAgICAgICAgaW5z ZXJ0ICJpZiBpdCBpcyBhY2Nlc3NlZCB1c2luZyBpdHMgYmluZGluZyBsYWJlbCwgaXQgc2hhbGwi DQogICAgICAgICBhbmQgYmVnaW4gYSBidWxsZXQgc3ViLWxpc3QsDQogICAgICAgICBhbmQgbWFr ZSB0aGUgImhhdmUgdGhlIHNhbWUiIGJ1bGxldCB0aGUgc2Vjb25kIHN1Ymxpc3QgaXRlbS4NClRo aXMgbWFrZXMgdGhhdCB3aG9sZSBwYXJhZ3JhcGggcmVhZA0KICAiSWYgdGhlIHByb2NlZHVyZSBp cyBkZWZpbmVkIGJ5IG1lYW5zIG90aGVyIHRoYW4gRm9ydHJhbiwNCiAgIC0tIGl0IHNoYWxsIGJl IGRlc2NyaWJhYmxlIGJ5IGEgQyBwcm90b3R5cGUgdGhhdCBpcyBpbnRlcm9wZXJhYmxlDQogICAg ICB3aXRoIHRoZSBpbnRlcmZhY2UsIGFuZA0KICAgLS0gaWYgaXQgaXMgYWNjZXNzZWQgdXNpbmcg aXRzIGJpbmRpbmcgbGFiZWwsIGl0IHNoYWxsDQogICAgICAtIGhhdmUgYSBuYW1lIHRoYXQgaGFz IGV4dGVybmFsIGxpbmthZ2UgYXMgZGVmaW5lZCBieSA2LjIuMiBvZg0KICAgICAgICBJU08vSUVD IDk4OTk6MTk5OSwgYW5kDQogICAgICAtIGhhdmUgdGhlIHNhbWUgYmluZGluZyBsYWJlbCBhcyB0 aGUgaW50ZXJmYWNlLiINCntOb3RlIHRoaXMgd29yZGluZyB1c2VzICJhY2Nlc3NlZCIgcmF0aGVy IHRoYW4gImludm9rZWQiIHNpbmNlIGl0IGNhbg0KIGJlIHRoZSBhcmd1bWVudCBvZiBDX0ZVTlBU UiBvciB0aGUgdGFyZ2V0IGluIGEgcHJvY2VkdXJlIHBvaW50ZXINCiBhc3NpZ25tZW50Ln0NCg0K U1VCTUlUVEVEIEJZOiBOaWNrIE1hY2xhcmVuDQoNCkhJU1RPUlk6IDE0LTIyMSAgICBtMjA1ICBG MDgvMDExNiBzdWJtaXR0ZWQNCiAgICAgICAgIDE0LTIyMXIxICBtMjA1ICBSZXZpc2VkDQogICAg ICAgICAxNC0yMjFyMiAgbTIwNSAgRnVydGhlciBSZXZpc2VkIC0gUGFzc2VkIGJ5IEozIG1lZXRp bmcNCiAgICAgICAgIDE1LTEyMSAgICBtMjA2ICBQYXNzZWQgYnkgSjMgbGV0dGVyIGJhbGxvdCAx NC0yNzkNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpOVU1CRVI6IEYwOC8wMTE3DQpUSVRMRTogVEFSR0VU IGFuZCBjb2luZGV4ZWQgYXJndW1lbnRzDQpLRVlXT1JEOiBUQVJHRVQsIGNvaW5kZXhpbmcNCkRF RkVDVCBUWVBFOiBFcnJhdHVtDQpTVEFUVVM6IFBhc3NlZCBieSBKMyBsZXR0ZXIgYmFsbG90DQoN ClFVRVNUSU9OOg0KDQpJcyB0aGUgZm9sbG93aW5nIHByb2dyYW0gY29uZm9ybWluZyBhbmQgcmVx dWlyZWQgdG8gcHJpbnQgMTAsIDEwLCAxMA0KYW5kIDEyMywgMTIzLCAxMjM/DQoNClBST0dSQU0g TWFpbg0KICAgIElOVEVHRVIsIFRBUkdFVCA6OiBjb2FycmF5KDMpWypdDQogICAgY29hcnJheSA9 IDEwKlRISVNfSU1BR0UoKQ0KICAgIFNZTkMgQUxMDQogICAgSUYgKFRISVNfSU1BR0UoKSA9PSAx KSBUSEVODQogICAgICAgIFNZTkMgQUxMDQogICAgICAgIGNvYXJyYXkgPSAxMjMNCiAgICAgICAg U1lOQyBBTEwNCiAgICBFTFNFIElGIChUSElTX0lNQUdFKCkgPT0gMikgVEhFTg0KICAgICAgICBD QUxMIEZyZWQoY29hcnJheSg6KVsxXSkNCiAgICBFTFNFDQogICAgICAgIFNZTkMgQUxMDQogICAg ICAgIFNZTkMgQUxMDQogICAgRU5EIElGDQpDT05UQUlOUw0KICAgIFNVQlJPVVRJTkUgRnJlZCAo YXJnKQ0KICAgICAgICBJTlRFR0VSLCBUQVJHRVQgOjogYXJnKDopDQogICAgICAgIFBSSU5UICos IGFyZw0KICAgICAgICBTWU5DIEFMTA0KICAgICAgICBTWU5DIEFMTA0KICAgICAgICBQUklOVCAq LCBhcmcNCiAgICBFTkQgU1VCUk9VVElORSBGcmVkDQpFTkQgUFJPR1JBTSBNYWluDQoNCg0KRElT Q1VTU0lPTjoNCg0KVGhpcyBwcm9ncmFtIGlzIG1vZGlmeWluZyBhbiBhY3R1YWwgYXJndW1lbnQg d2hpbGUgaXQgaXMgYXNzb2NpYXRlZA0Kd2l0aCBhIGR1bW15IGFyZ3VtZW50LiAgVGhhdCBpcyBu b3JtYWxseSBwcm9oaWJpdGVkIGJ5IHRoZSBhbnRpLWFsaWFzaW5nDQpydWxlcyBpbiAxMi41LjIu MTMsIGJ1dCB0aGVzZSBkbyBub3Qgb3BlcmF0ZSBpbiB0aGUgVEFSR0VUIGR1bW15DQphcmd1bWVu dCBjYXNlLiAgSG93ZXZlciwgY29pbmRleGVkIGFjdHVhbCBhcmd1bWVudHMgYXJlIGFjY2Vzc2lu Zw0KcmVtb3RlIG1lbW9yeSwgc28gaW4gZ2VuZXJhbCB3aWxsIGJlIHBhc3NlZCBieSBjb3B5LWlu L291dDsgaW4gdGhpcw0KY2FzZSBwZXJtaXR0aW5nIGFsaWFzaW5nIGlzIG5vdCByZWFzb25hYmxl Lg0KDQpBTlNXRVI6DQoNClRoZSBwcm9ncmFtIGlzIG5vdCBpbnRlbmRlZCB0byBiZSBjb25mb3Jt aW5nLiAgRWRpdHMgYXJlIHByb3ZpZGVkIHRvDQpjb3JyZWN0IHRoaXMgb3ZlcnNpZ2h0Lg0KDQoN CkVESVRTOg0KDQpbMzAwXSAxMi41LjIuMTNwMSgzKShiKSBhcHBlbmQgdG8gdGhlIGVuZCBvZiB0 aGUgcGFyYWdyYXBoICJvciBhDQpjb2luZGV4ZWQgb2JqZWN0Ii4NCg0KWzMwMF0gMTIuNS4yLjEz cDEoNCkoYikgYXBwZW5kIHRvIHRoZSBlbmQgb2YgdGhlIHBhcmFncmFwaCAib3IgYQ0KY29pbmRl eGVkIG9iamVjdCIuDQoNCg0KU1VCTUlUVEVEIEJZOiBOaWNrIE1hY2xhcmVuDQoNCg0KSElTVE9S WTogbTIwNSAgIDE0LTIyMyAgIEYwOC8wMTE3IHN1Ym1pdHRlZA0KICAgICAgICAgbTIwNSAgIDE0 LTIyM3IxIFJldmlzZWQgZXhhbXBsZSBhbmQgZGlzY3Vzc2lvbiAtIFBhc3NlZCBieSBKMw0KICAg ICAgICAgICAgICAgICAgICAgICAgICBtZWV0aW5nDQogICAgICAgICAxNS0xMjEgICAgbTIwNiAg UGFzc2VkIGJ5IEozIGxldHRlciBiYWxsb3QgMTQtMjc5DQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KTlVN QkVSOiBGMDgvMDExOA0KVElUTEU6IFN1Ym9iamVjdCBvZiB2YXJpYWJsZSBpbiB2YXJpYWJsZSBk ZWZpbml0aW9uIGNvbnRleHQNCktFWVdPUkQ6IHN1Ym9iamVjdCwgdmFyaWFibGUgZGVmaW5pdGlv biBjb250ZXh0DQpERUZFQ1QgVFlQRTogRXJyYXR1bQ0KU1RBVFVTOiBQYXNzZWQgYnkgSjMgbGV0 dGVyIGJhbGxvdA0KDQpRVUVTVElPTjoNCg0KRG9lcyB0aGlzIHByb2dyYW0gY29uZm9ybSB0byB0 aGUgRm9ydHJhbiAyMDA4IHN0YW5kYXJkPw0KDQogIHR5cGUgOjogVA0KICAgIGludGVnZXIgOjog Qw0KICBlbmQgdHlwZSBUDQoNCiAgdHlwZSh0KSwgcGFyYW1ldGVyIDo6IFYgPSBUKDQxKQ0KDQog IGFzc29jaWF0ZSAoIFcgPT4gViApDQoxICAgdyVjID0gNDINCiAgZW5kIGFzc29jaWF0ZQ0KDQog IGVuZA0KDQpESVNDVVNTSU9OOg0KDQpCZWNhdXNlIHRoZSBzZWxlY3RvciBpcyBub3QgcGVybWl0 dGVkIHRvIGFwcGVhciBpbiBhIHZhcmlhYmxlDQpkZWZpbml0aW9uIGNvbnRleHQsIHRoZSBhc3Nv Y2lhdGUtbmFtZSBpcyBub3QgcGVybWl0dGVkIHRvIGFwcGVhciBpbiBhDQp2YXJpYWJsZSBkZWZp bml0aW9uIGNvbnRleHQuICBIb3dldmVyLCB0aGF0IGRvZXMgbm90IGFmZmVjdCBzdWJvYmplY3Rz DQpvZiB0aGUgYXNzb2NpYXRlLW5hbWUuDQoNCkFOU1dFUjoNCg0KVGhlIGFzc29jaWF0ZS1uYW1l IGlzIG5vdCBwZXJtaXR0ZWQgdG8gYXBwZWFyIGluIGEgdmFyaWFibGUgZGVmaW5pdGlvbg0KY29u dGV4dCBiZWNhdXNlIG5vIGludGVycHJldGF0aW9uIGlzIGVzdGFibGlzaGVkOyBob3dldmVyLCBp dCBzaG91bGQNCmJlIGV4cGxpY2l0bHkgc3RhdGVkIHRoYXQgdGhpcyBpcyBub3QgcGVybWl0dGVk LiAgQW4gZWRpdCBpcyBwcm92aWRlZA0KdG8gY2xhcmlmeSB0aGlzLg0KDQpFRElUUzoNCg0KWzE3 MDoxOV0gOC4xLjMuMSBQdXJwb3NlIGFuZCBmb3JtIG9mIHRoZSBBU1NPQ0lBVEUgY29uc3RydWN0 LCBDODAxLA0KICAgICAgICAgQmV0d2VlbiAiPGFzc29jaWF0ZS1uYW1lPiIgYW5kICJzaGFsbCBu b3QgYXBwZWFyIg0KICAgICAgICAgaW5zZXJ0ICJvciBhbnkgc3Vib2JqZWN0IG9mIDxhc3NvY2lh dGUtbmFtZT4iLg0KDQpbMTcxOjEyXSA4LjEuMy4zIEF0dHJpYnV0ZXMgb2YgYXNzb2NpYXRlIG5h bWVzLCBwMiwNCiAgICAgICAgIEJldHdlZW4gInRoZSBhc3NvY2lhdGUgbmFtZSIgYW5kICJzaGFs bCBub3QgYXBwZWFyIg0KICAgICAgICAgaW5zZXJ0ICJvciBhbnkgc3Vib2JqZWN0IG9mIHRoZSBh c3NvY2lhdGUgbmFtZSIuDQoNClsxODQ6MTNdIDguMS45LjEgUHVycG9zZSBhbmQgZm9ybSBvZiB0 aGUgU0VMRUNUIFRZUEUgY29uc3RydWN0LCBDODM2LA0KICAgICAgICAgQmV0d2VlbiAiPGFzc29j aWF0ZS1uYW1lPiIgYW5kICJzaGFsbCBub3QiDQogICAgICAgICBpbnNlcnQgIm9mIGFueSBzdWJv YmplY3Qgb2YgPGFzc29jaWF0ZS1uYW1lPiIuDQoNClNVQk1JVFRFRCBCWTogVmFuIFNueWRlcg0K DQpISVNUT1JZOiAxNC0yNDByMSAgbTIwNSAgRjA4LzAxMTggc3VibWl0dGVkDQogICAgICAgICAx NC0yNDByMiAgbTIwNSAgUmV2aXNlZCBxdWVzdGlvbiBhbmQgYW5zd2VyIC0gUGFzc2VkIGJ5IEoz DQogICAgICAgICAgICAgICAgICAgICAgICAgIG1lZXRpbmcNCiAgICAgICAgIDE1LTEyMSAgICBt MjA2ICBQYXNzZWQgYnkgSjMgbGV0dGVyIGJhbGxvdCAxNC0yNzkNCg0KLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K DQpOVU1CRVI6IEYwOC8wMTE5DQpUSVRMRTogQnJhbmNoaW5nIHRvIEVORCBCTE9DSyBhbmQgRU5E IENSSVRJQ0FMDQpLRVlXT1JEOiBCcmFuY2hpbmcsIEVORCBCTE9DSywgRU5EIENSSVRJQ0FMDQpE RUZFQ1QgVFlQRTogRXJyYXR1bQ0KU1RBVFVTOiBQYXNzZWQgYnkgSjMgbGV0dGVyIGJhbGxvdA0K DQpRVUVTVElPTjoNCg0KRG8gdGhlIEdPIFRPIHN0YXRlbWVudHMgaW4gdGhlIGZvbGxvd2luZyBj b25mb3JtIHRvIHRoZSBGb3J0cmFuIDIwMDgNCnN0YW5kYXJkPw0KDQogIGdvIHRvIDENCiAgYmxv Y2sNCjEgZW5kIGJsb2NrDQoNCiAgZ28gdG8gMg0KICBjcml0aWNhbA0KMiBlbmQgY3JpdGljYWwN Cg0KQU5TV0VSOg0KDQpCcmFuY2hpbmcgdG8gYW4gRU5EIEJMT0NLIG9yIEVORCBDUklUSUNBTCBz dGF0ZW1lbnQgZnJvbSBvdXRzaWRlIHRoZQ0KY29uc3RydWN0IHdhcyBpbnRlbmRlZCB0byBiZSBw cm9oaWJpdGVkLiAgRWRpdHMgYXJlIHByb3ZpZGVkIHRvDQpjb3JyZWN0IHRoaXMgb21pc3Npb24u DQoNCkVESVRTOg0KDQpbMTcyOjEzK10gOC4xLjQgQkxPQ0sgY29uc3RydWN0LCBhZnRlciBwMyAo YmVmb3JlIE5PVEUgOC41KSwNCiAgICAgICAgICBJbnNlcnQgbmV3IHBhcmFncmFwaA0KICAgICAg ICAgICAgIkl0IGlzIHBlcm1pc3NpYmxlIHRvIGJyYW5jaCB0byBhbiA8ZW5kLWJsb2NrLXN0bXQ+ IG9ubHkNCiAgICAgICAgICAgICBmcm9tIHdpdGhpbiBpdHMgQkxPQ0sgY29uc3RydWN0LiIuDQoN ClsxNzM6MjErXSA4LjEuNSBDUklUSUNBTCBjb25zdHJ1Y3QsIGFmdGVyIHAzIChiZWZvcmUgTk9U RSA4LjYpLA0KICAgICAgICAgIEluc2VydCBuZXcgcGFyYWdyYXBoDQogICAgICAgICAgICAiSXQg aXMgcGVybWlzc2libGUgdG8gYnJhbmNoIHRvIGFuIDxlbmQtY3JpdGljYWwtc3RtdD4NCiAgICAg ICAgICAgICBvbmx5IGZyb20gd2l0aGluIGl0cyBDUklUSUNBTCBjb25zdHJ1Y3QuIi4NCg0KRlVU VVJFIFJFVklTSU9OOg0KDQpBIGZ1dHVyZSByZXZpc2lvbiBjb3VsZCBtYWtlIGFsbCBvZiB0aGVz ZSBjb25zdHJhaW50cywgYW5kIGNvbWJpbmUNCnRoZW0gaW50byBhIHNpbmdsZSByZXF1aXJlbWVu dCBhcyBmb2xsb3dzLg0KDQpbMTcwOjM2IDguMS4zLjJwM10gRGVsZXRlIHRoZSBwYXJhZ3JhcGgu DQoNClsxNzU6MzUtMzYgOC4xLjYuNHAxXSBEZWxldGUgIkl0IGlzIHBlcm1pdHRlZCAuLi4gRE8g Y29uc3RydWN0LiINCg0KWzE3NTo0MCA4LjEuNi40cDJdIERlbGV0ZSAiVHJhbnNmZXIgb2YgY29u dHJvbCAuLi4gPGlubmVyLXNoYXJlZC1kby0NCmNvbnN0cnVjdD4uIg0KDQpbMTgwOjI1IDguMS43 LjJwMl0gRGVsZXRlICJJdCBpcyBwZXJtaXNzaWJsZSAuLi4gSUYgY29uc3RydWN0LiINCg0KWzE4 MjoyNiA4LjEuOC4ycDNdIERlbGV0ZSB0aGUgcGFyYWdyYXBoLg0KDQpbMTg1OjI2IDguMS45LjJw OV0gRGVsZXRlIHRoZSBwYXJhZ3JhcGguDQoNClsxODc6NysgOC4yLjFwMStdIEluc2VydCBjb25z dHJhaW50Og0KDQoiQzg0N2EgSWYgYSBicmFuY2ggdGFyZ2V0IHN0YXRlbWVudCBpcyBhbiA8ZW5k LWFzc29jaWF0ZS1zdG10PiwNCiAgICAgICA8ZW5kLWJsb2NrLXN0bXQ+LCA8ZW5kLWNyaXRpY2Fs LXN0bXQ+LCA8ZW5kLWRvPiwNCiAgICAgICA8ZW5kLWlmLXN0bXQ+LCA8ZW5kLXNlbGVjdC1zdG10 Piwgb3IgPGVuZC1zZWxlY3QtdHlwZS1zdG10PiwgdGhlDQogICAgICAgYnJhbmNoaW5nIHN0YXRl bWVudCB0aGF0IHJlZmVyZW5jZXMgdGhlIGxhYmVsIG9mIHRoYXQgYnJhbmNoDQogICAgICAgdGFy Z2V0IHN0YXRlbWVudCBzaGFsbCBiZSB3aXRoaW4gdGhlIGNvbnN0cnVjdCBjb21wbGV0ZWQgYnkg dGhhdA0KICAgICAgIGJyYW5jaCB0YXJnZXQgc3RhdGVtZW50LiINCg0KU1VCTUlUVEVEIEJZOiBW YW4gU255ZGVyDQoNCg0KSElTVE9SWTogMTQtMjQyICAgIG0yMDUgIEYwOC8wMTE5IHN1Ym1pdHRl ZA0KICAgICAgICAgMTQtMjQycjEgIG0yMDUgIFJldmlzZWQgcXVlc3Rpb24gYW5kIGFuc3dlcg0K ICAgICAgICAgMTQtMjQycjIgIG0yMDUgIEZpeGVkIHR5cG8gaW4gZXhhbXBsZSAtIFBhc3NlZCBi eSBKMyBtZWV0aW5nDQogICAgICAgICAxNS0xMjEgICAgbTIwNiAgUGFzc2VkIGFzIGFtZW5kZWQg YnkgSjMgbGV0dGVyIGJhbGxvdCAxNC0yNzkNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCk5VTUJFUjog RjA4LzAxMjANClRJVExFOiBJcyB0aGUgbmFtZSBvZiBhIHByb2NlZHVyZSBwb2ludGVyIGEgbG9j YWwgaWRlbnRpZmllcj8NCktFWVdPUkRTOiBuYW1lIHByb2NlZHVyZSBwb2ludGVyDQpERUZFQ1Qg VFlQRTogRXJyYXR1bQ0KU1RBVFVTOiBQYXNzZWQgYnkgSjMgbGV0dGVyIGJhbGxvdA0KDQpRVUVT VElPTjoNCg0KSXMgdGhlIG5hbWUgb2YgYSBwcm9jZWR1cmUgcG9pbnRlciBhIGxvY2FsIGlkZW50 aWZpZXI/DQoNClRoZSBsaXN0IG9mIGNsYXNzZXMgb2YgbG9jYWwgaWRlbnRpZmllcnMgZ2l2ZW4g aW4gcGFyYWdyYXBoIDENCm9mIHN1YmNsYXVzZSAxNi4zLjEgb2YgSjMvMTAtMDA3cjEgKHBhZ2Ug NDQwKSBkb2VzIG5vdCBpbmNsdWRlDQpwcm9jZWR1cmUgcG9pbnRlcnMuDQoNCkFOU1dFUjoNCg0K WWVzLCBpZiBhIHByb2NlZHVyZSBwb2ludGVyIGlzIG5hbWVkLCB0aGUgbmFtZSBvZiB0aGUgcHJv Y2VkdXJlDQpwb2ludGVyIGlzIGEgbG9jYWwgaWRlbnRpZmllci4gIEFuIGVkaXQgaXMgcHJvdmlk ZWQgdG8gYW1lbmQNCnRoZSBvdmVyc2lnaHQuDQoNCkVESVRTOg0KDQpbNDQwOjQsIDE2LjMuMXAx XSBSZXBsYWNlDQogIm5hbWVkIGNvbnN0YW50cywgbmFtZWQiDQp3aXRoDQogIm5hbWVkIGNvbnN0 YW50cywgbmFtZWQgcHJvY2VkdXJlIHBvaW50ZXJzLCBuYW1lZCIuDQoNClNVQk1JVFRFRCBCWTog Um9iZXJ0IENvcmJldHQNCg0KSElTVE9SWTogMTQtMjU2ICAgIG0yMDUgIEYwOC8wMTIwIHN1Ym1p dHRlZCAtIFBhc3NlZCBieSBKMyBtZWV0aW5nDQogICAgICAgICAxNS0xMjEgICAgbTIwNiAgUGFz c2VkIGFzIGFtZW5kZWQgYnkgSjMgbGV0dGVyIGJhbGxvdCAxNC0yNzkNCg0KLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQoNCk5VTUJFUjogRjA4LzAxMjENClRJVExFOiBBZGQgdG8gaW50cm9kdWN0aW9uIGRlZmlu ZWQgb3BlcmF0aW9ucyBpbiBzcGVjaWZpY2F0aW9uIGV4cHJzDQpLRVlXT1JEUzogc3BlY2lmaWNh dGlvbiwgcmVzdHJpY3RlZCwgZGVmaW5lZCBvcGVyYXRvcg0KREVGRUNUIFRZUEU6IEVycmF0dW0N ClNUQVRVUzogUGFzc2VkIGJ5IEozIGxldHRlciBiYWxsb3QNCg0KUVVFU1RJT046DQoNCkZvcnRy YW4gMjAwMyA3LjEuNiAoU3BlY2lmaWNhdGlvbiBleHByZXNzaW9ucyksIHNheXMgb24gMTQxOjEy Og0KDQpBIHJlc3RyaWN0ZWQgZXhwcmVzc2lvbiBpcyBhbiBleHByZXNzaW9uIGluIHdoaWNoIGVh Y2ggb3BlcmF0aW9uIGlzDQppbnRyaW5zaWMNCg0KRm9ydHJhbiAyMDA4IDcuMS4xMSBzYXlzIG9u IDE1MDo4Og0KDQpBIHJlc3RyaWN0ZWQgZXhwcmVzc2lvbiBpcyBhbiBleHByZXNzaW9uIGluIHdo aWNoIGVhY2ggb3BlcmF0aW9uIGlzDQppbnRyaW5zaWMgb3IgZGVmaW5lZCBieSBhIHNwZWNpZmlj YXRpb24gZnVuY3Rpb24NCg0KVGhpcyBuZXcgZmVhdHVyZSBpcyBub3QgY2FsbGVkIG91dCBpbiB0 aGUgSW50cm9kdWN0aW9uIGJ1dCBzaG91bGQgYmUuDQoNCkFOU1dFUjoNCg0KVGhpcyB3YXMgYW4g b3ZlcnNpZ2h0LiBBbiBlZGl0IHRvIGNvcnJlY3QgdGhlIHByb2JsZW0gaXMgc3VwcGxpZWQuDQoN CkVESVQgdG8gMTAtMDA3cjE6DQoNCkludHJvZHVjdGlvbiwgcGFnZSB4di4gQWRkIHRvIHRoZSAi RGF0YSBkZWNsYXJhdGlvbiIgbGlzdCBpbg0KcGFyYWdyYXBoIDI6ICJBIDxkZWZpbmVkLW9wZXJh dG9yPiBjYW4gYmUgdXNlZCBpbiBhIHNwZWNpZmljYXRpb24NCmV4cHJlc3Npb24uIg0KDQpTVUJN SVRURUQgQlk6IFN0ZXZlIExpb25lbA0KDQpISVNUT1JZOiAxNC0yNTkgICAgbTIwNSAgRjA4LzAx MjEgc3VibWl0dGVkDQogICAgICAgICAxNC0yNTlyMSAgbTIwNSAgSW4gZWRpdCwgcmVwbGFjZSAi ZGVmaW5lZCBvcGVyYXRvciIgd2l0aA0KICAgICAgICAgICAgICAgICAgICAgICAgICAiPGRlZmlu ZWQtb3BlcmF0b3I+IiAtIFBhc3NlZCBieSBKMyBtZWV0aW5nDQogICAgICAgICAxNS0xMjEgICAg bTIwNiAgUGFzc2VkIGFzIGFtZW5kZWQgYnkgSjMgbGV0dGVyIGJhbGxvdCAxNC0yNzkNCg0KLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KDQpOVU1CRVI6IEYwOC8wMTIyDQpUSVRMRTogVHlwZXMgd2l0aCBjb2FycmF5 IGNvbXBvbmVudHMNCktFWVdPUkQ6IENvYXJyYXlzLCBkZXJpdmVkIHR5cGVzDQpERUZFQ1QgVFlQ RTogRXJyYXR1bQ0KU1RBVFVTOiBQYXNzZWQgYnkgSjMgbGV0dGVyIGJhbGxvdA0KDQpRVUVTVElP TlM6DQoNClExLiAgQ29uc2lkZXINCg0KICAgTW9kdWxlIG0NCiAgICAgVHlwZSB0DQogICAgICAg UmVhbCxBbGxvY2F0YWJsZSA6OiBjb1s6XQ0KICAgICBFbmQgVHlwZQ0KICAgICBUeXBlKHQpIHgN CiAgICAgUmVhbCxBbGxvY2F0YWJsZSA6OiB4Y29bOl0NCiAgIENvbnRhaW5zDQogICAgIFN1YnJv dXRpbmUgZHViaW91cw0KICAgICAgIFZvbGF0aWxlIHgNCiAgICAgICBWb2xhdGlsZSB4Y28NCiAg ICAgICAuLi4NCiAgICAgRW5kIFN1YnJvdXRpbmUNCiAgIEVuZCBNb2R1bGUNCiAgIFByb2dyYW0g YmFkDQogICAgIFVzZSBtDQogICAgIFZvbGF0aWxlIHgNCiAgICAgVm9sYXRpbGUgeGNvDQogICAg IC4uLg0KICAgRW5kIFByb2dyYW0NCg0KNS4zLjE5IEM1NjAgc2F5cyAiVGhlIFZPTEFUSUxFIGF0 dHJpYnV0ZSBzaGFsbCBub3QgYmUgc3BlY2lmaWVkIGZvciBhDQpjb2FycmF5IHRoYXQgaXMgYWNj ZXNzZWQgYnkgdXNlICgxMS4yLjIpIG9yIGhvc3QgKDE2LjUuMS40KQ0KYXNzb2NpYXRpb24uIg0K DQpUaGF0IG1lYW5zIHRoYXQgdGhlIHR3byAiVk9MQVRJTEUgWENPIiBzdGF0ZW1lbnRzIGFyZSBu b3QgY29uZm9ybWluZy4NCkhvd2V2ZXIsIHRoZSAiVk9MQVRJTEUgWCIgc3RhdGVtZW50cyBoYXZl IGVzc2VudGlhbGx5IHRoZSBzYW1lIGVmZmVjdCwNCmJ1dCBhcmUgdW5hZmZlY3RlZCBieSB0aGUg Y29uc3RyYWludCwgd2hpY2ggc2VlbXMgaW5jb25zaXN0ZW50Lg0KDQpXYXMgdGhpcyBjb25zdHJh aW50IGFsc28gaW50ZW5kZWQgdG8gYXBwbHkgdG8gb2JqZWN0cyB3aXRoIGNvYXJyYXkNCmNvbXBv bmVudHM/DQoNClEyLiAgQ29uc2lkZXINCg0KICAgIFByb2dyYW0gYmxvY2t2b2xhdGlsZQ0KICAg ICAgVHlwZSB0DQogICAgICAgIFJlYWwsQWxsb2NhdGFibGUgOjogY29bOl0NCiAgICAgIEVuZCBU eXBlDQogICAgICBUeXBlKHQpIHgNCiAgICAgIFJlYWwsQWxsb2NhdGFibGUgOjogeGNvWzpdDQog ICAgICAuLi4NCiAgICAgIEJsb2NrDQogICAgICAgIFZvbGF0aWxlIHgNCiAgICAgICAgVm9sYXRp bGUgeGNvDQogICAgICBFbmQgQmxvY2sNCg0KNS4zLjE5IEM1NjEgc2F5cyAiV2l0aGluIGEgQkxP Q0sgY29uc3RydWN0ICg4LjEuNCksIHRoZSBWT0xBVElMRQ0KYXR0cmlidXRlIHNoYWxsIG5vdCBi ZSBzcGVjaWZpZWQgZm9yIGEgY29hcnJheSB0aGF0IGlzIG5vdCBhIGNvbnN0cnVjdA0KZW50aXR5 ICgxNi40KSBvZiB0aGF0IGNvbnN0cnVjdC4iDQoNClRoYXQgbWVhbnMgdGhhdCBWT0xBVElMRSBY Q08gaXMgbm90IHN0YW5kYXJkLWNvbmZvcm1pbmcuICBIb3dldmVyLCB0aGUNCmNvbnN0cmFpbnQg YXBwYXJlbnRseSBkb2VzIG5vdCBhcHBseSB0byBYLCBzbyBWT0xBVElMRSBYIGlzIHN0YW5kYXJk LQ0KY29uZm9ybWluZywgZXZlbiB0aG91Z2ggaXQgaGFzIGVzc2VudGlhbGx5IHRoZSBzYW1lIGVm ZmVjdCBhcyB0aGUNCmZvcmJpZGRlbiBjYXNlLg0KDQpXYXMgdGhpcyBjb25zdHJhaW50IGludGVu ZGVkIGFsc28gdG8gYXBwbHkgdG8gb2JqZWN0cyB3aXRoIGNvYXJyYXkNCmNvbXBvbmVudHM/DQoN ClEzLiA1LjMuMTlwMSBzYXlzICJBIG5vbmNvYXJyYXkgb2JqZWN0IHRoYXQgaGFzIHRoZSBWT0xB VElMRSBhdHRyaWJ1dGUNCiAgICBtYXkgYmUgYXNzb2NpYXRlZCB3aXRoIGFuIG9iamVjdCB0aGF0 IGRvZXMgbm90IGhhdmUgdGhlIFZPTEFUSUxFDQogICAgYXR0cmlidXRlLi4uIjsgZG9lcyB0aGlz IGFwcGx5IHRvIG9iamVjdHMgd2l0aCBhIGNvYXJyYXkgY29tcG9uZW50Pw0KDQpRNC4gMTIuNC4y LjJwMSBzYXlzICJBIHByb2NlZHVyZSBvdGhlciB0aGFuIGEgc3RhdGVtZW50IGZ1bmN0aW9uIHNo YWxsDQogICAgaGF2ZSBhbiBleHBsaWNpdCBpbnRlcmZhY2UgaWYgaXQgaXMgcmVmZXJlbmNlZCBh bmQgLi4uICgyKSB0aGUNCiAgICBwcm9jZWR1cmUgaGFzIGEgZHVtbXkgYXJndW1lbnQgdGhhdCAu Li4gKGMpIGlzIGEgY29hcnJheSwgLi4uLiINCg0KICAgIElzIHRoaXMgaW50ZW5kZWQgYWxzbyB0 byBhcHBseSB0byBvYmplY3RzIHdpdGggY29hcnJheSBjb21wb25lbnRzPw0KDQpRNS4gIENvbnNp ZGVyOg0KDQogICAgUHJvZ3JhbSB2b2xhdGlsaXR5DQogICAgICBUeXBlIHQNCiAgICAgICAgUmVh bCxBbGxvY2F0YWJsZSA6OiBjb1s6XQ0KICAgICAgRW5kIFR5cGUNCiAgICAgIFR5cGUodCkgOjog eA0KICAgICAgVHlwZSh0KSxWb2xhdGlsZSA6OiB5DQogICAgICAuLi4NCiAgICAgIENhbGwgczEo eCkNCiAgICAgIENhbGwgczIoeCkgISBEdW1teSBpcyB2b2xhdGlsZSwgWCBpcyBub3QuDQogICAg ICBDYWxsIHMxKHkpICEgWSBpcyB2b2xhdGlsZSwgZHVtbXkgaXMgbm90Lg0KICAgICAgQ2FsbCBz Mih5KQ0KICAgIENvbnRhaW5zDQogICAgICBTdWJyb3V0aW5lIHMxKGEpDQogICAgICAgIFR5cGUo dCkgOjogYQ0KICAgICAgICAuLi4NCiAgICAgIEVuZCBTdWJyb3V0aW5lDQogICAgICBTdWJyb3V0 aW5lIHMyKGIpDQogICAgICAgIFR5cGUodCksVm9sYXRpbGUgOjogYg0KICAgICAgICAuLi4NCiAg ICAgIEVuZCBTdWJyb3V0aW5lDQogICAgRW5kIFByb2dyYW0NCg0KMTIuNS4yLjhwMSBzYXlzICJJ ZiB0aGUgZHVtbXkgYXJndW1lbnQgaXMgYSBjb2FycmF5LCB0aGUgY29ycmVzcG9uZGluZw0KYWN0 dWFsIGFyZ3VtZW50IHNoYWxsIGJlIGEgY29hcnJheSBhbmQgc2hhbGwgaGF2ZSB0aGUgVk9MQVRJ TEUNCmF0dHJpYnV0ZSBpZiBhbmQgb25seSBpZiB0aGUgZHVtbXkgYXJndW1lbnQgaGFzIHRoZSBW T0xBVElMRQ0KYXR0cmlidXRlLiINCg0KVGhhdCBtZWFucyB0aGF0IGlmIHRoZSBwcm9ncmFtIHdl cmUgcGFzc2luZyB0aGUgY29tcG9uZW50IENPIGRpcmVjdGx5DQooYW5kIHRoZSBUWVBFKFQpIGRl Y2xhcmF0aW9ucyBpbiBTMSBhbmQgUzIgd2VyZSBjaGFuZ2VkIHRvIFJFQUwpLCB0aGUNCnNlY29u ZCBhbmQgdGhpcmQgY2FsbHMgd291bGQgbm90IGJlIGNvbmZvcm1pbmcgYmVjYXVzZSBvZiB0aGUg Vk9MQVRJTEUNCm1pc21hdGNoLg0KDQpJdCBzZWVtcyBpbmNvbnNpc3RlbnQgdGhhdCB0aGVyZSBp cyBubyByZXF1aXJlbWVudCBmb3IgVk9MQVRJTEUgdG8NCm1hdGNoIHdoZW4gdGhlcmUgYXJlIGNv YXJyYXkgY29tcG9uZW50cywgc2luY2UgaXQgaGFzIHRoZSBzYW1lIGVmZmVjdA0KdGhhdCBYJUNP IGlzIFZPTEFUSUxFIGluIFMyIGJ1dCBub3QgaW4gdGhlIGNhbGxlciwgYW5kIFklQ08gaXMNClZP TEFUSUxFIGluIHRoZSBjYWxsZXIgYnV0IG5vdCBpbiBTMS4NCg0KV2FzIHRoaXMgcmVxdWlyZW1l bnQgYWxzbyBpbnRlbmRlZCB0byBhcHBseSB0byBvYmplY3RzIHdpdGggY29hcnJheQ0KY29tcG9u ZW50cz8NCg0KUTYuIDEyLjguMSBDMTI4OSBzYXlzICJBbGwgZHVtbXkgYXJndW1lbnRzIG9mIGFu IGVsZW1lbnRhbCBwcm9jZWR1cmUNCiAgICBzaGFsbCBiZSBzY2FsYXIgbm9uY29hcnJheSBkdW1t eSBkYXRhIG9iamVjdHMgYW5kIHNoYWxsIG5vdCBoYXZlDQogICAgdGhlIFBPSU5URVIgb3IgQUxM T0NBVEFCTEUgYXR0cmlidXRlLiINCg0KICAgIElzIHRoaXMgaW50ZW5kZWQgYWxzbyB0byBhcHBs eSB0byBvYmplY3RzIHdpdGggY29hcnJheSBjb21wb25lbnRzPw0KDQpBTlNXRVI6DQoNCkExLiBZ ZXMsIHRoaXMgY29uc3RyYWludCB3YXMgaW50ZW5kZWQgdG8gYXBwbHkgdG8gb2JqZWN0cyB3aXRo IGNvYXJyYXkNCiAgICBjb21wb25lbnRzLiAgQW4gZWRpdCBpcyBzdXBwbGllZCB0byBjb3JyZWN0 IHRoaXMgb21pc3Npb24uDQoNCkEyLiBZZXMsIHRoaXMgY29uc3RyYWludCB3YXMgaW50ZW5kZWQg dG8gYXBwbHkgdG8gb2JqZWN0cyB3aXRoIGNvYXJyYXkNCiAgICBjb21wb25lbnRzLiAgQW4gZWRp dCBpcyBzdXBwbGllZCB0byBjb3JyZWN0IHRoaXMgb21pc3Npb24uDQoNCkEzLiBObywgdGhpcyBk b2VzIG5vdCBhcHBseSB0byBvYmplY3RzIHdpdGggY29hcnJheSBjb21wb25lbnRzLCBhcw0KICAg IHRoZXJlIGlzIG5vIHdheSBvZiBnaXZpbmcgdGhlIG5vbmNvYXJyYXkgcGFydHMgb2YgdGhlIG9i amVjdCB0aGUNCiAgICBWT0xBVElMRSBhdHRyaWJ1dGUgd2l0aG91dCBnaXZpbmcgdGhlIGNvYXJy YXkgcGFydCB0aGUgVk9MQVRJTEUNCiAgICBhdHRyaWJ1dGUsIHdoaWNoIGlzIGZvcmJpZGRlbi4g IFRoYXQgdGhlIHF1b3RlZCB0ZXh0IGdpdmVzDQogICAgcGVybWlzc2lvbiBmb3IgYSBub25jb2Fy cmF5IHRvIGhhdmUgdGhlIFZPTEFUSUxFIGF0dHJpYnV0ZSBkb2VzDQogICAgbm90IG92ZXJyaWRl IGFueSBvdGhlciByZXF1aXJlbWVudHMgaW4gdGhlIHN0YW5kYXJkLg0KDQpBNC4gTm8uICBBIGR1 bW15IGFyZ3VtZW50IHRoYXQgaGFzIGEgY29hcnJheSBjb21wb25lbnQgaXMgc3RpbGwganVzdA0K ICAgIGFuIG9yZGluYXJ5IGR1bW15IGFyZ3VtZW50LCBzbyB0aGlzIHRleHQgZG9lcyBub3QgYXBw bHkuDQoNCkE1LiBZZXMsIHRoaXMgcmVxdWlyZW1lbnQgd2FzIGludGVuZGVkIHRvIGFwcGx5IHRv IG9iamVjdHMgd2l0aA0KICAgIGNvYXJyYXkgY29tcG9uZW50cy4gIEFuIGVkaXQgaXMgc3VwcGxp ZWQgdG8gY29ycmVjdCB0aGlzIG9taXNzaW9uLg0KDQpBNi4gTm8uICBBIGR1bW15IGFyZ3VtZW50 IHRoYXQgaGFzIGEgY29hcnJheSBjb21wb25lbnQgaXMgc3RpbGwganVzdA0KICAgIGFuIG9yZGlu YXJ5IGR1bW15IGFyZ3VtZW50LCBzbyB0aGlzIHRleHQgZG9lcyBub3QgYXBwbHkuDQoNCkVESVRT Og0KDQpbMTAyOjldIDUuMy4xOSBWT0xBVElMRSBhdHRyaWJ1dGUsIEM1NjAsDQogICAgICAgIEJl dHdlZW4gImZvciBhIGNvYXJyYXkiIGFuZCAidGhhdCBpcyBhY2Nlc3NlZCBieSB1c2Ugb3IiDQog ICAgICAgIGluc2VydCAiLG9yIGEgdmFyaWFibGUgd2l0aCBhIGNvYXJyYXkgdWx0aW1hdGUgY29t cG9uZW50LCIuDQp7QTEufQ0KDQpbMTAyOjExXSA1LjMuMTkgVk9MQVRJTEUgYXR0cmlidXRlLCBD NTYxLA0KICAgICAgICAgQmV0d2VlbiAiZm9yIGEgY29hcnJheSIgYW5kICJ0aGF0IGlzIG5vdCBh IGNvbnN0cnVjdCBlbnRpdHkiDQogICAgICAgICBpbnNlcnQgIixvciBhIHZhcmlhYmxlIHdpdGgg YSBjb2FycmF5IHVsdGltYXRlIGNvbXBvbmVudCwiLg0Ke0EyLn0NCg0KWzI5NTo0K10gMTIuNS4y LjQgT3JkaW5hcnkgZHVtbXkgdmFyaWFibGVzLCBwMTgrLA0KICAiSWYgdGhlIGR1bW15IGFyZ3Vt ZW50IGhhcyBhIGNvYXJyYXkgdWx0aW1hdGUgY29tcG9uZW50LCB0aGUNCiAgIGNvcnJlc3BvbmRp bmcgYWN0dWFsIGFyZ3VtZW50IHNoYWxsIGhhdmUgdGhlIFZPTEFUSUxFIGF0dHJpYnV0ZSBpZg0K ICAgYW5kIG9ubHkgaWYgdGhlIGR1bW15IGFyZ3VtZW50IGhhcyB0aGUgVk9MQVRJTEUgYXR0cmli dXRlLiINCntBNS59DQoNClNVQk1JVFRFRCBCWTogTmljayBNYWNsYXJlbg0KDQpISVNUT1JZOiAx NC0yMjggICAgbTIwNSAgRjA4LzAxMjIgc3VibWl0dGVkDQogICAgICAgICAxNC0yMjhyMSAgbTIw NSAgUmV2aXNlZCBxdWVzdGlvbnMgd2l0aCBhbnN3ZXJzIC0gUGFzc2VkIGJ5IEozDQogICAgICAg ICAgICAgICAgICAgICAgICAgIG1lZXRpbmcNCiAgICAgICAgIDE1LTEyMSAgICBtMjA2ICBQYXNz ZWQgYnkgSjMgbGV0dGVyIGJhbGxvdCAxNC0yNzkNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpOVU1CRVI6 IEYwOC8wMTIzDQpUSVRMRTogU1BBQ0lORyBpbnRyaW5zaWMNCktFWVdPUkRTOiBTUEFDSU5HDQpE RUZFQ1QgVFlQRTogRXJyYXR1bQ0KU1RBVFVTOiBQYXNzZWQgYnkgSjMgbGV0dGVyIGJhbGxvdA0K DQpRVUVTVElPTjoNCg0KQ29uc2lkZXIgdGhlIGZvbGxvd2luZyBwcm9ncmFtDQoNCiAgUHJvZ3Jh bSB0ZXN0X3NwYWNpbmcNCiAgICBSZWFsIDo6IHgsIHksIHRpbnlfc3BhY2luZywgeg0KICAgIHgg PSBUaW55KHgpDQogICAgeSAgPSBOZWFyZXN0KHgsMS4wKQ0KICAgIHRpbnlfc3BhY2luZyA9IHkg LSB4DQogICAgSWYgKHRpbnlfc3BhY2luZz4wKSBUaGVuDQogICAgICAhIFByb2JhYmx5IElFRUUg YXJpdGhtZXRpYyB3aXRoIHN1Ym5vcm1hbHM6DQogICAgICAhIHRoZSBzcGFjaW5nIHkgLSB4IGlz IHJlcHJlc2VudGFibGUuDQogICAgRWxzZQ0KICAgICAgISBQcm9iYWJseSBubyBzdWJub3JtYWxz LCBzbyB5IC0geiBpcyBub3QgcmVwcmVzZW50YWJsZS4NCiAgICAgIHRpbnlfc3BhY2luZyA9IFRp bnkoeCkNCiAgICBFbmQgSWYNCiAgICB6ID0gU3BhY2luZyh4KQ0KICAgIElmICh6Lz10aW55X3Nw YWNpbmcpIFRoZW4NCiAgICAgIFByaW50ICosJ0ZBSUwnDQogICAgRWxzZQ0KICAgICAgUHJpbnQg Kiwnb2snDQogICAgRW5kIElmDQogIEVuZCBQcm9ncmFtDQoNCkZ1cnRoZXJtb3JlIGxldCB1cyBh c3N1bWUgdGhhdCB0aGUgcHJvY2Vzc29yIHN1cHBvcnRzIElFRUUgYXJpdGhtZXRpYw0Kd2l0aCBz dWJub3JtYWxzLCBhbmQgdGhhdCBkZWZhdWx0IFJFQUwgaXMgSUVFRSBzaW5nbGUgcHJlY2lzaW9u Lg0KDQpBY2NvcmRpbmcgdG8gRm9ydHJhbiA5NSwgdGhlIHJlc3VsdCBmb3IgU1BBQ0lORyBpczoN CiAgIklmIFggaXMgbm90IHplcm8sIHRoZSByZXN1bHQgaGFzIHRoZSB2YWx1ZSBiKiooZS1wKSwg d2hlcmUgYiwgZSwNCiAgIGFuZCBwIGFyZSBhcyBkZWZpbmVkIGluIDEzLjcuMSBmb3IgdGhlIG1v ZGVsIHJlcHJlc2VudGF0aW9uIG9mIFgsDQogICBwcm92aWRlZCB0aGlzIHJlc3VsdCBpcyB3aXRo aW4gcmFuZ2UuIg0KdGhlcmVmb3JlIHRoZSBwcm9ncmFtIGlzIGV4cGVjdGVkIHRvIHByaW50IHRo ZSB2YWx1ZSAib2siLg0KDQpIb3dldmVyLCBhY2NvcmRpbmcgdG8gRm9ydHJhbiAyMDA4LCB0aGUg cmVzdWx0IGZvciBTUEFDSU5HIGlzOg0KICAiSWYgWCBkb2VzIG5vdCBoYXZlIHRoZSB2YWx1ZSB6 ZXJvIC4uLiwgdGhlIHJlc3VsdCBoYXMgdGhlIHZhbHVlDQogICBiKiptYXgoZS1wLGVtaW4tMSks IHdoZXJlIC4uLiINClVuc3VycHJpc2luZ2x5LCBlLXAgaXMgbm90IGVxdWFsIHRvIG1heChlLXAs ZW1pbi0xKSBmb3Igc21hbGxpc2gNCm51bWJlcnMsIGFuZCB0aGVyZWZvcmUgdGhlIHByb2dyYW0g d291bGQgYmUgZXhwZWN0ZWQgdG8gcHJpbnQgdGhlDQp2YWx1ZSAiRkFJTCIuICBIb3dldmVyLCB0 aGVyZSBpcyBubyBzdWNoIGluY29tcGF0aWJpbGl0eSB3aXRoIEZvcnRyYW4NCjkwLzk1IGxpc3Rl ZCBpbiBjbGF1c2UgMSwgdGhlcmVmb3JlIHRoZSBzdGFuZGFyZCBjb250cmFkaWN0cyBpdHNlbGYu DQooVGhlIHZhbHVlIHNwZWNpZmllZCBpbiBGb3J0cmFuIDIwMDggYWxzbyBjb250cmFkaWN0cyB0 aGUgRGVzY3JpcHRpb24NCm9mIHRoZSBmdW5jdGlvbiB3aGljaCBzYXlzICJTcGFjaW5nIG9mIG1v ZGVsIG51bWJlcnMgKDEzLjQpIiwgc2luY2UNCml0IGRvZXMgbm90IGV2ZW4gYXR0ZW1wdCB0byBy ZXR1cm4gdGhhdCB2YWx1ZS4pDQoNCklzIHRoZSBuZXcgc3BlY2lmaWNhdGlvbiBhIGRlbGliZXJh dGUgaW5jb21wYXRpYmlsaXR5IG9yIGEgbWlzdGFrZT8NCg0KRElTQ1VTU0lPTjoNCg0KVGhlIGRl c2NyaXB0aW9uIG9mIFNQQUNJTkcgd2FzIGNoYW5nZWQgaW4gRm9ydHJhbiAyMDAzIGJ5IHBhcGVy DQowMS0zNjFyMiAiQ29tbWVudHMgb24gU2VjdGlvbiAxMyIsIHdoaWNoIGNvbnRhaW5zIG5vIGp1 c3RpZmljYXRpb24gZm9yDQp0aGlzIHRlY2huaWNhbCBjaGFuZ2UgYW5kIGluZGVlZCBkb2VzIG5v dCBldmVuIG1lbnRpb24gaXQgaXMgYQ0KdGVjaG5pY2FsIGNoYW5nZSAtIHRoZXJlIGlzIGp1c3Qg dGhlIGJhcmUgZWRpdCAoYnVyaWVkIGluIGEgaHVnZSBsaXN0DQpvZiBiYXJlIGVkaXRzKSB3aXRo IG5vIGluZGljYXRpb24gYXMgdG8gd2h5LiAgVGhpcyB3b3VsZCBzZWVtIHRvDQppbmRpY2F0ZSB0 aGF0IHRoZSB0ZWNobmljYWwgY2hhbmdlIGlzIGFuIGluYWR2ZXJ0ZW50IGVycm9yIChwcmVzdW1h Ymx5DQp0aGUgcGFwZXIgc2ltcGx5IGZvcmdvdCBhYm91dCBzdWJub3JtYWwgbnVtYmVycyBhbmQg YXNzdW1lZCB0aGUgbmV3DQpmb3JtdWxhIGdhdmUgdGhlIHNhbWUgcmVzdWx0IGFzIHRoZSBvbGQg b25lKS4NCg0KQU5TV0VSOg0KDQpUaGUgbmV3IHdvcmRpbmcgb2YgU1BBQ0lORyBpbmFkdmVydGVu dGx5IGNoYW5nZWQgdGhlIHJldHVybiB2YWx1ZXMNCndoZW4gSUVFRSBzdWJub3JtYWwgdmFsdWVz IHdlcmUgYXZhaWxhYmxlLiAgQW4gZWRpdCBpcyBwcm92aWRlZCB0bw0KY29ycmVjdCB0aGlzIG1p c3Rha2UuDQoNCkVESVRTIHRvIDEwLTAwN3IxOg0KDQpbMzg5OjQtNV0gMTMuNy4xNTcgU1BBQ0lO RyAoWCksIHA1IFJlc3VsdCBWYWx1ZSwNCiAgICAgICAgICBDaGFuZ2UgIm1heChlLXAsZW1pbi0x KSIgdG8gImUtcCIsDQogICAgICAgICAgQWZ0ZXIgInRoYXQgb2YgWCIgaW5zZXJ0DQogICAgICAg ICAgICAiLCBwcm92aWRlZCB0aGlzIHJlc3VsdCBpcyByZXByZXNlbnRhYmxlOyBvdGhlcndpc2Ug dGhlDQogICAgICAgICAgICAgcmVzdWx0IGlzIHRoZSBzYW1lIGFzIHRoYXQgb2YgVElOWSAoWCku IiwNCiAgICAgICAgICBDaGFuZ2UgIjsgaWYgdGhlcmUgYXJlIHR3byBzdWNoIHZhbHVlcyIgdG8N CiAgICAgICAgICAiSWYgdGhlcmUgYXJlIHR3byBleHRlbmRlZCBtb2RlbCB2YWx1ZXMgZXF1YWxs eSBuZWFyIHRvIFgsIi4NCg0KVGhpcyBtYWtlcyB0aGUgd2hvbGUgcGFyYWdyYXBoIHJlYWQ6DQoN CiBJZiBYIGRvZXMgbm90IGhhdmUgdGhlIHZhbHVlIHplcm8gYW5kIGlzIG5vdCBhbiBJRUVFIGlu ZmluaXR5IG9yIE5hTiwNCiB0aGUgcmVzdWx0IGhhcyB0aGUgdmFsdWUgYioqKGUtcCksIHdoZXJl IGIsIGUsIGFuZCBwIGFyZSBhcyBkZWZpbmVkDQogaW4gMTMuNCBmb3IgdGhlIHZhbHVlIG5lYXJl c3QgdG8gWCBpbiB0aGUgbW9kZWwgZm9yIHJlYWwgdmFsdWVzIHdob3NlDQoga2luZCB0eXBlIHBh cmFtZXRlciBpcyB0aGF0IG9mIFgsIHByb3ZpZGVkIHRoaXMgcmVzdWx0IGlzDQogcmVwcmVzZW50 YWJsZTsgb3RoZXJ3aXNlIHRoZSByZXN1bHQgaXMgdGhlIHNhbWUgYXMgdGhhdCBvZiBUSU5ZIChY KS4NCiBJZiB0aGVyZSBhcmUgdHdvIGV4dGVuZGVkIG1vZGVsIHZhbHVlcyBlcXVhbGx5IG5lYXIg dG8gWCwgdGhlIHZhbHVlDQogb2YgZ3JlYXRlciBhYnNvbHV0ZSB2YWx1ZSBpcyB0YWtlbi4gIElm IFggaGFzIHRoZSB2YWx1ZSB6ZXJvLCB0aGUNCiByZXN1bHQgaXMgdGhlIHNhbWUgYXMgdGhhdCBv ZiBUSU5ZIChYKS4gIElmIFggaXMgYW4gSUVFRSBpbmZpbml0eSwNCiB0aGUgcmVzdWx0IGlzIGFu IElFRUUgTmFOLiAgSWYgWCBpcyBhbiBJRUVFIE5hTiwgdGhlIHJlc3VsdCBpcyB0aGF0DQogTmFO LiINCg0Kd2hlcmUgImIqKihlLXApIiByZXByZXNlbnRzIHRoZSB0eXBlc2V0dGluZyBvZiAkYl57 ZS1wfSQuDQoNClNVQk1JVFRFRCBCWTogTWFsY29sbSBDb2hlbg0KDQpISVNUT1JZOiAxNC0yNjMg ICAgbTIwNSAgRjA4LzAxMjMgc3VibWl0dGVkIC0gUGFzc2VkIGJ5IEozIG1lZXRpbmcNCiAgICAg ICAgIDE1LTEyMSAgICBtMjA2ICBQYXNzZWQgYnkgSjMgbGV0dGVyIGJhbGxvdCAxNC0yNzkNCg0K LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KDQpOVU1CRVI6IEYwOC8wMTI0DQpUSVRMRTogQ29pbmRleGVkIG9iamVj dCB3aXRoIHBvbHltb3JwaGljIHN1YmNvbXBvbmVudA0KS0VZV09SRDogQ29pbmRleGVkIG9iamVj dCwgcG9seW1vcnBoaWMgc3ViY29tcG9uZW50DQpERUZFQ1QgVFlQRTogRXJyYXR1bQ0KU1RBVFVT OiBQYXNzZWQgYnkgSjMgbGV0dGVyIGJhbGxvdA0KUVVFU1RJT046DQoNCkNvbnNpZGVyIHRoZSBm b2xsb3dpbmcgdHlwZSBkZWZpbml0aW9ucyBhbmQgb2JqZWN0IGRlY2xhcmF0aW9uczoNCg0KICBU eXBlIHQxDQogICAgQ2xhc3MoKiksQWxsb2NhdGFibGUgOjogYmFkDQogIEVuZCBUeXBlDQoNCiAg VHlwZSB0Mg0KICAgIFR5cGUodDEpLEFsbG9jYXRhYmxlIDo6IG9vcHMNCiAgRW5kIFR5cGUNCg0K ICBUeXBlKHQxKSB4WypdDQogIFR5cGUodDIpIHlbKl0NCg0KRG8gdGhlIGZvbGxvd2luZyBzdWJy b3V0aW5lIGNhbGxzIGNvbmZvcm0gdG8gdGhlIEZvcnRyYW4gMjAwOCBzdGFuZGFyZD8NCg0KICBD YWxsIHMxKHhbMl0pDQogIENhbGwgczIoeVsyXSkNCg0KRElTQ1VTU0lPTjoNCg0KSWYgWVsyXSVP T1BTIGFuZCBZWzJdJU9PUFMlQkFEIGFyZSBib3RoIGFsbG9jYXRlZCB0aGV5IGFyZSBzdWJvYmpl Y3RzLA0KYnV0IG9ubHkgT09QUyBpcyBhIHN1YmNvbXBvbmVudCBvZiBZWzJdLiAgU2luY2UgT09Q UyBpcyBub3QNCnBvbHltb3JwaGljIGFuZCBCQUQgaXMgbm90IGEgc3ViY29tcG9uZW50LCB0aGlz IGNsZWFybHkgZG9lcyBub3QNCnZpb2xhdGUgQzYxNy4gIFRoYXQgc2VlbXMgaW5jb25zaXN0ZW50 IHNpbmNlIGluIGJvdGggY2FzZXMgYSBjb3B5IG9mDQp0aGUgY29pbmRleGVkIHZhcmlhYmxlIHdv dWxkIG5lY2Vzc2FyaWx5IGNvcHkgdGhlIHBvbHltb3JwaGljIEJBRA0KY29tcG9uZW50Lg0KDQpB TlNXRVI6DQoNClRoZSBpbnRlbnQgb2YgQzYxNyB3YXMgdG8gcHJldmVudCBjb3B5aW5nIGEgcG9s eW1vcnBoaWMgc3Vib2JqZWN0IG9mDQphIGNvaW5kZXhlZCBvYmplY3QuICBTaW5jZSBhIHN1Ym9i amVjdCBpcyBub3QgYWx3YXlzIGEgc3ViY29tcG9uZW50LA0KYW4gZWRpdCBpcyBwcm92aWRlZCB0 byBjb3JyZWN0IHRoZSBtaXN0YWtlIG9mIHVzaW5nIHRoZSB0ZXJtDQoic3ViY29tcG9uZW50IiBp biBDNjE3Lg0KDQpFRElUUzoNCg0KWzY6NytdIEFmdGVyIDEuMy4zMy4yIHBhcmVudCBjb21wb25l bnQsIGluc2VydCBuZXcgdGVybQ0KICAiMS4zLjMzLjJhDQogICBwb3RlbnRpYWwgc3Vib2JqZWN0 IGNvbXBvbmVudA0KICAgbm9ucG9pbnRlciBjb21wb25lbnQsIG9yIHBvdGVudGlhbCBzdWJvYmpl Y3QgY29tcG9uZW50IG9mIGENCiAgIG5vbnBvaW50ZXIgY29tcG9uZW50Ig0Ke1dlIG5lZWQgYSBu ZXcgdGVybSB0byBkZXNjcmliZSB0aGlzIHByb3Blcmx5Ln0NCg0KWzExOToxMyBDNjE3XSBSZXBs YWNlICJzdWJjb21wb25lbnQiDQogICAgICAgICAgICAgIHdpdGggInBvdGVudGlhbCBzdWJvYmpl Y3QgY29tcG9uZW50Ii4NCg0KU1VCTUlUVEVEIEJZOiBWYW4gU255ZGVyDQoNCkhJU1RPUlk6IDE0 LTI2MiAgICBtMjA1ICBGMDgvMDEyNCBzdWJtaXR0ZWQgLSBQYXNzZWQgYnkgSjMgbWVldGluZw0K ICAgICAgICAgMTUtMTIxICAgIG0yMDYgIFBhc3NlZCBieSBKMyBsZXR0ZXIgYmFsbG90IDE0LTI3 OQ0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tDQoNCk5VTUJFUjogRjA4LzAxMjUNClRJVExFOiBEZWZpbml0aW9u IG9mIG9iamVjdHMgb2YgdHlwZSBMT0NLX1RZUEUgd2l0aCBwb2ludGVyIHN1Ym9iamVjdHMNCktF WVdPUkQ6IHBvaW50ZXIgc3Vib2JqZWN0LCB2YXJpYWJsZSBkZWZpbml0aW9uIGNvbnRleHQsIExP Q0tfVFlQRQ0KREVGRUNUIFRZUEU6IEVycmF0dW0NClNUQVRVUzogSjMgY29uc2lkZXJhdGlvbiBp biBwcm9ncmVzcw0KDQpRVUVTVElPTjoNCg0KRG9lcyB0aGUgZm9sbG93aW5nIGNvbmZvcm0gdG8g dGhlIEZvcnRyYW4gMjAwOCBzdGFuZGFyZD8NCg0KICB0eXBlIDo6IHQNCiAgICB0eXBlKGxvY2tf dHlwZSksIHBvaW50ZXIgOjogUCA9IE5VTEwoKQ0KICBlbmQgdHlwZSB0DQoNCiAgdHlwZSh0KSwg cGFyYW1ldGVyIDo6IE4gPSB0KG51bGwoKSkNCiAgdHlwZSh0KSA6OiBWDQogIHR5cGUobG9ja190 eXBlKSwgdGFyZ2V0IDo6IEwNCg0KMSBudWxsaWZ5ICggdiVwICkNCg0KMiB2JXAgPT4gbA0KDQoz IHYgPSBuDQoNCkFOU1dFUjoNCg0KQ29uc3RyYWludCBDMTMwMyBwcm9oaWJpdHMgYSB2YXJpYWJs ZSBvZiB0eXBlIExPQ0tfVFlQRSBmcm9tIGFwcGVhcmluZw0KaW4gYSB2YXJpYWJsZSBkZWZpbml0 aW9uIGNvbnRleHQsIHdpdGggYSBmZXcgZXhjZXB0aW9ucyB0aGF0IGRvIG5vdA0KaW5jbHVkZSBz dGF0ZW1lbnRzIDEgYW5kIDIuICBTdWJjbGF1c2UgMTYuNi43IHNwZWNpZmllcyB0aGF0IHRoZQ0K YXBwZWFyYW5jZSBvZiBhIHZhcmlhYmxlIGFzIGEgPHBvaW50ZXItb2JqZWN0PiBpbiBhIDxudWxs aWZ5LXN0bXQ+LCBvcg0KYXMgYSA8ZGF0YS0gcG9pbnRlci1vYmplY3Q+IG9yIDxwcm9jLXBvaW50 ZXItb2JqZWN0PiBpbiBhIDxwb2ludGVyLQ0KYXNzaWdubWVudC1zdG10PiwgaXMgYSB2YXJpYWJs ZSBhc3NvY2lhdGlvbiBjb250ZXh0LiAgVGhlcmVmb3JlDQpzdGF0ZW1lbnRzIDEgYW5kIDIgZG8g bm90IGNvbmZvcm0gdG8gdGhlIEZvcnRyYW4gMjAwOCBzdGFuZGFyZC4NCg0KVGhlIGFwcGVhcmFu Y2Ugb2YgYSA8cG9pbnRlci1vYmplY3Q+IGluIGEgPG51bGxpZnktc3RtdD4sIG9yIG9mIGEgPGRh dGEtDQpwb2ludGVyLW9iamVjdD4gb3IgPHByb2MtcG9pbnRlci1vYmplY3Q+IGluIGEgPHBvaW50 ZXItYXNzaWdubWVudC1zdG10PiwNCmFyZSBwb2ludGVyIGFzc29jaWF0aW9uIGNvbnRleHRzLCBh bmQgYXJlIGxpc3RlZCBhcyBzdWNoIGluIHN1YmNsYXVzZQ0KMTYuNi44OyB0aGV5IG91Z2h0IG5v dCB0byBiZSBsaXN0ZWQgYXMgdmFyaWFibGUgZGVmaW5pdGlvbiBjb250ZXh0cyBpbg0Kc3ViY2xh dXNlIDE2LjYuNy4NCg0Ke1RoZSBhYm92ZSBwcm9wb3NpdGlvbiB3YXMgYWR2b2NhdGVkIGluIDE0 LTEzOXIzLCBhY2NlcHRlZCBhdCBtZWV0aW5nDQoyMDQsIGFuZCBpbmNvcnBvcmF0ZWQgaW50byAx NC0wMDdyMi4gIFRoZXJlZm9yZSwgc3RhdGVtZW50cyAxIGFuZCAyIHdpbGwNCmNvbmZvcm0gdG8g dGhlIG5leHQgcmV2aXNpb24gb2YgdGhlIEZvcnRyYW4gc3RhbmRhcmQuICBXaGV0aGVyDQpzdGF0 ZW1lbnRzIDEgYW5kIDIgb3VnaHQgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIHByZXNlbnQgcXVlc3Rp b24gY2FuIGJlDQpkZWNpZGVkIGluIGR1ZSBjb3Vyc2UufQ0KDQpDb25zdHJhaW50IEMxMzA0IHBy b2hpYml0cyBhIHZhcmlhYmxlIHdpdGggYSBzdWJvYmplY3Qgb2YgdHlwZSBMT0NLX1RZUEUNCmZy b20gYXBwZWFyaW5nIGluIGEgdmFyaWFibGUgZGVmaW5pdGlvbiBjb250ZXh0LCB3aXRoIGEgZmV3 IGV4Y2VwdGlvbnMNCnRoYXQgZG8gbm90IGluY2x1ZGUgc3RhdGVtZW50IDMuICBUaGVyZWZvcmUg c3RhdGVtZW50IDMgZG9lcyBub3QgY29uZm9ybQ0KdG8gdGhlIEZvcnRyYW4gMjAwOCBzdGFuZGFy ZC4NCg0Ke1RoZSBwcm9wb3NpdGlvbiB0aGF0IHRoZSBwcm9oaWJpdGlvbiBzaG91bGQgb25seSBh cHBseSB0byB2YXJpYWJsZXMNCnRoYXQgaGF2ZSBub25wb2ludGVyIHN1Ym9iamVjdHMgb2YgdGhl IHR5cGUgRVZFTlRfVFlQRSBiZWluZyBkZXZlbG9wZWQNCmluIFRTIDE4NTA4IHdhcyBhY2NlcHRl ZCwgYW5kIGluY29ycG9yYXRlZCBpbnRvIDE0LTIzMS9OMjAyNy59DQoNClN0YXRlbWVudHMgMS0z IGFyZSBoYXJtbGVzcywgYW5kIG91Z2h0IHRvIGJlIHBlcm1pdHRlZC4gIEVkaXRzIGFyZQ0KcHJv dmlkZWQgdG8gY29ycmVjdCB0aGlzLg0KDQpFRElUUzoNCg0KWzM5OToyMiBDMTMwNF0gSW5zZXJ0 ICJub25wb2ludGVyIiBiZWZvcmUgInN1Ym9iamVjdCIuDQoNCntBIGNoYW5nZSBwYXJhbGxlbCB0 byB0aGlzLCBjb25jZXJuaW5nIEVWRU5UX1RZUEUsIGlzIGFscmVhZHkNCmluY29ycG9yYXRlZCBp biAxNC0yMzEvTjIwMjcufQ0KDQpFRElUUyBhbHJlYWR5IGFwcGxpZWQgaW4gMTQtMDA3cjI6DQoN ClszMTI6MzMrIEMxMjgzKDEpK10gSW5zZXJ0IGEgbGlzdCBpdGVtDQoNCiAgIigxYSkgaW4gYSBw b2ludGVyIGFzc29jaWF0aW9uIGNvbnRleHQgKDE2LjYuOCksIg0KDQp7VGhpcyBpcyBhIGtub2Nr LW9uIGVmZmVjdCBkdWUgdG8gZGVsZXRpbmcgcG9pbnRlciBhc3NvY2lhdGlvbiBjb250ZXh0cw0K ZnJvbSB0aGUgbGlzdCBvZiB2YXJpYWJsZSBkZWZpbml0aW9uIGNvbnRleHRzLiAgSXQgcmVjb3Zl cnMgaXRlbXMgKDIpLA0KKDMpIGFuZCAoMTIpIGZyb20gMTYuNi43cDEsIHdoaWNoIGFyZSBkZWxl dGVkIGJlbG93Ln0NCg0KWzMxMzoxLTIgQzEyODMoNSldICBEZWxldGUgIndpdGggSU5URU5UKE9V VCkgb3IgSU5URU5UKElOT1VUKSIgZnJvbSBpdGVtDQooNikgYmVjYXVzZSBpdCBpcyBjb3ZlcmVk IGJ5IDE2LjYuN3AxKDEyKS4NCg0KWzQ1Njo0NC00NSAxNi42LjdwMSgyLTMpXSBEZWxldGUgbGlz dCBpdGVtcyAoMikgYW5kICgzKSBiZWNhdXNlIHRoZXkgYXJlDQpub3QgdmFyaWFibGUgZGVmaW5p dGlvbiBjb250ZXh0cywgYW5kIGRvIG5vdCBhcHBseSB0byBub25wb2ludGVyDQp2YXJpYWJsZXMu DQoNCls0NDU6MTEgMTYuNi43cDEoMTIpXSBBcHBlbmQgImlzIG5vdCBhIHBvaW50ZXIgYW5kIiBh ZnRlciAiZHVtbXkNCmFyZ3VtZW50IiwgYmVjYXVzZSBhbiBhY3R1YWwgYXJndW1lbnQgcG9pbnRl ciBjb3JyZXNwb25kaW5nIHRvIGEgZHVtbXkNCmFyZ3VtZW50IHBvaW50ZXIgaXMgbm90IGEgdmFy aWFibGUgZGVmaW5pdGlvbiBjb250ZXh0LCBhbmQgZG9lc24ndCBhcHBseQ0KdG8gbm9ucG9pbnRl ciB2YXJpYWJsZXMuDQoNClNVQk1JVFRFRCBCWTogVmFuIFNueWRlcg0KDQpISVNUT1JZOiAxNC0y NDFyMSAgbTIwNSAgRjA4LzAxMjUgc3VibWl0dGVkDQoNCk5vdGU6ICBJbnRlcnBzIHRoYXQgYWxz byBhc2sgYWJvdXQgTE9DS19UWVBFOg0KDQogICogIFAgRSBGMDgvMDA0NSAgIGNvbnN0cmFpbnRz IG9uIGVudGl0aWVzIG9mIHR5cGUgTE9DS19UWVBFDQoNCiAgKiAgUCBFIEYwOC8wMTA3ICAgTE9D S19UWVBFLCB1bHRpbWF0ZSBjb21wb25lbnRzLCBzdWJjb21wb25lbnRzLCBhbmQNCiAgICAgICAg ICAgICAgICAgICAgICBjb2FycmF5cw0KICAqICBQIEUgRjA4LzAxMDkgICBMT0NLX1RZUEUgYW5k IHVubGltaXRlZCBwb2x5bW9ycGhpYw0KDQogICogIFAgRSBGMDgvMDExNCAgIENhbiBMT0NLX1RZ UEUgY29tcG9uZW50cyBoYXZlIHRoZSBQT0lOVEVSIGF0dHJpYnV0ZT8NCg0KLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0K --_004_4AA982B1265F43408480F737BE12F4D35F98965AORSMSX103amrcor_--