From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Artur Frenszek-Iwicki To: git-commits@fedoraproject.org Subject: [rpms/f2c] f43: Update to v20250303 Date: Fri, 28 Aug 2026 01:27:37 GMT Message-ID: <178788045732.1.8468539200116415556.rpms-f2c-3319d6a86eeb@fedoraproject.org> List-ID: X-Git-Repo: rpms/f2c X-Git-Branch: f43 X-Git-Rev: 3319d6a86eebc3b9cd78528c463ddf09d8a79248 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZjJjCkJyYW5jaCA6 IGY0MwpDb21taXQgOiAzMzE5ZDZhODZlZWJjM2I5Y2Q3ODUyOGM0NjNkZGYwOWQ4YTc5MjQ4CkF1 dGhvciA6IEFydHVyIEZyZW5zemVrLUl3aWNraSA8ZmVkb3JhQHN2Z2FtZXMucGw+CkRhdGUgICA6 IDIwMjYtMDgtMjZUMjI6NDA6MDArMDI6MDAKU3RhdHMgIDogKzM1NzkvLTM1IGluIDUgZmlsZShz KQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2YyYy9jLzMzMTlk NmE4NmVlYmMzYjljZDc4NTI4YzQ2M2RkZjA5ZDhhNzkyNDg/YnJhbmNoPWY0MwoKTG9nOgpVcGRh dGUgdG8gdjIwMjUwMzAzCgotLS0KZGlmZiAtLWdpdCBhL2NoYW5nZXMgYi9jaGFuZ2VzCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhY2Y5OTAKLS0tIC9kZXYvbnVsbAorKysg Yi9jaGFuZ2VzCkBAIC0wLDAgKzEsMzU2NyBAQAorMzEgQXVnLiAxOTg5OgorICAgMS4gQShtaW4o aSxqKSkgbm93IGlzIHRyYW5zbGF0ZWQgY29ycmVjdGx5ICh3aGVyZSBBIGlzIGFuIGFycmF5KS4K KyAgIDIuIDcgYW5kIDggY2hhcmFjdGVyIHZhcmlhYmxlIG5hbWVzIGFyZSBhbGxvd2VkIChidXQg ZWxpY2l0IGEKKyAgICAgIGNvbXBsYWludCB1bmRlciAtZXh0KS4KKyAgIDMuIExPR0lDQUwqMSBp cyB0cmVhdGVkIGFzIExPR0lDQUwsIHdpdGgganVzdCBvbmUgZXJyb3IgbWVzc2FnZQorICAgICAg cGVyIExPR0lDQUwqMSBzdGF0ZW1lbnQgKHJhdGhlciB0aGFuIG9uZSBwZXIgdmFyaWFibGUgZGVj bGFyZWQKKyAgICAgIGluIHRoYXQgc3RhdGVtZW50KS4gIFtOb3RlIHRoYXQgTE9HSUNBTCoxIGlz IG5vdCBpbiBGb3J0cmFuIDc3Ll0KKyAgICAgIExpa2UgZjc3LCBmMmMgbm93IGFsbG93cyB0aGUg Zm9ybWF0IGluIGEgcmVhZCBvciB3cml0ZSBzdGF0ZW1lbnQKKyAgICAgIHRvIGJlIGFuIGludGVn ZXIgYXJyYXkuCisKKzUgU2VwdC4gMTk4OToKKyAgIEZpeGVkIGJvdGNoIGluIGFyZ3VtZW50IHBh c3Npbmcgb2Ygc3Vic3RyaW5ncyBvZiBlcXVpdmFsZW5jZWQKK3ZhcmlhYmxlcy4KKworMTUgU2Vw dC4gMTk4OToKKyAgIFdhcm4gYWJvdXQgaW5jb3JyZWN0IGNvZGUgZ2VuZXJhdGVkIHdoZW4gYSBj aGFyYWN0ZXItdmFsdWVkCitmdW5jdGlvbiBpcyBub3QgZGVjbGFyZWQgZXh0ZXJuYWwgYW5kIGlz IHBhc3NlZCBhcyBhIHBhcmFtZXRlcgorKGluIHZpb2xhdGlvbiBvZiB0aGUgRm9ydHJhbiA3NyBz dGFuZGFyZCkgYmVmb3JlIGl0IGlzIGludm9rZWQuCitFeGFtcGxlOgorCisJc3Vicm91dGluZSBm b28oYSxiKQorCWNoYXJhY3RlcioxMCBhLGIKKwljYWxsIGdvbyhhLGIpCisJYiA9IGEoMykKKwll bmQKKworMTggU2VwdC4gMTk4OToKKyAgIENvbXBsYWluIGFib3V0IG92ZXJsYXBwaW5nIGluaXRp YWxpemF0aW9ucy4KKworMjAgU2VwdC4gMTk4OToKKyAgIFdhcm4gYWJvdXQgbmFtZXMgZGVjbGFy ZWQgRVhURVJOQUwgYnV0IG5ldmVyIHJlZmVyZW5jZWQ7CitpbmNsdWRlIHN1Y2ggbmFtZXMgYXMg ZXh0ZXJucyBpbiB0aGUgZ2VuZXJhdGVkIEMgKGV2ZW4KK3Rob3VnaCBtb3N0IEMgY29tcGlsZXJz IHdpbGwgZGlzY2FyZCB0aGVtKS4KKworMjQgU2VwdC4gMTk4OToKKyAgIE5ldyBvcHRpb24gLXc4 IHRvIHN1cHByZXNzIGNvbXBsYWludCB3aGVuIENPTU1PTiBvciBFUVVJVkFMRU5DRQorZm9yY2Vz IHdvcmQgYWxpZ25tZW50IG9mIGEgZG91YmxlLgorICAgVW5kZXIgLUEgKGZvciBBTlNJIEMpLCBl bnN1cmUgdGhhdCBmbG9hdGluZyBjb25zdGFudHMgKHRlcm1pbmF0ZWQKK2J5ICdmJykgY29udGFp biBlaXRoZXIgYSBkZWNpbWFsIHBvaW50IG9yIGFuIGV4cG9uZW50IGZpZWxkLgorICAgUmVwYWly IGJ1Z3Mgc29tZXRpbWVzIGVuY291bnRlcmVkIHdpdGggQ0hBUiBhbmQgSUNIQVIgaW50cmluc2lj CitmdW5jdGlvbnMuCisgICBSZXN0b3JlIGY3NydzIG9wdGltaXphdGlvbnMgZm9yIGNvcHlpbmcg YW5kIGNvbXBhcmluZyBjaGFyYWN0ZXIKK3N0cmluZ3Mgb2YgbGVuZ3RoIDEuCisgICBBbHdheXMg YXNzdW1lIGZsb2F0aW5nLXBvaW50IHZhbHVlZCByb3V0aW5lcyBpbiBsaWJGNzcgcmV0dXJuCitk b3VibGVzLCBldmVuIHVuZGVyIC1SLgorICAgUmVwYWlyIG9jY2FzaW9uYWwgb21pc3Npb24gb2Yg YXJndW1lbnRzIGluIHJvdXRpbmVzIGhhdmluZyBtdWx0aXBsZQorZW50cnkgcG9pbnRzLgorICAg UmVwYWlyIGJ1Z3MgaW4gY29tcHV0aW5nIG9mZnNldHMgb2YgY2hhcmFjdGVyIHN0cmluZ3MgaW52 b2x2ZWQKK2luIEVRVUlWQUxFTkNFLgorICAgRG9uJ3Qgb21pdCBzdHJ1Y3R1cmUgcXVhbGlmaWNh dGlvbiB3aGVuIENPTU1PTiB2YXJpYWJsZXMgYXJlIHVzZWQKK2FzIEZPUk1BVHMgb3IgaW50ZXJu YWwgZmlsZXMuCisKKzIgT2N0LiAxOTg5OgorICAgV2FybiBhYm91dCB2YXJpYWJsZXMgdGhhdCBh cHBlYXIgb25seSBpbiBkYXRhIHN0bXRzOyBkb24ndCBlbWl0IHRoZW0uCisgICBGaXggYnVncyBp biBjaGFyYWN0ZXIgREFUQSBmb3Igbm9uY2hhcmFjdGVyIHZhcmlhYmxlcworaW52b2x2ZWQgaW4g RVFVSVZBTEVOQ0UuCisgICBUcmVhdCBub25jaGFyYWN0ZXIgdmFyaWFibGVzIGluaXRpYWxpemVk IChhdCBsZWFzdCBwYXJ0bHkpIHdpdGgKK2NoYXJhY3RlciBkYXRhIGFzIHRob3VnaCB0aGV5IHdl cmUgZXF1aXZhbGVuY2VkIC0tIHB1dCBvdXQgYSBzdHJ1Y3QKK2FuZCAjZGVmaW5lIHRoZSB2YXJp YWJsZXMuICBUaGlzIGVsaW1pbmF0ZXMgdGhlIGhpZGVvdXMgYW5kIG5vbnBvcnRhYmxlCitudW1l cmljIHZhbHVlcyB0aGF0IHdlcmUgdXNlZCB0byBpbml0aWFsaXplIHN1Y2ggdmFyaWFibGVzLgor ICAgVHJlYXQgSU1QTElDSVQgTk9ORSBhcyBJTVBMSUNJVCBVTkRFRklORUQoQS1aKSAuCisgICBR dWl0IHdoZW4gZ2l2ZW4gaW52YWxpZCBvcHRpb25zLgorCis4IE9jdC4gMTk4OToKKyAgTW9kaWZp ZWQgbmFtaW5nIHNjaGVtZSBmb3IgZ2VuZXJhdGVkIGludGVybWVkaWF0ZSB2YXJpYWJsZXM7Citt b3JlIGFyZSByZWN5Y2xlZCwgZmV3ZXIgZGlzdGluY3Qgb25lcyB1c2VkLgorICBOZXcgb3B0aW9u IC1XIG5uIHNwZWNpZmllcyBubiBjaGFyYWN0ZXJzL3dvcmQgZm9yIEhvbGxlcml0aAorZGF0YSBp bml0aWFsaXppbmcgbm9uLWNoYXJhY3RlciB2YXJpYWJsZXMuCisgIEJ1ZyBmaXg6IHgoaTptaW4o aSsxMCxqKSkgdXNlZCB0byBlbGljaXQgIkNhbid0IGhhbmRsZSBvcGNvZGUgMzEgeWV0Ii4KKyAg SW50ZWdlciBleHByZXNzaW9ucyBvZiB0aGUgZm9ybSAoaStjb25zdDEpIC0gKGkrY29uc3QyKSwg d2hlcmUKK2kgaXMgYSBzY2FsYXIgaW50ZWdlciB2YXJpYWJsZSwgYXJlIG5vdyBzaW1wbGlmaWVk IHRvIChjb25zdDEtY29uc3QyKTsKK3RoaXMgbGVhZHMgdG8gc2ltcGxlciB0cmFuc2xhdGlvbiBv ZiBzb21lIHN1YnN0cmluZyBleHByZXNzaW9ucy4KKyAgSW5pdGlhbGl6ZSB1bmluaXRpYWxpemVk IHBvcnRpb25zIG9mIGNoYXJhY3RlciBzdHJpbmcgYXJyYXlzIHRvIDAKK3JhdGhlciB0aGFuIHRv IGJsYW5rcy4KKworOSBPY3QuIDE5ODk6CisgIE5ldyBvcHRpb24gLWMgdG8gaW5zZXJ0IGNvbW1l bnRzIHNob3dpbmcgb3JpZ2luYWwgRm9ydHJhbiBzb3VyY2UuCisgIE5ldyBvcHRpb24gLWcgdG8g aW5zZXJ0IGxpbmUgbnVtYmVycyBvZiBvcmlnaW5hbCBGb3J0cmFuIHNvdXJjZS4KKworMTAgT2N0 LiAxOTg5OgorICAhIHJlY29nbml6ZWQgYXMgaW4tbGluZSBjb21tZW50IGRlbGltaXRlciAoYSBs YSBGb3J0cmFuIDg4KS4KKworMjQgT2N0LiAxOTg5OgorICBOZXcgb3B0aW9ucyB0byBlYXNlIGNv cGluZyB3aXRoIHN5c3RlbXMgdGhhdCB3YW50IHRoZSBzdHJ1Y3RzCit0aGF0IHJlc3VsdCBmcm9t IENPTU1PTiBibG9ja3MgdG8gYmUgZGVmaW5lZCBqdXN0IG9uY2U6CisgIC1FIGNhdXNlcyB1bmlu aXRpYWxpemVkIENPTU1PTiBibG9ja3MgdG8gYmUgZGVjbGFyZWQgRXh0ZXJuOworaWYgRXh0ZXJu IGlzIHVuZGVmaW5lZCwgZjJjLmggI2RlZmluZXMgaXQgdG8gYmUgZXh0ZXJuLgorICAtZWMgY2F1 c2VzIGEgc2VwYXJhdGUgLmMgZmlsZSB0byBiZSBlbWl0dGVkIGZvciBlYWNoCit1bmluaXRpYWxp emVkIENPTU1PTiBibG9jazogQ09NTU9OIC9BQkMvIHlpZWxkcyBhYmNfY29tLmM7Cit0aHVzIG9u ZSBjYW4gY29tcGlsZSAqX2NvbS5jIGludG8gYSBsaWJyYXJ5IHRvIGVuc3VyZQorcHJlY2lzZWx5 IG9uZSBkZWZpbml0aW9uLgorICAtZTFjIGlzIHNpbWlsYXIgdG8gLWVjLCBleGNlcHQgdGhhdCBl dmVyeXRoaW5nIGdvZXMgaW50bworb25lIGZpbGUsIGFsb25nIHdpdGggY29tbWVudHMgdGhhdCBn aXZlIGEgc2VkIHNjcmlwdCBmb3IKK3NwbGl0dGluZyB0aGUgZmlsZSBpbnRvIHRoZSBwaWVjZXMg dGhhdCAtZWMgd291bGQgZ2l2ZS4KK1RoaXMgaXMgZm9yIHVzZSB3aXRoIG5ldGxpYidzICJleGVj dXRlIGYyYyIgc2VydmljZSAoZm9yIHdoaWNoCistZWMgaXMgY29lcmNlZCBpbnRvIC1lMWMsIGFu ZCB0aGUgc2VkIHNjcmlwdCB3aWxsIHB1dCBldmVyeXRoaW5nCitidXQgdGhlIENPTU1PTiBkZWZp bml0aW9ucyBpbnRvIGYyY19vdXQuYyApLgorCisyOCBPY3QuIDE5ODk6CisgIENvbnZlcnQgImkg PSBpIG9wIC4uLiIgaW50byAiaSBvcD0gLi4uOyIgZXZlbiB3aGVuIGkgaXMgYQorZHVtbXkgYXJn dW1lbnQuCisKKzEzIE5vdi4gMTk4OToKKyAgTmFtZSBpbnRlZ2VyIGNvbnN0YW50cyAocGFzc2Vk IGFzIGFyZ3VtZW50cykgY19fLi4uIHJhdGhlcgordGhhbiBjXy4uLiBzbworCWNvbW1vbiAvYy9z dHVmZgorCWNhbGwgZm9vKDEpCisJLi4uCitpcyB0cmFuc2xhdGVkIGNvcnJlY3RseS4KKworMTkg Tm92LiAxOTg5OgorICBGbG9hdGluZy1wb2ludCBjb25zdGFudHMgYXJlIG5vdyBrZXB0IGFzIHN0 cmluZ3MgdW5sZXNzIHRoZXkKK2FyZSBpbnZvbHZlZCBpbiBjb25zdGFudCBleHByZXNzaW9ucyB0 aGF0IGdldCBzaW1wbGlmaWVkLiAgVGhlCitmbG9hdGluZy1wb2ludCBjb25zdGFudHMga2VwdCBh cyBzdHJpbmdzIGNhbiBoYXZlIGFyYml0cmFyaWx5CittYW55IHNpZ25pZmljYW50IGZpZ3VyZXMg YW5kIGEgdmVyeSBsYXJnZSBleHBvbmVudCBmaWVsZCAoYXMKK2xhcmdlIGFzIGxvbmcgaW50IGFs bG93cyBvbiB0aGUgbWFjaGluZSBvbiB3aGljaCBmMmMgcnVucykuCitUaHVzLCBmb3IgZXhhbXBs ZSwgdGhlIGJvZHkgb2YKKworCXN1YnJvdXRpbmUgem90KHgpCisJZG91YmxlIHByZWNpc2lvbiB4 KDYpLCBwaQorCXBhcmFtZXRlciAocGk9My4xNDE1OTI2NTM1ODk3OTMyMzg0NjI2NDMzODMyNzk1 MDI4ODQxOTcyKQorCXgoMSkgPSBwaQorCXgoMikgPSBwaSsxCisJeCgzKSA9IDkyODczNDk4MjM3 NDkyNzIuNzQyOTg3NDkyMzc0MDk3ODQ5MjczNEQtMjk4Mzc0CisJeCg0KSA9IC44OQorCXgoNSkg PSA0LjAwMDUKKwl4KDYpID0gMTBENworCWVuZAorCitub3cgZ2V0cyB0cmFuc2xhdGVkIGludG8K KworICAgIHhbMV0gPSAzLjE0MTU5MjY1MzU4OTc5MzIzODQ2MjY0MzM4MzI3OTUwMjg4NDE5NzI7 CisgICAgeFsyXSA9IDQuMTQxNTkyNjUzNTg5NzkzMTsKKyAgICB4WzNdID0gOS4yODczNDk4MjM3 NDkyNzI3NDI5ODc0OTIzNzQwOTc4NDkyNzM0ZS0yOTgzNTk7CisgICAgeFs0XSA9IChmbG9hdCku ODk7CisgICAgeFs1XSA9IChmbG9hdCk0LjAwMDU7CisgICAgeFs2XSA9IDFlODsKKworcmF0aGVy IHRoYW4gdGhlIGZvcm1lcgorCisgICAgeFsxXSA9IDMuMTQxNTkyNjUzNTg5NzkzMTsKKyAgICB4 WzJdID0gNC4xNDE1OTI2NTM1ODk3OTMxOworICAgIHhbM10gPSAwLjsKKyAgICB4WzRdID0gKGZs b2F0KTAuODkwMDAwMDAwMDAwMDAwMDM7CisgICAgeFs1XSA9IChmbG9hdCk0LjAwMDQ5OTk5OTk5 OTk5OTc7CisgICAgeFs2XSA9IDEwMDAwMDAwMC47CisKKyAgUmVjb2duaXRpb24gb2YgZjc3IG1h Y2hpbmUtY29uc3RhbnQgaW50cmluc2ljcyBkZWxldGVkLCBpLmUuLAorZXBiYXNlLCBlcHByZWMs IGVwZW1pbiwgZXBlbWF4LCBlcHRpbnksIGVwaHVnZSwgZXBtcnNwLgorCisyMiBOb3YuIDE5ODk6 CisgIFdvcmthcm91bmRzIGZvciBnbGl0Y2hlcyBvbiBzb21lIFN1biBzeXN0ZW1zLi4uCisgIGxp YmY3NzogbGliRjc3L21ha2VmaWxlIG1vZGlmaWVkIHRvIHBvaW50IG91dCBwb3NzaWJsZSBuZWVk Cit0byBjb21waWxlIGxpYkY3Ny9tYWluLmMgd2l0aCAtRG9uZXhpdD1vbl9leGl0IC4KKyAgbGli aTc3OiBsaWJJNzcvd3JlZi5jIChhbmQgbGliSTc3L1JFQURNRSkgbW9kaWZpZWQgc28gbm9uLUFO U0kKK3N5c3RlbXMgY2FuIGNvbXBpbGUgd2l0aCBVU0VfU1RSTEVOIGRlZmluZWQsIHdoaWNoIHdp bGwgY2F1c2UKKwlzcHJpbnRmKGIgPSBidWYsICIlIy4qZiIsIGQsIHgpOworCW4gPSBzdHJsZW4o YikgKyBkMTsKK3JhdGhlciB0aGFuCisJbiA9IHNwcmludGYoYiA9IGJ1ZiwgIiUjLipmIiwgZCwg eCkgKyBkMTsKK3RvIGJlIGNvbXBpbGVkLgorCisyNiBOb3YuIDE5ODk6CisgIExvbmdlciBuYW1l cyBhcmUgbm93IGFjY2VwdGVkICh1cCB0byA1MCBjaGFyYWN0ZXJzKTsgbmFtZXMgbWF5Citjb250 YWluIHVuZGVyc2NvcmVzIChpbiB3aGljaCBjYXNlIHRoZXkgd2lsbCBoYXZlIHR3byB1bmRlcnNj b3JlcworYXBwZW5kZWQsIHRvIGF2b2lkIGNsYXNoZXMgd2l0aCBsaWJyYXJ5IG5hbWVzKS4KKwor MjggTm92LiAxOTg5OgorICBsaWJpNzcgdXBkYXRlZDoKKwkxLiBBbGxvdyAzIChvciwgb24gQ3Jh eXMsIDQpIGRpZ2l0IGV4cG9uZW50cyB1bmRlciBmb3JtYXQgRXcuZCAuCisJMi4gVHJ5IHRvIGdl dCB0aGluZ3MgcmlnaHQgb24gbWFjaGluZXMgd2hlcmUgaW50cyBoYXZlIDE2IGJpdHMuCisKKzI5 IE5vdi4gMTk4OToKKyAgU3VwcGxpZWQgbWlzc2luZyBzZW1pY29sb24gaW4gcGFyYW1ldGVybGVz cyBzdWJyb3V0aW5lcyB0aGF0CitoYXZlIG11bHRpcGxlIGVudHJ5IHBvaW50cyAoYWxsIG9mIHRo ZW0gcGFyYW1ldGVybGVzcykuCisKKzMwIE5vdi4gMTk4OToKKyAgbGliZjc3IGFuZCBsaWJpNzcg cmV2aXNlZCB0byB1c2UgdHlwZXMgZnJvbSBmMmMuaC4KKyAgZjJjIG5vdyB0eXBlcyBmbG9hdGlu Zy1wb2ludCB2YWx1ZWQgQyBsaWJyYXJ5IHJvdXRpbmVzIGFzICJkb3VibGUiCityYXRoZXIgdGhh biAiZG91YmxlcmVhbCIgKGZvciB1c2Ugd2l0aCBub25zdGFuZGFyZCBDIGNvbXBpbGVycyBmb3IK K3doaWNoICJkb3VibGUiIGlzIElFRUUgZG91YmxlIGV4dGVuZGVkKS4KKworMSBEZWMuIDE5ODk6 CisgIGYyYy5oIHVwZGF0ZWQgdG8gZWxpbWluYXRlICNkZWZpbmVzIHJlbmRlcmVkIHVubmVjZXNz YXJ5IChhbmQsCitpbmRlZWQsIGRhbmdlcm91cykgYnkgY2hhbmdlIG9mIDI2IE5vdi4gdG8gbG9u ZyBuYW1lcyBwb3NzaWJseQorY29udGFpbmluZyB1bmRlcnNjb3Jlcy4KKyAgbGliaTc3IGZ1cnRo ZXIgcmV2aXNlZDogeWVzdGVyZGF5J3MgY2hhbmdlIG9taXR0ZWQgdHdvIHR3ZWFrcyB0byBmbXQu aAorKHR3ZWFrcyB3aGljaCBvbmx5IG1hdHRlciBpZiBmbG9hdCBhbmQgcmVhbCBvciBkb3VibGUg YW5kIGRvdWJsZXJlYWwgYXJlCitkaWZmZXJlbnQgdHlwZXMpLgorCisyIERlYy4gMTk4OToKKyAg QmV0dGVyIGVycm9yIG1lc3NhZ2UgKHRoYW4gImJhZCB0YWciKSBmb3IgTkFNRUxJU1QsIHdoaWNo IG5vIGxvbmdlcgoraW5oaWJpdHMgQyBvdXRwdXQuCisKKzQgRGVjLiAxOTg5OgorICBBbGxvdyBj YXBpdGFsIGxldHRlcnMgaW4gaGV4IGNvbnN0YW50cyAoZjc3IGV4dGVuc2lvbjsgZS5nLiwKK3gn YTAxMkJDZCcsIFgnQTAxMkJDRCcgYW5kIHgnYTAxMmJjZCcgYXJlIGFsbCB0cmVhdGVkIGFzIHRo ZSBpbnRlZ2VyCisxNjc4NDg5MDkpLgorICBsaWJpNzcgZnVydGhlciByZXZpc2VkOiBsaW8uYyBs aW8uaCBscmVhZC5jIHdyZWYuYyB3cnRmbXQuYyB0d2Vha2VkCithZ2FpbiB0byBhbGxvdyBmbG9h dCBhbmQgcmVhbCBvciBkb3VibGUgYW5kIGRvdWJsZXJlYWwgdG8gYmUgZGlmZmVyZW50LgorCis2 IERlYy4gMTk4OToKKyAgUmV2aXNlZCBmMmMuaCAtLSByZXF1aXJlZCBmb3IgdGhlIGZvbGxvd2lu Zy4uLgorICBTaW1wbGVyIGxvb2tpbmcgdHJhbnNsYXRpb25zIGZvciBhYnMsIG1pbiwgbWF4LCB1 c2luZyAjZGVmaW5lcyBpbgorcmV2aXNlZCBmMmMuaCAuCisgIGxpYmk3NzogbW9yZSBjb3JyZWN0 aW9ucyB0byB0eXBlczsgYWRkaXRpb25zIGZvciBOQU1FTElTVC4KKyAgQ29ycmVjdGVkIGNhc3Rz IGluIHNvbWUgSS9PIGNhbGxzLgorICBUcmFuc2xhdGlvbiBvZiBOQU1FTElTVDsgbGliaTc3IG11 c3Qgc3RpbGwgYmUgcmV2aXNlZC4gIEN1cnJlbnRseQorbGliaTc3IGdpdmVzIHlvdSBhIHJ1bi10 aW1lIGVycm9yIG1lc3NhZ2UgaWYgeW91IGF0dGVtcHQgTkFNRUxJU1QgSS9PLgorCis3IERlYy4g MTk4OToKKyAgRml4ZWQgYnVnIHRoYXQgcHJldmVudGVkIGxvY2FsIGludGVnZXIgdmFyaWFibGVz IHRoYXQgYXBwZWFyIGluIERBVEEKK3N0bXRzIGZyb20gYmVpbmcgQVNTSUdOZWQgc3RhdGVtZW50 IGxhYmVscy4KKyAgRmlsbGVycyAoZm9yIERBVEEgc3RhdGVtZW50cyBpbml0aWFsaXppbmcgRVFV SVZBTEVOQ0VkIHZhcmlhYmxlcyBhbmQKK3ZhcmlhYmxlcyBpbiBDT01NT04pIHR5cGVkIGludGVn ZXIgcmF0aGVyIHRoYW4gZG91YmxlcmVhbCAoZm9yIHNsaWdodGx5Cittb3JlIHBvcnRhYmlsaXR5 LCBlLmcuIHRvIENyYXlzKS4KKyAgbGliaTc3OiBtaXNzaW5nIHJldHVybiB2YWx1ZXMgc3VwcGxp ZWQgaW4gYSBmZXcgcGxhY2VzOyBzb21lIHRlc3RzCityZW9yZGVyZWQgZm9yIGJldHRlciB3b3Jr aW5nIG9uIHRoZSBDcmF5LgorICBsaWJmNzc6IGJldHRlciBhY2N1cmFjeSBmb3IgY29tcGxleCBk aXZpZGUsIGNvbXBsZXggc3F1YXJlIHJvb3QsCityZWFsIG1vZCBmdW5jdGlvbiAoY2FzdHMgdG8g ZG91YmxlOyBkb3VibGUgdGVtcG9yYXJpZXMpLgorCis5IERlYy4gMTk4OToKKyAgRml4ZWQgYnVn IHRoYXQgY2F1c2VkIG5lZWRsZXNzIChhbGJlaXQgaGFybWxlc3MpIGVtcHR5IGxpbmVzIHRvIGJl CitpbnNlcnRlZCBpbiB0aGUgQyBvdXRwdXQgd2hlbiBhIGNvbW1lbnQgbGluZSBjb250YWluZWQg dHJhaWxpbmcgYmxhbmtzLgorICBGdXJ0aGVyIHR3ZWFrIHRvIHR5cGUgb2YgZmlsbGVyczogYWxs b3cgZG91YmxlcmVhbCBmaWxsZXJzIGlmIHRoZQorc3RydWN0IGhhcyBkb3VibGVyZWFsIGRhdGEu CisKKzExIERlYy4gMTk4OToKKyAgQWx0ZXJhdGlvbiBvZiBydWxlIGZvciBwcm9kdWNpbmcgZXh0 ZXJuYWwgKEMpIG5hbWVzIGZyb20gbmFtZXMgdGhhdAorY29udGFpbiB1bmRlcnNjb3Jlcy4gIE5v dyB0aGUgZXh0ZXJuYWwgbmFtZSBpcyBhbHdheXMgb2J0YWluZWQgYnkKK2FwcGVuZGluZyBhIHBh aXIgb2YgdW5kZXJzY29yZXMuCisKKzEyIERlYy4gMTk4OToKKyAgQyBwcm9kdWN0aW9uIGluaGli aXRlZCBhZnRlciBtb3N0IGVycm9ycy4KKworMTUgRGVjLiAxOTg5OgorICBGaXhlZCBidWcgaW4g aGVhZGVycyBmb3Igc3Vicm91dGluZXMgaGF2aW5nIHR3byBvciBtb3JlIGNoYXJhY3Rlcgorc3Ry aW5ncyBhcmd1bWVudHM6ICB0aGUgbGVuZ3RoIGFyZ3VtZW50cyB3ZXJlIHJldmVyc2VkLgorCisx OSBEZWMuIDE5ODk6CisgIGYyYy5oIGxpYmY3NyBsaWJpNzc6IGFkanVzdGVkIHNvICN1bmRlZnMg aW4gZjJjLmggc2hvdWxkIG5vdCBmb2lsCitjb21waWxhdGlvbiBvZiBsaWJGNzcgYW5kIGxpYkk3 Ny4KKyAgbGliZjc3OiBnZXRlbnZfIGFkanVzdGVkIHRvIHdvcmsgd2l0aCB1bnNvcnRlZCBlbnZp cm9ubWVudHMuCisgIGxpYmk3NzogdGhlIGlvc3RhdD0gc3BlY2lmaWVyIHNob3VsZCBub3cgd29y ayByaWdodCB3aXRoIGludGVybmFsIEkvTy4KKworMjAgRGVjLiAxOTg5OgorICBmMmMgYnVncyBm aXhlZDogSW4gdGhlIGFic2VuY2Ugb2YgYW4gZXJyPSBzcGVjaWZpZXIsIHRoZSBpb3N0YXQ9Citz cGVjaWZpZXIgd2FzIGdlbmVyYWxseSBzZXQgd3JvbmcuICBDaGFyYWN0ZXIgc3RyaW5ncyBjb250 YWluaW5nCitleHBsaWNpdCBudWxscyAoXDApIHdlcmUgdHJ1bmNhdGVkIGF0IHRoZSBmaXJzdCBu dWxsLgorICBVbmxhYmVsZWQgRE8gbG9vcHMgcmVjb2duaXplZDsgbXVzdCBiZSB0ZXJtaW5hdGVk IGJ5IEVORERPLgorKERvbid0IGFzayBmb3IgQ1lDTEUsIEVYSVQsIG5hbWVkIERPIGxvb3BzLCBv ciBETyBXSElMRS4pCisKKzI5IERlYy4gMTk4OToKKyAgTmVzdGVkIHVubGFiZWxlZCBETyBsb29w cyBub3cgaGFuZGxlZCBwcm9wZXJseTsgbmV3IHdhcm5pbmcgZm9yCitleHRyYW5lb3VzIHRleHQg YXQgZW5kIG9mIEZPUk1BVC4KKworMzAgRGVjLiAxOTg5OgorICBGaXhlZCBidWcgaW4gdHJhbnNs YXRpbmcgZGJsZShyZWFsKC4uLikpLCBkYmxlKHNuZ2woLi4uKSksIGFuZAorZGJsZShmbG9hdCgu Li4pKSwgd2hlcmUgLi4uIGlzIGVpdGhlciBvZiB0eXBlIGRvdWJsZSBjb21wbGV4IG9yCitpcyBh biBleHByZXNzaW9uIHJlcXVpcmluZyBhc3NpZ25tZW50IHRvIGludGVybWVkaWF0ZSB2YXJpYWJs ZXMgKGUuZy4sCitkYmxlKHJlYWwoZm9vKHgrMSkpKSwgd2hlcmUgZm9vIGlzIGEgZnVuY3Rpb24g YW5kIHggaXMgYSB2YXJpYWJsZSkuCitSZWdhcmQgbm9uYmxhbmsgbGFiZWwgZmllbGRzIG9uIGNv bnRpbnVhdGlvbiBsaW5lcyBhcyBhbiBlcnJvci4KKworMyBKYW4uIDE5OTA6CisgIE5ldyBvcHRp b24gLUMrKyB5aWVsZHMgb3V0cHV0IHRoYXQgc2hvdWxkIGJlIHVuZGVyc3Rvb2QKK2J5IEMrKyBj b21waWxlcnMuCisKKzYgSmFuLiAxOTg5OgorICAtYSBub3cgZXhjbHVkZXMgdmFyaWFibGVzIHRo YXQgYXBwZWFyIGluIGEgbmFtZWxpc3QgZnJvbSB0aG9zZQordGhhdCBpdCBtYWtlcyBhdXRvbWF0 aWMuICAoQXMgYmVmb3JlLCBpdCBhbHNvIGV4Y2x1ZGVzIHZhcmlhYmxlcwordGhhdCBhcHBlYXIg aW4gYSBjb21tb24sIGRhdGEsIGVxdWl2YWxlbmNlLCBvciBzYXZlIHN0YXRlbWVudC4pCisgIFRo ZSBzeW50YWN0aWNhbGx5IGNvcnJlY3QgRm9ydHJhbgorCXJlYWQoKixpKSB4CisJZW5kCitub3cg eWllbGRzIHN5bnRhY3RpY2FsbHkgY29ycmVjdCBDIChldmVuIHRob3VnaCBib3RoIHRoZSBGb3J0 cmFuCithbmQgQyBhcmUgYnVnZ3kgLS0gbm8gRk9STUFUIGhhcyBub3QgYmVlbiBBU1NJR05lZCB0 byBpKS4KKworNyBKYW4uIDE5OTA6CisgIGxpYmk3Nzogcm91dGluZXMgc3VwcG9ydGluZyBOQU1F TElTVCBhZGRlZC4gIFN1cnJvdW5kaW5nIHF1b3RlcworbWFkZSBvcHRpb25hbCB3aGVuIG5vIGFt YmlndWl0eSBhcmlzZXMgaW4gYSBsaXN0IG9yIG5hbWVsaXN0IFJFQUQKK29mIGEgY2hhcmFjdGVy LXN0cmluZyB2YWx1ZS4KKworOSBKYW4uIDE5OTA6CisgIGYyYy5zcmMgbWFkZSBhdmFpbGFibGUu CisKKzE2IEphbi4gMTk5MDoKKyAgTmV3IG9wdGlvbnMgLVAgdG8gcHJvZHVjZSBBTlNJIEMgb3Ig QysrIHByb3RvdHlwZXMgZm9yIHByb2NlZHVyZXMKK2RlZmluZWQuICBDaGFuZ2UgdG8gLUEgYW5k IC1DKys6IGYyYyB0cmllcyB0byBpbmZlciBwcm90b3R5cGVzIGZvcgoraW52b2tlZCBwcm9jZWR1 cmVzIHVubGVzcyB0aGUgbmV3IC0hUCBvcHRpb24gaXMgZ2l2ZW4uICBOZXcgd2FybmluZworbWVz c2FnZXMgZm9yIGluY29uc2lzdGVudCBjYWxsaW5nIHNlcXVlbmNlcyBhbW9uZyBwcm9jZWR1cmVz IHdpdGhpbgorYSBzaW5nbGUgZmlsZS4gIE1vc3Qgb2YgZjJjL3NyYyBpcyBhZmZlY3RlZC4KKyAg ZjJjLmg6IHR5cGVkZWZzIGZvciBwcm9jZWR1cmUgYXJndW1lbnRzIGFkZGVkOyBuZXRsaWIncyBm MmMgc2VydmljZQord2lsbCBpbnNlcnQgYXBwcm9wcmlhdGUgdHlwZWRlZnMgZm9yIHVzZSB3aXRo IG9sZGVyIHZlcnNpb25zIG9mIGYyYy5oLgorCisxNyBKYW4uIDE5OTA6CisgIGYyYy9zcmM6IGRl ZnMuaCBleGVjLmMgZm9ybWF0LmMgcHJvYy5jIHB1dHBjYy5jIHZlcnNpb24uYyB4c3VtMC5vdXQK K3VwZGF0ZWQuICBDYXN0YXJncyBhbmQgcHJvdG9maWxlIG1hZGUgZXh0ZXJuIGluIGRlZnMuaDsg ZXhlYy5jCittb2RpZmllZCBzbyBzdXBlcmZsdW91cyBlbHNlIGNsYXVzZXMgYXJlIGRpYWdub3Nl ZDsgdW51c2VkIHZhcmlhYmxlcworb21pdHRlZCBmcm9tIGRlY2xhcmF0aW9ucyBpbiBmb3JtYXQu YyBwcm9jLmMgcHV0cGNjLmMgLgorCisyMSBKYW4uIDE5OTA6CisgIE5vIEMgZW1pdHRlZCBmb3Ig cHJvY2VkdXJlcyBkZWNsYXJlZCBleHRlcm5hbCBidXQgbm90IHJlZmVyZW5jZWQuCisgIGYyYy5o OiBtb3JlIG5ldyB0eXBlcyBhZGRlZCBmb3IgdXNlIHdpdGggLVAuCisgIE5ldyBmZWF0dXJlOiBm MmMgYWNjZXB0cyBhcyBhcmd1bWVudHMgZmlsZXMgZW5kaW5nIGluIC5wIG9yIC5QOworc3VjaCBm aWxlcyBhcmUgYXNzdW1lZCB0byBiZSBwcm90b3R5cGUgZmlsZXMsIHN1Y2ggYXMgcHJvZHVjZWQg YnkKK3RoZSAtUCBvcHRpb24uICBBbGwgcHJvdG90eXBlIGZpbGVzIGFyZSByZWFkIGJlZm9yZSBh bnkgRm9ydHJhbiBmaWxlcworYW5kIGFwcGx5IGdsb2JhbGx5IHRvIGFsbCBGb3J0cmFuIGZpbGVz LiAgU3VpdGFibGUgcHJvdG90eXBlcyBoZWxwIGYyYword2FybiBhYm91dCBjYWxsaW5nLXNlcXVl bmNlIGVycm9ycyBhbmQgY2FuIHRlbGwgZjJjIGhvdyB0byB0eXBlCitwcm9jZWR1cmVzIGRlY2xh cmVkIGV4dGVybmFsIGJ1dCBub3QgZXhwbGljaXRseSB0eXBlZDsgdGhlIGxhdHRlciBpcworbWFp bmx5IG9mIGludGVyZXN0IGZvciB1c2VycyBvZiB0aGUgLUEgYW5kIC1DKysgb3B0aW9ucy4gIChQ cm90b3R5cGUKK2FyZ3VtZW50cyBhcmUgbm90IGF2YWlsYWJsZSB0byBuZXRsaWIncyAiZXhlY3V0 ZSBmMmMiIHNlcnZpY2UuKQorICBOZXcgb3B0aW9uIC1pdCB0ZWxscyBmMmMgdG8gdHJ5IHRvIGlu ZmVyIHR5cGVzIG9mIHVudHlwZWQgZXh0ZXJuYWwKK2FyZ3VtZW50cyBmcm9tIHRoZWlyIHVzZSBh cyBwYXJhbWV0ZXJzIHRvIHByb3RvdHlwZWQgb3IgcHJldmlvdXNseQorZGVmaW5lZCBwcm9jZWR1 cmVzLgorICBmMmMvc3JjOiBtYW55IG1pbm9yIGNsZWFudXBzOyBtb3N0IG1vZHVsZXMgY2hhbmdl ZC4gIEluZGl2aWR1YWwKK2ZpbGVzIGluIGYyYy9zcmMgYXJlIG5vdyBpbiAiYnVuZGxlIiBmb3Jt YXQuICBUaGUgZm9ybWVyIGYyYy4xIGlzCitub3cgZjJjLjF0OyAiZjJjLjF0IGZyb20gZjJjIiBh bmQgImYyYy4xdCBmcm9tIGYyYy9zcmMiIGFyZSBub3cgdGhlCitzYW1lLCBhcyBhcmUgImYyYy4x IGZyb20gZjJjIiBhbmQgImYyYy4xIGZyb20gZjJjL3NyYyIuICBQZW9wbGUgd2hvCitkbyBub3Qg b2J0YWluIGEgbmV3IGNvcHkgb2YgImFsbCBmcm9tIGYyYy9zcmMiIHNob3VsZCBhdCBsZWFzdCBh ZGQKKwlmY2xvc2Uoc29ydGZwKTsKK2FmdGVyIHRoZSBjYWxsIG9uIGRvX2luaXRfZGF0YShvdXRm aWxlLCBzb3J0ZnApIGluIGZvcm1hdF9kYXRhLmMgLgorCisyMiBKYW4uIDE5OTA6CisgIENsZWFu ZXIgbWFuIHBhZ2Ugd29yZGluZyAodGhhbmtzIHRvIERvdWcgTWNJbHJveSkuCisgIC1pdCBub3cg YWxzbyBhcHBsaWVzIHRvIGFsbCB1bnR5cGVkIEVYVEVSTkFMIHByb2NlZHVyZXMsIG5vdCBqdXN0 Cithcmd1bWVudHMuCisKKzIzIEphbi4gMDE6MzQ6MDAgRVNUIDE5OTA6CisgIEJ1ZyBmaXhlczog dW5kZXIgLUEgYW5kIC1DKyssIGluY29ycmVjdCBDIHdhcyBnZW5lcmF0ZWQgZm9yCitzdWJyb3V0 aW5lcyBoYXZpbmcgbXVsdGlwbGUgZW50cmllcyBidXQgbm8gYXJndW1lbnRzLgorICBVbmRlciAt QSAtUCwgc3Vicm91dGluZXMgb2Ygbm8gYXJndW1lbnRzIHdlcmUgZ2l2ZW4gcHJvdG90eXBlCitj YWxsaW5nIHNlcXVlbmNlICgpIHJhdGhlciB0aGFuICh2b2lkKS4KKyAgQ2hhcmFjdGVyLXZhbHVl ZCBmdW5jdGlvbnMgZWxpY2l0ZWQgZXJyb25lb3VzIHdhcm5pbmcgbWVzc2FnZXMKK2Fib3V0IGlu Y29uc2lzdGVudCBjYWxsaW5nIHNlcXVlbmNlcyB3aGVuIHJlZmVyZW5jZWQgYnkgYW5vdGhlcgor cHJvY2VkdXJlIGluIHRoZSBzYW1lIGZpbGUuCisgIGYyYy4xdDogb21pdCBmaXJzdCBhcHBlYXJh bmNlIG9mIGxpYkY3Ny5hIGluIEZJTEVTIHNlY3Rpb247Citsb2FkIG9yZGVyIG9mIGxpYnJhcmll cyBpcyAtbEY3NyAtbEk3Nywgbm90IHZpY2UgdmVyc2EgKGJ1ZworaW50cm9kdWNlZCBpbiB5ZXN0 ZXJkYXkncyBlZGl0cyk7IGRlZmluZSAuRiBtYWNybyBmb3IgdGhvc2Ugd2hvc2UKKy1tYW4gbGFj a3MgaXQuICAoRm9yIGEgd2hpbGUgYWZ0ZXIgeWVzdGVyZGF5J3MgZml4ZXMgd2VyZSBwb3N0ZWQs CitmMmMuMXQgd2FzIG91dCBvZiBkYXRlLiAgU29ycnkhKQorCisyMyBKYW4uIDk6NTM6MjQgRVNU IDE5OTA6CisgIENoYXJhY3RlciBzdWJzdHJpbmcgZXhwcmVzc2lvbnMgaW52b2x2aW5nIGZ1bmN0 aW9uIGNhbGxzIGhhdmluZworY2hhcmFjdGVyIGFyZ3VtZW50cyAoaW5jbHVkaW5nIHRoZSBpbnRy aW5zaWMgbGVuIGZ1bmN0aW9uKSB5aWVsZGVkCitpbmNvcnJlY3QgQy4KKyAgUHJvY2VkdXJlcyBk ZWZpbmVkIGFmdGVyIGludm9jYXRpb24gKGluIHRoZSBzYW1lIGZpbGUpIHdpdGgKK2NvbmZsaWN0 aW5nIGFyZ3VtZW50IHR5cGVzIGFsc28gZ290IGFuIGVycm9uZW91cyBtZXNzYWdlIGFib3V0Cit0 aGUgd3JvbmcgbnVtYmVyIG9mIGFyZ3VtZW50cy4KKworMjQgSmFuLiAxMTo0NDowMCBFU1QgMTk5 MDoKKyAgQnVnIGZpeGVzOiAtcCBvbWl0dGVkICN1bmRlZnM7IENPTU1PTiBibG9jayBuYW1lcyBj b250YWluaW5nCit1bmRlcnNjb3JlcyBoYWQgdGhlaXIgQyBuYW1lcyBpbmNvcnJlY3RseSBjb21w dXRlZDsgYSBDT01NT04gYmxvY2sKK2hhdmluZyB0aGUgbmFtZSBvZiBhIHByZXZpb3VzbHkgZGVm aW5lZCBwcm9jZWR1cmUgd3JlYWtlZCBoYXZvYzsKK2lmIGFsbCBhcmd1bWVudHMgd2VyZSAuUCBm aWxlcywgZjJjIHRyaWVkIHJlYWRpbmcgdGhlIHNlY29uZCBhcyBhCitGb3J0cmFuIGZpbGUuCisg IE5ldyBmZWF0dXJlOiAtUCBlbWl0cyBjb21tZW50cyBzaG93aW5nIENPTU1PTiBibG9jayBsZW5n dGhzLCBzbyBvbmUKK2NhbiBnZXQgd2FybmluZ3Mgb2YgaW5jb21wYXRpYmxlIENPTU1PTiBibG9j ayBsZW5ndGhzIGJ5IGhhdmluZyBmMmMKK3JlYWQgLlAgKG9yIC5wKSBmaWxlcy4gIE5vdyBieSBy dW5uaW5nIGYyYyB0d2ljZSwgZmlyc3Qgd2l0aCAtUCAtIWMKKyhvciAtUCFjKSwgIHRoZW4gd2l0 aCAqLlAgYW1vbmcgdGhlIGFyZ3VtZW50cywgeW91IGNhbiBiZSB3YXJuZWQgb2YKK2luY29uc2lz dGVudCBDT01NT04gdXNhZ2UsIGFuZCBDT01NT04gYmxvY2tzIGhhdmluZyBpbmNvbnNpc3RlbnQK K2xlbmd0aHMgd2lsbCBiZSBnaXZlbiB0aGUgbWF4aW11bSBsZW5ndGguICAoVGhlIGxhdHRlciBh bHdheXMgZGlkCitoYXBwZW4gd2l0aGluIGVhY2ggaW5wdXQgZmlsZTsgbm93IC1QIGxldHMgeW91 IGV4dGVuZCB0aGlzIGJlaGF2aW9yCithY3Jvc3MgZmlsZXMuKQorCisyNiBKYW4uIDE2OjQ0OjAw IEVTVCAxOTkwOgorICBPcHRpb24gLWl0IG1hZGUgbGVzcyBhZ2dyZXNzaXZlOiB1bnR5cGVkIGV4 dGVybmFsIHByb2NlZHVyZXMgdGhhdAorYXJlIGludm9rZWQgYXJlIG5vdyB0eXBlZCBieSB0aGUg cnVsZXMgb2YgRm9ydHJhbiwgcmF0aGVyIHRoYW4gYnkKK3ByZXZpb3VzIHVzZSBvZiBwcm9jZWR1 cmVzIHRvIHdoaWNoIHRoZXkgYXJlIHBhc3NlZCBhcyBhcmd1bWVudHMKK2JlZm9yZSBiZWluZyBp bnZva2VkLgorICBPcHRpb24gLVAgbm93IGluY2x1ZGVzIGluZm9ybWF0aW9uIGFib3V0IHJlZmVy ZW5jZXMsIGkuZS4sIGNhbGxlZAorcHJvY2VkdXJlcywgaW4gdGhlIHByb3RvdHlwZSBmaWxlcyAo aW4gdGhlIGZvcm0gb2Ygc3BlY2lhbCBjb21tZW50cykuCitUaGlzIGFsbG93cyBpdGVyYXRpdmUg aW52b2NhdGlvbnMgb2YgZjJjIHRvIGluZmVyIG1vcmUgYWJvdXQgdW50eXBlZAorZXh0ZXJuYWwg bmFtZXMsIHBhcnRpY3VsYXJseSB3aGVuIG11bHRpcGxlIEZvcnRyYW4gZmlsZXMgYXJlIGludm9s dmVkLgorICBBcyB1c3VhbCwgdGhlcmUgYXJlIHNvbWUgb2JzY3VyZSBidWcgZml4ZXM6CisxLiAg UmVwYWlyIG9mIGVycm9uZW91cyB3YXJuaW5nIG1lc3NhZ2VzIGFib3V0IGluY29uc2lzdGVudCBu dW1iZXIgb2YKK2FyZ3VtZW50cyB0aGF0IGFyb3NlIHdoZW4gYSBjaGFyYWN0ZXIgZHVtbXkgcGFy YW1ldGVyIHdhcyBkaXNjb3ZlcmVkCit0byBiZSBhIGZ1bmN0aW9uIG9yIHdoZW4gbXVsdGlwbGUg ZW50cnkgcG9pbnRzIGludm9sdmVkIGNoYXJhY3RlcgordmFyaWFibGVzIGFwcGVhcmluZyBpbiBh IHByZXZpb3VzIGVudHJ5IHBvaW50LgorMi4gIFJlcGFpciBvZiBtZW1vcnkgZmF1bHQgYWZ0ZXIg ZXJyb3IgbXNnIGFib3V0ICJhZGp1c3RhYmxlIGNoYXJhY3RlcgorZnVuY3Rpb24iLgorMy4gIFVu ZGVyIC1VLCBhbGxvdyBNQUlOXyBhcyBhIHN1YnJvdXRpbmUgbmFtZSAoaW4gdGhlIHNhbWUgZmls ZSBhcyBhCittYWluIHByb2dyYW0pLgorNC4gIENoYW5nZSBmb3IgY29uc2lzdGVuY3k6IGEga25v d24gZnVuY3Rpb24gaW52b2tlZCBhcyBhIHN1YnJvdXRpbmUsCit0aGVuIGFzIGEgZnVuY3Rpb24g ZWxpY2l0cyBhIHdhcm5pbmcgcmF0aGVyIHRoYW4gYW4gZXJyb3IuCisKKzI2IEphbi4gMjI6MzI6 MDAgRVNUIDE5OTA6CisgIEZpeGVkIHR3byBidWdzIHRoYXQgcmVzdWx0ZWQgaW4gaW5jb3JyZWN0 IEMgZm9yIHN1YnN0cmluZ3MsIHdpdGhpbgordGhlIGJvZHkgb2YgYSBjaGFyYWN0ZXItdmFsdWVk IGZ1bmN0aW9uLCBvZiB0aGUgZnVuY3Rpb24ncyBuYW1lLCB3aGVuCit0aG9zZSBzdWJzdHJpbmdz IHdlcmUgYXJndW1lbnRzIHRvIGFub3RoZXIgZnVuY3Rpb24gKGV2ZW4gaW1wbGljaXRseSwKK2Fz IGluIGNoYXJhY3Rlci1zdHJpbmcgYXNzaWdubWVudCkuCisKKzI4IEphbi4gMTg6MzI6MDAgRVNU IDE5OTA6CisgIGxpYmY3NywgbGliaTc3OiBjaGVja3N1bSBmaWxlcyBhZGRlZDsgIm1ha2UgY2hl Y2siIGxvb2tzIGZvcgordHJhbnNtaXNzaW9uIGVycm9ycy4gIE5BTUVMSVNUIHJlYWQgbW9kaWZp ZWQgdG8gYWxsb3cgJCByYXRoZXIgdGhhbiAmCit0byBwcmVjZWRlIGEgbmFtZWxpc3QgbmFtZSwg dG8gYWxsb3cgJCByYXRoZXIgdGhhbiAvIHRvIHRlcm1pbmF0ZQoraW5wdXQgd2hlcmUgdGhlIG5h bWUgb2YgYW5vdGhlciB2YXJpYWJsZSB3b3VsZCBvdGhlcndpc2UgYmUgZXhwZWN0ZWQsCithbmQg dG8gcmVnYXJkIGFsbCBub25wcmludGluZyBBU0NJSSBjaGFyYWN0ZXJzIDw9ICcgJyBhcyBzcGFj ZXMuCisKKzI5IEphbi4gMDI6MTE6MDAgRVNUIDE5OTA6CisgICJmYyBmcm9tIGYyYyIgYWRkZWQu CisgIC1pdCBvcHRpb24gbWFkZSB0aGUgZGVmYXVsdDsgLSFpdCB0dXJucyBpdCBvZmYuICBUeXBl IGluZm9ybWF0aW9uIGlzCitub3cgdXBkYXRlZCBpbiBhIHByZXZpb3VzbHkgbWlzc2VkIGNhc2Uu CisgIC1QIG9wdGlvbiB0d2Vha2VkIGFnYWluOyBtZXNzYWdlIGFib3V0IHdoZW4gcmVydW5uaW5n IGYyYyBtYXkgY2hhbmdlCitwcm90b3R5cGVzIG9yIGRlY2xhcmF0aW9ucyBtYWRlIG1vcmUgYWNj dXJhdGUuCisgIE5ldyBvcHRpb24gLVBzIGltcGxpZXMgLVAgYW5kIHJldHVybnMgZXhpdCBzdGF0 dXMgNCBpZiByZXJ1bm5pbmcKK2YyYyAtUCB3aXRoIHByb3RvdHlwZSBpbnB1dHMgbWlnaHQgY2hh bmdlIHByb3RvdHlwZXMgb3IgZGVjbGFyYXRpb25zLgorTm93IHlvdSBjYW4gZXhlY3V0ZSBhIGNy dWRlIHNjcmlwdCBsaWtlCisKKwljYXQgKi5mID56YXAuRgorCXJtIC1mIHphcC5QCisJd2hpbGUg OjsgZG8KKwkJZjJjIC1QcyAtIWMgemFwLltGUF0KKwkJY2FzZSAkPyBpbiA0KSA7OyAqKSBicmVh azs7IGVzYWMKKwkJZG9uZQorCit0byBnZXQgYSBmaWxlIHphcC5QIG9mIHRoZSBiZXN0IHByb3Rv dHlwZXMgZjJjIGNhbiBkZXRlcm1pbmUgZm9yICouZiAuCisKK0phbi4gMjkgMDc6MzA6MjEgRVNU IDE5OTA6CisgIEZvcmdvdCB0byBjaGVjayBmb3IgZXJyb3Igc3RhdHVzIHdoZW4gc2V0dGluZyBy ZXR1cm4gY29kZSA0IHVuZGVyIC1QczsKK2Vycm9yIHN0YXR1cyAoMSwgMiwgMywgb3IsIGZvciBj YXVnaHQgc2lnbmFsLCAxMjYpIG5vdyB0YWtlcyBwcmVjZWRlbmNlLgorCitKYW4gMjkgMTQ6MTc6 MDAgRVNUIDE5OTA6CisgIEluY29ycmVjdCBoYW5kbGluZyBvZgorCW9wZW4obiwnZmlsZW5hbWUn KQorcmVwYWlyZWQgLS0gbm93IHRyZWF0ZWQgYXMKKwlvcGVuKG4sZmlsZT0nZmlsZW5hbWUnKQor KGFuZCwgdW5kZXIgLWV4dCwgZ2l2ZW4gYW4gZXJyb3IgbWVzc2FnZSkuCisgIE5ldyBvcHRpb25h bCBzb3VyY2UgZmlsZSBtZW1zZXQuYyBmb3IgcGVvcGxlIHdob3NlIHN5c3RlbXMgZG9uJ3QKK3By b3ZpZGUgbWVtc2V0LCBtZW1jbXAsIGFuZCBtZW1jcHk7ICNpbmNsdWRlIDxzdHJpbmcuaD4gaW4g bWVtLmMKK2NoYW5nZWQgdG8gI2luY2x1ZGUgInN0cmluZy5oIiBzbyBCU0QgcGVvcGxlIGNhbiBj cmVhdGUgYSBsb2NhbAorc3RyaW5nLmggdGhhdCBzaW1wbHkgc2F5cyAjaW5jbHVkZSA8c3RyaW5n cy5oPiAuCisKK0phbiAzMCAxMDozNDowMCBFU1QgMTk5MDoKKyAgRml4IGVycm9uZW91cyB3YXJu aW5nIGF0IGVuZCBvZiBkZWZpbml0aW9uIG9mIGEgcHJvY2VkdXJlIHdpdGgKK2NoYXJhY3RlciBh cmd1bWVudHMgd2hlbiB0aGUgcHJvY2VkdXJlIGhhZCBwcmV2aW91c2x5IGJlZW4gY2FsbGVkIHdp dGgKK2EgbnVtZXJpYyBhcmd1bWVudCBpbnN0ZWFkIG9mIGEgY2hhcmFjdGVyIGFyZ3VtZW50LiAg KFRoZXJlIHdlcmUgdHdvCit3YXJuaW5ncywgdGhlIHNlY29uZCBvbmUgaW5jb3JyZWN0bHkgY29t cGxhaW5pbmcgb2YgYSB3cm9uZyBudW1iZXIgb2YKK2FyZ3VtZW50cy4pCisKK0phbiAzMCAxNjoy OTo0MSBFU1QgMTk5MDoKKyAgRml4IGNhc2Ugd2hlcmUgLVAgYW5kIC1QcyBlcnJvbmVvdXNseSBy ZXBvcnRlZCBhbm90aGVyIGl0ZXJhdGlvbgorbmVjZXNzYXJ5LiAgKE9ubHkgaGFybSBpcyB0aGUg ZXh0cmEgaXRlcmF0aW9uLikKKworRmViIDMgMDE6NDA6MDAgRVNUIDE5OTA6CisgIFN1cHBseSBz ZW1pY29sb24gb2NjYXNpb25hbGx5IG9taXR0ZWQgdW5kZXIgLWMgLgorICBUcnkgdG8gZm9yY2Ug Y29ycmVjdCBhbGlnbm1lbnQgd2hlbiBudW1lcmljIHZhcmlhYmxlcyBhcmUgaW5pdGlhbGl6ZWQK K3dpdGggY2hhcmFjdGVyIGRhdGEgKGEgbm9uLXN0YW5kYXJkIGFuZCBub24tcG9ydGFibGUgcHJh Y3RpY2UpLiAgWW91CittdXN0IHVzZSB0aGUgLVcgb3B0aW9uIGlmIHlvdXIgY29kZSBoYXMgc3Vj aCBkYXRhIHN0YXRlbWVudHMgYW5kIGlzCittZWFudCB0byBydW4gb24gYSBtYWNoaW5lIHdpdGgg b3RoZXIgdGhhbiA0IGNoYXJhY3RlcnMvd29yZDsgZS5nLiwgZm9yCitjb2RlIG1lYW50IHRvIHJ1 biBvbiBhIENyYXksIHlvdSB3b3VsZCBzcGVjaWZ5IC1XOCAuCisgIEFsbG93IHBhcmVudGhlc2Vz IGFyb3VuZCBleHByZXNzaW9ucyBpbiBvdXRwdXQgbGlzdHMgKGluIHdyaXRlIGFuZAorcHJpbnQg c3RhdGVtZW50cykuCisgIFJlbmFtZSBzb3VyY2UgZmlsZXMgc28gdGhlaXIgbmFtZXMgYXJlIDw9 IDEyIGNoYXJhY3RlcnMgbG9uZworKHNvIHRoZXJlJ3Mgcm9vbSB0byBhcHBlbmQgLlogYW5kIHN0 aWxsIGhhdmUgPD0gMTQgY2hhcmFjdGVycyk7CityZW5hbWVkIGZpbGVzOiAgZm9ybWF0ZGF0YS5j IG5pY2VwcmludGYuYyBuaWNlcHJpbnRmLmggc2Fmc3RybmNweS5jIC4KKyAgZjJjIG1hdGVyaWFs IG1hZGUgYXZhaWxhYmxlIGJ5IGFub255bW91cyBmdHAgZnJvbSByZXNlYXJjaC5hdHQuY29tCiso bG9vayBpbiBkaXN0L2YyYyApLgorCitGZWIgMyAwMzo0OTowMCBFU1QgMTk5MDoKKyAgUmVwYWly IG1lbW9yeSBmYXVsdCB0aGF0IGFyb3NlIGZyb20gdXNlIChpbiBhbiBhc3NpZ25tZW50IG9yCitj YWxsKSBvZiBhIG5vbi1hcmd1bWVudCB2YXJpYWJsZSBkZWNsYXJlZCBDSEFSQUNURVIqKCopLgor CitGZWIgOSAwMTozNTo0MyBFU1QgMTk5MDoKKyAgRml4IGVycm9uZW91cyBlcnJvciBtc2cgYWJv dXQgYmFkIHR5cGVzIGluCisJc3Vicm91dGluZSBmb28oYSxhZGltKQorCWRpbWVuc2lvbiBhKGFk aW0pCisJaW50ZWdlciBhZGltCisgIEZpeCBpbXByb3BlciBwYXNzaW5nIG9mIGNoYXJhY3RlciBh cmdzIChhbmQgcG9zc2libGUgbWVtb3J5IGZhdWx0KQoraW4gdGhlIGV4cHJlc3Npb24gcGFydCBv ZiBhIGNvbXB1dGVkIGdvdG8uCisgIEZpeCBib3RjaGVkIGNhbGxpbmcgc2VxdWVuY2VzIGluIGFy cmF5IHJlZmVyZW5jZXMgaW52b2x2aW5nCitmdW5jdGlvbnMgaGF2aW5nIGNoYXJhY3RlciBhcmdz LgorICBGaXggbWVtb3J5IGZhdWx0IGNhdXNlZCBieSBpbnZvY2F0aW9uIG9mIGNoYXJhY3Rlci12 YWx1ZWQgZnVuY3Rpb25zCitvZiBubyBhcmd1bWVudHMuCisgIEZpeCBib3RjaGVkIGNhbGxpbmcg c2VxdWVuY2Ugb2YgYSBjaGFyYWN0ZXIqMS12YWx1ZWQgZnVuY3Rpb24KK2Fzc2lnbmVkIHRvIGEg Y2hhcmFjdGVyKjEgdmFyaWFibGUuCisgIEZpeCBidWcgaW4gZXJyb3IgbXNnIGZvciBpbmNvbnNp c3RlbnQgbnVtYmVyIG9mIGFyZ3MgaW4gcHJvdG90eXBlcy4KKyAgQWxsb3cgZ2VuZXJhdGlvbiBv ZiBDIG91dHB1dCBkZXNwaXRlIGluY29uc2lzdGVuY2llcyBpbiBwcm90b3R5cGVzLAorYnV0IGdp dmUgZXhpdCBjb2RlIDguCisgIFNpbXBsaWZ5IGluY2x1ZGUgbG9naWMgKGJ5IHJlbW92aW5nIHNv bWUgYm9ndXMgbG9naWMpOyBuZXZlcgorcHJlcGVuZCAiL3Vzci9pbmNsdWRlLyIgdG8gZmlsZSBu YW1lcy4KKyAgTWlub3IgY2xlYW51cHMgKHRoYXQgc2hvdWxkIHByb2R1Y2Ugbm8gdmlzaWJsZSBj aGFuZ2UgaW4gZjJjJ3MKK2JlaGF2aW9yKSBpbiBpbnRyLmMgcGFyc2UuaCBtYWluLmMgZGVmcy5o IGZvcm1hdGRhdGEuYyBwMW91dHB1dC5jIC4KKworRmViIDEwIDAwOjE5OjM4IEVTVCAxOTkwOgor ICBJbnNlcnQgKGludGVnZXIpIGNhc3RzIHdoZW4gZmxvYXRpbmctcG9pbnQgZXhwcmVzc2lvbnMg YXJlIHVzZWQKK2FzIHN1YnNjcmlwdHMuCisgIE1ha2UgU0FWRSBzdG10ICh3aXRoIG5vIHZhcmlh YmxlIGxpc3QpIG92ZXJyaWRlIC1hIC4KKyAgTWlub3IgY2xlYW51cHM6IGNoYW5nZSBmaWVsZCB0 byBGaWVsZCBpbiBzdHJ1Y3QgQWRkcmJsb2NrIChmb3IgdGhlCitiZW5lZml0IG9mIGJ1Z2d5IEMg Y29tcGlsZXJzKTsgb21pdCBzeXN0ZW0oIi9iaW4vY3AgLi4uIikgaW4gbWlzYy5jIC4KKworRmVi IDEzIDAwOjM5OjAwIEVTVCAxOTkwOgorICBFcnJvciBtc2cgZml4IGluIGdyYW0uZGNsOiBjaGFu Z2UgImNhbm5vdCBtYWtlICVzIHBhcmFtZXRlciIKK3RvICJjYW5ub3QgbWFrZSBpbnRvIHBhcmFt ZXRlciIuCisKK0ZlYiAxNCAxNDowMjowMCBFU1QgMTk5MDoKKyAgVmFyaW91cyBjbGVhbnVwcyAo aW52aXNpYmxlIG9uIHN5c3RlbXMgd2l0aCA0LWJ5dGUgaW50cyksIHRoYW5rcwordG8gRGF2ZSBS ZWdhbjogdmF4eC5jIGVsaW1pbmF0ZWQ7ICVkIGNoYW5nZWQgdG8gJWxkIHZhcmlvdXMgcGxhY2Vz OworZXh0ZXJuYWwgbmFtZXMgYWRqdXN0ZWQgZm9yIHRoZSBiZW5lZml0IG9mIHN0dXBpZCBzeXN0 ZW1zICh0aGF0IGlnbm9yZQorY2FzZSBhbmQgcmVjb2duaXplIG9ubHkgNiBzaWduaWZpY2FudCBj aGFyYWN0ZXJzIGluIGV4dGVybmFsIG5hbWVzKTsKK2J1ZmZlciBzaG9ydGVuZWQgaW4geHN1bS5j IChlLmcuIGZvciBNUy1ET1MpOyBmb3BlbiBtb2RlcyBkaXN0aW5ndWlzaAordGV4dCBhbmQgYmlu YXJ5IGZpbGVzOyBzZXZlcmFsIHVudXNlZCBmdW5jdGlvbnMgZWxpbWluYXRlZDsgbWlzc2luZwor YXJnIHN1cHBsaWVkIHRvIGFuIHVubGlrZWx5IGZhdGFsc3RyIGludm9jYXRpb24uCisKK1RodSBG ZWIgMTUgMTk6MTU6NTMgRVNUIDE5OTA6CisgIE1vcmUgY2xlYW51cHMgKGludmlzaWJsZSBvbiBz eXN0ZW1zIHdpdGggNCBieXRlIGludHMpOyBjYXN0cyBpbnNlcnRlZAorc28gbW9zdCBjb21wbGFp bnRzIGZyb20gY3ludGF4KDEpIGFuZCBsaW50KDEpIGdvIGF3YXk7IGEgZmV3IChpbnQpCit2ZXJz dXMgKGxvbmcpIGNhc3RzIGNvcnJlY3RlZC4KKworRnJpIEZlYiAxNiAxOTo1NTowMCBFU1QgMTk5 MDoKKyAgUmVjb2duaXplIGFuZCB0cmFuc2xhdGUgdW5uYW1lZCBGb3J0cmFuIDh4IGRvIHdoaWxl IHN0YXRlbWVudHMuCisgIEZpeCBidWcgdGhhdCBvY2Nhc2lvbmFsbHkgY2F1c2VkIGltcHJvcGVy IGJyZWFraW5nIG9mIGNoYXJhY3Rlcgorc3RyaW5ncy4KKyAgTmV3IGVycm9yIG1lc3NhZ2UgZm9y IGF0dGVtcHRzIHRvIHByb3ZpZGUgREFUQSBpbiBhIHR5cGUtZGVjbGFyYXRpb24KK3N0YXRlbWVu dC4KKworU2F0IEZlYiAxNyAxMTo0MzowMCBFU1QgMTk5MDoKKyAgRml4IGluZmluaXRlIGxvb3Ag Y2xmIC0+IEZhdGFsIC0+IGRvbmUgLT4gY2xmIGFmdGVyIEkvTyBlcnJvci4KKyAgQ2hhbmdlICJp ZiAoYWRkcnAtPnZjbGFzcyA9IENMUFJPQykiIHRvICJpZiAoYWRkcnAtPnZjbGFzcyA9PSBDTFBS T0MpIgoraW4gcDFfYWRkciAoaW4gcDFvdXRwdXQuYyk7IHRoaXMgd2FzIHByb2JhYmx5IGhhcm1s ZXNzLgorICBNb3ZlIGEgbWlzcGxhY2VkIH0gaW4gbGV4LmMgKHdoaWNoIHNsb3dlZCBpbml0a2V5 KCkpLgorICBUaGFua3MgdG8gR2FyeSBXb3JkIGZvciBwb2ludGluZyB0aGVzZSB0aGluZ3Mgb3V0 LgorCitTdW4gRmViIDE4IDE4OjA3OjAwIEVTVCAxOTkwOgorICBEZXRlY3Qgb3ZlcmxhcHBpbmcg aW5pdGlhbGl6YXRpb25zIG9mIGFycmF5cyBhbmQgc2NhbGFyIHZhcmlhYmxlcworaW4gcHJldmlv dXNseSBtaXNzZWQgY2FzZXMuCisgIFRyZWF0IGxvZ2ljYWwqMiBhcyBsb2dpY2FsIChhZnRlciBp c3N1aW5nIGEgd2FybmluZykuCisgIERvbid0IHBhc3Mgc3RyaW5nIGxpdGVyYWxzIHRvIHAxX2Nv bW1lbnQoKS4KKyAgQ29ycmVjdCBhIGNhc3QgKGludHJvZHVjZWQgMTYgRmViLikgaW4gZ3JhbS5l eHByOyB0aGlzIG1hdHRlcnMgZS5nLgorb24gYSBDcmF5LgorICBBdHRlbXB0IHRvIGlzb2xhdGUg VU5JWC1zcGVjaWZpYyB0aGluZ3MgaW4gc3lzZGVwLmMgKGEgbmV3IHNvdXJjZQorZmlsZSkuICBV bmxlc3Mgc3lzZGVwLmMgaXMgY29tcGlsZWQgd2l0aCBTWVNURU1fU09SVCBkZWZpbmVkLCB0aGUK K2ludGVybWVkaWF0ZSBmaWxlcyBjcmVhdGVkIGZvciBEQVRBIHN0YXRlbWVudHMgYXJlIG5vdyBz b3J0ZWQgaW4tY29yZQord2l0aG91dCBpbnZva2luZyBzeXN0ZW0oKS4KKworVHVlIEZlYiAyMCAx NjoxMDozNSBFU1QgMTk5MDoKKyAgTW92ZSBkZWZpbml0aW9uIG9mIGJpbnJlYWQgYW5kIGJpbndy aXRlIGZyb20gaW5pdC5jIHRvIHN5c2RlcC5jIC4KKyAgUmVjb2duaXplIEZvcnRyYW4gOHggdG9r ZW5zIDwgPD0gPT0gPj0gPiA8PiBhcyBzeW5vbnltcyBmb3IKKy5MVC4gLkxFLiAuRVEuIC5HRS4g LkdULiAuTkUuCisgIE1pbm9yIGNsZWFudXAgaW4gcHV0cGNjLmM6ICBmdWxseSByZW1vdmUgc2lt b2Zmc2V0KCkuCisgIE1vcmUgZGlzY3Vzc2lvbiBvZiBzeXN0ZW0gZGVwZW5kZW5jaWVzIGFkZGVk IHRvIGxpYkk3Ny9SRUFETUUuCisKK1R1ZSBGZWIgMjAgMjE6NDQ6MDcgRVNUIDE5OTA6CisgIE1p bm9yIGNsZWFudXBzIGZvciB0aGUgYmVuZWZpdCBvZiBFQkNESUMgbWFjaGluZXMgLS0gdHJ5IHRv IHJlbW92ZQordGhlIGFzc3VtcHRpb24gdGhhdCAnYScgdGhyb3VnaCAneicgYXJlIGNvbnRpZ3Vv dXMuICAoVGhhbmtzIGFnYWluIHRvCitHYXJ5IFdvcmQuKSAgQWxzbywgY2hhbmdlIGxvZzIgdG8g bG9nXzIgKHNob3VsZG4ndCBiZSBuZWNlc3NhcnkpLgorCitXZWQgRmViIDIxIDA2OjI0OjU2IEVT VCAxOTkwOgorICBGaXggYm90Y2ggaW4gaW5pdC5jIGludHJvZHVjZWQgaW4gcHJldmlvdXMgY2hh bmdlOyBvbmx5IG1hdHRlcnMKK3RvIG5vbi1BU0NJSSBtYWNoaW5lcy4KKworVGh1IEZlYiAyMiAx NzoyOToxMiBFU1QgMTk5MDoKKyAgQWxsb3cgc2V2ZXJhbCBlbnRyeSBwb2ludHMgdG8gbWVudGlv biB0aGUgc2FtZSBhcnJheS4gIFByb3RlY3QKK3BhcmFtZXRlciBhZGp1c3RtZW50cyB3aXRoIGlm J3MgKGZvciB0aGUgY2FzZSB0aGF0IGFuIGFycmF5IGlzIG5vdAorYW4gYXJndW1lbnQgdG8gYWxs IGVudHJ5cG9pbnRzKS4KKyAgVW5kZXIgLXUsIGFsbG93CisJc3Vicm91dGluZSBmb28oeCxuKQor CXJlYWwgeChuKQorCWludGVnZXIgbgorICBDb21wdXRlIGludGVybWVkaWF0ZSB2YXJpYWJsZXMg dXNlZCB0byBldmFsdWF0ZSBkaW1lbnNpb24gZXhwcmVzc2lvbnMKK2F0IHRoZSByaWdodCB0aW1l LiAgRXhhbXBsZSBwcmV2aW91c2x5IG1pc3RyYW5zbGF0ZWQ6CisJc3Vicm91dGluZSBmb28oeCxr LG0sbikKKwlyZWFsIHgobWluKGssbSxuKSkKKwkuLi4KKwl3cml0ZSgqLCopIHgKKyAgRGV0ZWN0 IGR1cGxpY2F0ZSBhcmd1bWVudHMuICAoVGhlIGVycm9yIG1zZyBwb2ludHMgdG8gdGhlIGZpcnN0 CitleGVjdXRhYmxlIHN0bXQgLS0gbm90IHdvbmRlcmZ1bCwgYnV0IG5vdCB3b3J0aCBmaXhpbmcu KQorICBNaW5vciBjbGVhbnVwIG9mIG1pbi9tYXggY29tcHV0YXRpb24gKHNvbWV0aW1lcyBzbGln aHRseSBzaW1wbGVyKS4KKworU3VuIEZlYiAyNSAwOTozOTowMSBFU1QgMTk5MDoKKyAgTWlub3Ig dHdlYWsgdG8gbXVsdGlwbGUgZW50cnkgcG9pbnRzOiBwcm90ZWN0IHBhcmFtZXRlciBhZGp1c3Rt ZW50cword2l0aCBpZidzIG9ubHkgZm9yIChhcnJheSkgYXJncyB0aGF0IGRvIG5vdCBhcHBlYXIg aW4gYWxsIGVudHJ5IHBvaW50cy4KKyAgTWlub3IgdHdlYWtzIHRvIGZvcm1hdC5jIGFuZCBpby5j IChpbnZpc2libGUgdW5sZXNzIHlvdXIgY29tcGlsZXIKK2NvbXBsYWluZWQgYXQgdGhlIGR1cGxp Y2F0ZSAjZGVmaW5lcyBvZiBJT1NVTklUIGFuZCBJT1NGTVQgb3IgYXQKK2NvbXBhcmlzb25zIG9m IHAxZ2V0cyguLi4pIHdpdGggTlVMTCkuCisKK1N1biBGZWIgMjUgMTg6NDA6MTAgRVNUIDE5OTA6 CisgIEZpeCBidWcgaW50cm9kdWNlZCBGZWIuIDIyOiBpZiBhIHN1YnByb2dyYW0gY29udGFpbmVk IERBVEEgYW5kIHRoZQorZmlyc3QgZXhlY3V0YWJsZSBzdGF0ZW1lbnQgd2FzIGxhYmVsZWQsIHRo ZW4gdGhlIGxhYmVsIGdvdCBsb3N0LgorKEp1c3QgY2hhbmdlIElORVhFQyB0byBJTkRBVEEgaW4g cDFvdXRwdXQuYzsgaXQgb2NjdXJzIGp1c3Qgb25jZS4pCisKK01vbiBGZWIgMjYgMTc6NDU6MTAg RVNUIDE5OTA6CisgIEZpeCBidWcgaW4gaGFuZGxpbmcgb2YgIiBhbmQgJyBpbiBjb21tZW50cy4K KworV2VkIE1hciAyOCAwMTo0MzowNiBFU1QgMTk5MDoKK2xpYkk3NzoKKyAxLiBSZXBhaXIgbmFz dHkgSS9PIGJ1Zzogb3BlbmluZyB0d28gZmlsZXMgYW5kIGNsb3NpbmcgdGhlIGZpcnN0CisoYWZ0 ZXIgcG9zc2libHkgcmVhZGluZyBvciB3cml0aW5nIGl0KSwgdGhlbiB3cml0aW5nIHRoZSBzZWNv bmQgY2F1c2VkCit0aGUgbGFzdCBidWZmZXIgb2YgdGhlIHNlY29uZCB0byBiZSBsb3N0LgorIDIu IEZvcm1hdHRlZCByZWFkcyBvZiBsb2dpY2FsIHZhbHVlcyB0cmVhdGVkIGFsbCBsZXR0ZXJzIG90 aGVyIHRoYW4KK3Qgb3IgVCBhcyBmIChmYWxzZSkuCisgbGliSTc3IGZpbGVzIGNoYW5nZWQ6IGVy ci5jIHJkZm10LmMgVmVyc2lvbi5jCisgKFJlcXVlc3QgImxpYmk3NyBmcm9tIGYyYyIgLS0geW91 IGNhbid0IGdldCB0aGVzZSBmaWxlcyBpbmRpdmlkdWFsbHkuKQorCitmMmMgaXRzZWxmOgorICBS ZXBhaXIgbmFzdHkgYnVnIGluIHRyYW5zbGF0aW9uIG9mCisJRUxTRSBJRiAoY29uZGl0aW9uIGlu dm9sdmluZyBjb21wbGljYXRlZCBhYnMsIG1pbiwgb3IgbWF4KQorLS0gYXV4aWxpYXJ5IHN0YXRl bWVudHMgd2VyZSBlbWl0dGVkIGF0IHRoZSB3cm9uZyBwbGFjZS4KKyAgU3VwcGx5IHNlbWljb2xv biBwcmV2aW91c2x5IG9taXR0ZWQgZnJvbSB0aGUgdHJhbnNsYXRpb24gb2YgYSBsYWJlbAorKG9m IGEgQ09OVElOVUUpIGltbWVkaWF0ZWx5IHByZWNlZGluZyBhbiBFTFNFIElGIG9yIGFuIEVMU0Uu ICBUaGlzCitidWcgbWFkZSBmMmMgcHJvZHVjZSBpbnZhbGlkIEMuCisgIENvcnJlY3QgYSBtZW1v cnkgZmF1bHQgdGhhdCBvY2N1cnJlZCAob24gc29tZSBtYWNoaW5lcykgd2hlbiB0aGUKK2Vycm9y IG1lc3NhZ2UgImFkanVzdGFibGUgZGltZW5zaW9uIG9uIG5vbi1hcmd1bWVudCIgc2hvdWxkIGJl IGdpdmVuLgorICBNaW5vciB0d2Vha3MgdG8gcmVtb3ZlIHNvbWUgaGFybWxlc3Mgd2FybmluZ3Mg Ynkgb3Zlcmx5IGNoYXR0eSBDCitjb21waWxlcnMuCisgIEFyZ3VtZW50IGFyYXlzIGhhdmluZyBj b25zdGFudCBkaW1lbnNpb25zIGJ1dCBhIHZhcmlhYmxlIGxvd2VyIGJvdW5kCisoZS5nLiwgeChu KzE6biszKSkgaGFkIGEgKiBvbWl0dGVkIGZyb20gc2NhbGFyIGFyZ3VtZW50cyBpbnZvbHZlZCBp bgordGhlIGFycmF5IG9mZnNldCBjb21wdXRhdGlvbi4KKworV2VkIE1hciAyOCAxODo0Nzo1OSBF U1QgMTk5MDoKK2xpYmY3NzogYWRkIGV4aXQoMCkgdG8gZW5kIG9mIG1haW4gW3JldHVybigwKSBl bmNvdW50ZXJzIGEgQ3JheSBidWddCisKK1N1biBBcHIgIDEgMTY6MjA6NTggRURUIDE5OTA6Cisg IEF2b2lkIGRlcmVmZXJlbmNpbmcgbnVsbCB3aGVuIHByb2Nlc3NpbmcgZXF1aXZhbGVuY2VzIGFm dGVyIGFuIGVycm9yLgorCitGcmkgQXByICA2IDA4OjI5OjQ5IEVEVCAxOTkwOgorICBDYWxscyBp bnZvbHZpbmcgYWx0ZXJuYXRlIHJldHVybiBzcGVjaWZpZXJzIG9taXR0ZWQgcHJvY2Vzc2luZwor bmVlZGVkIGZvciB0aGluZ3MgbGlrZSBtaW4sIG1heCwgYWJzLCBhbmQgLy8gKGNvbmNhdGVuYXRp b24pLgorICBJTlRFR0VSKjIgUEFSQU1FVEVScyB3ZXJlIHRyZWF0ZWQgYXMgSU5URUdFUio0Lgor ICBDb252ZXJ0IHNvbWUgTyhuXjIpIHBhcnNpbmcgdG8gTyhuKS4KKworVHVlIEFwciAxMCAyMDow NzowMiBFRFQgMTk5MDoKKyAgV2hlbiBpbmNvbnNpc3RlbnQgY2FsbGluZyBzZXF1ZW5jZXMgaW52 b2x2ZSBkaWZmZXJpbmcgbnVtYmVycyBvZgorYXJndW1lbnRzLCByZXBvcnQgdGhlIGZpcnN0IGRp ZmZlcmluZyBhcmd1bWVudCByYXRoZXIgdGhhbiB0aGUgbnVtYmVycworb2YgYXJndW1lbnRzLgor ICBGaXggYnVnIHVuZGVyIC1hOiBmb3JtYXR0ZWQgSS9PIGluIHdoaWNoIGVpdGhlciB0aGUgdW5p dCBvciB0aGUKK2Zvcm1hdCB3YXMgYSBsb2NhbCBjaGFyYWN0ZXIgdmFyaWFibGUgc29tZXRpbWVz IHJlc3VsdGVkIGluIGludmFsaWQgQworKGEgc3RhdGljIHN0cnVjdCBpbml0aWFsaXplZCB3aXRo IGFuIGF1dG9tYXRpYyBjb21wb25lbnQpLgorICBJbXByb3ZlIGVycm9yIG1lc3NhZ2UgZm9yIGlu dmFsaWQgZmxhZyBhZnRlciBlbGlkZWQgLS4KKyAgQ29tcGxhaW4gd2hlbiBsaXRlcmFsIHRhYmxl IG92ZXJmbG93cywgcmF0aGVyIHRoYW4gaW5maW5pdGVseQorbG9vcGluZy4gIChUaGUgY29tcGxh aW50IG1lbnRpb25zIHRoZSBuZXcgYW5kIG90aGVyd2lzZSB1bmRvY3VtZW50ZWQKKy1OTCBvcHRp b24gZm9yIHNwZWNpZnlpbmcgYSBsYXJnZXIgbGl0ZXJhbCB0YWJsZS4pCisgIE5ldyBvcHRpb24g LWggZm9yIGZvcmNpbmcgc3RyaW5ncyB0byB3b3JkIChvciwgd2l0aCAtaGQsIGRvdWJsZS13b3Jk KQorYm91bmRhcmllcyB3aGVyZSBwb3NzaWJsZS4KKyAgUmVwYWlyIGEgYnVnIHRoYXQgY291bGQg Y2F1c2UgaW1wcm9wZXIgc3BsaXR0aW5nIG9mIHN0cmluZ3MuCisgIEZpeCBidWcgKGNhc3Qgb2Yg YyB0byBkb3VibGVyZWFsKSBpbgorCXN1YnJvdXRpbmUgZm9vKGMscikKKwlkb3VibGUgY29tcGxl eCBjCisJZG91YmxlIHByZWNpc2lvbiByCisJYyA9IGNtcGx4KHIscmVhbChjKSkKKwllbmQKKyAg TmV3IGluY2x1ZGUgZmlsZSAic3lzZGVwLmgiIGhhcyBzb21lIHRoaW5ncyBmcm9tIGRlZnMuaCAo YW5kCitlbHNld2hlcmUpIHRoYXQgb25lIG1heSBuZWVkIHRvIG1vZGlmeSBvbiBzb21lIHN5c3Rl bXMuCisgIFNvbWUgbGFyZ2UgYXJyYXlzIHRoYXQgd2VyZSBwcmV2aW91c2x5IHN0YXRpY2FsbHkg YWxsb2NhdGVkIGFyZSBub3cKK2R5bmFtaWNhbGx5IGFsbG9jYXRlZCB3aGVuIGYyYyBzdGFydHMg cnVubmluZy4KKyAgZjJjL3NyYyBmaWxlcyBjaGFuZ2VkOgorCVJFQURNRSBjZHMuYyBkZWZzLmgg ZjJjLjEgZjJjLjF0IGZvcm1hdC5jIGZvcm1hdGRhdGEuYyBpbml0LmMKKwlpby5jIGxleC5jIG1h aW4uYyBtYWtlZmlsZSBtZW0uYyBtaXNjLmMgbmFtZXMuYyBuaWNlcHJpbnRmLmMKKwlvdXRwdXQu YyBwYXJzZV9hcmdzLmMgcHJlYWQuYyBwdXQuYyBwdXRwY2MuYyBzeXNkZXAuaAorCXZlcnNpb24u YyB4c3VtMC5vdXQKKworV2VkIEFwciAxMSAxODoyNzoxMiBFRFQgMTk5MDoKKyAgRml4IGJ1ZyBp biBhcmd1bWVudCBjb25zaXN0ZW5jeSBjaGVja2luZyBvZiBjaGFyYWN0ZXIsIGNvbXBsZXgsIGFu ZAorZG91YmxlIGNvbXBsZXggdmFsdWVkIGZ1bmN0aW9ucy4gIElmIHRoZSBzYW1lIHNvdXJjZSBm aWxlIGNvbnRhaW5lZCBhCitkZWZpbml0aW9uIG9mIHN1Y2ggYSBmdW5jdGlvbiB3aXRoIGFyZ3Vt ZW50cyBub3QgZXhwbGljaXRseSB0eXBlZCwKK3RoZW4gc3Vic2VxdWVudCByZWZlcmVuY2VzIHRv IHRoZSBmdW5jdGlvbiBtaWdodCBnZXQgZXJyb25lb3VzCit3YXJuaW5ncyBvZiBpbmNvbnNpc3Rl bnQgY2FsbGluZyBzZXF1ZW5jZXMuCisgIFR3ZWFrcyB0byBzeXNkZXAuaCBmb3IgcGFydGlhbGx5 IEFOU0kgc3lzdGVtcy4KKyAgTmV3IG9wdGlvbnMgLWtyIGFuZCAta3JkIGNhdXNlIGYyYyB0byB1 c2UgdGVtcG9yYXJ5IHZhcmlhYmxlcyB0bworZW5mb3JjZSBGb3J0cmFuIGV2YWx1YXRpb24tb3Jk ZXIgcnVsZXMgd2l0aCBwZXJuaWNpb3VzLCBvbGQtc3R5bGUgQworY29tcGlsZXJzIHRoYXQgYXBw bHkgdGhlIGFzc29jaWF0aXZlIGxhdyB0byBmbG9hdGluZy1wb2ludCBvcGVyYXRpb25zLgorCitT YXQgQXByIDE0IDE1OjUwOjE1IEVEVCAxOTkwOgorICBsaWJpNzc6IGxpYkk3NyBhZGp1c3RlZCB0 byBhbGxvdyBsaXN0LWRpcmVjdGVkIGFuZCBuYW1lbGlzdCBJL08KK29mIGludGVybmFsIGZpbGVz OyBidWcgaW4gbmFtZWxpc3QgSS9PIG9mIGxvZ2ljYWwgYW5kIGNoYXJhY3RlciBhcnJheXMKK2Zp eGVkOyBsaXN0IGlucHV0IG9mIGNvbXBsZXggbnVtYmVycyBhZGp1c3RlZCB0byBwZXJtaXQgZCBv ciBEIHRvCitkZW5vdGUgdGhlIHN0YXJ0IG9mIHRoZSBleHBvbmVudCBmaWVsZCBvZiBhIGNvbXBv bmVudC4KKyAgZjJjIGl0c2VsZjogZml4IGJ1ZyBpbiBoYW5kbGluZyBjb21wbGljYXRlZCBsb3dl ci1ib3VuZAorZXhwcmVzc2lvbnMgZm9yIGNoYXJhY3RlciBzdWJzdHJpbmdzOyBlLmcuLCBtaW4g YW5kIG1heCBkaWQgbm90IHdvcmsKK3JpZ2h0LCBub3IgZGlkIGZ1bmN0aW9uIGludm9jYXRpb25z IGludm9sdmluZyBjaGFyYWN0ZXIgYXJndW1lbnRzLgorICBTd2l0Y2ggdG8gb2N0YWwgbm90YXRp b24sIHJhdGhlciB0aGFuIGhleGFkZWNpbWFsLCBmb3Igbm9ucHJpbnRpbmcKK2NoYXJhY3RlcnMg aW4gY2hhcmFjdGVyIGFuZCBzdHJpbmcgY29uc3RhbnRzLgorICBGaXggYnVnICh3aGVuIG5laXRo ZXIgLUEgbm9yIC1DKysgd2FzIHNwZWNpZmllZCkgaW4gdHlwaW5nIG9mCitleHRlcm5hbCBhcmd1 bWVudHMgb2YgdHlwZSBjb21wbGV4LCBkb3VibGUgY29tcGxleCwgb3IgY2hhcmFjdGVyOgorCXN1 YnJvdXRpbmUgZm9vKGMpCisJZXh0ZXJuYWwgYworCWNvbXBsZXggYworbm93IHJlc3VsdHMgaW4K KwkvKiBDb21wbGV4ICovIGludCAoKmMpICgpOworKGFzLCBpbmRlZWQsIGl0IG9uY2UgZGlkKSBy YXRoZXIgdGhhbgorCWNvbXBsZXggKCpjKSAoKTsKKworU2F0IEFwciAxNCAyMjo1MDozOSBFRFQg MTk5MDoKKyAgbGliSTc3L21ha2VmaWxlOiB1cGRhdGVkICJtYWtlIGNoZWNrIiB0byBvbWl0IGxp by5jCisgIGxpYltGSV03Ny9tYWtlZmlsZTogdHJpdmlhbCBjaGFuZ2U6IGRlZmluZSBDQyA9IGNj LCByZWZlcmVuY2UgJChDQykuCisgIChSZXF1ZXN0LCBlLmcuLCAibGliaTc3IGZyb20gZjJjIiAt LSB5b3UgY2FuJ3QgYXNrIGZvciBpbmRpdmlkdWFsCitmaWxlcyBmcm9tIGxpYltGSV03Ny4pCisK K1dlZCBBcHIgMTggMDA6NTY6MzcgRURUIDE5OTA6CisgIE1vdmUgZGVjbGFyYXRpb24gb2YgYXRv ZigpIGZyb20gZGVmcy5oIHRvIHN5c2RlcC5oLCB3aGVyZSBpdCBpcworbm93IG5vdCBkZWNsYXJl ZCBpZiBzdGRsaWIuaCBpcyBpbmNsdWRlZC4gIChOZVhUJ3Mgc3RkbGliLmggaGFzIGEKKyNkZWZp bmUgYXRvZiB0aGF0IG90aGVyd2lzZSB3cmVha3MgaGF2b2MuKQorICBVbmRlciAtdSwgcHJvdmlk ZSBhIG1vcmUgaW50ZWxsaWdpYmxlIGVycm9yIG1lc3NhZ2UgKHRoYW4gImJhZCB0YWciKQorZm9y IGFuIGF0dGVtcHQgdG8gZGVmaW5lIGEgZnVuY3Rpb24gd2l0aG91dCBzcGVjaWZ5aW5nIGl0cyB0 eXBlLgorCitXZWQgQXByIDE4IDE3OjI2OjI3IEVEVCAxOTkwOgorICBSZWNvZ25pemUgXHYgKHZl cnRpY2FsIHRhYikgaW4gSG9sbGVyaXRoIGFzIHdlbGwgYXMgcXVvdGVkIHN0cmluZ3M7CithZGQg cmVjb2duaXRpb24gb2YgXHIgKGNhcnJpYWdlIHJldHVybikuCisgIE5ldyBvcHRpb24gLSFicyB0 dXJucyBvZmYgcmVjb2duaXRpb24gb2YgZXNjYXBlcyBpbiBjaGFyYWN0ZXIgc3RyaW5ncworKFww LCBcXCwgXGIsIFxmLCBcbiwgXHIsIFx0LCBcdikuCisgIE1vdmUgdG8gc3lzZGVwLmMgaW5pdGlh bGl6YXRpb24gb2Ygc29tZSBhcnJheXMgd2hvc2UgaW5pdGlhbGl6YXRpb24KK2Fzc3VtZWQgQVND SUk7ICNkZWZpbmUgVGFibGVfc2l6ZSBpbiBzeXNkZXAuaCByYXRoZXIgdGhhbiB1c2luZworaGFy ZC1jb2RlZCAyNTYgaW4gYWxsb2NhdGluZyBhcnJheXMgb2Ygc2l6ZSAxIDw8IChiaXRzL2J5dGUp LgorCitUaHUgQXByIDE5IDA4OjEzOjIxIEVEVCAxOTkwOgorICBXYXJuIHdoZW4gZXNjYXBlcyB3 b3VsZCBtYWtlIEhvbGxlcml0aCBleHRlbmQgYmV5b25kIHN0YXRlbWVudCBlbmQuCisgIE9taXQg bWF4KCkgZGVmaW5pdGlvbiBmcm9tIG1pc2MuYyAoc2hvdWxkIGJlIGludmlzaWJsZSBleGNlcHQg b24KK3N5c3RlbXMgdGhhdCBlcnJvbmVvdXNseSAjZGVmaW5lIG1heCBpbiBzdGRsaWIuaCkuCisK K01vbiBBcHIgMjMgMjI6MjQ6NTEgRURUIDE5OTA6CisgIFdoZW4gcHJvZHVjaW5nIGRlZmF1bHQt c3R5bGUgQyAobm8gLUEgb3IgLUMrKyksIGNhc3Qgc3dpdGNoCitleHByZXNzaW9ucyB0byAoaW50 KS4KKyAgTW92ZSAiLWxGNzcgLWxJNzcgLWxtIC1sYyIgdG8gbGlua19tc2csIGRlZmluZWQgaW4g c3lzZGVwLmMgLgorICBBZGQgI2RlZmluZSBzY3J1Yih4KSB0byBzeXNkZXAuaCwgd2l0aCBpbnZv Y2F0aW9ucyBpbiBmb3JtYXQuYyBhbmQKK2Zvcm1hdGRhdGEuYywgc28gdGhhdCBwZW9wbGUgd2hv IGhhdmUgc3lzdGVtcyBsaWtlIFZNUyB0aGF0IHdvdWxkCitvdGhlcndpc2UgY3JlYXRlIG11bHRp cGxlIHZlcnNpb25zIG9mIGludGVybWVkaWF0ZSBmaWxlcyBjYW4KKyNkZWZpbmUgc2NydWIoeCkg dW5saW5rKHgpCisKK1R1ZSBBcHIgMjQgMTg6Mjg6MzYgRURUIDE5OTA6CisgIFBhc3Mgc3RyaW5n IGxlbmd0aHMgb25jZSByYXRoZXIgdGhhbiB0d2ljZSB0byBhIGZ1bmN0aW9uIG9mIGNoYXJhY3Rl cgorYXJndW1lbnRzIGludm9sdmVkIGluIGNvbXBhcmlzb24gb2YgY2hhcmFjdGVyIHN0cmluZ3Mg b2YgbGVuZ3RoIDEuCisKK0ZyaSBBcHIgMjcgMTM6MTE6NTIgRURUIDE5OTA6CisgIEZpeCBidWcg dGhhdCBtYWRlIGYyYyBnYWcgb24gY29uY2F0ZW5hdGlvbnMgaW52b2x2aW5nIGNoYXIoLi4uKSBv bgorc29tZSBzeXN0ZW1zLgorCitTYXQgQXByIDI4IDIzOjIwOjE2IEVEVCAxOTkwOgorICBGaXgg Y29udHJvbC1zdGFjayBidWcgaW4KKwlpZiguLi4pIHRoZW4KKwllbHNlIGlmIChjb21wbGljYXRl ZCBjb25kaXRpb24pCisJZWxzZQorCWVuZGlmCisod2hlcmUgdGhlIGNvbXBsaWNhdGVkIGNvbmRp dGlvbiBjYXVzZXMgYXNzaWdubWVudCB0byBhbiBhdXhpbGlhcnkKK3ZhcmlhYmxlLCBlLmcuLCBt YXgoYSpiLGMpKS4KKworTW9uIEFwciAzMCAxMzozMDoxMCBFRFQgMTk5MDoKKyAgQ2hhbmdlIGZp bGxlcnMgZm9yIERBVEEgd2l0aCBob2xlcyBmcm9tIHN1YnN0cnVjdHVyZXMgdG8gYXJyYXlzCiso aW4gYW4gYXR0ZW1wdCB0byBtYWtlIHRoaW5ncyB3b3JrIHJpZ2h0IHdpdGggQyBjb21waWxlcnMg dGhhdCBoYXZlCitmdW5ueSBwYWRkaW5nIHJ1bGVzIGZvciBzdWJzdHJ1Y3R1cmVzLCBlLmcuLCBT dW4gQyBjb21waWxlcnMpLgorICBNaW5vciBjbGVhbnVwIG9mIGV4ZWMuYyAoc2hvdWxkIG5vdCBh ZmZlY3QgZ2VuZXJhdGVkIEMpLgorCitNb24gQXByIDMwIDIzOjEzOjUxIEVEVCAxOTkwOgorICBG aXggYnVnIGluIGhhbmRsaW5nIHJldHVybiB2YWx1ZXMgb2YgZnVuY3Rpb25zIGhhdmluZyBtdWx0 aXBsZQorZW50cnkgcG9pbnRzIG9mIGRpZmZlcmluZyByZXR1cm4gdHlwZXMuCisKK1NhdCBNYXkg IDUgMDE6NDU6MTggRURUIDE5OTA6CisgIEZpeCB0eXBlIGluZmVyZW5jZSBidWcgaW4KKwlzdWJy b3V0aW5lIGZvbyh4KQorCWNhbGwgZ29vKHgpCisJZW5kCisJc3Vicm91dGluZSBnb28oaSkKKwlp ID0gMworCWVuZAorSW5zdGVhZCBvZiB3YXJuaW5nIG9mIGluY29uc2lzdGVudCBjYWxsaW5nIHNl cXVlbmNlcyBmb3IgZ29vLAorZjJjIHdhcyBzaW1wbHkgbWFraW5nIGkgYSByZWFsIHZhcmlhYmxl OyBub3cgaSBpcyBjb3JyZWN0bHkKK3R5cGVkIGFzIGFuIGludGVnZXIgdmFyaWFibGUsIGFuZCBm MmMgaXNzdWVzIGFuIGVycm9yIG1lc3NhZ2UuCisgIEFkanVzdCBlcnJvciBtZXNzYWdlcyBpc3N1 ZWQgYXQgZW5kIG9mIGRlY2xhcmF0aW9ucyBzbyB0aGV5Citkb24ndCBibGFtZSB0aGUgZmlyc3Qg ZXhlY3V0YWJsZSBzdGF0ZW1lbnQuCisKK1N1biBNYXkgIDYgMDE6Mjk6MDcgRURUIDE5OTA6Cisg IEZpeCBidWcgaW4gLVAgYW5kIC1Qczogd2FybiB3aGVuIHRoZSBkZWZpbml0aW9uIG9mIGEgc3Vi cHJvZ3JhbSBhZGRzCitpbmZvcm1hdGlvbiB0aGF0IHdvdWxkIGNoYW5nZSBwcm90b3R5cGVzIG9y IHByZXZpb3VzIGRlY2xhcmF0aW9ucy4KKworVGh1IE1heSAxMCAxODowOToxNSBFRFQgMTk5MDoK KyAgRml4IGZ1cnRoZXIgb2JzY3VyZSBidWcgd2l0aCAoZGVmYXVsdCkgLWl0OiBpbmNvbnNpc3Rl bnQgY2FsbGluZworc2VxdWVuY2VzIGFuZCBJL08gc3RhdGVtZW50cyBjb3VsZCBpbnRlcmFjdCB0 byBjYXVzZSBhIG1lbW9yeSBmYXVsdC4KK0V4YW1wbGU6CisgICAgICBTVUJST1VUSU5FIEZPTwor ICAgICAgQ0FMTCBHT08oJyBTb21ldGhpbmcnKSAhIEZvcmdvdCBpbnRlZ2VyIGZpcnN0IGFyZwor ICAgICAgRU5ECisgICAgICBTVUJST1VUSU5FIEdPTyhJVU5JVCxNU0cpCisgICAgICBDSEFSQUNU RVIqKCopTVNHCisgICAgICBXUklURShJVU5JVCwnKDFYLEEpJykgTVNHCisgICAgICBFTkQKKwor RnJpIE1heSAxMSAxNjo0OToxMSBFRFQgMTk5MDoKKyAgVW5kZXIgLSFjLCBkbyBub3QgZGVsZXRl IGFueSAuYyBmaWxlcyAod2hlbiB0aGVyZSBhcmUgZXJyb3JzKS4KKyAgQXZvaWQgZGVyZWZlcmVu Y2luZyAwIHdoZW4gYSBmYXRhbCBlcnJvciBvY2N1cnMgd2hpbGUgcmVhZGluZworRm9ydHJhbiBv biBzdGRpbi4KKworV2VkIE1heSAxNiAxODoyNDo0MiBFRFQgMTk5MDoKKyAgZjJjLnBzIG1hZGUg YXZhaWxhYmxlLgorCitNb24gSnVuICA0IDEyOjUzOjA4IEVEVCAxOTkwOgorICBEaWFnbm9zZSBJ L08gdW5pdHMgb2YgaW52YWxpZCB0eXBlLgorICBBZGQgc3BlY2lmaWMgZXJyb3IgbXNnIGFib3V0 IGR1bW15IGFyZ3VtZW50cyBpbiBjb21tb24uCisKK1dlZCBKdW4gMTMgMTI6NDM6MTcgRURUIDE5 OTA6CisgIFVuZGVyIC1BLCBzdXBwbHkgYSBtaXNzaW5nICJbMV0iIGZvciBDSEFSQUNURVIqMSB2 YXJpYWJsZXMgdGhhdCBhcHBlYXIKK2JvdGggaW4gYSBEQVRBIHN0YXRlbWVudCBhbmQgaW4gZWl0 aGVyIENPTU1PTiBvciBFUVVJVkFMRU5DRS4KKworTW9uIEp1biAxOCAxNjo1ODozMSBFRFQgMTk5 MDoKKyAgVHJpdmlhbCB1cGRhdGVzIHRvIGYyYy5wcyAuICAoIkZvcnRyYW4gOHgiIC0tPiAiRm9y dHJhbiA5MCI7IG9taXQKKyIoZHJhZnQpIiBmcm9tICIoZHJhZnQpIEFOU0kgQyIuKQorCitUdWUg SnVuIDE5IDA3OjM2OjMyIEVEVCAxOTkwOgorICBGaXggaW5jb3JyZWN0IGNvZGUgZ2VuZXJhdGVk IGZvciBFTFNFIElGKGV4cHJlc3Npb24gaW52b2x2aW5nCitmdW5jdGlvbiBjYWxsIHBhc3Npbmcg bm9uLWNvbnN0YW50IHN1YnN0cmluZykuCisgIFVuZGVyIC1oLCBwcmVzZXJ2ZSB0aGUgcHJvcGVy dHkgdGhhdCBzdHJpbmdzIGFyZSBudWxsLXRlcm1pbmF0ZWQKK3doZXJlIHBvc3NpYmxlLgorICBS ZW1vdmUgc3BhY2VzIGJldHdlZW4gIyBhbmQgZGVmaW5lIGluIGxleC5jIG91dHB1dC5jIHBhcnNl LmggLgorCitNb24gSnVuIDI1IDA3OjIyOjU5IEVEVCAxOTkwOgorICBNaW5vciB0d2VhayB0byBt YWtlZmlsZSB0byByZWR1Y2UgdW5uZWNlc3NhcnkgcmVjb21waWxhdGlvbnMuCisKK1R1ZSBKdW4g MjYgMTE6NDk6NTMgRURUIDE5OTA6CisgIEZpeCB1bmludGVuZGVkIHRydW5jYXRpb24gb2Ygc29t ZSBpbnRlZ2VyIGNvbnN0YW50cyBvbiBtYWNoaW5lcword2hlcmUgY2FzdGluZyBhIGxvbmcgdG8g KGludCkgbWF5IGNoYW5nZSB0aGUgdmFsdWUuICBFLmcuLCB3aGVuIGYyYworcmFuIG9uIG1hY2hp bmVzIHdpdGggMTYtYml0IGludHMsICJpID0gOTk5OTkiIHdhcyBiZWluZyB0cmFuc2xhdGVkCit0 byAiaSA9IC0zMTA3MzsiLgorCitXZWQgSnVuIDI3IDExOjA1OjMyIEVEVCAxOTkwOgorICBBcnJh bmdlIGZvciBDSEFSQUNURVItdmFsdWVkIFBBUkFNRVRFUnMgdG8gaG9ub3IgdGhlaXIgbGVuZ3Ro CitzcGVjaWZpY2F0aW9ucy4gIEFsbG93IENIQVIobm4pIGluIGV4cHJlc3Npb25zIGRlZmluaW5n IHN1Y2ggUEFSQU1FVEVScy4KKworRnJpIEp1bCAyMCAwOToxNzozMCBFRFQgMTk5MDoKKyAgQXZv aWQgZGVyZWZlcmVuY2luZyAwIHdoZW4gYSBGT1JNQVQgc3RhdGVtZW50IGhhcyBubyBsYWJlbC4K KworVGh1IEp1bCAyNiAxMTowOTozOSBFRFQgMTk5MDoKKyAgUmVtYXJrcyBhYm91dCBWT0lEIGFu ZCBiaW5yZWFkLGJpbndyaXRlIGFkZGVkIHRvIFJFQURNRS4KKyAgVHdlYWtzIHRvIHBhcnNlX2Fy Z3M6IHNob3VsZCBiZSBpbnZpc2libGUgdW5sZXNzIHlvdXIgY29tcGlsZXIKK2NvbXBsYWluZWQg YXQgKHNob3J0KSpzdG9yZS4KKworVGh1IEF1ZyAgMiAwMjowNzo1OCBFRFQgMTk5MDoKKyAgZjJj LnBzOiBjaGFuZ2UgdGhlIGZpcnN0IGxpbmUgb2YgcGFnZSA1IGZyb20KKwlpbmNsdWRlIHN0dWZm Cit0bworCWluY2x1ZGUgJ3N0dWZmJworCitUdWUgQXVnIDE0IDEzOjIxOjI0IEVEVCAxOTkwOgor ICBsaWJpNzc6IGxpYkk3NyBhZGp1c3RlZCB0byB0cmVhdCB0YWJzIGFzIHNwYWNlcyBpbiBsaXN0 IGlucHV0LgorCitGcmkgQXVnIDE3IDA3OjI0OjUzIEVEVCAxOTkwOgorICBsaWJpNzc6IGxpYkk3 NyBhZGp1c3RlZCBzbyBhIGJsYW5rPSdaRVJPJyBjbGF1c2UgKHVwcGVyIGNhc2UgWikKK2luIGFu IG9wZW4gb2YgYSBjdXJyZW50bHkgb3BlbiBmaWxlIHdvcmtzIHJpZ2h0LgorCitUdWUgQXVnIDI4 IDAxOjU2OjQ0IEVEVCAxOTkwOgorICBGaXggYnVnIGluIHdhcm5pbmdzIG9mIGluY29uc2lzdGVu dCBjYWxsaW5nIHNlcXVlbmNlczogaWYgYW4KK2FyZ3VtZW50IHRvIGEgc3VicHJvZ3JhbSB3YXMg bmV2ZXIgcmVmZXJlbmNlZCwgdGhlbiBhIHByZXZpb3VzCitpbnZvY2F0aW9uIG9mIHRoZSBzdWJw cm9ncmFtIChpbiB0aGUgc2FtZSBzb3VyY2UgZmlsZSkgdGhhdAorcGFzc2VkIHNvbWV0aGluZyBv ZiB0aGUgd3JvbmcgdHlwZSBmb3IgdGhhdCBhcmd1bWVudCBkaWQgbm90CitlbGljaXQgYSB3YXJu aW5nIG1lc3NhZ2UuCisKK1RodSBBdWcgMzAgMDk6NDY6MTIgRURUIDE5OTA6CisgIGxpYmk3Nzog cHJldmVudCBlbWJlZGRlZCBibGFua3MgaW4gbGlzdCBvdXRwdXQgb2YgY29tcGxleCB2YWx1ZXM7 CitvbWl0IGV4cG9uZW50IGZpZWxkIGluIGxpc3Qgb3V0cHV0IG9mIHZhbHVlcyBvZiBtYWduaXR1 ZGUgYmV0d2VlbgorMTAgYW5kIDFlODsgcHJldmVudCB3cml0aW5nIHN0ZGluIGFuZCByZWFkaW5n IHN0ZG91dCBvciBzdGRlcnI7Citkb24ndCBjbG9zZSBzdGRpbiwgc3Rkb3V0LCBvciBzdGRlcnIg d2hlbiByZW9wZW5pbmcgdW5pdHMgNSwgNiwgMC4KKworVHVlIFNlcCAgNCAxMjozMDo1NyBFRFQg MTk5MDoKKyAgRml4IGJ1ZyBpbiBDIGVtaXR0ZWQgdW5kZXIgLUkyIG9yIC1pMiBmb3IgSU5URUdF Uio0IEZVTkNUSU9OLgorICBXYXJuIG9mIG1pc3NpbmcgZmluYWwgRU5EIGV2ZW4gaWYgdGhlcmUg YXJlIHByZXZpb3VzIGVycm9ycy4KKworRnJpIFNlcCAgNyAxMzo1NTozNCBFRFQgMTk5MDoKKyAg UmVtYXJrIGFib3V0ICJtYWtlIHhzdW0ub3V0IiBhbmQgIm1ha2UgZjJjIiBhZGRlZCB0byBSRUFE TUUuCisKK1R1ZSBTZXAgMTggMjM6NTA6MDEgRURUIDE5OTA6CisgIEZpeCBudWxsIGRlcmVmZXJl bmNlIChhbmQsIG9uIHNvbWUgc3lzdGVtcywgd3JpdGluZyBvZiBib2d1cyAqX2NvbS5jCitmaWxl cykgdW5kZXIgLWVjIG9yIC1lMWMgd2hlbiBhIHByb3RvdHlwZSBmaWxlICgqLnAgb3IgKi5QKSBk ZXNjcmliZXMKK0NPTU1PTiBibG9ja3MgdGhhdCBkbyBub3QgYXBwZWFyIGluIHRoZSBGb3J0cmFu IHNvdXJjZS4KKyAgbGliaTc3OgorICAgIEFkZCBzb21lICNpZmRlZiBsaW5lcyAoI2lmZGVmIE1T RE9TLCAjaWZuZGVmIE1TRE9TKSB0byBhdm9pZAorcmVmZXJlbmNlcyB0byBzdGF0IGFuZCBmc3Rh dCBvbiBub24tVU5JWCBzeXN0ZW1zLgorICAgIE9uIFVOSVggc3lzdGVtcywgYWRkIGNvbXBvbmVu dCB1ZGV2IHRvIHVuaXQ7IGRlY2lkZSB0aGF0IG9sZAorYW5kIG5ldyBmaWxlcyBhcmUgdGhlIHNh bWUgaWZmIGJvdGggdGhlIHVpbm9kZSBhbmQgdWRldiBjb21wb25lbnRzCitvZiB1bml0IGFncmVl LgorICAgIFdoZW4gYW4gb3BlbiBzdG10IHNwZWNpZmllcyBTVEFUVVM9J09MRCcsIHVzZSBzdGF0 IHJhdGhlciB0aGFuCithY2Nlc3MgKG9uIFVOSVggc3lzdGVtcykgdG8gY2hlY2sgdGhlIGV4aXN0 ZW5jZSBvZiB0aGUgZmlsZSAoaW4gY2FzZQorZGlyZWN0b3JpZXMgbGVhZGluZyB0byB0aGUgZmls ZSBoYXZlIGZ1bm55IHBlcm1pc3Npb25zIGFuZCB0aGlzIGlzCithIHNldHVpZCBvciBzZXRnaWQg cHJvZ3JhbSkuCisKK1RodSBTZXAgMjcgMTY6MDQ6MDkgRURUIDE5OTA6CisgIFN1cHBseSBtaXNz aW5nIGVudHJ5IGZvciBJbXBsZG9ibG9jayBpbiBibGtzaXplIGFycmF5IG9mIGNwZXhwcgorKGlu IGV4cHIuYykuICBObyBleGFtcGxlcyBhcmUga25vd24gd2hlcmUgdGhpcyBvbWlzc2lvbiBjYXVz ZWQgdHJvdWJsZS4KKworVHVlIE9jdCAgMiAyMjo1ODowOSBFRFQgMTk5MDoKKyAgbGliZjc3OiB0 ZXN0IHNpZ25hbCguLi4pID09IFNJR19JR04gcmF0aGVyIHRoYW4gJiAwMSBpbiBtYWluKCkuCisg IGxpYmk3NzogYWRqdXN0IHJld2luZC5jIHNvIHR3byBzdWNjZXNzaXZlIHJld2luZHMgYWZ0ZXIg YSB3cml0ZQorZG9uJ3QgY2xvYmJlciB0aGUgZmlsZS4KKworVGh1IE9jdCAxMSAxODowMDoxNCBF RFQgMTk5MDoKKyAgbGliaTc3OiBtaW5vciBjbGVhbnVwczogYWRkICNpbmNsdWRlICJmY250bC5o IiB0byBlbmRmaWxlLmMsIGVyci5jLAorb3Blbi5jOyBhZGp1c3QgZ19jaGFyIGluIHV0aWwuYyBm b3Igc2VnbWVudGVkIG1lbW9yaWVzOyBpbiBmX2lucXUKKyhpbnF1aXJlLmMpLCBkZWZpbmUgeCBh cHByb3ByaWF0ZWx5IHdoZW4gTVNET1MgaXMgZGVmaW5lZC4KKworTW9uIE9jdCAxNSAyMDowMjox MSBFRFQgMTk5MDoKKyAgQWRkICNpZmRlZiBNU0RPUyBwb2ludGVyIGFkanVzdG1lbnRzIHRvIG1l bS5jOyB0cmVhdCBOQU1FPSBhcyBhCitzeW5vbnltIGZvciBGSUxFPSBpbiBPUEVOIHN0YXRlbWVu dHMuCisKK1dlZCBPY3QgMTcgMTY6NDA6MzcgRURUIDE5OTA6CisgIGxpYmY3NywgbGliaTc3OiBt aW5vciBjbGVhbnVwczogX2NsZWFudXAoKSBhbmQgYWJvcnQoKSBpbnZvY2F0aW9ucworcmVwbGFj ZWQgYnkgaW52b2NhdGlvbnMgb2Ygc2lnX2RpZSBpbiBtYWluLmM7IHNvbWUgZXJyb3IgbWVzc2Fn ZXMKK3ByZXZpb3VzbHkgbG9zdCBpbiBidWZmZXJzIHdpbGwgbm93IGFwcGVhci4KKworTW9uIE9j dCAyMiAxNjoxMToyNyBFRFQgMTk5MDoKKyAgbGliZjc3OiBzZXBhcmF0ZSBzaWdfZGllIGZyb20g bWFpbiAoZm9yIGZvbGtzIHdobyBkb24ndCB3YW50IHRvIHVzZQordGhlIG1haW4gaW4gbGliRjc3 KS4KKyAgbGliaTc3OiBtaW5vciB0d2VhayB0byBjb21tZW50cyBpbiBSRUFETUUuCisKK0ZyaSBO b3YgIDIgMTM6NDk6MzUgRVNUIDE5OTA6CisgIFVzZSB0d28gdW5kZXJzY29yZXMgcmF0aGVyIHRo YW4gb25lIGluIGdlbmVyYXRlZCB0ZW1wb3JhcnkgdmFyaWFibGUKK25hbWVzIHRvIGF2b2lkIGNv bmZsaWN0IHdpdGggQ09NTU9OIG5hbWVzLiAgZjJjLnBzIHVwZGF0ZWQgdG8gcmVmbGVjdAordGhp cyBjaGFuZ2UgYW5kIHRoZSBOQU1FPSBleHRlbnNpb24gaW50cm9kdWNlZCAxNSBPY3QuCisgIFJl cGFpciBhIHJhcmUgbWVtb3J5IGZhdWx0IGluIGlvLmMgLgorCitNb24gTm92ICA1IDE2OjQzOjU1 IEVTVCAxOTkwOgorICBsaWJpNzc6IGNoYW5nZXMgdG8gb3Blbi5jIChhbmQgZXJyLmMpOiBjb21w bGFpbiBpZiBhbiBvcGVuIHN0bXQKK3NwZWNpZmllcyBuZXc9IGFuZCB0aGUgZmlsZSBhbHJlYWR5 IGV4aXN0cyAoYXMgc3BlY2lmaWVkIGJ5IEZvcnRyYW5zIDc3CithbmQgOTApOyBhbGxvdyBmaWxl PSB0byBiZSBvbWl0dGVkIGluIG9wZW4gc3RtdHMgYW5kIGFsbG93CitzdGF0dXM9J3JlcGxhY2Un IChGb3J0cmFuIDkwIGV4dGVuc2lvbnMpLgorCitGcmkgTm92IDMwIDEwOjEwOjE0IEVTVCAxOTkw OgorICBBZGp1c3QgbWFsbG9jLmMgZm9yIHVudXN1YWwgc3lzdGVtcyB3aG9zZSBzYnJrKCkgY2Fu IHJldHVybiB2YWx1ZXMKK25vdCBwcm9wZXJseSBhbGlnbmVkIGZvciBkb3VibGVzLgorICBBcnJh bmdlIGZvciBzbGlnaHRseSBtb3JlIGhlbHBmdWwgYW5kIGxlc3MgcmVwZXRpdGl2ZSB3YXJuaW5n cyBmb3IKK25vbi1jaGFyYWN0ZXIgdmFyaWFibGVzIGluaXRpYWxpemVkIHdpdGggY2hhcmFjdGVy IGRhdGE7IHRoZXNlIHdhcm5pbmdzCithcmUgKHN0aWxsKSBzdXBwcmVzc2VkIGJ5IC13NjYuCisK K0ZyaSBOb3YgMzAgMTU6NTc6NTkgRVNUIDE5OTA6CisgIE1pbm9yIHR3ZWFrIHRvIFJFQURNRSAo YWJvdXQgY2hhbmdpbmcgVk9JRCBpbiBmMmMuaCkuCisKK01vbiBEZWMgIDMgMDc6MzY6MjAgRVNU IDE5OTA6CisgIEZpeCBzcGVsbGluZyBvZiAiY2hhcmFjdGVyIiBpbiBmMmMuMXQuCisKK1R1ZSBE ZWMgIDQgMDk6NDg6NTYgRVNUIDE5OTA6CisgIFJlbWFyayBhYm91dCBsaW5rX21zZyBhbmQgbGli ZjJjIGFkZGVkIHRvIGYyYy9SRUFETUUuCisKK1RodSBEZWMgIDYgMDg6MzM6MjQgRVNUIDE5OTA6 CisgIFVuZGVyIC1VLCByZW5kZXIgbGFiZWwgbm5uIGFzIExfbm5uIHJhdGhlciB0aGFuIExubm4u CisKK0ZyaSBEZWMgIDcgMTg6MDU6MDAgRVNUIDE5OTA6CisgIEFkZCBtb3JlIG5hbWVzIGZyb20g ZjJjLmggKGUuZy4gaW50ZWdlciwgcmVhbCkgdG8gdGhlIGNfa2V5d29yZHMKK2xpc3Qgb2YgbmFt ZXMgdG8gd2hpY2ggYW4gdW5kZXJzY29yZSBpcyBhcHBlbmRlZCB0byBhdm9pZCBjb25mdXNpb24u CisKK01vbiBEZWMgMTAgMTk6MTE6MTUgRVNUIDE5OTA6CisgIE1pbm9yIHR3ZWFrcyB0byBtYWtl ZmlsZSAoLi94c3VtKSBhbmQgUkVBRE1FIChiaW5yZWFkL2JpbndyaXRlKS4KKyAgbGliaTc3OiBh IGZldyBtb2RpZmljYXRpb25zIGZvciBQT1NJWCBzeXN0ZW1zOyBtZWFudCB0byBiZSBpbnZpc2li bGUKK2Vsc2V3aGVyZS4KKworU3VuIERlYyAxNiAyMzowMzoxNiBFU1QgMTk5MDoKKyAgRml4IG51 bGwgZGVyZWZlcmVuY2UgY2F1c2VkIGJ5IHVudXN1YWwgZXJyb25lb3VzIGlucHV0LCBlLmcuCisJ Y2FsbCBmb28oJ2FiYycpCisJZW5kCisJc3Vicm91dGluZSBmb28obXNnKQorCWRhdGEgbi8zLwor CWNoYXJhY3RlciooKikgbXNnCisJZW5kCisoU3Vicm91dGluZSBmb28gaXMgaWxsZWdhbCBiZWNh dXNlIHRoZSBjaGFyYWN0ZXIgc3RhdGVtZW50IGNvbWVzIGFmdGVyIGEKK2RhdGEgc3RhdGVtZW50 LikKKyAgVXNlIGRlY2ltYWwgcmF0aGVyIHRoYW4gaGV4IGNvbnN0YW50cyBpbiB4c3VtLmMgKHRv IHByZXZlbnQKK2Vycm9uZW91cyB3YXJuaW5nIG1lc3NhZ2VzIGFib3V0IGNvbnN0YW50IG92ZXJm bG93KS4KKworTW9uIERlYyAxNyAxMjoyNjo0MCBFU1QgMTk5MDoKKyAgRml4IHJhcmUgZXh0cmEg dW5kZXJzY29yZSBpbiBjaGFyYWN0ZXIgbGVuZ3RoIHBhcmFtZXRlcnMgcGFzc2VkCitmb3IgbXVs dGlwbGUgZW50cnkgcG9pbnRzLgorCitXZWQgRGVjIDE5IDE3OjE5OjI2IEVTVCAxOTkwOgorICBB bGxvdyBnZW5lcmF0aW9uIG9mIEMgZGVzcGl0ZSBlcnJvciBtZXNzYWdlcyBhYm91dCBiYWQgYWxp Z25tZW50Citmb3JjZWQgYnkgZXF1aXZhbGVuY2UuCisgIEFsbG93IHZhcmlhYmxlLWxlbmd0aCBj b25jYXRlbmF0aW9ucyBpbiBJL08gc3RhdGVtZW50cywgc3VjaCBhcworCW9wZW4oMywgZmlsZT1i bGV0Y2goMTpuKSAvLyAnLnh5eicpCisKK0ZyaSBEZWMgMjggMTc6MDg6MzAgRVNUIDE5OTA6Cisg IEZpeCBidWcgdW5kZXIgLXAgd2l0aCBmb3JtYXRzIGFuZCBpbnRlcm5hbCBJL08gInVuaXRzIiBp biBDT01NT04sCithcyBpbgorICAgICAgQ09NTU9OIC9GSUdMRUEvRgorICAgICAgQ0hBUkFDVEVS KjIwIEYKKyAgICAgIEYgPSAnKEEpJworICAgICAgV1JJVEUgKCosRk1UPUYpICdIZWxsbywgd29y bGQhJworICAgICAgRU5ECisKK1R1ZSBKYW4gMTUgMTI6MDA6MjQgRVNUIDE5OTE6CisgIEZpeCBi dWcgd2hlbiB0d28gZXF1aXZhbGVuY2UgZ3JvdXBzIGFyZSBtZXJnZWQsIHRoZSBzZWNvbmQgd2l0 aAorbm9uemVybyBvZmZzZXQsIGFuZCB0aGUgcmVzdWx0IGlzIHRoZW4gbWVyZ2VkIGludG8gYSBj b21tb24gYmxvY2suCitFeGFtcGxlOgorICAgICAgSU5URUdFUiBXKDMpLCBYKDMpLCBZKDMpLCBa KDMpCisgICAgICBDT01NT04gL1pPVC8gWgorICAgICAgRVFVSVZBTEVOQ0UgKFcoMSksWCgxKSks IChYKDIpLFkoMSkpLCAoWigzKSxYKDEpKQorKioqKiogVyBXQVMgR0lWRU4gVEhFIFdST05HIE9G RlNFVAorICBSZWNvZ25pemUgRm9ydHJhbiA5MCdzIG9wdGlvbmFsIE5NTD0gaW4gTkFNRUxJU1Qg UkVBRHMgYW5kIFdSSVRFcy4KKyhDdXJyZW50bHkgTk1MPSBhbmQgRk1UPSBhcmUgdHJlYXRlZCBh cyBzeW5vbnltcyAtLSB0aGVyZSdzIG5vCitlcnJvciBtZXNzYWdlIGlmLCBlLmcuLCBOTUw9IHNw ZWNpZmllcyBhIGZvcm1hdC4pCisgIGxpYmk3NzogbWlub3IgYWRqdXN0bWVudCB0byBhbGxvdyBp bnRlcm5hbCBSRUFEcyBmcm9tIGNoYXJhY3Rlcgorc3RyaW5nIGNvbnN0YW50cyBpbiByZWFkLW9u bHkgbWVtb3J5LgorCitGcmkgSmFuIDE4IDIyOjU2OjE1IEVTVCAxOTkxOgorICBBZGQgY29tbWVu dCB0byBSRUFETUUgYWJvdXQgbmVlZGluZyB0byBjb21tZW50IG91dCB0aGUgdHlwZWRlZiBvZgor c2l6ZV90IGluIHN5c2RlcC5oIG9uIHNvbWUgc3lzdGVtcywgZS5nLiBTdW4gNC4xLgorICBGaXgg bWlzc3BlbGxpbmcgb2YgInN0YXRlbWVudCIgaW4gYW4gZXJyb3IgbWVzc2FnZSBpbiBsZXguYwor CitXZWQgSmFuIDIzIDAwOjM4OjQ4IEVTVCAxOTkxOgorICBBbGxvdyBoZXgsIG9jdGFsLCBhbmQg YmluYXJ5IGNvbnN0YW50cyB0byBoYXZlIHRoZSBxdWFsaWZ5aW5nIGxldHRlcgorKHosIHgsIG8s IG9yIGIpIGVpdGhlciBiZWZvcmUgb3IgYWZ0ZXIgdGhlIHF1b3RlZCBzdHJpbmcgY29udGFpbmlu ZyB0aGUKK2RpZ2l0cy4gIEZvciBub3cgdGhpcyBjaGFuZ2Ugd2lsbCBub3QgYmUgcmVmbGVjdGVk IGluIGYyYy5wcyAuCisKK1R1ZSBKYW4gMjkgMTY6MjM6NDUgRVNUIDE5OTE6CisgIEFycmFuZ2Ug Zm9yIGNoYXJhY3Rlci12YWx1ZWQgc3RhdGVtZW50IGZ1bmN0aW9ucyB0byBnaXZlIHJlc3VsdHMg b2YKK3RoZSByaWdodCBsZW5ndGggKHRoYXQgb2YgdGhlIHN0YXRlbWVudCBmdW5jdGlvbidzIG5h bWUpLgorCitXZWQgSmFuIDMwIDA3OjA1OjMyIEVTVCAxOTkxOgorICBNb3JlIHR3ZWFrcyBmb3Ig Y2hhcmFjdGVyLXZhbHVlZCBzdGF0ZW1lbnQgZnVuY3Rpb25zOiBhbiBlcnJvcgorY2hlY2sgYW5k IGFuIGFkanVzdG1lbnQgc28gYSByaWdodC1oYW5kIHNpZGUgb2Ygbm9uY29uc3RhbnQgbGVuZ3Ro CisoZS5nLiwgYSBzdWJzdHJpbmcpIGlzIGhhbmRsZWQgcmlnaHQuCisKK1dlZCBKYW4gMzAgMDk6 NDk6MzYgRVNUIDE5OTE6CisgIEZpeCBwMV9oZWFkIHRvIGF2b2lkIHByaW50aW5nIChjaGFyICop MCB3aXRoICVzLgorCitUaHUgSmFuIDMxIDEzOjUzOjQ0IEVTVCAxOTkxOgorICBBZGQgYSB0ZXN0 IGFmdGVyIHRoZSBjbGVhbnVwIGNhbGwgZ2VuZXJhdGVkIGZvciBJL08gc3RhdGVtZW50cyB3aXRo CitFUlI9IG9yIEVORD0gY2xhdXNlcyB0byBjYXRjaCB0aGUgdW5saWtlbHkgZXZlbnQgdGhhdCB0 aGUgY2xlYW51cAorcm91dGluZSBlbmNvdW50ZXJzIGFuIGVycm9yLgorCitNb24gRmViICA0IDA4 OjAwOjU4IEVTVCAxOTkxOgorICBNaW5vciBjbGVhbnVwOiBvbWl0IHVubmVlZGVkIGp1bXBzIGFu ZCBsYWJlbHMgZnJvbSBjb2RlIGdlbmVyYXRlZCBmb3IKK3NvbWUgTkFNRUxJU1QgUkVBRHMgYW5k IFdSSVRFcyB3aXRoIElPU1RBVD0sIEVSUj0sIGFuZC9vciBFTkQ9LgorCitUdWUgRmViICA1IDAx OjM5OjM2IEVTVCAxOTkxOgorICBDaGFuZ2UgTWt0ZW1wIHRvIG1rdG1wIChmb3IgdGhlIGJlbmVm aXQgb2Ygc3lzdGVtcyBzbyBicmFpbi1kYW1hZ2VkCit0aGF0IHRoZXkgZG8gbm90IGRpc3Rpbmd1 aXNoIGNhc2UgaW4gZXh0ZXJuYWwgbmFtZXMgLS0gYW5kIHRoYXQgZm9yCitzb21lIHJlYXNvbiB3 YW50IHRvIGxvYWQgbWt0ZW1wKS4gIFRyeSB0byBnZXQgeHN1bTAub3V0IHJpZ2h0IHRoaXMKK3Rp bWUgKGl0IHNvbWVob3cgZGlkbid0IGdldCB1cGRhdGVkIG9uIDQgRmViLiAxOTkxKS4KKyAgQWRk IG5vdGUgdG8gbGliaTc3L1JFQURNRSBhYm91dCBhZGp1c3RpbmcgdGhlIGludGVycHJldGF0aW9u IG9mCitSRUNMPSBzcGVjaWZpZXJzIGluIE9QRU5zIGZvciBkaXJlY3QgdW5mb3JtYXR0ZWQgSS9P LgorCitUaHUgRmViICA3IDE3OjI0OjQyIEVTVCAxOTkxOgorICBOZXcgb3B0aW9uIC1yIGNhc3Rz IHZhbHVlcyBvZiBSRUFMIGZ1bmN0aW9ucywgaW5jbHVkaW5nIGludHJpbnNpY3MsCit0byBSRUFM LiAgVGhpcyBvbmx5IG1hdHRlcnMgZm9yIHVucG9ydGFibGUgY29kZSBsaWtlCisJcmVhbCByCisJ ciA9IGFzaW4oMS4pCisJaWYgKHIgLmVxLiBhc2luKDEuKSkgLi4uCitbVGhlIGJlaGF2aW9yIG9m IHN1Y2ggY29kZSB2YXJpZXMgd2l0aCB0aGUgRm9ydHJhbiBjb21waWxlciB1c2VkIC0tCithbmQg c29tZXRpbWVzIGlzIGFmZmVjdGVkIGJ5IGNvbXBpbGVyIG9wdGlvbnMuXSAgRm9yIG5vdywgdGhl IG1hbiBwYWdlCithdCB0aGUgZW5kIG9mIGYyYy5wcyBpcyB0aGUgb25seSBwYXJ0IG9mIGYyYy5w cyB0aGF0IHJlZmxlY3RzIHRoaXMgbmV3CitvcHRpb24uCisKK0ZyaSBGZWIgIDggMTg6MTI6NTEg RVNUIDE5OTE6CisgIENhc3QgcG9pbnRlciBkaWZmZXJlbmNlcyBwYXNzZWQgYXMgYXJndW1lbnRz IHRvIHRoZSBhcHByb3ByaWF0ZSB0eXBlLgorVGhpcyBtYXR0ZXJzLCBlLmcuLCB3aXRoIE1TRE9T IGNvbXBpbGVycyB0aGF0IHlpZWxkIGEgbG9uZyBwb2ludGVyCitkaWZmZXJlbmNlIGJ1dCBoYXZl IGludCA9PSBzaG9ydC4KKyAgRGlzYWxsb3cgbm9ucG9zaXRpdmUgZGltZW5zaW9ucy4KKworRnJp IEZlYiAxNSAxMjoyNDoxNSBFU1QgMTk5MToKKyAgQ2hhbmdlICVkIHRvICVsZCBpbiBzcHJpbnRm IGNhbGwgaW4gcHV0cG93ZXIgaW4gcHV0cGNjLmMuCisgIEZyZWUgbW9yZSBtZW1vcnkgKGUuZy4g YWxsb3dpbmcgdHJhbnNsYXRpb24gb2YgbGFyZ2VyIEZvcnRyYW4KK2ZpbGVzIHVuZGVyIE1TLURP UykuCisgIFJlY29nbml6ZSBSRUFEIChjaGFyYWN0ZXIgZXhwcmVzc2lvbikgYW5kIFdSSVRFIChj aGFyYWN0ZXIgZXhwcmVzc2lvbikKK2FzIGZvcm1hdHRlZCBJL08gd2l0aCB0aGUgZm9ybWF0IGdp dmVuIGJ5IHRoZSBjaGFyYWN0ZXIgZXhwcmVzc2lvbi4KKyAgVXBkYXRlIHllYXIgaW4gTm90aWNl LgorCitTYXQgRmViIDE2IDAwOjQyOjMyIEVTVCAxOTkxOgorICBSZWNhbnQgcmVjb2duaXppbmcg V1JJVEUoY2hhcmFjdGVyIGV4cHJlc3Npb24pIGFzIGZvcm1hdHRlZCBvdXRwdXQKKy0tIEZvcnRy YW4gNzcgaXMgbm90IHN5bW1ldHJpYyBpbiBpdHMgc3ludGF4IGZvciBSRUFEIGFuZCBXUklURS4K KworTW9uIE1hciAgNCAxNToxOTo0MiBFU1QgMTk5MToKKyAgRml4IGJ1ZyBpbiBwYXNzaW5nIHRo ZSByZWFsIHBhcnQgb2YgYSBjb21wbGV4IGFyZ3VtZW50IHRvIGFuIGludHJpbnNpYworZnVuY3Rp b24uICBPbWl0IHVubmVlZGVkIHBhcmVudGhlc2VzIGluIG5lc3RlZCBjYWxscyB0byBpbnRyaW5z aWNzLgorRXhhbXBsZToKKwlzdWJyb3V0aW5lIGZvbyh4LCB5KQorCWNvbXBsZXggeQorCXggPSBl eHAoc2luKHJlYWwoeSkpKSArIGV4cChpbWFnKHkpKQorCWVuZAorCitGcmkgTWFyICA4IDE1OjA1 OjQyIEVTVCAxOTkxOgorICBGaXggYSBjb21tZW50IGluIGV4cHIuYzsgb21pdCBzYWZzdHJuY3B5 LmMgKHdoaWNoIGhhZCBidWdzIGluCitjYXNlcyBub3QgdXNlZCBieSBmMmMpLgorCitXZWQgTWFy IDEzIDAyOjI3OjIzIEVTVCAxOTkxOgorICBJbml0aWFsaXplIGZpcnN0bWVtYmxvY2stPm5leHQg aW4gbWVtX2luaXQgaW4gbWVtLmMgLiAgW09uIG1vc3QKK3N5c3RlbXMgaXQgd2FzIGZvcnR1aXR1 b3VzbHkgMCwgYnV0IHdpdGggU3lzdGVtIFYsIC1sbWFsbG9jIGNvdWxkCit0cmlwIG9uIHRoaXMg bWlzc2VkIGluaXRpYWxpemF0aW9uLl0KKworV2VkIE1hciAxMyAxMTo0Nzo0MiBFU1QgMTk5MToK KyAgRml4IGEgcmVmZXJlbmNlIHRvIGZyZWVkIG1lbW9yeS4KKworV2VkIE1hciAyNyAwMDo0Mjox OSBFU1QgMTk5MToKKyAgRml4IGEgbWVtb3J5IGZhdWx0IGNhdXNlZCBieSBzdWNoIGlsbGVnYWwg Rm9ydHJhbiBhcworICAgICAgIGZ1bmN0aW9uIGZvbworICAgICAgIHggPSAzCisgICAgICAgbG9n aWNhbCBmb28JISBkZWNsYXJhdGlvbiBhbW9uZyBleGVjdXRhYmxlcworICAgICAgIGZvbz0uZmFs c2UuCSEgdXNlZCB0byBzdWZmZXIgbWVtb3J5IGZhdWx0CisgICAgICAgZW5kCisKK0ZyaSBBcHIg IDUgMDg6MzA6MzEgRVNUIDE5OTE6CisgIEZpeCBsb3NzIG9mICUgaW4gc29tZSBmb3JtYXQgZXhw cmVzc2lvbnMsIGUuZy4KKwl3cml0ZSgqLCcoMWglKScpCisgIEZpeCBib3RjaCBpbnRyb2R1Y2Vk IDI3IE1hcmNoIDE5OTEgdGhhdCBjYXVzZWQgc3Vicm91dGluZXMgd2l0aAorbXVsdGlwbGUgZW50 cnkgcG9pbnRzIHRvIGhhdmUgZXh0cmFuZW91cyBkZWNsYXJhdGlvbnMgb2YgcmV0X3ZhbC4KKwor RnJpIEFwciAgNSAxMjo0NDowMiBFU1QgMTk5MQorICBUcnkgYWdhaW4gdG8gb21pdCBleHRyYW5l b3VzIHJldF92YWwgZGVjbGFyYXRpb25zIC0tIHRoaXMgbW9ybmluZydzCitmaXggd2FzIHNvbWV0 aW1lcyB3cm9uZy4KKworTW9uIEFwciAgOCAxMzo0NzowNiBFRFQgMTk5MToKKyAgQXJyYW5nZSBm b3Igc19ybmdlIHRvIGhhdmUgdGhlIHJpZ2h0IHByb3RvdHlwZSB1bmRlciAtQSAtQyAuCisKK1dl ZCBBcHIgMTcgMTM6MzY6MDMgRURUIDE5OTE6CisgIE5ldyBmYXRhbCBlcnJvciBtZXNzYWdlIGZv ciBhcHBhcmVudCBpbnZvY2F0aW9uIG9mIGEgcmVjdXJzaXZlCitzdGF0ZW1lbnQgZnVuY3Rpb24u CisKK1RodSBBcHIgMjUgMTU6MTM6MzcgRURUIDE5OTE6CisgIEYyYyBhbmQgbGliaTc3IGFkanVz dGVkIHNvIE5BTUVMSVNUIHdvcmtzIHdpdGggLWkyLiAgKEkgZm9yZ290CithYm91dCAtaTIgd2hl biBhZGRpbmcgTkFNRUxJU1QuKSAgVGhpcyByZXF1aXJlZCBhIGNoYW5nZSB0byBmMmMuaAorKHRo YXQgb25seSBhZmZlY3RzIE5BTUVMSVNUIEkvTyB1bmRlciAtaTIuKSAgTWFuLXBhZ2UgZGVzY3Jp cHRpb24gb2YKKy1pMiBhZGp1c3RlZCB0byByZWZsZWN0IHRoYXQgLWkyIHN0b3JlcyBhcnJheSBs ZW5ndGhzIGluIHNob3J0IGludHMuCisKK0ZyaSBBcHIgMjYgMDI6NTQ6NDEgRURUIDE5OTE6Cisg IExpYmk3NzogZml4IHNvbWUgYnVncyBpbiBOQU1FTElTVCByZWFkaW5nIG9mIG11bHRpLWRpbWVu c2lvbmFsIGFycmF5cworKGZpbGUgcnNuZS5jKS4KKworVGh1IE1heSAgOSAwMjoxMzo1MSBFRFQg MTk5MToKKyAgT21pdCBhIHRyYWlsaW5nIHNwYWNlIGluIGV4cHIuYyAoY291bGQgY2F1c2UgYSBm YWxzZSB4c3VtIHZhbHVlIGlmCithIG1haWxlciBkcm9wcyB0aGUgdHJhaWxpbmcgYmxhbmspLgor CitUaHUgTWF5IDE2IDEzOjE0OjU5IEVEVCAxOTkxOgorICBMaWJpNzc6IGluY3JlYXNlIExFRkJM IGluIGxpby5oIHRvIG92ZXJjb21lIGEgTmVYVCBidWcuCisgIFR3ZWFrIGZvciBjb21waWxlcnMg dGhhdCByZWNvZ25pemUgIm5lc3RlZCIgY29tbWVudHM6IGluc2lkZSBjb21tZW50cywKK3R1cm4g LyogaW50byAvKyAoYXMgd2VsbCBhcyAqLyBpbnRvICsvKS4KKworU2F0IE1heSAyNSAxMTo0NDoy NSBFRFQgMTk5MToKKyAgbGliZjc3OiBzX3JuZ2U6IGRlY2xhcmUgbGluZSBsb25nIGludCByYXRo ZXIgdGhhbiBpbnQuCisKK0ZyaSBNYXkgMzEgMDc6NTE6NTAgRURUIDE5OTE6CisgIGxpYmY3Nzog c3lzdGVtXzogb2ZmaWNpYWxseSByZXR1cm4gc3RhdHVzLgorCitNb24gSnVuIDE3IDE2OjUyOjUz IEVEVCAxOTkxOgorICBNaW5vciB0d2Vha3M6IG9taXQgdW5uZWNlc3NhcnkgZGVjbGFyYXRpb24g b2Ygc3RyY21wICh0aGF0IGNhdXNlZAordHJvdWJsZSBvbiBhIHN5c3RlbSB3aGVyZSBzdHJjbXAg d2FzIGEgbWFjcm8pIGZyb20gbWlzYy5jOyBhZGQKK1NIRUxMID0gL2Jpbi9zaCB0byBtYWtlZmls ZXMuCisgIEZpeCBhIGRlcmVmZXJlbmNlIG9mIG51bGwgd2hlbiBhIENIQVJBQ1RFUiooKikgZGVj bGFyYXRpb24gYXBwZWFycworKGlsbGVnYWxseSkgYWZ0ZXIgREFUQS4gIENvbXBsYWluIG9ubHkg b25jZSBwZXIgc3Vicm91dGluZSBhYm91dAorZGVjbGFyYXRpb25zIGFwcGVhcmluZyBhZnRlciBE QVRBLgorCitNb24gSnVsICAxIDAwOjI4OjEzIEVEVCAxOTkxOgorICBBZGQgdGVzdCBhbmQgZXJy b3IgbWVzc2FnZSBmb3IgaWxsZWdhbCB1c2Ugb2Ygc3Vicm91dGluZSBuYW1lcywgZS5nLgorICAg ICAgU1VCUk9VVElORSBaQVAoQSkKKyAgICAgIFpBUCA9IEEKKyAgICAgIEVORAorCitNb24gSnVs ICA4IDIxOjQ5OjIwIEVEVCAxOTkxOgorICBJc3N1ZSBhIHdhcm5pbmcgYWJvdXQgdGhpbmdzIGxp a2UKKwlpbnRlZ2VyIGkKKwlpID0gJ2FiYycKKyh3aGljaCBpcyB0cmVhdGVkIGFzIGkgPSBpY2hh cignYScpKS4gIFtJdCBtaWdodCBiZSBuaWNlIHRvIHRyZWF0ICdhYmMnCithcyBhbiBpbnRlZ2Vy IGluaXRpYWxpemVkIChpbiBhIERBVEEgc3RhdGVtZW50KSB3aXRoICdhYmMnLCBidXQKK290aGVy IG1hdHRlcnMgaGF2ZSBoaWdoZXIgcHJpb3JpdHkuXQorICBSZW5kZXIKKwlpID0gaWNoYXIoJ0En KQorYXMKKwlpID0gJ0EnOworcmF0aGVyIHRoYW4KKwlpID0gNjU7Cisod2hpY2ggYXNzdW1lcyBB U0NJSSkuCisKK0ZyaSBKdWwgMTIgMDc6NDE6MzAgRURUIDE5OTE6CisgIE5vdGUgYWRkZWQgdG8g UkVBRE1FIGFib3V0IGVycm9uZW91cyBkZWZpbml0aW9ucyBvZiBfX1NURENfXyAuCisKK1NhdCBK dWwgMTMgMTM6Mzg6NTQgRURUIDE5OTE6CisgIEZpeCBidWdzIGluIGRvdWJsZSB0eXBlIGNvbnZl c2lvbnMgb2YgY29tcGxleCB2YWx1ZXMsIGUuZy4KK3NuZ2wocmVhbCguLi4pKSBvciBkYmxlKHJl YWwoLi4uKSkgKHdoZXJlIC4uLiBpcyBjb21wbGV4KS4KKworTW9uIEp1bCAxNSAxMzoyMTo0MiBF RFQgMTk5MToKKyAgRml4IGJ1ZyBpbnRyb2R1Y2VkIDggSnVseSAxOTkxIHRoYXQgY2F1c2VkIGVy cm9uZW91cyB3YXJuaW5ncworImljaGFyKFtmaXJzdCBjaGFyLiBvZl0gY2hhci4gc3RyaW5nKSBh c3N1bWVkIGZvciBjb252ZXJzaW9uIHRvIG51bWVyaWMiCit3aGVuIGEgc3Vicm91dGluZSBoYWQg YW4gYXJyYXkgb2YgY2hhcmFjdGVyIHN0cmluZ3MgYXMgYW4gYXJndW1lbnQuCisKK1dlZCBBdWcg MjggMDE6MTI6MTcgRURUIDE5OTE6CisgIE9taXQgYW4gdW51c2VkIGZ1bmN0aW9uIGluIGZvcm1h dC5jLCBhbiB1bnVzZWQgdmFyaWFibGUgaW4gcHJvYy5jIC4KKyAgVW5kZXIgLXI4LCBwcm9tb3Rl IGNvbXBsZXggdG8gZG91YmxlIGNvbXBsZXggKGFzIHRoZSBtYW4gcGFnZSBjbGFpbXMpLgorCitG cmkgQXVnIDMwIDE3OjE5OjE3IEVEVCAxOTkxOgorICBmMmMucHMgdXBkYXRlZDogc2xpZ2h0bHkg ZXhwYW5kIGRlc2NyaXB0aW9uIG9mIGludHJpbnNpY3MgYW5kLG9yLHhvciwKK25vdDsgYWRkIG1l bnRpb24gb2YgaW50cmluc2ljcyBsc2hpZnQsIHJzaGlmdDsgYWRkIG5vdGUgYWJvdXQgZjJjCith Y2NlcHRpbmcgRm9ydHJhbiA5MCBpbmxpbmUgY29tbWVudHMgKHN0YXJ0aW5nIHdpdGggISk7IHVw ZGF0ZSBDb2JhbHQKK0JsdWUgYWRkcmVzcy4KKworVHVlIFNlcCAxNyAwNzoxNzozMyBFRFQgMTk5 MToKKyAgbGliSTc3OiBlcnIuYyBhbmQgb3Blbi5jIG1vZGlmaWVkIHRvIHVzZSBtb2RlcyAicmIi IGFuZCAid2IiCit3aGVuIChmKW9wZW5pbmcgdW5mb3JtYXR0ZWQgZmlsZXM7IFJFQURNRSB1cGRh dGVkIHRvIHBvaW50IG91dAordGhhdCBpdCBtYXkgYmUgbmVjZXNzYXJ5IHRvIGNoYW5nZSB0aGVz ZSBtb2RlcyB0byAiciIgYW5kICJ3Igorb24gc29tZSBub24tQU5TSSBzeXN0ZW1zLgorCitUdWUg T2N0IDE1IDEwOjI1OjQ5IEVEVCAxOTkxOgorICBNaW5vciB0d2Vha3MgdGhhdCBtYWtlIHNvbWUg UEMgY29tcGlsZXJzIGhhcHBpZXI6IGluc2VydCBzb21lCitjYXN0cywgYWRkIGFyZ3MgdG8gc2ln bmFsIGZ1bmN0aW9ucy4KKyAgQ2hhbmdlIC1nIHRvIGVtaXQgdW5jb21tZW50ZWQgI2xpbmUgbGlu ZXMgLS0gYW5kIHRvIGVtaXQgbW9yZSBvZiB0aGVtOwordXBkYXRlIGZjLCBmMmMuMSwgZjJjLjF0 LCBmMmMucHMgdG8gcmVmbGVjdCB0aGlzLgorICBDaGFuZ2UgdWNoYXIgdG8gVWNoYXIgaW4geHN1 bS5jIC4KKyAgQnJpbmcgZ3JhbS5jIHVwIHRvIGRhdGUuCisKK1RodSBPY3QgMTcgMDk6MjI6MDUg RURUIDE5OTE6CisgIGxpYmk3NzogUkVBRE1FLCBmaW8uaCwgc3VlLmMsIHVpby5jIGNoYW5nZWQg c28gdGhlIGxlbmd0aCBmaWVsZAoraW4gdW5mb3JtYXR0ZWQgc2VxdWVudGlhbCByZWNvcmRzIGhh cyB0eXBlIGxvbmcgcmF0aGVyIHRoYW4gaW50CisodW5sZXNzIFVJT0xFTl9pbnQgaXMgI2RlZmlu ZWQpLiAgVGhpcyBpcyBmb3Igc3lzdGVtcyB3aGVyZSBzaXplb2YoaW50KQorY2FuIHZhcnksIGRl cGVuZGluZyBvbiB0aGUgY29tcGlsZXIgb3IgY29tcGlsZXIgb3B0aW9ucy4KKworVGh1IE9jdCAx NyAxMzo0Mjo1OSBFRFQgMTk5MToKKyAgbGliaTc3OiBpbnF1aXJlLmM6IHdoZW4gTVNET1MgaXMg ZGVmaW5lZCwgZG9uJ3Qgc3RyY21wIHVuaXRzW2ldLnVmbm0KK3doZW4gaXQgaXMgTlVMTC4KKwor RnJpIE9jdCAxOCAxNToxNjowMCBFRFQgMTk5MToKKyAgQ29ycmVjdCB4c3VtMC5vdXQgaW4gImFs bCBmcm9tIGYyYy9zcmMiIChzb21laG93IGJvdGNoZWQgb24gMTUgT2N0LikuCisKK1R1ZSBPY3Qg MjIgMTg6MTI6NTYgRURUIDE5OTE6CisgIEZpeCBtZW1vcnkgZmF1bHQgd2hlbiBhIGNoYXJhY3Rl ciooKikgYXJndW1lbnQgaXMgdXNlZCAoaWxsZWdhbGx5KQorYXMgYSBkdW1teSB2YXJpYWJsZSBp biB0aGUgZGVmaW5pdGlvbiBvZiBhIHN0YXRlbWVudCBmdW5jdGlvbi4gIChUaGUKK21lbW9yeSBm YXVsdCBvY2N1cnJlZCB3aGVuIHRoZSBzdGF0ZW1lbnQgZnVuY3Rpb24gd2FzIGludm9rZWQuKQor ICBDb21wbGFpbiBhYm91dCBpbXBsaWNpdCBjaGFyYWN0ZXIqKCopLgorCitUaHUgTm92IDE0IDA4 OjUwOjQyIEVTVCAxOTkxOgorICBsaWJpNzc6IGNoYW5nZSB1aW50IHRvIFVpbnQgaW4gZm10Lmgs IHJkZm10LmMsIHdydGZtdC5jOyB0aGlzIGNoYW5nZQorc2hvdWxkIGJlIGludmlzaWJsZSB1bmxl c3MgeW91J3JlIHJ1bm5pbmcgYSBicmFpbi1kYW1hZ2VkIHN5c3RlbS4KKworTW9uIE5vdiAyNSAx OTowNDo0MCBFU1QgMTk5MToKKyAgbGliaTc3OiBjb3JyZWN0IGJvdGNoZXMgaW50cm9kdWNlZCAx NyBPY3QuIDE5OTEgYW5kIDE0IE5vdi4gMTk5MQorKGNoYW5nZSB1aW50IHRvIFVpbnQgaW4gbHdy aXRlLmM7IG90aGVyIGNoYW5nZXMgdGhhdCBvbmx5IG1hdHRlciBpZgorc2l6ZW9mKGludCkgIT0g c2l6ZW9mKGxvbmcpKS4KKyAgQWRkIGEgbW9yZSBtZWFuaW5nZnVsIGVycm9yIG1lc3NhZ2Ugd2hl biBiYWlsaW5nIG91dCBkdWUgdG8gYW4gYXR0ZW1wdAordG8gaW52b2tlIGEgQ09NTU9OIHZhcmlh YmxlIGFzIGEgZnVuY3Rpb24uCisKK1N1biBEZWMgIDEgMTk6Mjk6MjQgRVNUIDE5OTE6CisgIGxp Ymk3NzogdWlvLmM6IGFkZCB0ZXN0IGZvciByZWFkIGZhaWx1cmUgKHNlcS4gdW5mb3JtYXR0ZWQg cmVhZHMpOworYWRqdXN0IGFuIGVycm9yIHJldHVybiBmcm9tIEVPRiB0byBvZmYgZW5kIG9mIHJl Y29yZC4KKworVHVlIERlYyAxMCAxNzo0MjoyOCBFU1QgMTk5MToKKyAgQWRkIHRlc3RzIHRvIHBy ZXZlbnQgbWVtb3J5IGZhdWx0cyB3aXRoIGJhZCB1c2VzIG9mIGNoYXJhY3RlciooKikuCisKK1Ro dSBEZWMgMTIgMTE6MjQ6NDEgRVNUIDE5OTE6CisgIGxpYmk3NzogZml4IGJ1ZyB3aXRoIGludGVy bmFsIGxpc3QgaW5wdXQgdGhhdCBjYXVzZWQgdGhlIGxhc3QKK2NoYXJhY3RlciBvZiBlYWNoIHJl Y29yZCB0byBiZSBpZ25vcmVkOyBhZGp1c3QgZXJyb3IgbWVzc2FnZSBpbgoraW50ZXJuYWwgZm9y bWF0dGVkIGlucHV0IGZyb20gImVuZC1vZi1maWxlIiB0byAib2ZmIGVuZCBvZiByZWNvcmQiCitp ZiB0aGUgZm9ybWF0IHNwZWNpZmllcyBtb3JlIGNoYXJhY3RlcnMgdGhhbiB0aGUgcmVjb3JkIGNv bnRhaW5zLgorCitXZWQgRGVjIDE4IDE3OjQ4OjExIEVTVCAxOTkxOgorICBGaXggYnVnIGluIHRy YW5zbGF0aW5nIG5vbnNlbnNpY2FsIGljaGFyIGludm9jYXRpb25zIGludm9sdmluZworY29uY2F0 ZW5hdGlvbnMuCisgIEZpeCBidWcgaW4gcGFzc2luZyBpbnRyaW5zaWNzIGxsZSwgbGx0LCBsZ2Us IGxndCBhcyBhcmd1bWVudHM7CitobF9sZSB3YXMgYmVpbmcgcGFzc2VkIHJhdGhlciB0aGFuIGxf bGUsIGV0Yy4KKyAgbGliZjc3OiBhZGp1c3QgbGVuZ3RoIHBhcmFtZXRlcnMgZnJvbSBsb25nIHRv IGZ0bmxlbiwgZm9yCitjb21waWxpbmcgd2l0aCBmMmNfaTIgZGVmaW5lZC4KKworU2F0IERlYyAy MSAxNTozMDo1NyBFU1QgMTk5MToKKyAgQWxsb3cgRE8gbm5uIC4uLiB0byBlbmQgd2l0aCBhbiBF TkQgRE8gc3RhdGVtZW50IGxhYmVsbGVkIG5ubi4KKworVHVlIERlYyAzMSAxMzo1Mzo0NyBFU1Qg MTk5MToKKyAgRml4IGJ1ZyBpbiBoYW5kbGluZyBkaW1lbnNpb24gYShuKiozLDIpIC0tIHBvd19p aSB3YXMgY2FsbGVkCitpbmNvcnJlY3RseS4KKyAgRml4IGJ1ZyBpbiB0cmFuc2xhdGluZworCXN1 YnJvdXRpbmUgeChhYmMsbikKKwljaGFyYWN0ZXIgYWJjKG4pCisJd3JpdGUoYWJjLCcoaTEwKScp IDEyMworCWVuZAorKG9taXR0ZWQgZGVjbGFyYXRpb24gYW5kIGluaXRpYWxpYXRpb24gb2YgYWJj X2RpbTEpLgorICBDb21wbGFpbiBhYm91dCBkaW1lbnNpb24gZXhwcmVzc2lvbnMgb2Ygc3VjaCBp bnZhbGlkIHR5cGVzCithcyBjb21wbGV4IGFuZCBsb2dpY2FsLgorCitGcmkgSmFuIDE3IDExOjU0 OjIwIEVTVCAxOTkyOgorICBEaWFnbm9zZSBzb21lIGlsbGVnYWwgdXNlcyBvZiBtYWluIHByb2dy YW0gbmFtZSAocmF0aGVyIHRoYW4KK21lbW9yeSBmYXVsdGluZykuCisgIGxpYmk3NzogICgxKSBJ biBsaXN0IGFuZCBuYW1lbGlzdCBpbnB1dCwgdHJlYXQgInIqICwiIGFuZCAiciosIgorYWxpa2Ug KHdoZXJlIHIgaXMgYSBwb3NpdGl2ZSBpbnRlZ2VyIGNvbnN0YW50KSwgYW5kIGZpeCBhIGJ1ZyBp bgoraGFuZGxpbmcgbnVsbCB2YWx1ZXMgZm9sbG93aW5nIGl0ZW1zIHdpdGggcmVwZWF0IGNvdW50 cyAoZS5nLiwKKzIqMSwsMykuICAoMikgRm9yIG5hbWVsaXN0IHJlYWRpbmcgb2YgYSBudW1lcmlj IGFycmF5LCBhbGxvdyBhIG5ldworbmFtZS12YWx1ZSBzdWJzZXF1ZW5jZSB0byB0ZXJtaW5hdGUg dGhlIGN1cnJlbnQgb25lIChhcyB0aG91Z2ggdGhlCitjdXJyZW50IG9uZSBlbmRlZCB3aXRoIHRo ZSByaWdodCBudW1iZXIgb2YgbnVsbCB2YWx1ZXMpLgorKDMpIFtsaW8uaCwgbHdyaXRlLmNdOiAg b21pdCBpbnNpZ25pZmljYW50IHplcm9zIGluIGxpc3QgYW5kIG5hbWVsaXN0CitvdXRwdXQuICAo Q29tcGlsZSB3aXRoIC1ET2xkX2xpc3Rfb3V0cHV0IHRvIGdldCB0aGUgb2xkIGJlaGF2aW9yLikK KworU2F0IEphbiAxOCAxNTo1ODowMSBFU1QgMTk5MjoKKyAgbGliaTc3OiAgbWFrZSBsaXN0IG91 dHB1dCBjb25zaXN0ZW50IHdpdGggRiBmb3JtYXQgYnkgcHJpbnRpbmcgLjEKK3JhdGhlciB0aGFu IDAuMSAoaW50cm9kdWNlZCB5ZXN0ZXJkYXkpLgorCitXZWQgSmFuIDIyIDA4OjMyOjQzIEVTVCAx OTkyOgorICBsaWJpNzc6ICBhZGQgY29tbWVudCB0byBSRUFETUUgcG9pbnRpbmcgb3V0IHByZWNv bm5lY3Rpb24gb2YKK0ZvcnRyYW4gdW5pdHMgNSwgNiwgMCB0byBzdGRpbiwgc3Rkb3V0LCBzdGRl cnIgKHJlc3BlY3RpdmVseSkuCisKK01vbiBGZWIgIDMgMTE6NTc6NTMgRVNUIDE5OTI6CisgIGxp Ymk3NzogIGZpeCBuYW1lbGlzdCByZWFkIGJ1ZyB0aGF0IGNhdXNlZCB0aGUgY2hhcmFjdGVyIGZv bGxvd2luZworYSBjb21tYSB0byBiZSBpZ25vcmVkLgorCitGcmkgRmViIDI4IDAxOjA0OjI2IEVT VCAxOTkyOgorICBsaWJmNzc6ICBmaXggYnVnZ3kgel9zcXJ0LmMgKGRvdWJsZSBwcmVjaXNpb24g c3F1YXJlIHJvb3QpLCB3aGljaAorbWlzYmVoYXZlZCBmb3IgYXJndW1lbnRzIGluIHRoZSBzb3V0 aHdlc3QgcXVhZHJhbnQuCisKK1RodSBNYXIgMTkgMTU6MDU6MTggRVNUIDE5OTI6CisgIEZpeCBi dWcgKGludHJvZHVjZWQgMTcgSmFuIDE5OTIpIGluIGhhbmRsaW5nIG11bHRpcGxlIGVudHJ5IHBv aW50cworb2YgZGlmZmVyaW5nIHR5cGVzICh3aXRoIGltcGxpY2l0bHkgdHlwZWQgZW50cmllcyBh cHBlYXJpbmcgYWZ0ZXIKK3RoZSBmaXJzdCBleGVjdXRhYmxlIHN0YXRlbWVudCkuCisgIEZpeCBt ZW1vcnkgZmF1bHQgaW4gdGhlIGZvbGxvd2luZyBpbGxlZ2FsIEZvcnRyYW46CisgICAgICAgIGRv dWJsZSBwcmVjaXNpb24gZm9vKGkpCisqCWlsbGVnYWw6IGFib3ZlIHNob3VsZCBiZSAiZG91Ymxl IHByZWNpc2lvbiBmdW5jdGlvbiBmb28oaSkiCisgICAgICAgIGZvbyA9IGkgKiAzLjIKKyAgICAg ICAgZW50cnkgbW9vKGkpCisgICAgICAgIGVuZAorICBOb3RlIGFib3V0IEFOU0lfTGlicmFyaWVz IChyZWxldmFudCwgZS5nLiwgdG8gSVJJWCA0LjAuMSBhbmQgQUlYKQorYWRkZWQgdG8gUkVBRE1F LgorICBBYm9ydCB6ZXJvIGRpdmlkZXMgZHVyaW5nIGNvbnN0YW50IHNpbXBsaWZpY2F0aW9uLgor CitTYXQgTWFyIDIxIDAxOjI3OjA5IEVTVCAxOTkyOgorICBUd2VhayBja2FsbG9jIChtaXNjLmMp IGZvciBzeXN0ZW1zIHdoZXJlIG1hbGxvYygwKSA9IDA7IHRoaXMgbWF0dGVycworZm9yIHN1YnJv dXRpbmVzIHdpdGggbXVsdGlwbGUgZW50cnkgcG9pbnRzIGJ1dCBubyBhcmd1bWVudHMuCisgIEFk ZCAic3RydWN0IG1lbWJsb2NrOyIgdG8gaW5pdC5jIChpcnJlbGV2YW50IHRvIG1vc3QgY29tcGls ZXJzKS4KKworV2VkIE1hciAyNSAxMzozMTowNSBFU1QgMTk5MjoKKyAgRml4IGJ1ZyB3aXRoIElN UExJQ0lUIElOVEVHRVIqNCguLi4pOiB1bmRlciAtaTIgb3IgLUkyLCB0aGUgKjQgd2FzCitpZ25v cmVkLgorCitUdWUgTWF5ICA1IDA5OjUzOjU1IEVEVCAxOTkyOgorICBUd2Vha3MgdG8gUkVBRE1F OyBlLmcuLCBBTlNJX0xJYnJhcmllcyBjaGFuZ2VkIHRvIEFOU0lfTGlicmFyaWVzIC4KKworV2Vk IE1heSAgNiAyMzo0OTowNyBFRFQgMTk5MgorICBVbmRlciAtQSBhbmQgLUMrKywgaGF2ZSBzdWJy b3V0aW5lcyByZXR1cm4gMCAoZXZlbiBpZiB0aGV5IGhhdmUKK25vICogYXJndW1lbnRzKS4KKyAg QWRqdXN0IGxpYmk3NyAocnNuZS5jIGFuZCBscmVhZC5jKSBmb3Igc3lzdGVtcyB3aGVyZSB1bmdl dGMgaXMKK2EgbWFjcm8uICBUd2VhayBsaWJbRkldNzcvbWFrZWZpbGUgdG8gdXNlIHVuaXF1ZSBp bnRlcm1lZGlhdGUgZmlsZQorbmFtZXMgKGZvciBwYXJhbGxlbCBtYWtlcykuCisKK1R1ZSBNYXkg MTkgMDk6MDM6MDUgRURUIDE5OTI6CisgIEFkanVzdCBsaWJJNzcgdG8gbWFrZSBlcnI9IHdvcmsg d2l0aCBpbnRlcm5hbCBsaXN0IGFuZCBmb3JtYXR0ZWQgSS9PLgorCitTYXQgTWF5IDIzIDE4OjE3 OjQyIEVEVCAxOTkyOgorICBVbmRlciAtQSBhbmQgLUMrKywgc3VwcGx5ICJyZXR1cm4gMDsiIGFm dGVyIHRoZSBjb2RlIGdlbmVyYXRlZCBmb3IKK2EgU1RPUCBzdGF0ZW1lbnQgLS0gdGhlIEMgY29t cGlsZXIgZG9lc24ndCBrbm93IHRoYXQgc19zdG9wIHdvbid0CityZXR1cm4uCisgIE5ldyAobXV0 dWFsbHkgZXhjbHVzaXZlKSBvcHRpb25zOgorCS1mCXRyZWF0cyBhbGwgaW5wdXQgbGluZXMgYXMg ZnJlZS1mb3JtYXQgbGluZXMsCisJCWhvbm9yaW5nIHRleHQgdGhhdCBhcHBlYXJzIGFmdGVyIGNv bHVtbiA3MgorCQlhbmQgbm90IHBhZGRpbmcgbGluZXMgc2hvcnRlciB0aGFuIDcyIGNoYXJhY3Rl cnMKKwkJd2l0aCBibGFua3MgKHdoaWNoIG1hdHRlcnMgaWYgYSBjaGFyYWN0ZXIgc3RyaW5nCisJ CWlzIGNvbnRpbnVlZCBhY3Jvc3MgMiBvciBtb3JlIGxpbmVzKS4KKwktNzIJdHJlYXRzIHRleHQg YXBwZWFyaW5nIGFmdGVyIGNvbHVtbiA3MiBhcyBhbiBlcnJvci4KKworU3VuIE1heSAyNCAwOTo0 NTozNyBFRFQgMTk5MjoKKyAgVHdlYWsgZGVzY3JpcHRpb24gb2YgLWYgaW4gZjJjLjEgYW5kIGYy Yy4xdDsgdXBkYXRlIGYyYy5wcyAuCisKK0ZyaSBNYXkgMjkgMDE6MTc6MTUgRURUIDE5OTI6Cisg IENvbXBsYWluIGFib3V0IGV4dGVybmFscyB1c2VkIGFzIHZhcmlhYmxlcy4gIEV4YW1wbGUKKwlz dWJyb3V0aW5lIGZvbyhhLGIpCisJZXh0ZXJuYWwgYgorCWEgPSBhKmIJCSEgaWxsZWdhbCB1c2Ug b2YgYjsgcGVyaGFwcyBzaG91bGQgYmUgYigpCisJZW5kCisKK01vbiBKdW4gMTUgMTE6MTU6Mjcg RURUIDE5OTI6CisgIEZpeCBidWcgaW4gaGFuZGxpbmcgbmFtZWxpc3RzIHdpdGggbmFtZXMgdGhh dCBoYXZlIHVuZGVyc2NvcmVzLgorCitTYXQgSnVuIDI3IDE3OjMwOjU5IEVEVCAxOTkyOgorICBV bmRlciAtQSBhbmQgLUMrKywgZW5kIE1haW4gcHJvZ3JhbSBhbGlhc2VzIHdpdGggInJldHVybiAw OyIuCisgIFVuZGVyIC1BIGFuZCAtQysrLCB1c2UgLlAgZmlsZXMgYW5kIHVzYWdlIGluIHByZXZp b3VzIHN1YnByb2dyYW1zCitpbiB0aGUgY3VycmVudCBmaWxlIHRvIGdpdmUgcHJvdG90eXBlcyBm b3IgZnVuY3Rpb25zIGRlY2xhcmVkIEVYVEVSTkFMCitidXQgbm90IGludm9rZWQuCisgIEZpeCBt ZW1vcnkgZmF1bHQgdW5kZXIgLWQxIC1QIC4KKyAgVW5kZXIgLUEgYW5kIC1DKyssIGNhc3QgYXJn dW1lbnRzIHRvIHRoZSByaWdodCB0eXBlcyBpbiBjYWxsaW5nCithIGZ1bmN0aW9uIHRoYXQgaGFz IGJlZW4gZGVmaW5lZCBpbiB0aGUgY3VycmVudCBmaWxlIG9yIGluIGEgLlAgZmlsZS4KKyAgRml4 IGJ1ZyBpbiBoYW5kbGluZyBtdWx0aS1kaW1lbnNpb25hbCBhcnJheXMgd2l0aCBhcnJheSByZWZl cmVuY2VzCitpbiB0aGVpciBsZWFkaW5nIGRpbWVuc2lvbnMuCisgIEZpeCBidWcgaW4gdGhlIGlu dHJpbnNpYyBjbXBseCBmdW5jdGlvbiB3aGVuIHRoZSBmaXJzdCBhcmd1bWVudAoraW52b2x2ZXMg YW4gZXhwcmVzc2lvbiBmb3Igd2hpY2ggZjJjIGdlbmVyYXRlcyB0ZW1wb3JhcnkgdmFyaWFibGVz LAorZS5nLiBjbXBseChhYnMocmVhbChhKSksMS4pIC4KKworU2F0IEp1bCAxOCAwNzozNjo1OCBF RFQgMTk5MjoKKyAgRml4IGJ1Z2xldCB3aXRoIC1lMWMgKGludmlzaWJsZSBvbiBtb3N0IHN5c3Rl bXMpIHRlbXBvcmFyeSBmaWxlCitmMmNfZnVuY3Rpb25zIHdhcyB1bmxpbmtlZCBiZWZvcmUgYmVp bmcgY2xvc2VkLgorICBsaWJmNzc6IGZpeCBidWdzIGluIGV2YWx1YXRpbmcgbSoqbiBmb3IgaW50 ZWdlciBuIDwgMCBhbmQgbSBhbgoraW50ZWdlciBkaWZmZXJlbnQgZnJvbSAxIG9yIGEgcmVhbCBv ciBkb3VibGUgcHJlY2lzaW9uIDAuCitDYXRjaCBTSUdUUkFQICh0byBwcmludCAiVHJhY2UgdHJh cCIgYmVmb3JlIGFib3J0aW5nKS4gIFByb2dyYW1zCit0aGF0IHByZXZpb3VzbHkgZXJyb25lb3Vz bHkgY29tcHV0ZWQgMSBmb3IgMCoqLTEgbWF5IG5vdyBmYXVsdC4KK1JlbGV2YW50IHJvdXRpbmVz OiBtYWluLmMgcG93X2RpLmMgcG93X2hoLmMgcG93X2lpLmMgcG93X3JpLmMgLgorCitTYXQgSnVs IDE4IDA4OjQwOjEwIEVEVCAxOTkyOgorICBsaWJpNzc6IGFsbG93IG5hbWVsaXN0IGlucHV0IHRv IGVuZCB3aXRoICYgKGUuZy4gJmVuZCkuCisKK1RodSBKdWwgMjMgMDA6MTQ6NDMgRURUIDE5OTIK KyAgQXBwZW5kIHR3byB1bmRlcnNjb3JlcyByYXRoZXIgdGhhbiBvbmUgdG8gQyBrZXl3b3JkcyB1 c2VkIGFzCitsb2NhbCB2YXJpYWJsZXMgdG8gYXZvaWQgY29uZmxpY3RzIHdpdGggc2ltaWxhcmx5 IG5hbWVkIENPTU1PTiBibG9ja3MuCisKK1RodSBKdWwgMjMgMTE6MjA6NTUgRURUIDE5OTI6Cisg IGxpYmY3NywgbGliaTc3IHVwZGF0ZWQgdG8gYXNzdW1lIEFOU0kgcHJvdG90eXBlcyB1bmxlc3Mg S1JfaGVhZGVycworaXMgI2RlZmluZWQuCisgIGxpYmk3NyBub3cgcmVjb2duaXplcyBhIFogZm9y bWF0IGl0ZW0gYXMgaW4gRm9ydHJhbiA5MDsKK3RoZSBpbXBsZW1lbnRhdGlvbiBhc3N1bWVzIDgt Yml0IGJ5dGVzIGFuZCBib3RjaGVzIGNoYXJhY3RlciBzdHJpbmdzCitvbiBsaXR0bGUtZW5kaWFu IG1hY2hpbmVzIChieSBwcmludGluZyB0aGVpciBieXRlcyBmcm9tIHJpZ2h0IHRvCitsZWZ0KTog ZXhwZWN0IHRoaXMgYnVnIHRvIHBlcnNpc3Q7IGZpeGluZyBpdCB3b3VsZCByZXF1aXJlIGEKK2No YW5nZSB0byB0aGUgSS9PIGNhbGxpbmcgc2VxdWVuY2VzLgorCitUdWUgSnVsIDI4IDE1OjE4OjMz IEVEVCAxOTkyOgorICBsaWJpNzc6IGluc2VydCBtaXNzZWQgIiNpZmRlZiBLUl9oZWFkZXJzIiBs aW5lcyBhcm91bmQgZ2V0bnVtCitoZWFkZXIgaW4gcnNuZS5jLiAgVmVyc2lvbiBub3QgdXBkYXRl ZC4KKworTk9URTogImluZGV4IGZyb20gZjJjIiBub3cgZW5kcyB3aXRoIGN1cnJlbnQgdGltZXN0 YW1wcyBvZiBmaWxlcyBpbgorImFsbCBmcm9tIGYyYy9zcmMiLCBzb3J0ZWQgYnkgdGltZS4gIFRv IGJyaW5nIHlvdXIgc291cmNlIHVwIHRvIGRhdGUsCitvYnRhaW4gc291cmNlIGZpbGVzIHdpdGgg YSB0aW1lc3RhbXAgbGF0ZXIgdGhhbiB0aGUgdGltZSBzaG93biBpbiB5b3VyCit2ZXJzaW9uLmMu CisKK0ZyaSBBdWcgMTQgMDg6MDc6MDkgRURUIDE5OTI6CisgIGxpYmk3NzogdHdlYWsgd3J0X0Ug aW4gd3JlZi5jIHRvIGF2b2lkIHNpZ25pbmcgTmFOcy4KKworU3VuIEF1ZyAyMyAxOTowNToyMiBF RFQgMTk5MjoKKyAgZmM6IHN1cHBseSA6IGFmdGVyIE8gaW4gZ2V0b3B0IGludm9jYXRpb24gKGZv ciAtTzEgLU8yIC1PMykuCisKK01vbiBBdWcgMjQgMTg6Mzc6NTkgRURUIDE5OTI6CisgIFJlY2Fu dCBhYm92ZSB0d2VhayB0byBmYzogZ2V0b3B0IGlzIGR1bWJlciB0aGFuIEkgdGhvdWdodDsKK2l0 J3MgbmVjZXNzYXJ5IHRvIHNheSAtTyAxIChldGMuKS4KKyAgbGliRjc3L1JFQURNRTogYWRkIGNv bW1lbnRzIGFib3V0IEFCT1JULCBFUkYsIERFUkYsIEVSRkMsIERFUkZDLAorR0VUQVJHLCBHRVRF TlYsIElBUkdDLCBTSUdOQUwsIGFuZCBTWVNURU0uCisKK1R1ZSBPY3QgMjcgMDE6NTc6NDIgRVNU IDE5OTI6CisgIGxpYmY3NywgbGliaTc3OgorICAgIDEuICBGaXggYm90Y2hlZCBpbmRpcmVjdGlv biBpbiBzaWduYWxfLmMuCisgICAgMi4gIFN1cHBseSBtaXNzaW5nIGxfZW9mID0gMCBhc3NpZ25t ZW50IHRvIHNfcnNuZSgpIGluIHJzbmUuYyAoc28KK2VuZC1vZi1maWxlIG9uIG90aGVyIGZpbGVz IHdvbid0IGNvbmZ1c2UgbmFtZWxpc3QgcmVhZHMgb2YgZXh0ZXJuYWwKK2ZpbGVzKS4KKyAgICAz LiAgUHJlcGVuZCBmX18gdG8gZXh0ZXJuYWwgbmFtZXMgdGhhdCBhcmUgb25seSBvZiBpbnRlcm5h bAoraW50ZXJlc3QgdG8gbGliW0ZJXTc3LgorCitUaHUgT2N0IDI5IDEyOjM3OjE4IEVTVCAxOTky OgorICBsaWJmNzc6IEZpeCBib3RjaCBpbiBzaWduYWxfLmMgd2hlbiBLUl9oZWFkZXJzIGlzICNk ZWZpbmVkOworYWRkIENGTEFHUyB0byBtYWtlZmlsZS4KKyAgbGliaTc3OiB0cml2aWFsIGNoYW5n ZSB0byBtYWtlZmlsZSBmb3IgY29uc2lzdGVuY3kgd2l0aAorbGliRjc3L21ha2VmaWxlLgorCitX ZWQgRmViICAzIDAyOjA1OjE2IEVTVCAxOTkzOgorICBSZWNvZ25pemUgdHlwZXMgSU5URUdFUiox LCBMT0dJQ0FMKjEsIExPR0lDQUwqMiwgSU5URUdFUio4LgorSU5URUdFUio4IGlzIG5vdCB3ZWxs IHRlc3RlZCBhbmQgd2lsbCBvbmx5IHdvcmsgcmVhc29uYWJseSBvbgorc3lzdGVtcyB3aGVyZSBp bnQgPSA0IGJ5dGVzLCBsb25nID0gOCBieXRlczsgb24gc3VjaCBzeXN0ZW1zLAoreW91J2xsIGhh dmUgdG8gbW9kaWZ5IGYyYy5oIGFwcHJvcHJpYXRlbHksIGNoYW5naW5nIGludGVnZXIKK2Zyb20g bG9uZyB0byBpbnQgYW5kIGFkZGluZyB0eXBlZGVmIGxvbmcgbG9uZ2ludC4gIFlvdSdsbCBhbHNv CitoYXZlIHRvIGNvbXBpbGUgbGliSTc3IHdpdGggQWxsb3dfVFlRVUFEICNkZWZpbmVkIGFuZCBh ZGp1c3QKK2xpYkY3Ny9tYWtlZmlsZSB0byBjb21waWxlIHBvd19xcS5jLiAgSW4gdGhlIGYyYyBz b3VyY2UsIGNoYW5nZXMKK2ZvciBJTlRFR0VSKjggYXJlIGRlbGltaXRlZCBieSAjaWZkZWYgVFlR VUFEIC4uLiAjZW5kaWYuICBZb3UKK2NhbiBvbWl0IHRoZSBJTlRFR0VSKjggY2hhbmdlcyBieSBj b21waWxpbmcgd2l0aCBOT19UWVFVQUQKKyNkZWZpbmVkLiAgT3RoZXJ3aXNlLCB0aGUgbmV3IGNv bW1hbmQtbGluZSBvcHRpb24gLSFpOAorZGlzYWJsZXMgcmVjb2duaXRpb24gb2YgSU5URUdFUio4 LgorICBsaWJmNzc6IGFkZCBwb3dfcXEuYworICBsaWJpNzc6IGFkZCAjaWZkZWYgQWxsb3dfVFlR VUFEIHN0dWZmLiAgQ2hhbmdlcyBmb3IgSU5URUdFUioxLAorTE9HSUNBTCoxLCBhbmQgTE9HSUNB TCoyIGNhbWUgbGFzdCAyMyBKdWx5IDE5OTIuICBGaXggYnVnIGluCitiYWNrc3BhY2UgKHRoYXQg b25seSBiaXQgd2hlbiB0aGUgbGFzdCBjaGFyYWN0ZXIgb2YgdGhlIHNlY29uZAorb3Igc3Vic2Vx dWVudCBidWZmZXIgcmVhZCB3YXMgdGhlIHByZXZpb3VzIG5ld2xpbmUpLiAgR3VhcmQKK2FnYWlu c3QgTF90bXBuYW0gYmVpbmcgdG9vIHNtYWxsIGluIGVuZGZpbGUuYy4gIEZvciBNU0RPUywKK2Ns b3NlIGFuZCByZW9wZW4gZmlsZXMgd2hlbiBjb3B5aW5nIHRvIHRydW5jYXRlLiAgTGVuZ3RoZW4K K0xJTlRXIChidWZmZXIgc2l6ZSBpbiBsd3JpdGUuYykuCisgIEFkZCBcIHRvIHRoZSBlbmQgb2Yg I2RlZmluZSBsaW5lcyB0aGF0IGdldCBicm9rZW4uCisgIEZpeCBidWcgaW4gaGFuZGxpbmcgTkFN RUxJU1Qgb2YgaXRlbXMgaW4gRVFVSVZBTEVOQ0UuCisgIFVuZGVyIC1oIChvciAtaGQpLCBjb252 ZXJ0IEhvbGxlcml0aCB0byBpbnRlZ2VyIGluIGdlbmVyYWwgZXhwcmVzc2lvbnMKKyhlLmcuLCBh c3NpZ25tZW50cyksIG5vdCBqdXN0IHdoZW4gdGhleSdyZSBwYXNzZWQgYXMgYXJndW1lbnRzLCBh bmQKK2JsYW5rLXBhZCByYXRoZXIgdGhhbiAwLXBhZCB0aGUgSG9sbGVyaXRoIHRvIGEgbXVsdGlw bGUgb2YKK3NpemVvZihpbnRlZ2VyKSBvciBzaXplb2YoZG91YmxlcmVhbCkuCisgIEFkZCBjb21t YW5kLWxpbmUgb3B0aW9uIC1zLCB3aGljaCBpbnN0cnVjdHMgZjJjIHByZXNlcnZlIG11bHRpLQor ZGltZW5zaW9uYWwgc3Vic2NyaXB0cyAoYnkgZW1pdHRpbmcgYW5kIHVzaW5nIGFwcHJvcHJpYXRl ICNkZWZpbmVzKS4KKyAgRml4IGdsaXRjaCAod2l0aCBkZWZhdWx0IHR5cGUgaW5mZXJlbmNlcykg aW4gZXhhbXBsZXMgbGlrZQorCWNhbGwgZm9vKCdhYmMnKQorCWVuZAorCXN1YnJvdXRpbmUgZm9v KGdvbykKKwllbmQKK1RoaXMgZ2F2ZSB0d28gd2FybmluZyBtZXNzYWdlczoKKwlXYXJuaW5nIG9u IGxpbmUgNCBvZiB5LmY6IGluY29uc2lzdGVudCBjYWxsaW5nIHNlcXVlbmNlcyBmb3IgZm9vOgor CSAgICAgICAgaGVyZSAxLCBwcmV2aW91c2x5IDIgYXJncyBhbmQgc3RyaW5nIGxlbmd0aHMuCisJ V2FybmluZyBvbiBsaW5lIDQgb2YgeS5mOiBpbmNvbnNpc3RlbnQgY2FsbGluZyBzZXF1ZW5jZXMg Zm9yIGZvbzoKKwkgICAgICAgIGhlcmUgMiwgcHJldmlvdXNseSAxIGFyZ3MgYW5kIHN0cmluZyBs ZW5ndGhzLgorTm93IHRoZSBzZWNvbmQgV2FybmluZyBpcyBzdXBwcmVzc2VkLgorICBDb21wbGFp biBhYm91dCBhbGwgaW5jb25zaXN0ZW50IGFyZ3VtZW50cywgbm90IGp1c3QgdGhlIGZpcnN0Lgor ICBTd2l0Y2ggdG8gYXV0b21hdGljIGNyZWF0aW9uIG9mICJhbGwgZnJvbSBmMmMvc3JjIi4gIEZv ciBmb2xrcworZ2V0dGluZyBmMmMgc291cmNlIHZpYSBmdHAsIHRoaXMgbWVhbnMgZjJjL3NyYy9h bGwuWiBpcyBub3cgYW4KK2VtcHR5IGZpbGUgcmF0aGVyIHRoYW4gYSBidW5kbGUuCisgIFNlcGFy YXRlIC1QIGFuZCAtQTogLVAgbm8gbG9uZ2VyIGltcGxpZXMgLUEuCisKK1RodSBGZWIgIDQgMDA6 MzI6MjAgRVNUIDE5OTM6CisgIEZpeCBzb21lIGdsaXRjaGVzIChpbnRyb2R1Y2VkIHllc3RlcmRh eSkgd2l0aCAtaCAuCisKK0ZyaSBGZWIgIDUgMDE6NDA6MzggRVNUIDE5OTM6CisgIEZpeCBidWcg aW4gdHlwZXMgY29udmV5ZWQgZm9yIG5hbWVsaXN0cyAoaW50cm9kdWNlZCAzIEZlYi4gMTk5Myku CisKK0ZyaSBGZWIgIDUgMjE6MjY6NDMgRVNUIDE5OTM6CisgIGxpYmk3NzogdHdlYWtzIHRvIE5B TUVMSVNUIGFuZCBvcGVuIChhZnRlciBjb21tZW50cyBieSBIYXJvbGQKK1lvdW5ncmVuKToKKyAx LiBSZWFkaW5nIGEgPyBpbnN0ZWFkIG9mICZuYW1lICh0aGUgc3RhcnQgb2YgYSBuYW1lbGlzdCkg Y2F1c2VzCisgICAgdGhlIG5hbWVsaXN0IGJlaW5nIHNvdWdodCB0byBiZSB3cml0dGVuIHRvIHN0 ZG91dCAodW5pdCA2KTsKKyAgICB0byBvbWl0IHRoaXMgZmVhdHVyZSwgY29tcGlsZSByc25lLmMg d2l0aCAtRE5vX05hbWVsaXN0X1F1ZXN0aW9ucy4KKyAyLiBSZWFkaW5nIHRoZSB3cm9uZyBuYW1l bGlzdCBuYW1lIG5vdyBsZWFkcyB0byBhbiBlcnJvciBtZXNzYWdlCisgICAgYW5kIGFuIGF0dGVt cHQgdG8gc2tpcCBpbnB1dCB1bnRpbCB0aGUgcmlnaHQgbmFtZWxpc3QgbmFtZSBpcyBmb3VuZDsK KyAgICB0byBvbWl0IHRoaXMgZmVhdHVyZSwgY29tcGlsZSByc25lLmMgd2l0aCAtRE5vX0JhZF9O YW1lbGlzdF9Ta2lwLgorIDMuIE5hbWVsaXN0IHdyaXRlcyBub3cgaW5zZXJ0IG5ld2xpbmVzIGJl Zm9yZSBlYWNoIHZhcmlhYmxlOyB0byBvbWl0CisgICAgdGhpcyBmZWF0dXJlLCBjb21waWxlIHh3 c25lLmMgd2l0aCAtRE5vX0V4dHJhX05hbWVsaXN0X05ld2xpbmVzLgorIDQuIEZvciBPUEVOIG9m IHNlcXVlbnRpYWwgZmlsZXMsIEFDQ0VTUz0nQVBQRU5EJyAob3IKKyAgICBhY2Nlc3M9J2FueXRo aW5nIGVsc2Ugc3RhcnRpbmcgd2l0aCAiQSIgb3IgImEiJykgY2F1c2VzIHRoZSBmaWxlIHRvCisg ICAgYmUgcG9zaXRpb25lZCBhdCBlbmQtb2YtZmlsZSwgc28gYSB3cml0ZSB3aWxsIGFwcGVuZCB0 byB0aGUgZmlsZS4KKyAgICAoVGhpcyBpcyBub25zdGFuZGFyZCwgYnV0IGRvZXMgbm90IHJlcXVp cmUgbW9kaWZ5aW5nIGRhdGEKKyAgICBzdHJ1Y3R1cmVzLikKKworTW9uIEZlYiAgOCAxNDo0MDoz NyBFU1QgMTk5MzoKKyAgSW5jcmVhc2UgbnVtYmVyIG9mIGNvbnRpbnVhdGlvbiBsaW5lcyBhbGxv d2VkIGZyb20gMTkgdG8gOTksCithbmQgYWxsb3cgY2hhbmdpbmcgdGhpcyBsaW1pdCB3aXRoIC1O QyAoZS5nLiAtTkMyMDAgZm9yIDIwMCBsaW5lcykuCisgIFRyZWF0IGNvbnRyb2wtWiAoYXQgdGhl IGJlZ2lubmluZyBvZiBhIGxpbmUpIGFzIGVuZC1vZi1maWxlOiBzZWUKK3RoZSBuZXcgcGVudWx0 aW1hdGUgcGFyYWdyYXBoIG9mIFJFQURNRS4KKyAgRml4IGEgcmFyZWx5IHNlZW4gZ2xpdGNoIHRo YXQgY291bGQgbWFrZSBhbiBlcnJvciBtZXNzYWdlcyB0byBzYXkKKyJsaW5lIDAiLgorCitUdWUg RmViICA5IDAyOjA1OjQwIEVTVCAxOTkzCisgIGxpYmk3NzogY2hhbmdlIHNvbWUgI2lmZGVmIE1T RE9TIGxpbmVzIHRvICNpZmRlZiBOT05fVU5JWF9TVERJTywKK2FuZCwgaW4gZXJyLmMgdW5kZXIg Tk9OX1VOSVhfU1RESU8sIGF2b2lkIGNsb3NlKGNyZWF0KG5hbWUsMDY2NikpCit3aGVuIHRoZSB1 bml0IGhhcyBhbm90aGVyIGZpbGUgZGVzY3JpcHRvciBmb3IgbmFtZS4KKworVHVlIEZlYiAgOSAx NzoxMjo0OSBFU1QgMTk5MworICBsaWJpNzc6IG1vcmUgdHdlYWtzIGZvciBOT05fVU5JWF9TVERJ TzogdXNlIHN0ZGlvIHJvdXRpbmVzCityYXRoZXIgdGhhbiBvcGVuLCBjbG9zZSwgY3JlYXQsIHNl ZWssIGZkb3BlbiAoZXhjZXB0IGZvciBmX19pc2RldikuCisKK0ZyaSBGZWIgMTIgMTU6NDk6MzMg RVNUIDE5OTMKKyAgVXBkYXRlIHNyYy9ncmFtLmMgKHdoaWNoIHdhcyBmb3Jnb3R0ZW4gaW4gdGhl IHJlY2VudCB1cGRhdGVzKS4KK01vc3QgZm9sa3MgcmVnZW5lcmF0ZSBpdCBhbnl3YXkgKHdpdHkg eWFjYyBvciBiaXNvbikuCisKK1RodSBNYXIgIDQgMTc6MDc6MzggRVNUIDE5OTMKKyAgSW5jcmVh c2UgZGVmYXVsdCBtYXggbGFiZWxzIGluIGNvbXB1dGVkIGdvdG9zIGFuZCBhbHRlcm5hdGUgcmV0 dXJucwordG8gMjU3LCBhbmQgYWxsb3cgLU5sMTIzNCB0byBzcGVjaWZ5IHRoaXMgbnVtYmVyLgor ICBUd2VhayBwdXQuYyB0byBjaGVjayBwLT50YWcgPT0gVEFERFIgaW4gcmVhbHBhcnQoKSBhbmQg aW1hZ3BhcnQoKS4KKyAgQWRqdXN0IGZjIHNjcmlwdCB0byBhbGxvdyAuciAoUkFURk9SKSBmaWxl cyBhbmQgLUMgKGNoZWNrIHN1YnNjcmlwdHMpLgorICBBdm9pZCBkZWNsYXJpbmcgc3RyY2hyIGlu IG5pY2VwcmludGYuYyB1bmRlciAtREFOU0lfTGlicmFyaWVzIC4KKyAgZ3JhbS5jIHVwZGF0ZWQg YWdhaW4uCisgIGxpYmk3NzogZXJyLmMsIG9wZW4uYzogdGFrZSBkZWNsYXJhdGlvbiBvZiBmZG9w ZW4gZnJvbSByYXdpby5oLgorCitTYXQgTWFyICA2IDA3OjA5OjExIEVTVCAxOTkzCisgIGxpYmk3 NzogdWlvLmM6IGFkanVzdCBvZmYtZW5kLW9mLXJlY29yZCB0ZXN0IGZvciBzZXF1ZW50aWFsCit1 bmZvcm1hdHRlZCByZWFkcyB0byByZXNwb25kIHRvIGVycj0gcmF0aGVyIHRoYW4gZW5kPSAuCisK K1NhdCBNYXIgIDYgMTY6MTI6NDcgRVNUIDE5OTMKKyAgVHJlYXQgc2NhbGFyIGFyZ3VtZW50cyBv ZiB0aGUgZm9ybSAodikgYW5kIHYrMCwgd2hlcmUgdiBpcyBhIHZhcmlhYmxlLAorYXMgZXhwcmVz c2lvbnM6IGFzc2lnbiB0byBhIHRlbXBvcmFyeSB2YXJpYWJsZSwgYW5kIHBhc3MgdGhlIGxhdHRl ci4KKyAgZ3JhbS5jIHVwZGF0ZWQuCisKK01vbiBNYXIgIDggMDk6MzU6MzggRVNUIDE5OTMKKyAg ImYyYy5oIGZyb20gZjJjIiB1cGRhdGVkIHRvIGFkZCB0eXBlcyBsb2dpY2FsMSBhbmQgaW50ZWdl cjEgZm9yCitMT0dJQ0FMKjEgYW5kIElOVEVHRVIqMS4gICgiZjJjLmggZnJvbSBmMmMiIGlzIHN1 cHBvc2VkIHRvIGJlIHRoZQorc2FtZSBhcyAiZjJjLmggZnJvbSBmMmMvc3JjIiwgd2hpY2ggd2Fz IHVwZGF0ZWQgMyBGZWIuIDE5OTMuKQorCitNb24gTWFyICA4IDE3OjU3OjU1IEVTVCAxOTkzCisg IEZpeCByYXJlbHkgc2VlbiBidWcgdGhhdCBjb3VsZCBjYXVzZSBzdHJhbmdlIGNhc3RzIGluIGZ1 bmN0aW9uCitpbnZvY2F0aW9ucyAocmV2ZWFsZWQgYnkgYW4gZXhhbXBsZSB3aXRoIG1zZG9zL2Yy Yy5leGUpLgorICBtc2Rvcy9mMmN4LmV4ZS5aIGFuZCBtc2Rvcy9mMmMuZXhlLlogdXBkYXRlZCAo ZnRwIGFjY2VzcyBvbmx5KS4KKworRnJpIE1hciAxMiAxMjozNzowMSBFU1QgMTk5MworICBGaXgg YnVnIHdpdGggLXMgaW4gaGFuZGxpbmcgc3Vic2NyaXB0cyBpbnZvbHZpbmcgbWluLCBtYXgsIGFu ZAorY29tcGxpY2F0ZWQgZXhwcmVzc2lvbnMgcmVxdWlyaW5nIHRlbXBvcmFyaWVzLgorICBGaXgg YnVnIGluIGhhbmRsaW5nIENPTU1PTnMgdGhhdCBuZWVkIHBhZGRpbmcgYnkgYSBjaGFyIGFycmF5 LgorICBtc2Rvcy9mMmN4LmV4ZS5aIGFuZCBtc2Rvcy9mMmMuZXhlLlogdXBkYXRlZCAoZnRwIGFj Y2VzcyBvbmx5KS4KKworRnJpIE1hciAxMiAxNzoxNjoxNiBFU1QgMTk5MworICBsaWJmNzcsIGxp Ymk3NzogdXBkYXRlZCBmb3IgY29tcGlsaW5nIHVuZGVyIEMrKy4KKworTW9uIE1hciAxNSAxNjoy MTozNyBFU1QgMTk5MworICBsaWJpNzc6IG1vcmUgbWlub3IgdHdlYWtzIChmb3IgLURLUl9oZWFk ZXJzKTsgVmVyc2lvbi5jIG5vdCBjaGFuZ2VkLgorCitUaHUgTWFyIDE4IDEyOjM3OjMwIEVTVCAx OTkzCisgIEZsYWcgLXIgKGZvciBkaXNjYXJkaW5nIGNhcnJpYWdlLXJldHVybnMgb24gc3lzdGVt cyB0aGF0IGVuZCBsaW5lcword2l0aCBjYXJyaWFnZS1yZXR1cm4vbmV3bGluZSBwYWlycywgZS5n LiBQQ3MpIGFkZGVkIHRvIHhzdW0sIGFuZAoreHN1bS5jIGNvbnZlcnRlZCB0byBBTlNJL0lTTyBz eW50YXggKHdpdGggSyZSIHN5bnRheCBhdmFpbGFibGUgd2l0aAorLURLUl9oZWFkZXJzKS4gIFtX aGVuIHRpbWUgcGVybWl0cywgdGhlIGYyYyBzb3VyY2Ugd2lsbCB1bmRlcmdvIGEKK3NpbWlsYXIg Y29udmVyc2lvbi5dCisgIGxpYmk3NzogdHdlYWtzIHRvICNpbmNsdWRlcyBpbiBlbmRmaWxlLmMs IGVyci5jLCBvcGVuLmMsIHJhd2lvLmg7CitWZXJzaW9uLmMgbm90IGNoYW5nZWQuCisgIGYyYy5w cyB1cGRhdGVkICh0byBwaWNrIHVwIHJldmlzaW9uIG9mIDIgRmViLiAxOTkzIHRvIGYyYy4xKS4K KworRnJpIE1hciAxOSAwOToxOToyNiBFU1QgMTk5MworICBsaWJpNzc6IGFkZCAoY2hhciAqKSBj YXN0cyB0byBtYWxsb2MgYW5kIHJlYWxsb2MgaW52b2NhdGlvbnMKK2luIGVyci5jLCBvcGVuLmM7 IFZlcnNpb24uYyBub3QgY2hhbmdlZC4KKworVHVlIE1hciAzMCAwNzoxNzoxNSBFU1QgMTk5Mwor ICBGaXggYnVnIGludHJvZHVjZWQgNiBNYXJjaCAxOTkzOiBwb3NzaWJsZSBtZW1vcnkgY29ycnVw dGlvbiB3aGVuCitsb29wcyBpbiBkYXRhIHN0YXRlbWVudHMgaW52b2x2ZSBjb25zdGFudCBzdWJz Y3JpcHRzLCBhcyBpbgorCSBEQVRBIChHVU5JVCgxLEkpLEk9MCwxNCkvMTUqLTEvCisKK1R1ZSBN YXIgMzAgMTY6MTc6NDIgRVNUIDE5OTMKKyAgRml4IGJ1ZyB3aXRoIC1zOiAoZmxvYXRpbmctcG9p bnQgYXJyYXkgaXRlbSkqKGNvbXBsZXggaXRlbSkKK2dlbmVyYXRlcyBhbiBfc3Vic2NyKCkgcmVm ZXJlbmNlIGZvciB0aGUgZmxvYXRpbmctcG9pbnQgYXJyYXksCitidXQgYSAjZGVmaW5lIGZvciB0 aGUgX3N1YnNjcigpIHdhcyBvbWl0dGVkLgorCitUdWUgQXByICA2IDEyOjExOjIyIEVEVCAxOTkz CisgIGxpYmk3NzogYWRqdXN0IGVycm9yIHJldHVybnMgZm9yIGZvcm1hdHRlZCBpbnB1dHMgdG8g Zmx1c2ggdGhlIGN1cnJlbnQKK2lucHV0IGxpbmUgd2hlbiBlcnI9IGlzIHNwZWNpZmllZC4gIFRv IHJlc3RvcmUgdGhlIG9sZCBiZWhhdmlvciAoaW5wdXQKK2xlZnQgbWlkLWxpbmUpLCBlaXRoZXIg YWRqdXN0IHRoZSAjZGVmaW5pdGlvbiBvZiBlcnJmbCBpbiBmaW8uaCBvciBvbWl0Cit0aGUgaW52 b2NhdGlvbiBvZiBmX19kb2VuZCBpbiBlcnJfX2ZsIChpbiBlcnIuYykuCisKK1R1ZSBBcHIgIDYg MTM6MzA6MDQgRURUIDE5OTMKKyAgRml4IGJ1ZyByZXZlYWxlZCBpbgorCXN1YnJvdXRpbmUgZm9v KGkpCisJY2FsbCBnb28oaW50KGkpKQorCWVuZAord2hpY2ggbm93IHBhc3NlcyBhIGNvcHkgb2Yg aSwgcmF0aGVyIHRoYW4gaSBpdHNlbGYuCisKK1NhdCBBcHIgMTcgMTE6NDE6MDIgRURUIDE5OTMK KyAgQWRqdXN0IGFwcGVuZGluZyBvZiB1bmRlcnNjb3JlcyB0byBjb25mb3JtIHdpdGggZjJjLnBz ICgiQSBGb3J0cmFuCit0byBDIENvbnZlcnRlciIpOiBuYW1lcyB0aGF0IGNvbmZsaWN0IHdpdGgg QyBrZXl3b3JkcyBvciBmMmMgdHlwZQorbmFtZXMgbm93IGhhdmUganVzdCBvbmUgdW5kZXJzY29y ZSBhcHBlbmRlZCAocmF0aGVyIHRoYW4gdHdvKTsgYWRkCisiaW50ZWdlcjEiLCAibG9naWNhbDEi LCAibG9uZ2ludCIgdG8gdGhlIGtleXdvcmQgbGlzdC4KKyAgQXBwZW5kIHVuZGVyc2NvcmVzIHRv IG5hbWVzIHRoYXQgYXBwZWFyIGluIEVRVUlWQUxFTkNFIGFuZCBhcmUKK2NvbXBvbmVudCBuYW1l cyBpbiBhIHN0cnVjdHVyZSBkZWNsYXJlZCBpbiBmMmMuaCwgdGh1cyBhdm9pZGluZyBhCitwcm9i bGVtIGNhdXNlZCBieSB0aGUgI2RlZmluZXMgZW1pdHRlZCBmb3IgZXF1aXZhbGVuY2VzLiAgRXhh bXBsZToKKwljb21wbGV4IGEKKwllcXVpdmFsZW5jZSAoaSxqKQorCWEgPSAxCSEgYS5pIHdlbnQg YXdyeSBiZWNhdXNlIG9mICNkZWZpbmUgaQorCWogPSAyCisJd3JpdGUoKiwqKSBhLCBpCisJZW5k CisgIEFkanVzdCBsaW5lLWJyZWFraW5nIGxvZ2ljIHRvIGF2b2lkIHNwbGl0dGluZyB2ZXJ5IGxv bmcgY29uc3RhbnRzCisoYW5kIG5hbWVzKS4gIEV4YW1wbGU6CisJISBUaGUgbmV4dCBsaW5lIHN0 YXJ0cyB3aXRoIHRhYiBhbmQgdGh1cyBpcyBhIGZyZWUtZm9ybWF0IGxpbmUuCisJYT0uMDEyMzQ1 Njg5MDEyMzQ1Njg5MDEyMzQ1Njg5MDEyMzQ1Njg5MDEyMzQ1Njg5MDEyMzQ1Njg5MDEyMzQ1Njg5 MDEyMzQ1Njg5CisJZW5kCisgIE9taXQgZXh0cmFuZW91cyAicmV0dXJuIDA7IiBmcm9tIGVudHJ5 IHN0dWJzIGVtaXR0ZWQgZm9yIG11bHRpcGxlCitlbnRyeSBwb2ludHMgb2YgdHlwZSBjaGFyYWN0 ZXIsIGNvbXBsZXgsIG9yIGRvdWJsZSBjb21wbGV4LgorCitTYXQgQXByIDE3IDE0OjM1OjA1IEVE VCAxOTkzCisgIEZpeCBidWcgKGludHJvZHVjZWQgNCBGZWIuKSBpbiBzZXBhcmF0aW5nIC1QIGZy b20gLUEgdGhhdCBrZXB0IGYyYworZnJvbSByZS1yZWFkaW5nIGEgLlAgZmlsZSB3cml0dGVuIHdp dGhvdXQgLUEgb3IgLUMrKyBkZXNjcmliaW5nIGEKK3JvdXRpbmUgd2l0aCBhbiBleHRlcm5hbCBh cmd1bWVudC4gIFtTZWUgdGhlIGp1c3QtYWRkZWQgbm90ZSBhYm91dAorc2VwYXJhdGluZyAtUCBm cm9tIC1BIGluIHRoZSBjaGFuZ2VzIGFib3ZlIGZvciAzIEZlYi4gMTk5My5dCisgIEZpeCBidWcg KHR5cGUgVU5LTk9XTiBmb3IgViBpbiB0aGUgZXhhbXBsZSBiZWxvdykgcmV2ZWFsZWQgYnkKKwlz dWJyb3V0aW5lIGEoKQorCWV4dGVybmFsIGMKKwljYWxsIGIoYykKKwllbmQKKwlzdWJyb3V0aW5l IGIodikKKwllbmQKKworU3VuIEFwciAxOCAxOTo1NToyNiBFRFQgMTk5MworICBGaXggd3Jvbmcg Y2FsbGluZyBzZXF1ZW5jZSBmb3IgbWVtKCkgaW4geWVzdGVyZGF5J3MgYWRkaXRpb24gdG8KK2Vx dWl2LmMgLgorCitXZWQgQXByIDIxIDE3OjM5OjQ2IEVEVCAxOTkzCisgIEZpeCBidWcgcmV2ZWFs ZWQgaW4KKworICAgICAgQVNTSUdOIDEwIFRPIEwxCisgICAgICBHTyBUTyAyMAorIDEwICAgQVNT SUdOIDMwIFRPIEwyCisgICAgICBTVE9QIDEwCisKKyAyMCAgIEFTU0lHTiAxMCBUTyBMMgkhIEJ1 ZyBoZXJlIGJlY2F1c2UgMTAgaGFkIGJlZW4gYXNzaWduZWQKKwkJCSEgdG8gYW5vdGhlciBsYWJl bCwgdGhlbiBkZWZpbmVkLgorICAgICAgR08gVE8gTDIKKyAzMCAgIEVORAorCitGcmkgQXByIDIz IDE4OjM4OjUwIEVEVCAxOTkzCisgIEZpeCBidWcgd2l0aCAtaCByZXZlYWxlZCBpbgorCUNIQVJB Q1RFUio5IEZPTworCVdSSVRFKEZPTywnKEk2KScpIDEKKwlXUklURShGT08sJyhJNiknKSAyCSEg c3RydWN0IGljaWxpc3QgaW9fX18zIGJvdGNoZWQKKwlFTkQKKworVHVlIEFwciAyNyAxNjowODoy OCBFRFQgMTk5MworICBUd2VhayB0byBtYWtlZmlsZTogcmVtb3ZlICJzaXplIGYyYyIuCisKK1R1 ZSBNYXkgIDQgMjM6NDg6MjAgRURUIDE5OTMKKyAgbGliZjc3OiB0d2VhayBzaWduYWxfIGxpbmUg b2YgZjJjaC5hZGQgLgorCitUdWUgSnVuICAxIDEzOjQ3OjEzIEVEVCAxOTkzCisgIEZpeCBidWcg aW50cm9kdWNlZCAzIEZlYi4gMTk5MyBpbiBoYW5kbGluZyBtdWx0aXBsZSBlbnRyeQorcG9pbnRz IHdpdGggZGlmZmVyaW5nIHJldHVybiB0eXBlcyAtLSB0aGUgcG9zdGZpeCBhcnJheSBpbiBwcm9j LmMKK25lZWRlZCBhIG5ldyBlbnRyeSBmb3IgaW50ZWdlcio4ICh3aGljaCByZXN1bHRlZCBpbiB3 cm9uZworTXVsdGl0eXBlIHN1ZmZpeGVzIGZvciBub24taW50ZWdyYWwgdHlwZXMpLgorICBGb3Ig KGRlZmF1bHQpIEsmUiBDLCBnZW5lcmF0ZSBWT0lEIHJhdGhlciB0aGFuIGludCBmdW5jdGlvbnMg Zm9yCitmdW5jdGlvbnMgb2YgRm9ydHJhbiB0eXBlIGNoYXJhY3RlciwgY29tcGxleCwgYW5kIGRv dWJsZSBjb21wbGV4LgorICBtc2Rvcy9mMmN4LmV4ZS5aIGFuZCBtc2Rvcy9mMmMuZXhlLlogdXBk YXRlZCAoZnRwIGFjY2VzcyBvbmx5KS4KKworVHVlIEp1biAgMSAyMzoxMToxNSBFRFQgMTk5Mwor ICBmMmMuaDogYWRkIE11bHRpdHlwZSBjb21wb25lbnQgZyBhbmQgY29tbWVudGVkIHR5cGUgbG9u Z2ludC4KKyAgcHJvYy5jOiBvbWl0ICJyZXR1cm4gMDsiIGZyb20gc3R1YnMgZm9yIGNvbXBsZXgg YW5kIGRvdWJsZSBjb21wbGV4CitlbnRyaWVzICh3aGVuIGVudHJpZXMgaGF2ZSBtdWx0aXBsZSB0 eXBlcyk7IGFkZCB0ZXN0IHRvIGF2b2lkIG1lbW9yeQorZmF1bHQgd2l0aCBpbGxlZ2FsIGNvbWJp bmF0aW9ucyBvZiBlbnRyeSB0eXBlcy4KKworTW9uIEp1biAgNyAxMjowMDo0NyBFRFQgMTk5Mwor ICBGaXggbWVtb3J5IGZhdWx0IGluCisJY29tbW9uIC9jLyBtCisJaW50ZWdlciBtKDEpCisJZGF0 YSBtKDEpLzEvLCBtKDIpLzIvCSEgb25lIHRvbyBtYW55IGluaXRpYWxpemVycworCWVuZAorICBt c2Rvcy9mMmN4LmV4ZS5aIGFuZCBtc2Rvcy9mMmMuZXhlLlogdXBkYXRlZCAoZnRwIGFjY2VzcyBv bmx5KS4KKworRnJpIEp1biAxOCAxMzo1NTo1MSBFRFQgMTk5MworICBsaWJpNzc6IGNoYW5nZSB0 eXBlIG9mIHNpZ25hbF8gaW4gZjJjaC5hZGQ7IGNoYW5nZSB0eXBlIG9mIGlsIGluCit1bmlvbiBV aW50IGZyb20gbG9uZyB0byBpbnRlZ2VyIChmb3IgbWFjaGluZXMgbGlrZSB0aGUgREVDIEFscGhh LAord2hlcmUgaW50ZWdlciBzaG91bGQgYmUgdGhlIHNhbWUgYXMgaW50KS4gIFZlcnNpb24uYyBu b3QgY2hhbmdlZC4KKyAgVHdlYWsgZ3JhbS5kY2wgYW5kIGdyYW0uaGVhZDogYWRkIHNlbWljb2xv bnMgYWZ0ZXIgc29tZSBydWxlcyB0aGF0CitsYWNrZWQgdGhlbSwgYW5kIHJlbW92ZSBhbiBleHRy YW5lb3VzIHNlbWljb2xvbi4gIFRoZXNlIGNoYW5nZXMgYXJlCitjb21wbGV0ZWx5IHRyYW5zcGFy ZW50IHRvIG91ciBsb2NhbCB5YWNjIHByb2dyYW1zLCBidXQgYXBwYXJlbnRseQorbWF0dGVyIG9u IHNvbWUgVk1TIHN5c3RlbXMuCisKK1dlZCBKdW4gMjMgMDE6MDI6NTYgRURUIDE5OTMKKyAgVXBk YXRlICJmYyIgc2hlbGwgc2NyaXB0LCBhbmQgYnJpbmcgZjJjLjEgYW5kIGYyYy4xdCB1cCB0byBk YXRlOgordGhleSdyZSBtZWFudCB0byBiZSBsaW5rZWQgd2l0aCAoaS5lLiwgdGhlIHNhbWUgYXMp IHNyYy9mMmMuMSBhbmQKK3NyYy9mMmMuMXQgLiAgW0luIHRoZSBsYXN0IHVwZGF0ZSBvZiBmMmMu MSogKDIgRmViLiAxOTkzKSwgb25seQorc3JjL2YyYy4xIGFuZCBzcmMvZjJjLjF0IGdvdCBjaGFu Z2VkIC0tIGEgbWlzdGFrZS5dCisKK1dlZCBKdW4gMjMgMDk6MDQ6MzEgRURUIDE5OTMKKyAgbGli aTc3OiBmaXggYnVnIGluIGZvcm1hdCByZXZlcnNpb25zIGZvciBpbnRlcm5hbCB3cml0ZXMuCitF eGFtcGxlOgorCWNoYXJhY3Rlcio2MCBsaW5lcygyKQorCXdyaXRlKGxpbmVzLCIoJ24gPScsaTMs MignIG1vcmUgdGV4dCcsaTMpKSIpIDMsIDQsIDUsIDYKKwl3cml0ZSgqLCopICdsaW5lcygxKSA9 ICcsIGxpbmVzKDEpCisJd3JpdGUoKiwqKSAnbGluZXMoMikgPSAnLCBsaW5lcygyKQorCWVuZAor Z2F2ZSBhbiBlcnJvciBtZXNzYWdlIHRoYXQgYmVnYW4gImlpbzogb2ZmIGVuZCBvZiByZWNvcmQi LCByYXRoZXIKK3RoYW4gZ2l2aW5nIHRoZSBjb3JyZWN0IG91dHB1dDoKKworIGxpbmVzKDEpID0g biA9ICAzIG1vcmUgdGV4dCAgNCBtb3JlIHRleHQgIDUKKyBsaW5lcygyKSA9ICBtb3JlIHRleHQg IDYgbW9yZSB0ZXh0CisKK1RodSBBdWcgIDUgMTE6MzE6MTQgRURUIDE5OTMKKyAgbGliaTc3OiBs cmVhZC5jOiBmaXggYnVnIGluIGhhbmRsaW5nIHJlcGV0aXRpb24gY291bnRzIGZvciBsb2dpY2Fs CitkYXRhIChkdXJpbmcgbGlzdCBvciBuYW1lbGlzdCBpbnB1dCkuICBDaGFuZ2Ugc3RydWN0IGZf X3N5bCB0bworc3RydWN0IHN5bCAoZm9yIGJ1Z2d5IGNvbXBpbGVycykuCisKK1NhdCBBdWcgIDcg MTY6MDU6MzAgRURUIDE5OTMKKyAgbGliaTc3OiBscmVhZC5jIChhZ2Fpbik6IGZpeCBidWcgaW4g bmFtZWxpc3QgcmVhZGluZyBvZiBpbmNvbXBsZXRlCitsb2dpY2FsIGFycmF5cy4KKyAgRml4IG1p bm9yIGNhbGxpbmctc2VxdWVuY2UgZXJyb3JzIGluIGZvcm1hdC5jLCBvdXRwdXQuYywgcHV0cGNj LmM6CitzaG91bGQgYmUgaW52aXNpYmxlLgorCitNb24gQXVnICA5IDA5OjEyOjM4IEVEVCAxOTkz CisgIEZpeCBlcnJvbmVvdXMgY2FzdCB1bmRlciAtQSBpbiB0cmFuc2xhdGluZworCWNoYXJhY3Rl ciooKikgZnVuY3Rpb24gZ2V0YygpCisJZ2V0YygyOjMpPScgJwkJIXdyb25nIGNhc3QgaW4gZmly c3QgYXJnIHRvIHNfY29weQorCWVuZAorICBsaWJpNzc6IGxyZWFkLmM6IGZpeCBidWcgaW4gbmFt ZWxpc3QgcmVhZGluZyBvZiBhbiBpbmNvbXBsZXRlIGFycmF5CitvZiBudW1lcmljIGRhdGEgZm9s bG93ZWQgYnkgYW5vdGhlciBuYW1lbGlzdCBpdGVtIHdob3NlIG5hbWUgc3RhcnRzCit3aXRoICdk JywgJ0QnLCAnZScsIG9yICdFJy4KKworRnJpIEF1ZyAyMCAxMzoyMjoxMCBFRFQgMTk5MworICBG aXggYnVnIGluIGRvIHdoaWxlIHJldmVhbGVkIGJ5CisJc3Vicm91dGluZSBza2RpZyAobGluZSwg aSkKKwljaGFyYWN0ZXIgbGluZSooKiksIGNoKjEKKwlpbnRlZ2VyIGkKKwlsb2dpY2FsIGlzZGln aXQKKwlpc2RpZ2l0KGNoKSA9IGNoLmdlLicwJyAuYW5kLiBjaC5sZS4nOScKKwlkbyB3aGlsZSAo aXNkaWdpdChsaW5lKGk6aSkpKQkhIGNoX18xWzBdIHdhcyBzZXQgYmVmb3JlCisJCQkJCSEgIndo aWxlKC4uLikgey4uLn0iCisJCWkgPSBpICsgMQorCQllbmRkbworCWVuZAorCitGcmkgQXVnIDI3 IDA4OjIyOjU0IEVEVCAxOTkzCisgIEFkZCAjaWZkZWZzIHRvIGF2b2lkIGRlY2xhcmluZyBhdG9s IHdoZW4gaXQgaXMgYSBtYWNybzsgdmVyc2lvbi5jCitub3QgdXBkYXRlZC4KKworV2VkIFNlcCAg OCAxMjoyNDoyNiBFRFQgMTk5MworICBsaWJpNzc6IG9wZW4uYzogcHJvdGVjdCAjaW5jbHVkZSAi c3lzLy4uLiIgd2l0aAorI2lmbmRlZiBOT05fVU5JWF9TVERJTzsgVmVyc2lvbiBkYXRlIG5vdCBj aGFuZ2VkLgorCitUaHUgU2VwICA5IDA4OjUxOjIxIEVEVCAxOTkzCisgIEFkanVzdCAiaW5jbHVk ZSIgdG8gaW50ZXJwcmV0IGZpbGUgbmFtZXMgcmVsYXRpdmUgdG8gdGhlIGRpcmVjdG9yeQorb2Yg dGhlIGZpbGUgdGhhdCBjb250YWlucyB0aGUgImluY2x1ZGUiLgorCitGcmkgU2VwIDI0IDAwOjU2 OjEyIEVEVCAxOTkzCisgIEZpeCBvZmZzZXQgZXJyb3IgcmVzdWx0aW5nIGZyb20gcmVwZWF0aW5n IHRoZSBzYW1lIGVxdWl2YWxlbmNlCitzdGF0ZW1lbnQgdHdpY2UuICBFeGFtcGxlOgorCXJlYWwg YSgyKSwgYigyKQorCWVxdWl2YWxlbmNlIChhKDIpLCBiKDIpKQorCWVxdWl2YWxlbmNlIChhKDIp LCBiKDIpKQorCWVuZAorICBJbmNyZWFzZSBNQVhUT0tFTkxFTiAodG8gcm91Z2hseSB0aGUgbGFy Z2VzdCBhbGxvd2VkIGJ5IEFOU0kgQykuCisKK01vbiBTZXAgMjcgMDg6NTU6MDkgRURUIDE5OTMK KyAgbGliaTc3OiBlbmRmaWxlLmM6IHByb3RlY3QgI2luY2x1ZGUgInN5cy90eXBlcy5oIiB3aXRo CisjaWZuZGVmIE5PTl9VTklYX1NURElPOyBWZXJzaW9uLmMgbm90IGNoYW5nZWQuCisKK0ZyaSBP Y3QgMTUgMTU6Mzc6MjYgRURUIDE5OTMKKyAgRml4IHJhcmVseSBzZWVuIHBhcnNpbmcgYnVnIGls bHVzdHJhdGVkIGJ5CisJc3Vicm91dGluZSBmb28oeGFiY2RlZmdoaWopCisJY2hhcmFjdGVyKigq KSB4YWJjZGVmZ2hpagorICAgICAgICAgICAgICAgSUYgKHhhYmNkZWZnaGlqLk5FLicjIycpIEdP VE8gNDAKKyA0MAllbmQKK2luIHdoaWNoIHRoZSBzcGFjaW5nIGluIHRoZSBJRiBsaW5lIGlzIGNy dWNpYWwuCisKK1RodSBPY3QgMjEgMTM6NTU6MTEgRURUIDE5OTMKKyAgR2l2ZSBtb3JlIG1lYW5p bmdmdWwgZXJyb3IgbWVzc2FnZSAodGhlbiAidW5leHBlY3RlZCBjaGFyYWN0ZXIgaW4KK2NkcyIp IHdoZW4gY29uc3RhbnQgc2ltcGxpZmljYXRpb24gbGVhZHMgdG8gSW5maW5pdHkgb3IgTmFOLgor CitXZWQgTm92IDEwIDE1OjAxOjA1IEVTVCAxOTkzCisgIGxpYmk3NzogYmFja3NwYWNlLmM6IGFk anVzdCwgdW5kZXIgLURNU0RPUywgdG8gY29wZSB3aXRoIE1TRE9TCit0ZXh0IGZpbGVzLCBhcyBo YW5kbGVkIGJ5IHNvbWUgcG9wdWxhciBQQyBDIGNvbXBpbGVycy4gIEJld2FyZToKK3RoZSAoZGVm ZWN0aXZlKSBsaWJyYXJpZXMgYXNzb2NpYXRlZCB3aXRoIHRoZXNlIGNvbXBpbGVycyBhc3N1bWUg bGluZXMKK2VuZCB3aXRoIFxyXG4gKGNvbnZlbnRpb25hbCBNUy1ET1MgdGV4dCBmaWxlcykgLS0g YW5kIGZ0ZWxsIChhbmQKK2hlbmNlIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIG9mIGJhY2tz cGFjZSkgc2NyZXdzIHVwIGlmIGxpbmVzIHdpdGgKK2p1c3QgXG4uCisKK1RodSBOb3YgMTggMDk6 Mzc6NDcgRVNUIDE5OTMKKyAgR2l2ZSBhIGJldHRlciBlcnJvciAodGhhbiAiY29udHJvbCBzdGFj ayBlbXB0eSIpIGZvciBhbiBleHRyYW5lb3VzCitFTkRETy4gIEV4YW1wbGU6CisJZW5kZG8KKwll bmQKKyAgVXBkYXRlIGNvbW1lbnRzIGFib3V0IGZ0cCBpbiAicmVhZG1lIGZyb20gZjJjIi4KKwor U3VuIE5vdiAyOCAxNzoyNjo1MCBFU1QgMTk5MworICBDaGFuZ2UgZm9ybWF0IG9mIHRpbWUgc3Rh bXAgaW4gdmVyc2lvbi5jIHRvIHl5eXltbWRkLgorICBTb3J0IHBhcmFtZXRlciBhZGp1c3RtZW50 cyAob3IgY29tcGxhaW4gb2YgaW1wb3NzaWJsZSBkZXBlbmRlbmNpZXMpCitzbyB0aGF0IGR1bW15 IGFyZ3VtZW50cyBhcmUgcmVmZXJlbmNlZCBvbmx5IGFmdGVyIGJlaW5nIGFkanVzdGVkLgorRXhh bXBsZToKKwlzdWJyb3V0aW5lIGZvbyhhLGIpCisJaW50ZWdlciBhKDIpCQkhIGEgbXVzdCBiZSBh ZGp1c3RlZCBiZWZvcmUgYgorCWRvdWJsZSBwcmVjaXNpb24gYihhKDEpLGEoMikpCisJY2FsbCBn b28oYigzLDQpKQorCWVuZAorICBBZGp1c3Qgc3RydWN0cyBmb3IgaW5pdGlhbGl6ZWQgY29tbW9u IGJsb2NrcyBhbmQgZXF1aXZhbGVuY2UgY2xhc3NlcwordG8gb21pdCB0aGUgdHJhaWxpbmcgc3Ry dWN0IGNvbXBvbmVudCBhZGRlZCB0byBmb3JjZSBhbGlnbm1lbnQgd2hlbgorcGFkZGluZyBhbHJl YWR5IGZvcmNlcyB0aGUgZGVzaXJlZCBhbGlnbm1lbnQuICBFeGFtcGxlOgorCVBST0dSQU0gVEVT VAorCUNPTU1PTiAvWi8gQSwgQ0MKKwlDSEFSQUNURVIqNCBDQworCURBVEEgY2MgLydhJy8KKwlF TkQKK25vdyBnaXZlcworCXN0cnVjdCB7CisJICAgIGludGVnZXIgZmlsbF8xWzFdOworCSAgICBj aGFyIGVfMls0XTsKKwkgICAgfSB6XyA9IHsgezB9LCB7J2EnLCAnICcsICcgJywgJyAnfSB9Owor cmF0aGVyIHRoYW4KK3N0cnVjdCB7CisgICAgaW50ZWdlciBmaWxsXzFbMV07CisgICAgY2hhciBl XzJbNF07CisgICAgcmVhbCBlXzM7CisgICAgfSB6XyA9IHsgezB9LCB7J2EnLCAnICcsICcgJywg JyAnfSwgKGZsb2F0KTAuIH07CisKK1dlZCBEZWMgIDggMTY6MjQ6NDMgRVNUIDE5OTMKKyAgQWRq dXN0IGxleC5jIHRvIHJlY29nbml6ZSAjIG5ubiAiZmlsZW5hbWUiIGxpbmVzIGVtaXR0ZWQgYnkg Y3BwOwordGhpcyBhZmZlY3RzIHRoZSBmaWxlIG5hbWVzIGFuZCBsaW5lIG51bWJlcnMgaW4gZXJy b3IgbWVzc2FnZXMgYW5kCit0aGUgI2xpbmUgbGluZXMgZW1pdHRlZCB1bmRlciAtZy4KKyAgVW5k ZXIgLWcsIGFycmFuZ2UgZm9yIGEgZmlsZSB0aGF0IHN0YXJ0cyB3aXRoIGFuIGV4ZWN1dGFibGUK K3N0YXRlbWVudCB0byBoYXZlIHRoZSBmaXJzdCAjbGluZSBsaW5lIGluZGljYXRlIGxpbmUgMSwg cmF0aGVyCit0aGFuIHRoZSBsaW5lIG51bWJlciBvZiB0aGUgRU5EIHN0YXRlbWVudCBlbmRpbmcg dGhlIG1haW4gcHJvZ3JhbS4KKyAgQWRqdXN0IGZjIHNjcmlwdCB0byBydW4gZmlsZXMgZW5kaW5n IGluIC5GIHRocm91Z2ggL2xpYi9jcHAuCisgIEZpeCBidWcgKCJJbXBvc3NpYmxlIHRhZyAyIikg aW4KKwlpZiAodCAuZXEuICgwLDIpKSB3cml0ZSgqLCopICdCdWchJworCWVuZAorICBsaWJpNzc6 IGlpby5jOiBhZGp1c3QgaW50ZXJuYWwgZm9ybWF0dGVkIHJlYWRzIHRvIHRyZWF0IHNob3J0IHJl Y29yZHMKK2FzIHRob3VnaCBwYWRkZWQgd2l0aCBibGFua3MgKHJhdGhlciB0aGFuIGNhdXNpbmcg YW4gIm9mZiBlbmQgb2YgcmVjb3JkIgorZXJyb3IpLgorCitXZWQgRGVjIDE1IDE1OjE5OjE1IEVT VCAxOTkzCisgIGZjOiBhZGp1c3RlZCBmb3IgLkYgZmlsZXMgdG8gcGFzcyAtRCBhbmQgLUkgb3B0 aW9ucyB0byBjcHAuCisKK0ZyaSBEZWMgMTcgMjA6MDM6MzggRVNUIDE5OTMKKyAgRml4IGJvdGNo IGludHJvZHVjZWQgMjggTm92LiAxOTkzIGluIHZheC5jOyBjaGFuZ2UgInZlcnNpb24gb2YiCit0 byAidmVyc2lvbiIuCisKK1R1ZSBKYW4gIDQgMTU6Mzk6NTIgRVNUIDE5OTQKKyAgbXNkb3MvZjJj eC5leGUuWiBhbmQgbXNkb3MvZjJjLmV4ZS5aIHVwZGF0ZWQgKGZ0cCBhY2Nlc3Mgb25seSkuCisK K1dlZCBKYW4gMTkgMDg6NTU6MTkgRVNUIDE5OTQKKyAgQXJyYW5nZSB0byBhY2NlcHQKKwlpbnRl Z2VyCU54LCBOeSwgTnoKKwlwYXJhbWV0ZXIJKE54ID0gMTAsIE55ID0gMjApCisJcGFyYW1ldGVy CShOeiA9IG1heChOeCwgTnkpKQorCWludGVnZXIJYyhOeikKKwljYWxsIGZvbyhjKQorCWVuZAor cmF0aGVyIHRoYW4gY29tcGxhaW5pbmcgIkRlY2xhcmF0aW9uIGVycm9yIGZvciBjOiBhZGp1c3Rh YmxlIGRpbWVuc2lvbgorb24gbm9uLWFyZ3VtZW50Ii4gIFRoZSBuZWNlc3NhcnkgY2hhbmdlcyBj YXVzZSBzb21lIGhpdGhlcnRvIHVuZm9sZGVkCitjb25zdGFudCBleHByZXNzaW9ucyB0byBiZSBm b2xkZWQuCisgIEFjY2VwdCBCWVRFIGFzIGEgc3lub255bSBmb3IgSU5URUdFUioxLgorCitUaHUg SmFuIDI3IDA4OjU3OjQwIEVTVCAxOTk0CisgIEZpeCBib3RjaCBpbiBjaGFuZ2VzIG9mIDE5IEph bi4gMTk5NCB0aGF0IGJyb2tlIGVudHJ5IHBvaW50cyB3aXRoCittdWx0aS1kaW1lbnNpb25hbCBh cnJheSBhcmd1bWVudHMgdGhhdCBkaWQgbm90IGFwcGVhciBpbiB0aGUgc3VicHJvZ3JhbQorYXJn dW1lbnQgbGlzdCBhbmQgd2hvc2UgbGVhZGluZyBkaW1lbnNpb25zIGRlcGVuZCBvbiBhcmd1bWVu dHMuCisKK01vbiBGZWIgIDcgMDk6MjQ6MzAgRVNUIDE5OTQKKyAgUmVtb3ZlIGFydGlmYWN0IGlu ICJmYyIgc2NyaXB0IHRoYXQgY2F1c2VkIC1PIHRvIGJlIGlnbm9yZWQ6CisJODdjODcKKwk8CQkj IGxjYyBpZ25vcmVzIC1PLi4uCisJLS0tCisJPgkJQ0ZMQUdTPSIkQ0ZMQUdTICRPIgorCitTdW4g RmViIDIwIDE3OjA0OjU4IEVTVCAxOTk0CisgIEZpeCBidWdzIHJlYWRpbmcgLlAgZmlsZXMgZm9y IHJvdXRpbmVzIHdpdGggYXJndW1lbnRzIG9mIHR5cGUKK0lOVEVHRVIqMSwgSU5URUdFUio4LCBM T0dJQ0FMKjIuCisgIEZpeCBnbGl0Y2ggaW4gcmVwb3J0aW5nIGluY29uc2lzdGVudCBhcmd1bWVu dHMgZm9yIHJvdXRpbmVzIGludm9sdmluZworY2hhcmFjdGVyIGFyZ3VtZW50czogICJhcmcgbiIg aGFkIG4gdG9vIGxhcmdlIGJ5IHRoZSBudW1iZXIgb2YKK2NoYXJhY3RlciBhcmd1bWVudHMuCisK K1R1ZSBGZWIgMjIgMjA6NTA6MDggRVNUIDE5OTQKKyAgVHJpdmlhbCBjaGFuZ2VzIHRvIGRhdGEu YyBmb3JtYXQuYyBtYWluLmMgbmljZXByaW50Zi5jIG91dHB1dC5oIGFuZAorc3lzZGVwLmggKGNv bnNpc3RlbmN5IGltcHJvdmVtZW50cykuCisgIGxpYkk3NzogbHJlYWQuYzogY2hlY2sgZm9yIE5V TEwgcmV0dXJuIGZyb20gcmVhbGxvYy4KKworRnJpIEZlYiAyNSAyMzo1NjowOCBFU1QgMTk5NAor ICBvdXRwdXQuYywgc3lzZGVwLmg6IGFycmFuZ2UgZm9yIC1EVVNFX0RUT0EgdG8gdXNlIGR0b2Eu YyBhbmQgZ19mbXQuYworZm9yIGNvcnJlY3RseSByb3VuZGVkIGRlY2ltYWwgdmFsdWVzIG9uIElF RUUtYXJpdGhtZXRpYyBtYWNoaW5lcworKHBsdXMgbWFjaGluZXMgd2l0aCBWQVggYW5kIElCTS1t YWluZnJhbWUgYXJpdGhtZXRpYykuICBUaGVzZQorcm91dGluZXMgYXJlIGF2YWlsYWJsZSBmcm9t IG5ldGxpYidzIGZwIGRpcmVjdG9yeS4KKyAgbXNkb3MvZjJjeC5leGUuWiBhbmQgbXNkb3MvZjJj LmV4ZS5aIHVwZGF0ZWQgKGZ0cCBhY2Nlc3Mgb25seSk7IHRoZQorZm9ybWVyIHVzZXMgLURVU0Vf RFRPQSB0byBrZWVwIDEyIGZyb20gcHJpbnRpbmcgYXMgMTIuMDAwMDAwMDAwMDAwMDAxLgorICB2 YXguYzogZml4IHdyb25nIGFyZ3VtZW50cyB0byBiYWR0YWcgYW5kIGZyY2hhaW4gaW50cm9kdWNl ZAorMjggTm92LiAxOTkzLgorICBTb3VyY2UgZm9yIGYyYyBjb252ZXJ0ZWQgdG8gQU5TSS9JU08g Zm9ybWF0LCB3aXRoIHRoZSBLJlIgZm9ybWF0CithdmFpbGFibGUgYnkgY29tcGlsYXRpb24gd2l0 aCAtREtSX2hlYWRlcnMgLgorICBBcnJhbmdlIGZvciAoZG91YmxlIHByZWNpc2lvbiBleHByZXNz aW9uKSByZWxvcCAoc2luZ2xlIHByZWNpc2lvbgorY29uc3RhbnQpIHRvIHJldGFpbiB0aGUgc2lu Z2xlLXByZWNpc2lvbiBuYXR1cmUgb2YgdGhlIGNvbnN0YW50LgorRXhhbXBsZToKKwlkb3VibGUg cHJlY2lzaW9uIHQKKwlpZiAodCAuZXEuIDAuMykgLi4uCisKK01vbiBGZWIgMjggMTE6NDA6MjQg RVNUIDE5OTQKKyAgUkVBRE1FIHVwZGF0ZWQgdG8gcmVmbGVjdCBhIG1vZGlmaWNhdGlvbiBqdXN0 IG1hZGUgdG8gbmV0bGliJ3MKKyJkdG9hLmMgZnJvbSBmcCI6Cis5NmE5NywxMDUKKz4gQWxzbyBh ZGQgdGhlIHJ1bGUKKz4KKz4gCWR0b2EubzogZHRvYS5jCis+IAkJJChDQykgLWMgJChDRkxBR1Mp IC1ETUFMTE9DPWNrYWxsb2MgLURJRUVFLi4uIGR0b2EuYworPgorPiAod2l0aG91dCB0aGUgaW5p dGlhbCB0YWIpIHRvIHRoZSBtYWtlZmlsZSwgd2hlcmUgSUVFRS4uLiBpcyBvbmUgb2YKKz4gSUVF RV9NQzY4aywgSUVFRV84MDg3LCBWQVgsIG9yIElCTSwgZGVwZW5kaW5nIG9uIHlvdXIgbWFjaGlu ZSdzCis+IGFyaXRobWV0aWMuICBTZWUgdGhlIGNvbW1lbnRzIG5lYXIgdGhlIHN0YXJ0IG9mIGR0 b2EuYy4KKz4KKworU2F0IE1hciAgNSAwOTo0MTo1MiBFU1QgMTk5NAorICBDb21wbGFpbiBhYm91 dCBmdW5jdGlvbnMgd2l0aCB0aGUgbmFtZSBvZiBhIHByZXZpb3VzbHkgZGVjbGFyZWQKK2NvbW1v biBibG9jayAod2hpY2ggaXMgaWxsZWdhbCkuCisgIE5ldyBvcHRpb24gLWQgc3BlY2lmaWVzIHRo ZSBkaXJlY3RvcnkgZm9yIG91dHB1dCAuYyBhbmQgLlAgZmlsZXM7CitmMmMuMSBhbmQgZjJjLjF0 IHVwZGF0ZWQuICBUaGUgZm9ybWVyIHVuZG9jdW1lbnRlZCBkZWJ1ZyBvcHRpb24gLWRubm4KK2lz IG5vdyAtRG5ubi4KKworVGh1IE1hciAxMCAxMDoyMTo0NCBFU1QgMTk5NAorICBsaWJmNzc6IGFk ZCAjdW5kZWYgbWluIGFuZCAjdW5kZWYgbWF4IGxpbmVzIHRvIHNfcGF1cy5jIHNfc3RvcC5jCith bmQgc3lzdGVtXy5jOyBWZXJzaW9uLmMgbm90IGNoYW5nZWQuCisgIGxpYmk3NzogYWRkIC1EUGFk X1VEcmVhZCBsaW5lcyB0byB1aW8uYyBhbmQgZXhwbGFuYXRpb24gdG8gUkVBRE1FOgorICAgIFNv bWUgYnVnZ3kgRm9ydHJhbiBwcm9ncmFtcyB1c2UgdW5mb3JtYXR0ZWQgZGlyZWN0IEkvTyB0byB3 cml0ZQorICAgIGFuIGluY29tcGxldGUgcmVjb3JkIGFuZCBsYXRlciByZWFkIG1vcmUgZnJvbSB0 aGF0IHJlY29yZCB0aGFuCisgICAgdGhleSBoYXZlIHdyaXR0ZW4uICBGb3IgcmVjb3JkcyBvdGhl ciB0aGFuIHRoZSBsYXN0LCB0aGUgdW53cml0dGVuCisgICAgcG9ydGlvbiBvZiB0aGUgcmVjb3Jk IHJlYWRzIGFzIGJpbmFyeSB6ZXJvcy4gIFRoZSBsYXN0IHJlY29yZCBpcworICAgIGEgc3BlY2lh bCBjYXNlOiBhdHRlbXB0aW5nIHRvIHJlYWQgbW9yZSBmcm9tIGl0IHRoYW4gd2FzIHdyaXR0ZW4K KyAgICBnaXZlcyBlbmQtb2YtZmlsZSAtLSB3aGljaCBtYXkgaGVscCBvbmUgZmluZCBhIGJ1Zy4g IFNvbWUgb3RoZXIKKyAgICBGb3J0cmFuIEkvTyBsaWJyYXJpZXMgdHJlYXQgdGhlIGxhc3QgcmVj b3JkIG5vIGRpZmZlcmVudGx5IHRoYW4KKyAgICBvdGhlcnMgYW5kIHRodXMgZ2l2ZSBubyBoZWxw IGluIGZpbmRpbmcgdGhlIGJ1ZyBvZiByZWFkaW5nIG1vcmUKKyAgICB0aGFuIHdhcyB3cml0dGVu LiAgSWYgeW91IHdpc2ggdG8gaGF2ZSB0aGlzIGJlaGF2aW9yLCBjb21waWxlCisgICAgdWlvLmMg d2l0aCAtRFBhZF9VRHJlYWQgLgorVmVyc2lvbi5jIG5vdCBjaGFuZ2VkLgorCitUdWUgTWFyIDI5 IDE3OjI3OjU0IEVTVCAxOTk0CisgIEFkanVzdCBtYWtlX3BhcmFtIHNvIGRpbWVuc2lvbnMgaW52 b2x2aW5nIG1pbiwgbWF4LCBhbmQgb3RoZXIKK2NvbXBsaWNhdGVkIGNvbnN0YW50IGV4cHJlc3Np b25zIGRvIG5vdCBwcm92b2tlIGVycm9yIG1lc3NhZ2VzCithYm91dCBhZGp1c3RhYmxlIGRpbWVu c2lvbnMgb24gbm9uLWFyZ3VtZW50cy4KKyAgRml4IGJvdGNoIGludHJvZHVjZWQgMTkgSmFuIDE5 OTQ6ICJhZGp1c3RhYmxlIGRpbWVuc2lvbiBvbiBub24tCithcmd1bWVudCIgbWVzc2FnZXMgY291 bGQgY2F1c2Ugc29tZSB0aGluZ3MgdG8gYmUgZnJlZWQgdHdpY2UuCisKK1R1ZSBNYXkgMTAgMDc6 NTU6MTIgRURUIDE5OTQKKyAgVHJpdmlhbCBjaGFuZ2VzIHRvIGV4ZWMuYywgcDFvdXRwdXQuYywg cGFyc2VfYXJncy5jLCBwcm9jLmMsCithbmQgcHV0cGNjLmM6IGNoYW5nZSBhcmd1bWVudHMgZnJv bQorCXR5cGUgZm9vW10KK3RvCisJdHlwZSAqZm9vCitmb3IgY29uc2lzdGVuY3kgd2l0aCBkZWZz LmguICBGb3IgbW9zdCBjb21waWxlcnMsIHRoaXMgbWFrZXMgbm8KK2RpZmZlcmVuY2UuCisKK1Ro dSBKdW4gIDIgMTI6MTg6MTggRURUIDE5OTQKKyAgRml4IGJ1ZyBpbiBoYW5kbGluZyBGT1JNQVQg c3RhdGVtZW50cyB0aGF0IGhhdmUgYWRqYWNlbnQgY2hhcmFjdGVyCisob3IgSG9sbGVyaXRoKSBz dHJpbmdzOiBhbiBleHRyYW5lb3VzIFwwMDIgYXBwZWFyZWQgYmV0d2VlbiB0aGUKK3N0cmluZ3Mu CisgIGxpYmY3NzogdW5kZXIgLUROT19PTkVYSVQsIGFycmFuZ2UgZm9yIGZfZXhpdCB0byBiZSBj YWxsZWQganVzdAorb25jZTsgcHJldmlvdXNseSwgdXBvbiBhYm5vcm1hbCB0ZXJtaW5hdGlvbiAo aW5jbHVkaW5nIHN0b3Agc3RhdGVtZW50cyksCitpdCB3YXMgY2FsbGVkIHR3aWNlLgorCitNb24g SnVuICA2IDE1OjUyOjU3IEVEVCAxOTk0CisgIGxpYmY3NzogQXZvaWQgcmVmZXJlbmNlcyB0byBT SUdBQlJUIGFuZCBTSUdJT1QgaWYgbmVpdGhlciBpcyBkZWZpbmVkOworVmVyc2lvbi5jIG5vdCBj aGFuZ2VkLgorICBsaWJpNzc6IEFkZCBjYXN0IHRvIGRlZmluaXRpb24gb2YgZXJyZmwoKSBpbiBm aW8uaDsgdGhpcyBvbmx5IG1hdHRlcnMKK29uIHN5c3RlbXMgd2l0aCBzaXplb2YoaW50KSA8IHNp emVvZihsb25nKS4gIFVuZGVyIC1ETk9OX1VOSVhfU1RESU8sCit1c2UgYmluYXJ5IG1vZGUgZm9y IGRpcmVjdCBmb3JtYXR0ZWQgZmlsZXMgKHRvIGF2b2lkIGFueSBjb25mdXNpb24KK2Nvbm5lY3Rl ZCB3aXRoIFxuIGNoYXJhY3RlcnMpLgorCitGcmkgSnVuIDEwIDE2OjQ3OjMxIEVEVCAxOTk0Cisg IEZpeCBidWcgdW5kZXIgLUEgaW4gaGFuZGxpbmcgdW5yZWZlcmVuY2VkIChhbmQgdW5kZWNsYXJl ZCkKK2V4dGVybmFsIGFyZ3VtZW50cyBpbiBzdWJyb3V0aW5lcyB3aXRoIG11bHRpcGxlIGVudHJ5 IHBvaW50cy4gIEV4YW1wbGU6CisJc3Vicm91dGluZSBtKGZjbixmdXRpbCkKKwlleHRlcm5hbCBm Y24sZnV0aWwKKwljYWxsIGZjbgorCWVudHJ5IG1pbnRpbyhpMSkgISAoRF9mcCkwIHJhdGhlciB0 aGFuIChVX2ZwKTAgZm9yIGZ1dGlsCisJZW5kCisKK1dlZCBKdW4gMTUgMTA6Mzg6MTQgRURUIDE5 OTQKKyAgQWxsb3cgY2hhcihjb25zdGFudCBleHByZXNzaW9uKSBmdW5jdGlvbiBpbiBwYXJhbWV0 ZXIgZGVjbGFyYXRpb25zLgorKFRoaXMgd2FzIHByb2JhYmx5IGJyb2tlbiBpbiB0aGUgY2hhbmdl cyBvZiAyOSBNYXJjaCAxOTk0LikKKworRnJpIEp1bCAgMSAyMzo1NDowMCBFRFQgMTk5NAorICBN aW5vciBhZGp1c3RtZW50cyB0byBtYWtlZmlsZSAocnVsZSBmb3IgZjJjLjEgY29tbWVudGVkIG91 dCkgYW5kCitzeXNkZXAuaCAoI3VuZGVmIEtSX2hlYWRlcnMgaWYgX19TVERDX18gaXMgI2RlZmlu ZWQsIGFuZCBiYXNlIHRlc3QKK2ZvciBBTlNJX0xpYnJhcmllcyBhbmQgQU5TSV9Qcm90b3R5cGVz IG9uIEtSX2hlYWRlcnMgcmF0aGVyIHRoYW4KK19fU1REQ19fKTsgdmVyc2lvbi5jIHRvdWNoZWQg YnV0IG5vdCBjaGFuZ2VkLgorICBsaWJpNzc6IGFkanVzdCBmcC5oIHNvIGxvY2FsLmggaXMgb25s eSBuZWVkZWQgdW5kZXIgLURWMTA7CitWZXJzaW9uLmMgbm90IGNoYW5nZWQuCisKK1R1ZSBKdWwg IDUgMDM6MDU6NDYgRURUIDE5OTQKKyAgRml4IHNlZ21lbnRhdGlvbiBmYXVsdCBpbgorCXN1YnJv dXRpbmUgZm9vKGEsYixrKQorCWRhdGEgaS8xLworCWRvdWJsZSBwcmVjaXNpb24gYShrLDEpCSEg c2VxdWVuY2UgZXJyb3I6IG11c3QgcHJlY2VkZSBkYXRhCisJYiA9IGEoaSwxKQorCWVuZAorICBs aWJpNzc6IEZpeCBidWcgKGludHJvZHVjZWQgNiBKdW5lIDE5OTQ/KSBpbiByZW9wZW5pbmcgZmls ZXMgdW5kZXIKK05PTl9VTklYX1NURElPLgorICBGaXggc29tZSBlcnJvciBtZXNzYWdlcyBjYXVz ZWQgYnkgaWxsZWdhbCBGb3J0cmFuLiAgRXhhbXBsZXM6CisqIDEuCisJeChpKSA9IDAgICFNaXNz aW5nIGRlY2xhcmF0aW9uIGZvciBhcnJheSB4CisJY2FsbCBmKHgpICFTYWlkIEltcG9zc2libGUg c3RvcmFnZSBjbGFzcyA4IGluIHJvdXRpbmUgbWthZGRyCisJZW5kCSAgIU5vdyBzYXlzIGludmFs aWQgdXNlIG9mIHN0YXRlbWVudCBmdW5jdGlvbiB4CisqIDIuCisJZiA9IGcJIU5vIGRlY2xhcmF0 aW9uIGZvciBnOyBieSBkZWZhdWx0IGl0J3MgYSByZWFsIHZhcmlhYmxlCisJY2FsbCBnCSFTYWlk IGludmFsaWQgY2xhc3MgY29kZSAyIGZvciBmdW5jdGlvbiBnCisJZW5kCSFOb3cgc2F5cyBnIGNh bm5vdCBiZSBjYWxsZWQKKyogMy4KKwlpbnRyaW5zaWMgZm9vCSFJbnZhbGlkIGludHJpbnNpYyBu YW1lCisJYSA9IGZvbyhiKQkhU2FpZCBpbnRyY2FsbDogYmFkIGludHJncm91cCAwCisJZW5kCQkh Tm93IGp1c3QgY29tcGxhaW5zIGFib3V0IGxpbmUgMQorCitUdWUgSnVsICA1IDExOjE0OjI2IEVE VCAxOTk0CisgIEZpeCBnbGl0Y2ggaW4gaGFuZGxpbmcgZXJyb25lb3VzIHN0YXRlbWVudCBmdW5j dGlvbiBkZWNsYXJhdGlvbnMuCitFeGFtcGxlOgorCWEoaihpKSAtIGkpID0gYShqKGkpIC0gaSkg KyAxCSEgYmFkIHN0YXRlbWVudCBmdW5jdGlvbgorCWNhbGwgZm9vKGEoMykpCSEgU2FpZCBJbXBv c3NpYmxlIHR5cGUgMCBpbiByb3V0aW5lIG1rdG1wbgorCWVuZAkJISBOb3cgd2FybnMgdGhhdCBp IGFuZCBqIGFyZSBub3QgdXNlZAorCitXZWQgSnVsICA2IDE3OjMxOjI1IEVEVCAxOTk0CisgIFR3 ZWFrIHRlc3QgZm9yIHN0YXRlbWVudCBmdW5jdGlvbnMgdGhhdCAoaWxsZWdhbGx5KSBjYWxsIHRo ZW1zZWx2ZXM7CitmMmMgd2lsbCBub3cgcHJvY2VlZCB0byBjaGVjayBmb3Igb3RoZXIgZXJyb3Jz LCByYXRoZXIgdGhhbiBiYWlsaW5nCitvdXQgYXQgdGhlIGZpcnN0IHJlY3Vyc2l2ZSBzdGF0ZW1l bnQgZnVuY3Rpb24gcmVmZXJlbmNlLgorICBXYXJuIGFib3V0IGJ1dCByZXRhaW4gZGl2aXNpb25z IGJ5IDAgKGluc3RlYWQgb2YgY2FsbGluZyB0aGVtCisiY29tcGlsZXIgZXJyb3JzIiBhbmQgcXVp dGluZykuICBPbiBJRUVFIG1hY2hpbmVzLCB0aGlzIHBlcm1pdHMKKwlkb3VibGUgcHJlY2lzaW9u IG5hbiwgbmluZiwgcGluZgorCW5hbiA9IDAuZDAvMC5kMAorCXBpbmYgPSAxLmQwLzAuZDAKKwlu aW5mID0gLTEuZDAvMC5kMAorCXdyaXRlKCosKikgJ25hbiwgcGluZiwgbmluZiA9ICcsIG5hbiwg cGluZiwgbmluZgorCWVuZAordG8gcHJpbnQKKwluYW4sIHBpbmYsIG5pbmYgPSAgIE5hTiAgSW5m aW5pdHkgLUluZmluaXR5CisgIGxpYmk3Nzogd3JlZi5jOiBwcm90ZWN0IHdpdGggI2lmZGVmIEdP T0RfU1BSSU5URl9FWFBPTkVOVCBhbgorb3B0aW1pemF0aW9uIHRoYXQgcmVxdWlyZXMgZXhwb25l bnRzIHRvIGhhdmUgMiBkaWdpdHMgd2hlbiAyIGRpZ2l0cworc3VmZmljZS4gIGx3cml0ZS5jIHdz ZmUuYyAobGlzdCBhbmQgZm9ybWF0dGVkIGV4dGVybmFsIG91dHB1dCk6CitvbWl0ICcgJyBjYXJy aWFnZS1jb250cm9sIHdoZW4gY29tcGlsZWQgd2l0aCAtRE9NSVRfQkxBTktfQ0MgLgorT2ZmLWJ5 LW9uZSBidWcgZml4ZWQgaW4gY2hhcmFjdGVyIGNvdW50IGZvciBsaXN0IG91dHB1dCBvZiBjaGFy YWN0ZXIKK3N0cmluZ3MuICBPbWl0ICcuJyBpbiBsaXN0LWRpcmVjdGVkIHByaW50aW5nIG9mIE5h biwgSW5maW5pdHkuCisKK01vbiBKdWwgMTEgMTM6MDU6MzMgRURUIDE5OTQKKyAgc3JjL2dyYW0u YyB1cGRhdGVkLgorCitUdWUgSnVsIDEyIDEwOjI0OjQyIEVEVCAxOTk0CisgIGxpYmk3Nzogd3J0 Zm10LmM6IHVuZGVyIEcxMS40LCB3cml0ZSAwLiBhcyAiICAuMDAwMCAgICAiIHJhdGhlcgordGhh biAiICAuMDAwMEUrMDAiLgorCitUaHUgSnVsIDE0IDE3OjU1OjQ2IEVEVCAxOTk0CisgIEZpeCBn bGl0Y2ggaW4gY2hhbmdlcyBvZiA2IEp1bHkgMTk5NCB0aGF0IGNvdWxkIGNhdXNlIGVycm9uZW91 cworImRpdmlzaW9uIGJ5IHplcm8iIHdhcm5pbmdzIChvciB3b3JzZSkuICBFeGFtcGxlOgorCXN1 YnJvdXRpbmUgZm9vKGEsYikKKwl5ID0gYgorCWEgPSBhIC8geQkhIGVycm9uZW91cyB3YXJuaW5n IG9mIGRpdmlzaW9uIGJ5IHplcm8KKwllbmQKKworTW9uIEF1ZyAgMSAxNjo0NToxNyBFRFQgMTk5 NAorICBsaWJpNzc6IGxyZWFkLmMgcnNuZS5jOiBmb3IgYmVuZWZpdCBvZiBzeXN0ZW1zIHdpdGgg YSBidWdneSBzdGRpby5oLAorZGVjbGFyZSB1bmdldGMgd2hlbiBuZWl0aGVyIEtSX2hlYWRlcnMg bm9yIHVuZ2V0YyBpcyAjZGVmaW5lZC4KK1ZlcnNpb24uYyBub3QgY2hhbmdlZC4KKworV2VkIEF1 ZyAgMyAwMTo1MzowMCBFRFQgMTk5NAorICBsaWJpNzc6IGx3cml0ZS5jIChsaXN0IG91dHB1dCk6 IGRvIG5vdCBpbnNlcnQgYSBuZXdsaW5lIHdoZW4KK2FwcGVuZGluZyBhbiBvdmVyc2l6ZSBpdGVt IHRvIGFuIGVtcHR5IGxpbmUuCisKK01vbiBBdWcgIDggMDA6NTE6MDEgRURUIDE5OTQKKyAgRml4 IGJ1ZyAoaW50cm9kdWNlZCAzIEZlYi4gMTk5MykgdGhhdCwgdW5kZXIgLWkyLCBrZXB0IExPR0lD QUwqMgordmFyaWFibGVzIGZyb20gYXBwZWFyaW5nIGluIElOUVVJUkUgc3RhdGVtZW50cy4gIFVu ZGVyIC1JMiwgYWxsb3cKK0xPR0lDQUwqNCB2YXJpYWJsZXMgdG8gYXBwZWFyIGluIElOUVVJUkUu ICBGaXggaW50cmluc2ljIGZ1bmN0aW9uCitMRU4gc28gaXQgcmV0dXJucyBhIHNob3J0IHZhbHVl IHVuZGVyIC1pMiwgYSBsb25nIHZhbHVlIG90aGVyd2lzZS4KKyAgZXhlYy5jOiBmaXggb2JzY3Vy ZSBtZW1vcnkgZmF1bHQgcG9zc2libGUgd2l0aCBiaXphcnJlIChhbmQgaGlnaGx5CitlcnJvbmVv dXMpIERPLWxvb3Agc3ludGF4LgorCitGcmkgQXVnIDEyIDEwOjQ1OjU3IEVEVCAxOTk0CisgIGxp Ymk3NzogZml4IGdsaXRjaCB0aGF0IGtlcHQgRVJSPSAoaW4gbGlzdC0gb3IgZm9ybWF0LWRpcmVj dGVkIGlucHV0KQorZnJvbSB3b3JraW5nIGFmdGVyIGEgTkFNRUxJU1QgUkVBRC4KKworVGh1IEF1 ZyAyNSAxMzo1ODoyNiBFRFQgMTk5NAorICBTdXBwcmVzcyAtcyB3aGVuIC1DIGlzIHNwZWNpZmll ZC4KKyAgR2l2ZSBmdWxsIHBhdGhuYW1lIChuZXRsaWJAcmVzZWFyY2guYXR0LmNvbSkgZm9yIG5l dGxpYiBpbiByZWFkbWUgYW5kCitzcmMvUkVBRE1FLgorCitXZWQgU2VwICA3IDIyOjEzOjIwIEVE VCAxOTk0CisgIGxpYmk3NzogdHlwZXNpemUuYzogYWRqdXN0IHRvIGFsbG93IHR5cGVzIExPR0lD QUwqMSwgTE9HSUNBTCoyLAorSU5URUdFUioxLCBhbmQgKHVuZGVyIC1EQWxsb3dfVFlRVUFEKSBJ TlRFR0VSKjggaW4gTkFNRUxJU1RzLgorCitGcmkgU2VwIDE2IDE3OjUwOjE4IEVEVCAxOTk0Cisg IENoYW5nZSBuYW1lIGFkanVzdG1lbnQgZm9yIHJlc2VydmVkIHdvcmRzOiBpbnN0ZWFkIG9mIGp1 c3QgYXBwZW5kaW5nCisiXyIgKGEgc2luZ2xlIHVuZGVyc2NvcmUpLCBhcHBlbmQgIl9hXyIgdG8g bG9jYWwgdmFyaWFibGUgbmFtZXMgdG8gYXZvaWQKK3Ryb3VibGUgd2hlbiBhIGNvbW1vbiBibG9j ayBpcyBuYW1lZCBhIHJlc2VydmVkIHdvcmQgYW5kIHRoZSBzYW1lCityZXNlcnZlZCB3b3JkIGlz IGFsc28gYSBsb2NhbCB2YXJpYWJsZSBuYW1lLiAgRXhhbXBsZToKKwljb21tb24gL2NvbnN0LyBh LGIsYworCXJlYWwgY29uc3QoMykKKwllcXVpdmFsZW5jZSAoY29uc3QoMSksYSkKKwlhID0gMS4y MzQKKwllbmQKKyAgQXJyYW5nZSBmb3IgaWNoYXIoKSB0byB0cmVhdCBjaGFyYWN0ZXJzIGFzIHVu c2lnbmVkLgorICBsaWJmNzc6IHNfY21wLmM6IHRyZWF0IGNoYXJhY3RlcnMgYXMgdW5zaWduZWQg aW4gY29tcGFyaXNvbnMuCitUaGVzZSBjaGFuZ2VzIGZvciB1bnNpZ25lZG5lc3Mgb25seSBtYXR0 ZXIgZm9yIHN0cmluZ3MgdGhhdCBjb250YWluCitub24tQVNDSUkgY2hhcmFjdGVycy4gIE5vdyBp Y2hhcigpIHNob3VsZCBhbHdheXMgYmUgPj0gMC4KKworU2F0IFNlcCAxNyAxMToxOTozMiBFRFQg MTk5NAorICBmYzogc2V0IHJjPSQ/IGJlZm9yZSBleGl0ICh0byBnZXQgZXhpdCBjb2RlIHJpZ2h0 IGluIHRyYXAgY29kZSkuCisKK01vbiBTZXAgMTkgMTc6NDk6NDMgRURUIDE5OTQKKyAgbGliZjc3 OiBzX3BhdXMuYzogZmx1c2ggc3RkZXJyIGFmdGVyIFBBVVNFOyBhZGQgI2lmZGVmIE1TRE9TIHN0 dWZmLgorICBsaWJpNzc6IFJFQURNRTogcG9pbnQgb3V0IGdlbmVyYWwgbmVlZCBmb3IgLURNU0RP UyB1bmRlciBNUy1ET1MuCisKK1R1ZSBTZXAgMjAgMTE6NDI6MzAgRURUIDE5OTQKKyAgRml4IGJ1 ZyBpbiBjb21wYXJpbmcgaWRlbnRpY2FsbHkgbmFtZWQgY29tbW9uIGJsb2NrcywgaW4gd2hpY2gK K2FsbCBjb21wb25lbnRzIGhhdmUgdGhlIHNhbWUgbmFtZXMgYW5kIHR5cGVzLCBidXQgYXQgbGVh c3Qgb25lIGlzCitkaW1lbnNpb25lZCAoMSkgYW5kIHRoZSBvdGhlciBpcyBub3QgZGltZW5zaW9u ZWQuICBFeGFtcGxlOgorCXN1YnJvdXRpbmUgZm9vCisJY29tbW9uIC9hYi8gYQorCWE9MS4JISEh IHRyYW5zbGF0ZWQgY29ycmVjdGx5IHRvIGFiXzEuYSA9IChmbG9hdCkxLjsKKwllbmQKKwlzdWJy b3V0aW5lIGdvbworCWNvbW1vbiAvYWIvIGEoMSkKKwlhKDEpPTIuCSEhISB0cmFuc2xhdGVkIGVy cm9uZW91c2x5IHRvIGFiXzEuYVswXSA9IChmbG9hdCkyLgorCWVuZAorCitUdWUgU2VwIDI3IDIz OjQ3OjM0IEVEVCAxOTk0CisgIEZpeCBidWcgaW50cm9kdWNlZCAxNiBTZXB0LiAxOTk0OiBkb24n dCBhZGQgX2FfIHRvIEMga2V5d29yZHMKK3VzZWQgYXMgZXh0ZXJuYWwgbmFtZXMuICBJbiBmYWN0 LCByZXR1cm4gdG8gZWFybGllciBiZWhhdmlvciBvZgorYXBwZW5kaW5nIF9fIHRvIEMga2V5d29y ZHMgdW5sZXNzIHRoZXkgYXJlIHVzZWQgYXMgZXh0ZXJuYWwgbmFtZXMsCitpbiB3aGljaCBjYXNl IHRoZXkgZ2V0IGp1c3Qgb25lIHVuZGVyc2NvcmUgYXBwZW5kZWQuCisgIEFkanVzdCBjb25zdGFu dCBoYW5kbGluZyBzbyBpbnRlZ2VyIGFuZCBsb2dpY2FsIFBBUkFNRVRFUnMgcmV0YWluCit0eXBl IGluZm9ybWF0aW9uLCBwYXJ0aWN1bGFybHkgdW5kZXIgLUkyLiAgRXhhbXBsZToKKwlTVUJST1VU SU5FIEZPTworCUlOVEVHRVIgSQorCUlOVEVHRVIqMSBJMQorCUlOVEVHRVIqMiBJMgorCUlOVEVH RVIqNCBJNAorCUxPR0lDQUwgTAorCUxPR0lDQUwqMSBMMQorCUxPR0lDQUwqMiBMMgorCUxPR0lD QUwqNCBMNAorCVBBUkFNRVRFUiAoTD0uRkFMU0UuLCBMMT0uRkFMU0UuLCBMMj0uRkFMU0UuLCBM ND0uRkFMU0UuKQorCVBBUkFNRVRFUiAoST0wLEkxPTAsSTI9MCxJND0wKQorCUNBTEwgRFVNTVko SSwgSTEsIEkyLCBJNCwgTCwgTDEsIEwyLCBMNCkKKwlFTkQKKyAgZjJjLjF0OiBDaGFuZ2UgZlxe MmMgdG8gZjJjIChvbWl0IGhhbGYtbmFycm93IHNwYWNlKSBpbiBsaW5lIGZvbGxvd2luZworIi5T SCBOQU1FIiBmb3IgYmVuZWZpdCBvZiBzeXN0ZW1zIHRoYXQgY2Fubm90IGNvcGUgd2l0aCB0cm9m ZiBjb21tYW5kcworaW4gdGhpcyBjb250ZXh0LgorCitXZWQgU2VwIDI4IDEyOjQ1OjE5IEVEVCAx OTk0CisgIGxpYmY3Nzogc19jbXAuYyBmaXggZ2xpdGNoIGluIC1ES1JfaGVhZGVycyB2ZXJzaW9u IGludHJvZHVjZWQKKzEyIGRheXMgYWdvLgorCitUaHUgT2N0ICA2IDA5OjQ2OjUzIEVEVCAxOTk0 CisgIGxpYmk3NzogdXRpbC5jOiBvbWl0IGZfX212Z2J0ICh3aGljaCBpcyBuZXZlciB1c2VkKS4K KyAgZjJjLmg6IGNoYW5nZSAibG9uZyIgdG8gImxvbmcgaW50IiB0byBmYWNpbGl0YXRlIHRoZSBh ZGp1c3RtZW50cworYnkgbWVhbnMgb2Ygc2VkIGRlc2NyaWJlZCBhYm92ZS4gIENvbW1lbnQgb3V0 IHVudXNlZCB0eXBlZGVmIG9mIExvbmcuCisKK0ZyaSBPY3QgMjEgMTg6MDI6MjQgRURUIDE5OTQK KyAgbGliZjc3OiBhZGQgc19jYXRvdy5jIGFuZCBhZGp1c3QgUkVBRE1FIHRvIHBvaW50IG91dCB0 aGF0IGNoYW5naW5nCisic19jYXQubyIgdG8gInNfY2F0b3cubyIgaW4gdGhlIG1ha2VmaWxlIHdp bGwgcGVybWl0IHRoZSB0YXJnZXQgb2YgYQorY29uY2F0ZW5hdGlvbiB0byBhcHBlYXIgb24gaXRz IHJpZ2h0LWhhbmQgc2lkZSAoY29udHJhcnkgdG8gdGhlCitGb3J0cmFuIDc3IFN0YW5kYXJkIGFu ZCBhdCB0aGUgY29zdCBvZiBzb21lIHJ1bi10aW1lIGVmZmljaWVuY3kpLgorCitXZWQgTm92ICAy IDAwOjAzOjU4IEVTVCAxOTk0CisgIEFkanVzdCAtZyBvdXRwdXQgdG8gY29udGFpbiBvbmx5IG9u ZSAjbGluZSBsaW5lIHBlciBzdGF0ZW1lbnQsCitpbnNlcnRpbmcgXCBiZWZvcmUgdGhlIFxuIGVu ZGluZyBsaW5lcyBicm9rZW4gYmVjYXVzZSBvZiB0aGVpcgorbGVuZ3RoIFt0aGlzIGluc2VydGlv biB3YXMgcmVjYW50ZWQgMTAgRGVjLiAxOTk0XS4gIFRoaXMgY2hhbmdlCithY2NvbW1vZGF0ZXMg YW4gaWRpb2N5IGluIHRoZSBBTlNJL0lTTyBDIHN0YW5kYXJkLCB3aGljaCBsZWF2ZXMKK3VuZGVm aW5lZCB0aGUgYmVoYXZpb3Igb2YgI2xpbmUgbGluZXMgdGhhdCBvY2N1ciB3aXRoaW4gdGhlIGFy Z3VtZW50cwordG8gYSBtYWNybyBjYWxsLgorCitXZWQgTm92ICAyIDE0OjQ0OjI3IEVTVCAxOTk0 CisgIGxpYmk3NzogdW5kZXIgY29tcGlsYXRpb24gd2l0aCAtREFMV0FZU19GTFVTSCwgZmx1c2gg YnVmZmVycyBhdAordGhlIGVuZCBvZiBlYWNoIHdyaXRlIHN0YXRlbWVudCwgYW5kIHRlc3QgKHZp YSB0aGUgcmV0dXJuIGZyb20KK2ZmbHVzaCkgZm9yIHdyaXRlIGZhaWx1cmVzLCB3aGljaCBjYW4g YmUgY2F1Z2h0IHdpdGggYW4gRVJSPQorc3BlY2lmaWVyIGluIHRoZSB3cml0ZSBzdGF0ZW1lbnQu ICBUaGlzIGV4dHJhIGZsdXNoaW5nIHNsb3dzCitleGVjdXRpb24sIGJ1dCBjYW4gYWJvcnQgZXhl Y3V0aW9uIG9yIGFsdGVyIHRoZSBmbG93IG9mIGNvbnRyb2wKK3doZW4gYSBkaXNrIGZpbGxzIHVw LgorICBmMmMvc3JjL2lvLmM6IEFkZCBFUlI9IHRlc3QgdG8gZV93c2xlIGludm9jYXRpb24gKGVu ZCBvZgorbGlzdC1kaXJlY3RlZCBleHRlcm5hbCBvdXRwdXQpIHRvIGNhdGNoIHdyaXRlIGZhaWx1 cmVzIHdoZW4gbGliSTc3CitpcyBjb21waWxlZCB3aXRoIC1EQUxXQVlTX0ZMVVNILgorCitUaHUg Tm92ICAzIDEwOjU5OjEzIEVTVCAxOTk0CisgIEZpeCBidWcgaW4gaGFuZGxpbmcgZGltZW5zaW9u cyBpbnZvbHZpbmcgY2VydGFpbiBpbnRyaW5zaWMKK2Z1bmN0aW9ucyBvZiBjb25zdGFudCBleHBy ZXNzaW9uczogdGhlIGV4cHJlc3Npb25zLCByYXRoZXIgdGhhbgorcG9pbnRlcnMgdG8gdGhlbSwg d2VyZSBwYXNzZWQuICBFeGFtcGxlOgorICAgICAgc3Vicm91dGluZSBzdWJ0ZXN0KG4seCkKKyAg ICAgIHJlYWwgeCgyKipuLG4pICEgcG93X2lpKDIsbikgd2FzIGNhbGxlZDsgbm93IGl0J3MgcG93 X2lpKCZjX18yLG4pCisgICAgICB4KDIsMik9My4KKyAgICAgIGVuZAorCitUdWUgTm92ICA4IDIz OjU2OjMwIEVTVCAxOTk0CisgIG1hbGxvYy5jOiByZW1vdmUgYXNzdW1wdGlvbiB0aGF0IG9ubHkg bWFsbG9jIGNhbGxzIHNicmsuICBUaGlzCithcHBlYXJzIHRvIG1ha2UgbWFsbG9jLmMgdXNlZnVs IG9uIFJTNjAwMCBzeXN0ZW1zLgorCitTdW4gTm92IDEzIDEzOjA5OjM4IEVTVCAxOTk0CisgIFR1 cm4gb2ZmIGNvbnN0YW50IGZvbGRpbmcgb2YgaW50ZWdlcnMgdXNlZCBpbiBmbG9hdGluZy1wb2lu dAorZXhwcmVzc2lvbnMsIHNvIHRoZSBhc3NpZ25tZW50IGluCisJc3Vicm91dGluZSBmb28oeCkK Kwlkb3VibGUgcHJlY2lzaW9uIHgKKwl4ID0geCoxMDAwMDAwKjUwMDAwMAorCWVuZAoraXMgcmVu ZGVyZWQgYXMKKwkqeCA9ICp4ICogMTAwMDAwMCAqIDUwMDAwMDsKK3JhdGhlciB0aGFuIGFzCisJ KnggKj0gMTc4Mzc5MzY2NDsKKworU2F0IERlYyAxMCAxNjozMTo0MCBFU1QgMTk5NAorICBTdXBw bHkgYSBiZXR0ZXIgZXJyb3IgbWVzc2FnZSAodGhhbiAiSW1wb3NzaWJsZSB0eXBlIDE0IikgZm9y CisJc3Vicm91dGluZSBmb28KKwlmb28gPSAzCisJZW5kCisgIFVuZGVyIC1nLCBjb252ZXkgbmFt ZSBvZiBpbmNsdWRlZCBmaWxlcyB0byAjbGluZSBsaW5lcy4KKyAgUmVjYW50IGluc2VydGlvbiBv ZiBcIGludHJvZHVjZWQgKHVuZGVyIC1nKSAyIE5vdi4gMTk5NC4KKworVGh1IERlYyAxNSAxNDoz Mzo1NSBFU1QgMTk5NAorICBOZXcgY29tbWFuZC1saW5lIG9wdGlvbiAtSWRpciBzcGVjaWZpZXMg ZGlyZWN0b3JpZXMgaW4gd2hpY2ggdG8KK2xvb2sgZm9yIG5vbi1hYnNvbHV0ZSBpbmNsdWRlIGZp bGVzIChhZnRlciBsb29raW5nIGluIHRoZSBkaXJlY3RvcnkKK29mIHRoZSBjdXJyZW50IGlucHV0 IGZpbGUpLiAgVGhlcmUgY2FuIGJlIHNldmVyYWwgLUlkaXIgb3B0aW9ucywgZWFjaAorc3BlY2lm eWluZyBvbmUgZGlyZWN0b3J5LiAgQWxsIC1JZGlyIG9wdGlvbnMgYXJlIGNvbnNpZGVyZWQsIGZy b20KK2xlZnQgdG8gcmlnaHQsIHVudGlsIGEgc3VpdGFibHkgbmFtZWQgZmlsZSBpcyBmb3VuZC4g IFRoZSAtSTIgYW5kIC1JNAorY29tbWFuZC1saW5lIG9wdGlvbnMgaGF2ZSBwcmVjZWRlbmNlLCBz byBkaXJlY3RvcmllcyBuYW1lZCAyIG9yIDQKK211c3QgYmUgc3BlbGxlZCBieSBzb21lIGNpcmN1 bWxvY2F0aW9uLCBzdWNoIGFzIC1JLi8yIC4KKyAgZjJjLnBzIHVwZGF0ZWQgdG8gbWVudGlvbiB0 aGUgbmV3IC1JZGlyIG9wdGlvbiwgY29ycmVjdCBhIHR5cG8sCithbmQgYnJpbmcgdGhlIG1hbiBw YWdlIGF0IHRoZSBlbmQgdXAgdG8gZGF0ZS4KKyAgbGV4LmM6IGZpeCBidWcgaW4gcmVhZGluZyBs aW5lIG51bWJlcnMgaW4gI2xpbmUgbGluZXMuCisgIGZjIHVwZGF0ZWQgdG8gcGFzcyAtSWRpciBv cHRpb25zIHRvIGYyYy4KKworVGh1IERlYyAyOSAwOTo0ODowMyBFU1QgMTk5NAorICBGaXggYnVn IChlLmcuLCBhZGRyZXNzaW5nIGZhdWx0KSBpbiBkaWFnbm9zaW5nIGluY29uc2lzdGVuY3kgaW4K K3RoZSB0eXBlIG9mIGZ1bmN0aW9uIGV0YSBpbiB0aGUgZm9sbG93aW5nIGV4YW1wbGU6CisJZnVu Y3Rpb24gZm9vKGMxLGMyKQorCWRvdWJsZSBjb21wbGV4IGZvbyxjMSxjMgorCWRvdWJsZSBwcmVj aXNpb24gZXRhCisJZm9vID0gZXRhKGMxLGMyKQorCWVuZAorCWZ1bmN0aW9uIGV0YShjMSxjMikK Kwlkb3VibGUgY29tcGxleCBldGEsYzEsYzIKKwlldGEgPSBjMSpjMgorCWVuZAorCitNb24gSmFu ICAyIDEzOjI3OjI2IEVTVCAxOTk1CisgIFJldGFpbiBjYXN0cyBmb3IgU05HTCAob3IgRkxPQVQp IHRoYXQgd2VyZSBlcnJvbmVvdXNseSBvcHRpbWl6ZWQKK2F3YXkuICBFeGFtcGxlOgorCXN1YnJv dXRpbmUgZm9vKGEsYikKKwlkb3VibGUgcHJlY2lzaW9uIGEsYgorCWEgPSBmbG9hdChiKQkhIG5v dyByZW5kZXJlZCBhcyAqYSA9IChyZWFsKSAoKmIpOworCWVuZAorICBVc2UgZmxvYXQgKHJhdGhl ciB0aGFuIGRvdWJsZSkgdGVtcG9yYXJpZXMgaW4gY2VydGFpbiBleHByZXNzaW9ucworb2YgdHlw ZSBjb21wbGV4LiAgRXhhbXBsZTogdGhlIHRlbXBvcmFyeSBmb3Igc25nbChiKSBpbgorCWNvbXBs ZXggYQorCWRvdWJsZSBwcmVjaXNpb24gYgorCWEgPSBzbmdsKGIpIC0gKDMuLDQuKQoraXMgbm93 IG9mIHR5cGUgZmxvYXQuCisKK0ZyaSBKYW4gIDYgMDA6MDA6MjcgRVNUIDE5OTUKKyAgQWRqdXN0 IGludHJpbnNpYyBmdW5jdGlvbiBjbXBseCB0byBhY3QgYXMgZGNtcGx4IChyZXR1cm5pbmcKK2Rv dWJsZSBjb21wbGV4IHJhdGhlciB0aGFuIGNvbXBsZXgpIGlmIGVpdGhlciBvZiBpdHMgYXJncyBp cyBvZgordHlwZSBkb3VibGUgcHJlY2lzaW9uLiAgVGhlIGRvdWJsZSB0ZW1wb3JhcmllcyB1c2Vk IHByaW9yIHRvIDIgSmFuLgorMTk5NSBwcmV2aW91c2x5IGdhdmUgaXQgdGhpcyBzYW1lIGJlaGF2 aW9yLgorCitUaHUgSmFuIDEyIDEyOjMxOjM1IEVTVCAxOTk1CisgIEFkanVzdCAta3JkIHRvIHVz ZSBkb3VibGUgdGVtcG9yYXJpZXMgaW4gc29tZSBjYWxjdWxhdGlvbnMgb2YKK3R5cGUgY29tcGxl eC4KKyAgbGliZjc3OiBwb3dfW2RoaXFyel1baGlxXS5jOiBhZGp1c3QgeCoqaSB0byB3b3JrIG9u IG1hY2hpbmVzCit0aGF0IHNpZ24tZXh0ZW5kIHJpZ2h0IHNoaWZ0cyB3aGVuIGkgaXMgdGhlIG1v c3QgbmVnYXRpdmUgaW50ZWdlci4KKworV2VkIEphbiAyNSAwMDoxNDo0MiBFU1QgMTk5NQorICBG aXggbWVtb3J5IGZhdWx0IGluIGhhbmRsaW5nIG92ZXJsYXBwaW5nIGluaXRpYWxpemF0aW9ucyBp bgorCWJsb2NrIGRhdGEKKwljb21tb24gL3pvdC8gZAorCWRvdWJsZSBwcmVjaXNpb24gZCgzKQor CWNoYXJhY3Rlcio2IHYoNCkKKwlyZWFsIHIoMikKKwllcXVpdmFsZW5jZSAoZCgzKSxyKDEpKSwg KGQoMSksdigxKSkKKwlkYXRhIHYvJ2FiY2RlZicsICdnaGlqa2wnLCAnbW5vcHFyJywgJ3N0dXZ3 eCcvCisJZGF0YSByLzQuLDUuLworCWVuZAorICBuYW1lcy5jOiBhZGQgImZhciIsICJodWdlIiwg Im5lYXIiIHRvIGNfa2V5d29yZHMgKGNhdXNpbmcgdGhlbQordG8gaGF2ZSBfXyBhcHBlbmRlZCB3 aGVuIHVzZWQgYXMgbG9jYWwgdmFyaWFibGVzKS4KKyAgbGliZjc3OiBhZGQgc19jb3B5b3cuYywg YW4gYWx0ZXJuYXRpdmUgdG8gc19jb3B5LmMgZm9yIGhhbmRsaW5nCisoaWxsZWdhbCkgY2hhcmFj dGVyIGFzc2lnbm1lbnRzIHdoZXJlIHRoZSByaWdodC0gYW5kIGxlZnQtaGFuZAorc2lkZXMgb3Zl cmxhcCwgYXMgaW4gYSgyOjQpID0gYSgxGjozKS4KKworVGh1IEphbiAyNiAxNDoyMToxOSBFU1Qg MTk5NQorICBsaWJmNzc6IHJvbGwgc19jYXRvdy5jIGFuZCBzX2NvcHlvdy5jIGludG8gc19jYXQu YyBhbmQgc19jb3B5LmMsCityZXNwZWN0aXZlbHksIGFsbG93aW5nIHRoZSBsZWZ0LWhhbmQgc2lk ZSBvZiBhIGNoYXJhY3RlciBhc3NpZ25tZW50Cit0byBhcHBlYXIgb24gaXRzIHJpZ2h0LWhhbmQg c2lkZSB1bmxlc3Mgc19jYXQuYyBhbmQgc19jb3B5LmMgYXJlCitjb21waWxlZCB3aXRoIC1ETk9f T1ZFUldSSVRFICh3aGljaCBpcyBhIGJpdCBtb3JlIGVmZmljaWVudCkuCitGb3J0cmFuIDc3IGZv cmJpZHMgdGhlIGxlZnQtaGFuZCBzaWRlIGZyb20gcGFydGljaXBhdGluZyBpbiB0aGUKK3JpZ2h0 LWhhbmQgc2lkZSAob2YgYSBjaGFyYWN0ZXIgYXNzaWdubWVudCksIGJ1dCBGb3J0cmFuIDkwIGFs bG93cyBpdC4KKyAgbGliaTc3OiB3cmVmLmM6IGZpeCBnbGl0Y2ggaW4gcHJpbnRpbmcgdGhlIGV4 cG9uZW50IG9mIDAgd2hlbgorR09PRF9TUFJJTlRGX0VYUE9ORU5UIGlzIG5vdCAjZGVmaW5lZC4K KworRnJpIEphbiAyNyAxMjoyNTo0MSBFU1QgMTk5NQorICBVbmRlciAtQysrIC1lYyAob3IgLUMr KyAtZTFjKSwgc3Vycm91bmQgc3RydWN0IGRlY2xhcmF0aW9ucyB3aXRoCisJI2lmZGVmIF9fY3Bs dXNwbHVzCisJZXh0ZXJuICJDIiB7CisJI2VuZGlmCithbmQKKwkjaWZkZWYgX19jcGx1c3BsdXMK Kwl9CisJI2VuZGlmCisoVGhpcyBpc24ndCBuZWVkZWQgd2l0aCBjZnJvbnQsIGJ1dCBhcHBhcmVu dGx5IGlzIG5lY2Vzc2FyeSB3aXRoCitzb21lIG90aGVyIEMrKyBjb21waWxlcnMuKQorICBsaWJm Nzc6IG1pbm9yIHR3ZWFrIHRvIHNfY29weS5jOiBjb3B5IGZvcndhcmQgd2hlbmV2ZXIgcG9zc2li bGUKKyhmb3IgYmV0dGVyIGNhY2hlIGJlaGF2aW9yKS4KKworV2VkIEZlYiAgMSAxMDoyNjoxMiBF U1QgMTk5NQorICBDb21wbGFpbiBhYm91dCBwYXJhbWV0ZXIgc3RhdGVtZW50cyB0aGF0IGFzc2ln biB2YWx1ZXMgdG8gZHVtbXkKK2FyZ3VtZW50cywgYXMgaW4KKwlzdWJyb3V0aW5lIGZvbyh4KQor CXBhcmFtZXRlcih4ID0gMy40KQorCWVuZAorCitTYXQgRmViICA0IDIwOjIyOjAyIEVTVCAxOTk1 CisgIGZjOiBvbWl0ICJsaWI9L2xpYi9udW0vbGliLmxvIi4KKworV2VkIEZlYiAgOCAwODo0MTox NCBFU1QgMTk5NQorICBNaW5vciBjaGFuZ2VzIHRvIGV4ZWMuYywgcHV0cGNjLmMgdG8gYXZvaWQg ImJhZCB0YWciIG9yICJlcnJvcgoraW4gZnJleHByIiB3aXRoIGNlcnRhaW4gaW52YWxpZCBGb3J0 cmFuLgorCitTYXQgRmViIDExIDA4OjU3OjM5IEVTVCAxOTk1CisgIENvbXBsYWluIGFib3V0IGlu dGVnZXIgb3ZlcmZsb3dzLCBib3RoIGluIHNpbXBsaWZ5aW5nIGludGVnZXIKK2V4cHJlc3Npb25z LCBhbmQgaW4gY29udmVydGluZyBpbnRlZ2VycyBmcm9tIGRlY2ltYWwgdG8gYmluYXJ5LgorICBG aXggYSBtZW1vcnkgZmF1bHQgaW4gcHV0Y3gxKCkgYXNzb2NpYXRlZCB3aXRoIGludmFsaWQgaW5w dXQuCisKK1RodSBGZWIgMjMgMTE6MjA6NTkgRVNUIDE5OTUKKyAgT21pdCBNQVhUT0tFTkxFTjsg cmVhbGxvYyB0b2tlbiBpZiBuZWNlc3NhcnkgKHRvIGhhbmRsZSB2ZXJ5IGxvbmcKK3N0cmluZ3Mp LgorCitGcmkgRmViIDI0IDExOjAyOjAwIEVTVCAxOTk1CisgIGxpYmk3NzogaWlvLmM6IHpfZ2V0 YzogaW5zZXJ0ICh1bnNpZ25lZCBjaGFyICopIHRvIGFsbG93IGludGVybmFsCityZWFkaW5nIG9m IGNoYXJhY3RlcnMgd2l0aCBoaWdoLWJpdCBzZXQgKG9uIG1hY2hpbmVzIHRoYXQgc2lnbi1leHRl bmQKK2NoYXJhY3RlcnMpLgorCitUdWUgTWFyIDE0IDE4OjIyOjQyIEVTVCAxOTk1CisgIEZpeCBn bGl0Y2ggKGluIGlvLmMpIGluIGhhbmRsaW5nIDAtbGVuZ3RoIHN0cmluZ3MgaW4gZm9ybWF0Citz dGF0ZW1lbnRzLCBhcyBpbgorCXdyaXRlKCosMTApCisgMTAJZm9ybWF0KCcgYWInLCcnLCdjZCcp CisgIGxpYmk3NzogbHJlYWQuYyBhbmQgcnNmZS5jOiBhZGp1c3Qgc19yc2xlIGFuZCBzX3JzZmUg dG8gY2hlY2sgZm9yCitlbmQtb2YtZmlsZSAodG8gcHJldmVudCBpbmZpbml0ZSBsb29wcyB3aXRo IGVtcHR5IHJlYWQgc3RhdGVtZW50cykuCisKK1dlZCBNYXIgMjIgMTA6MDE6NDYgRVNUIDE5OTUK KyAgZjJjLnBzOiBhZGp1c3QgZGlzY3Vzc2lvbiBvZiAtUCBvbiBwLiA3IHRvIHJlZmxlY3QgYSBj aGFuZ2UgbWFkZQorMyBGZWIuIDE5OTM6IC1QIG5vIGxvbmdlciBpbXBsaWVzIC1BLgorCitGcmkg QXByIDIxIDE4OjM1OjAwIEVEVCAxOTk1CisgIGZjIHNjcmlwdDogcmVtb3ZlIGFic29sdXRlIHBh dGhzIChzaW5jZSBQQVRIIHNwZWNpZmllcyBvbmx5IHN0YW5kYXJkCitwbGFjZXMpLiAgT24gbW9z dCBzeXN0ZW1zLCBpdCdzIHN0aWxsIG5lY2Vzc2FyeSB0byBhZGp1c3QgdGhlIFBBVEgKK2Fzc2ln bm1lbnQgYXQgdGhlIHN0YXJ0IG9mIGZjIHRvIGZpdCB0aGUgbG9jYWwgY29udmVudGlvbnMuCisK K0ZyaSBNYXkgMjYgMTA6MDM6MTcgRURUIDE5OTUKKyAgZmMgc2NyaXB0OiBhZGQgcmVjb2duaXRp b24gb2YgLVAgYW5kIC5QIGZpbGVzLgorICBsaWJpNzc6IGlpby5jOiB6X3duZXc6IGZpeCBidWcg aW4gaGFuZGxpbmcgVCBmb3JtYXQgaXRlbXMgaW4gaW50ZXJuYWwKK3dyaXRlcyB3aG9zZSBsYXN0 IGl0ZW0gaXMgd3JpdHRlbiB0byBhbiBlYXJsaWVyIHBvc2l0aW9uIHRoYW4gc29tZQorcHJldmlv dXMgaXRlbS4KKworV2VkIE1heSAzMSAxMTozOTo0OCBFRFQgMTk5NQorICBsaWJmNzc6IGFkZGVk IHN1YnJvdXRpbmUgZXhpdChyYykgKHdpdGggaW50ZWdlciByZXR1cm4gY29kZSByYyksCit3aGlj aCB3b3JrcyBsaWtlIGEgc3RvcCBzdGF0ZW1lbnQgYnV0IHN1cHBsaWVzIHJjIGFzIHRoZSBwcm9n cmFtJ3MKK3JldHVybiBjb2RlLgorCitGcmkgSnVuICAyIDExOjU2OjUwIEVEVCAxOTk1CisgIEZp eCBtZW1vcnkgZmF1bHQgaW4KKwlwYXJhbWV0ZXIgKHg9Mi4pCisJZGF0YSB4IC8yLi8KKwllbmQK K1RoaXMgbm93IGVsaWNpdHMgdHdvIGVycm9yIG1lc3NhZ2VzOyB0aGUgc2Vjb25kICgidG9vIG1h bnkKK2luaXRpYWxpemVycyIpLCB0aG91Z2ggbm90IGRlc2lyYWJsZSwgc2VlbXMgaGFyZCB0byBl bGltaW5hdGUKK3dpdGhvdXQgY29uc2lkZXJhYmxlIGhhc3NsZS4KKworTW9uIEp1bCAxNyAyMzoy NDoyMCBFRFQgMTk5NQorICBGaXggYm90Y2ggaW4gc2ltcGxpZnlpbmcgY29uc3RhbnRzIGluIGNl cnRhaW4gY29tcGxleAorZXhwcmVzc2lvbnMuICBFeGFtcGxlOgorCXN1YnJvdXRpbmUgZm9vKHMs eikKKwlkb3VibGUgY29tcGxleCB6CisJZG91YmxlIHByZWNpc2lvbiBzLCBNLCBQCisJcGFyYW1l dGVyICggTSA9IDEwMC5kMCwgUCA9IDIuZDAgKQorCXogPSBNICogTSAgLyBzICAqIGRjbXBseCAo MS5kMCwgUC9NKQorKioqIFRoZSBpbWFnaW5hcnkgcGFydCBvZiB6IHdhcyBtaXNjb21wdXRlZCAq KioKKwllbmQKKyAgVW5kZXIgLWV4dCwgY29tcGxhaW4gYWJvdXQgbm9uaW50ZWdyYWwgZGltZW5z aW9ucy4KKworRnJpIEp1bCAyMSAxMToxODozNiBFRFQgMTk5NQorICBGaXggZ2xpdGNoIG9uIGxp bmUgMTU5IG9mIGluaXQuYzogY2hhbmdlCisJIihzaG9ydGxvZ2ljYWwgKikwKSIsCit0bworCSIo c2hvcnRsb2dpY2FsICopMCIsCitUaGlzIGFmZmVjdHMgbXVsdGlwbGUgZW50cnkgcG9pbnRzIHdo ZW4gc29tZSBidXQgbm90IGFsbCBoYXZlCithcmd1bWVudHMgb2YgdHlwZSBsb2dpY2FsKjIuCisg IGxpYmk3NzogYWRqdXN0IGx3cml0ZS5jLCB3cmVmLmMsIHdydGZtdC5jIHNvIGNvbXBpbGluZyB3 aXRoCistRFdBTlRfTEVBRF8wIGNhdXNlcyBmb3JtYXR0ZWQgd3JpdGVzIG9mIGZsb2F0aW5nLXBv aW50IG51bWJlcnMgb2YKK21hZ25pdHVkZSA8IDEgdG8gaGF2ZSBhbiBleHBsaWNpdCAwIGJlZm9y ZSB0aGUgZGVjaW1hbCBwb2ludCAoaWYgdGhlCitmaWVsZC13aWR0aCBwZXJtaXRzIGl0KS4gIE5v dGUgdGhhdCB0aGUgRm9ydHJhbiA3NyBTdGFuZGFyZCBsZWF2ZXMgaXQKK3VwIHRvIHRoZSBpbXBs ZW1lbnRhdGlvbiB3aGV0aGVyIHRvIHN1cHBseSB0aGVzZSBzdXBlcmZsdW91cyB6ZXJvcy4KKwor VHVlIEF1ZyAgMSAwOToyNTo1NiBFRFQgMTk5NQorICBQZXJtaXQgcmVhbCAob3IgZG91YmxlIHBy ZWNpc2lvbikgcGFyYW1ldGVycyBpbiBkaW1lbnNpb24gZXhwcmVzc2lvbnMuCisKK01vbiBBdWcg IDcgMDg6MDQ6MDAgRURUIDE5OTUKKyAgQXBwZW5kICJfZXF2IiByYXRoZXIgdGhhbiBqdXN0ICJf IiB0byBuYW1lcyB0aGF0IHRoYXQgYXBwZWFyIGluCitFUVVJVkFMRU5DRSBzdGF0ZW1lbnRzIGFz IHdlbGwgYXMgc3RydWN0cyBpbiBmMmMuaCAodG8gYXZvaWQgYQorY29uZmxpY3Qgd2hlbiB0aGVz ZSBuYW1lcyBhbHNvIG5hbWUgY29tbW9uIGJsb2NrcykuCisKK1R1ZSBBdWcgIDggMTI6NDk6MDIg RURUIDE5OTUKKyAgTW9kaWZ5IHllc3RlcmRheSdzIGNoYW5nZTogbWVyZ2Ugc3RfZmllbGRzIHdp dGggY19rZXl3b3JkcywgdG8KK2NvcGUgd2l0aCBlcXVpdmFsZW5jZXMgaW50cm9kdWNlZCB0byBw ZXJtaXQgaW5pdGlhbGl6aW5nIG51bWVyaWMKK3ZhcmlhYmxlcyB3aXRoIGNoYXJhY3RlciBkYXRh LiAgREFUQSBzdGF0ZW1lbnRzIGNhdXNpbmcgdGhlc2UKK2VxdWl2YWxlbmNlcyBjYW4gYXBwZWFy IGFmdGVyIGV4ZWN1dGFibGUgc3RhdGVtZW50cywgc28gdGhlIG9ubHkKK3NhZmUgY291cnNlIGlz IHRvIHJlbmFtZSBhbGwgbG9jYWwgdmFyaWFibGUgd2l0aCBuYW1lcyBpbiB0aGUKK2Zvcm1lciBz dF9maWVsZHMgbGlzdC4gIFRoaXMgaGFzIHRoZSB1bmZvcnR1bmF0ZSBzaWRlIGVmZmVjdCB0aGF0 Cit0aGUgY29tbW9uIGxvY2FsIHZhcmlhYmxlICJpIiB3aWxsIGhlbmNlZm9ydGggYmUgcmVuYW1l ZCAiaV9fIi4KKworV2VkIEF1ZyAzMCAwMDoxOTozMiBFRFQgMTk5NQorICBsaWJmNzc6IGFkZCBG NzdfYWxvYywgbm93IHVzZWQgaW4gc19jYXQgYW5kIHN5c3RlbV8gKHRvIGFsbG9jYXRlCittZW1v cnkgYW5kIGNoZWNrIGZvciBmYWlsdXJlIGluIHNvIGRvaW5nKS4KKyAgbGliaTc3OiBpbXByb3Zl IE1TRE9TIGxvZ2ljIGluIGJhY2tzcGFjZS5jLgorCitXZWQgU2VwICA2IDA5OjA2OjE5IEVEVCAx OTk1CisgIGxpYmY3NzogRml4IHJldHVybiB0eXBlIG9mIHN5c3RlbV8gKGludGVnZXIpIHVuZGVy IC1ES1JfaGVhZGVycy4KKyAgbGliaTc3OiBNb3ZlIHNvbWUgZl9pbml0IGNhbGxzIGFyb3VuZCBm b3IgcGVvcGxlIHdobyBkbyBub3QgdXNlCitsaWJGNzcncyBtYWluKCk7IG5vdyBvcGVuIGFuZCBu YW1lbGlzdCByZWFkIHN0YXRlbWVudHMgdGhhdCBhcmUgdGhlCitmaXJzdCBJL08gc3RhdGVtZW50 cyBleGVjdXRlZCBzaG91bGQgd29yayByaWdodCBpbiB0aGF0IGNvbnRleHQuCitBZGp1c3QgbmFt ZWxpc3QgaW5wdXQgdG8gdHJlYXQgYSBzdWJzY3JpcHRlZCBuYW1lIHdob3NlIHN1YnNjcmlwdHMg ZG8KK25vdCBpbnZvbHZlIGNvbG9ucyBzaW1pbGFybHkgdG8gdGhlIG5hbWUgd2l0aG91dCBhIHN1 YnNjcmlwdDogIGFjY2VwdAorc2V2ZXJhbCB2YWx1ZXMsIHN0b3JlZCBpbiBzdWNjZXNzaXZlIGVs ZW1lbnRzIHN0YXJ0aW5nIGF0IHRoZQoraW5kaWNhdGVkIHN1YnNjcmlwdC4gIEFkanVzdCBuYW1l bGlzdCBvdXRwdXQgdG8gcXVvdGUgY2hhcmFjdGVyCitzdHJpbmdzIChhdm9pZGluZyBjb25mdXNp b24gd2l0aCBhcnJheXMgb2YgY2hhcmFjdGVyIHN0cmluZ3MpLgorCitUaHUgU2VwICA3IDAwOjM2 OjA0IEVEVCAxOTk1CisgIEZpeCBnbGl0Y2ggaW4gaW50ZWdlcio4IGV4cG9uZW50aWF0aW9uIGZ1 bmN0aW9uOiBpdCdzIHBvd19xcSwgbm90Citwb3dfcWkuCisgIGxpYmk3NzogZml4IHNvbWUgYnVn cyB3aXRoIC1EQWxsb3dfVFlRVUFEIChmb3IgaW50ZWdlcio4KTsgd2hlbgorbG9va2luZyBmb3Ig dGhlICZuYW1lIHRoYXQgc3RhcnRzIE5BTUVMSVNUIGlucHV0LCB0cmVhdCBsaW5lcyB3aG9zZQor Zmlyc3Qgbm9uYmxhbmsgY2hhcmFjdGVyIGlzIHNvbWV0aGluZyBvdGhlciB0aGFuICYsICQsIG9y ID8gYXMKK2NvbW1lbnQgbGluZXMgKGkuZS4sIGlnbm9yZSB0aGVtKSwgdW5sZXNzIHJzbmUuYyBp cyBjb21waWxlZCB3aXRoCistRE5vX05hbWVsaXN0X0NvbW1lbnRzLgorCitUaHUgU2VwICA3IDA5 OjA1OjQwIEVEVCAxOTk1CisgIGxpYmk3NzogcmRmbXQuYzogIG9uZSBtb3JlIHR3ZWFrIGZvciAt REFsbG93X1RZUVVBRC4KKworVHVlIFNlcCAxOSAwMDowMzowMiBFRFQgMTk5NQorICBBZGp1c3Qg aGFuZGxpbmcgb2YgZmxvYXRpbmctcG9pbnQgc3Vic2NyaXB0IGJvdW5kcyAoYSBxdWVzdGlvbmFi bGUKK2YyYyBleHRlbnNpb24pIHNvIHN1YnNjcmlwdHMgaW4gdGhlIGdlbmVyYXRlZCBDIGFyZSBv ZiBpbnRlZ3JhbCB0eXBlLgorICBNb3ZlICNkZWZpbmUgb2Ygcm91bmR1cCB0byBwcm9jLmMgKHdo ZXJlIGl0cyB1c2UgaXMgY29tbWVudGVkIG91dCk7Cit2ZXJzaW9uLmMgbGVmdCBhdCAxOTk1MDkx OC4KKworV2VkIFNlcCAyMCAxNzoyNDoxOSBFRFQgMTk5NQorICBGaXggYnVnIGluIGhhbmRsaW5n IGljaGFyKCkgdW5kZXIgLWguCisKK1RodSBPY3QgIDUgMDc6NTI6NTYgRURUIDE5OTUKKyAgbGli aTc3OiB3cnRmbXQuYzogZml4IGJ1ZyB3aXRoIHQgZWRpdGluZyAoZl9fY3Vyc29yIHdhcyBub3Qg YWx3YXlzCit6ZXJvZWQgaW4gbXZfY3VyKS4KKworVHVlIE9jdCAxMCAxMDo0Nzo1NCBFRFQgMTk5 NQorICBVbmRlciAtZXh0LCB3YXJuIGFib3V0IFgqKi1ZIGFuZCBYKiorWS4gIEZvbGxvd2luZyB0 aGUgb3JpZ2luYWwgZjc3LAorZjJjIHRyZWF0cyB0aGVzZSBhcyBYKiooLVkpIGFuZCBYKiooK1kp LCByZXNwZWN0aXZlbHkuICAoVGhleSBhcmUgbm90CithbGxvd2VkIGJ5IHRoZSBvZmZpY2lhbCBG b3J0cmFuIDc3IFN0YW5kYXJkLikgIFNvbWUgRm9ydHJhbiBjb21waWxlcnMKK2dpdmUgYSBiaXph cnJlIGludGVycHJldGF0aW9uIHRvIGxhcmdlciBjb250ZXh0cywgbWFraW5nIG11bHRpcGxpY2F0 aW9uCitub25jb21tdXRhdGl2ZTogdGhleSB0cmVhdCBYKiotWSpaIGFzIFgqKigtWSpaKSByYXRo ZXIgdGhhbiBYKiooLVkpKlosCit3aGljaCwgZm9sbG93aW5nIHRoZSBydWxlcyBvZiBGb3J0cmFu IDc3LCBpcyB0aGUgc2FtZSBhcyAoWCoqKC1ZKSkqWi4KKworV2VkIE9jdCAxMSAxMzoyNzowNSBF RFQgMTk5NQorICBsaWJpNzc6IG1vdmUgZGVmcyBvZiBmX19oaXdhdGVyLCBmX19zdmljLCBmX19p Y3B0ciBmcm9tIHdydGZtdC5jCit0byBlcnIuYy4gIFRoaXMgc2hvdWxkIHdvcmsgYXJvdW5kIGEg cHJvYmxlbSB3aXRoIGJ1Z2d5IGxvYWRlcnMgYW5kCitzb21ldGltZXMgbGVhZHMgdG8gc21hbGxl ciBleGVjdXRhYmxlIHByb2dyYW1zLgorCitTYXQgT2N0IDIxIDIzOjU0OjIyIEVEVCAxOTk1Cisg IFVuZGVyIC1oLCBmaXggYnVnIGluIHRoZSB0cmVhdG1lbnQgb2YgaWNoYXIoJzAnKSBpbiBhcml0 aG1ldGljCitleHByZXNzaW9ucy4KKyAgRGVtb3RlIHRvIC1kbmVnIChhIG5ldyBjb21tYW5kLWxp bmUgb3B0aW9uIG5vdCBtZW50aW9uZWQgaW4gdGhlCittYW4gcGFnZSkgaW1pdGF0aW9uIG9mIHRo ZSBvcmlnaW5hbCBmNzcncyB0cmVhdG1lbnQgb2YgdW5hcnkgbWludXMKK2FwcGxpZWQgdG8gYSBS RUFMIG9wZXJhbmQgKHlpZWxkaW5nIGEgRE9VQkxFIFBSRUNJU0lPTiByZXN1bHQpLgorUHJldmlv dXNseSB0aGlzIGltaXRhdGlvbiAod2hpY2ggd2FzIHByZXNlbnQgZm9yIGRlYnVnZ2luZykgb2Nj dXJyZWQKK3VuZGVyICh0aGUgZGVmYXVsdCkgLSFSLiAgSXQgaXMgc3RpbGwgc3VwcHJlc3NlZCBi eSAtUi4KKworVHVlIE5vdiAgNyAyMzo1Mjo1NyBFU1QgMTk5NQorICBBZGp1c3QgYXNzaWduZWQg R09UT3MgdG8gaG9ub3IgU0FWRSBkZWNsYXJhdGlvbnMuCisgIEFkZCBjb21tZW50cyBhYm91dCBy YW5saWIgdG8gbGliW0ZJXTc3L1JFQURNRSBhbmQgbWFrZWZpbGUuCisKK1R1ZSBEZWMgMTkgMjI6 NTQ6MDYgRVNUIDE5OTUKKyAgbGliZjc3OiBzX2NhdC5jOiBmaXggYnVnIHdoZW4gMm5kIG9yIGxh dGVyIGFyZyBvdmVybGFwcyBsaHMuCisKK1R1ZSBKYW4gIDIgMTc6NTQ6MDAgRVNUIDE5OTYKKyAg bGliaTc3OiByZGZtdC5jOiBtb3ZlICNpbmNsdWRlICJjdHlwZS5oIiB1cCBiZWZvcmUgInN0ZGxp Yi5oIjsgbm8KK2NoYW5nZSB0byBWZXJzaW9uLmMuCisKK1N1biBGZWIgMjUgMjI6MjA6MjAgRVNU IDE5OTYKKyAgQWRqdXN0IGV4cHIuYyB0byBwZXJtaXQgcmFpc2luZyB0aGUgaW50ZWdlciBjb25z dGFudHMgMSBhbmQgLTEgdG8KK25lZ2F0aXZlIGNvbnN0YW50IGludGVncmFsIHBvd2Vycy4KKyAg QXZvaWQgZmF1bHRpbmcgd2hlbiAtVCBhbmQgLWQgYXJlIG5vdCBmb2xsb3dlZCBieSBhIGRpcmVj dG9yeSBuYW1lCisoaW1tZWRpYXRlbHksIHdpdGhvdXQgaW50ZXJ2ZW5pbmcgc3BhY2VzKS4KKwor V2VkIEZlYiAyOCAxMjo0OTowMSBFU1QgMTk5NgorICBGaXggYSBnbGl0Y2ggaW4gaGFuZGxpbmcg Y29tcGxleCBwYXJhbWV0ZXJzIGFzc2lnbmVkIGEgIndyb25nIiB0eXBlLgorRXhhbXBsZToKKwlj b21wbGV4IGQsIHoKKwlwYXJhbWV0ZXIoeiA9ICgwZDAsMGQwKSkKKwlkYXRhIGQvei8JISBlbGlj aXRlZCAibm9uLWNvbnN0YW50IGluaXRpYWxpemVyIgorCWNhbGwgZm9vKGQpCisJZW5kCisKK1Ro dSBGZWIgMjkgMDA6NTM6MTIgRVNUIDE5OTYKKyAgRml4IGJ1ZyBpbiBoYW5kbGluZyBjaGFyYWN0 ZXIgcGFyYW1ldGVycyBhc3NpZ25lZCBhIGNoYXIoKSB2YWx1ZS4KK0V4YW1wbGU6CisJY2hhcmFj dGVyKjIgYixjCisJY2hhcmFjdGVyKjEgZXNjCisJcGFyYW1ldGVyKGVzYyA9IGNoYXIoMjcpKQor CWludGVnZXIgaQorCWRhdGEgKGIoaTppKSxpPTEsMikvZXNjLCdhJy8KKwlkYXRhIChjKGk6aSks aT0xLDIpL2VzYywnYicvCSEgbWVtb3J5IGZhdWx0CisJY2FsbCBmb28oYixjKQorCWVuZAorCitG cmkgTWFyICAxIDIzOjQ0OjUxIEVTVCAxOTk2CisgIEZpeCBnbGl0Y2ggaW4gZXZhbHVhdGluZyAu RVEuIGFuZCAuTkUuIHdoZW4gYm90aCBvcGVyYW5kcyBhcmUKK2xvZ2ljYWwgY29uc3RhbnRzICgu VFJVRS4gb3IgLkZBTFNFLikuCisKK0ZyaSBNYXIgMTUgMTc6Mjk6NTQgRVNUIDE5OTYKKyAgbGli aTc3OiBscmVhZC5jLCByc2ZlLmM6IGhvbm9yIEVORD0gaW4gUkVBRCBzdG10cyB3aXRoIGVtcHR5 IGlvbGlzdC4KKworVHVlIE1hciAxOSAyMzowODozMiBFU1QgMTk5NgorICBsZXguYzogYXJyYW5n ZSBmb3IgYSAic3RhdGVtZW50IiBjb25zaXN0aW5nIG9mIGEgc2luZ2xlIHNob3J0IGJvZ3VzCitr ZXl3b3JkIHRvIGVsaWNpdCBhbiBlcnJvciBtZXNzYWdlIHNob3dpbmcgdGhlIHdob2xlIGtleXdv cmQuICBUaGUKK2Vycm9yIG1lc3NhZ2UgZm9ybWVybHkgb21pdHRlZCB0aGUgbGFzdCBsZXR0ZXIg b2YgdGhlIGJhZCBrZXl3b3JkLgorICBsaWJmNzc6IHNfY2F0LmM6IHN1cHBseSBtaXNzaW5nIGJy ZWFrIGFmdGVyIG92ZXJsYXAgZGV0ZWN0aW9uLgorCitNb24gTWF5IDEzIDIzOjM1OjI2IEVEVCAx OTk2CisgIFJlY29nbml6ZSBGb3J0cmFuIDkwJ3MgLz0gYXMgYSBzeW5vbnltIGZvciAuTkUuLiAg KDw+IHJlbWFpbnMgYQorc3lub255bSBmb3IgLk5FLi4pCisgIEVtaXQgYW4gZW1wdHkgaW50IGZ1 bmN0aW9uIG9mIG5vIGFyZ3VtZW50cyB0byBzdXBwbHkgYW4gZXh0ZXJuYWwKK25hbWUgdG8gbmFt ZWQgYmxvY2sgZGF0YSBzdWJwcm9ncmFtcyAoc28gdGhleSBjYW4gYmUgY2FsbGVkIHNvbWV3aGVy ZQordG8gZm9yY2UgdGhlbSB0byBiZSBsb2FkZWQgZnJvbSBhIGxpYnJhcnkpLgorICBGaXggYnVn IChtZW1vcnkgZmF1bHQpIGluIGhhbmRsaW5nIHRoZSBmb2xsb3dpbmcgaWxsZWdhbCBGb3J0cmFu OgorCXBhcmFtZXRlcihpPTEpCisJZXF1aXZhbGVuY2UoaSxqKQorCWVuZAorICBUcmVhdCBjZGFi cywgY2Rjb3MsIGNkZXhwLCBjZGxvZywgY2RzaW4sIGFuZCBjZHNxcnQgYXMgc3lub255bXMgZm9y Cit0aGUgZG91YmxlIGNvbXBsZXggaW50cmluc2ljcyB6YWJzLCB6Y29zLCB6ZXhwLCB6bG9nLCB6 c2luLCBhbmQgenNxcnQsCityZXNwZWN0aXZlbHksIHVubGVzcyAtY2QgaXMgc3BlY2lmaWVkLgor ICBSZWNvZ25pemUgdGhlIEZvcnRyYW4gOTAgYml0LW1hbmlwdWxhdGlvbiBpbnRyaW5zaWNzIGJ0 ZXN0LCBpYW5kLAoraWJjbHIsIGliaXRzLCBpYnNldCwgaWVvciwgaW9yLCBpc2hmdCwgYW5kIGlz aGZ0YywgdW5sZXNzIC1pOTAgaXMKK3NwZWNpZmllZC4gIE5vdGUgdGhhdCBpYW5kLCBpZW9yLCBh bmQgaW9yIGFyZSB0aHVzIG5vdyBzeW5vbnltcyBmb3IKKyJhbmQiLCAieG9yIiwgYW5kICJvciIs IHJlc3BlY3RpdmVseS4KKyAgQWRkIHRocmVlIG1hY3JvcyAoYml0X3Rlc3QsIGJpdF9jbGVhciwg Yml0X3NldCkgdG8gZjJjLmggZm9yIHVzZQord2l0aCBidGVzdCwgaWJjbHIsIGFuZCBpYnNldCwg cmVzcGVjdGl2ZWx5LiAgQWRkIG5ldyBmdW5jdGlvbnMKK1tscV1iaXRfYml0cywgW2xxXWJpdF9z aGlmdCwgYW5kIFtscV1fYml0X2NzaGlmdCB0byBsaWJGNzcgZm9yCit1c2Ugd2l0aCBpYml0cywg aXNoZnQsIGFuZCBpc2hmdGMsIHJlc3BlY3RpdmVseS4KKyAgQWRkIGludGVnZXIgZnVuY3Rpb24g ZnRlbGwodW5pdCkgKHJldHVybmluZyAtMSBvbiBlcnJvcikgYW5kCitzdWJyb3V0aW5lIGZzZWVr KHVuaXQsIG9mZnNldCwgd2hlbmNlLCAqKSB0byBsaWJJNzcgKHdpdGggYnJhbmNoIHRvCitsYWJl bCAqIG9uIGVycm9yKS4KKworVHVlIE1heSAxNCAyMzoyMToxMiBFRFQgMTk5NgorICBGaXggZ2xp dGNoIChwb3NzaWJsZSBtZW1vcnkgZmF1bHQsIG9yIHdvcnNlKSBpbiBoYW5kbGluZyBtdWx0aXBs ZQorZW50cnkgcG9pbnRzIHdpdGggbmFtZXMgb3ZlciAyOCBjaGFyYWN0ZXJzIGxvbmcuCisKK01v biBKdW4gMTAgMDE6MjA6MTYgRURUIDE5OTYKKyAgVXBkYXRlIG5ldGxpYiBFLW1haWwgYW5kIGZ0 cCBhZGRyZXNzZXMgaW4gZjJjL3JlYWRtZSBhbmQKK2YyYy9zcmMvcmVhZG1lICh3aGljaCBhcmUg ZGlmZmVyZW50IGZpbGVzKSAtLSB0byByZWZsZWN0IHRoZSB1cGNvbWluZworYnJlYWt1cCBvZiBB VCZULgorICBsaWJmNzc6IHRyaXZpYWwgdHdlYWtzIHRvIEY3N19hbG9jLmMgYW5kIHN5c3RlbV8u YzsgVmVyc2lvbi5jIG5vdAorY2hhbmdlZC4KKyAgbGliaTc3OiBBZGp1c3QgcnNsaS5jIGFuZCBs cmVhZC5jIHNvIGludGVybmFsIGxpc3QgaW5wdXQgd2l0aCB0b28KK2ZldyBpdGVtcyBpbiB0aGUg aW5wdXQgc3RyaW5nIHdpbGwgaG9ub3IgZW5kPSAuCisKK01vbiBKdW4gMTAgMjI6NTk6NTcgRURU IDE5OTYKKyAgQWRkIEJpdHNfcGVyX0J5dGUgdG8gc3lzZGVwLmggYW5kIGFkanVzdCBkZWZpbml0 aW9uIG9mIFRhYmxlX3NpemUKK3RvIGRlcGVuZCBvbiBCaXRzX3Blcl9CeXRlIChmb3JjaW5nIFRh YmxlX3NpemUgdG8gYmUgYSBwb3dlciBvZiAyKTsgaW4KK2xleC5jLCBjaGFuZ2UgImNvbXN0YXJ0 W2MgJiAweGZmZl0iIHRvICJjb21zdGFydFtjICYgKFRhYmxlX3NpemUtMSldIgordG8gYXZvaWQg YW4gb3V0LW9mLXJhbmdlIHN1YnNjcmlwdCBvbiBlbmQtb2YtZmlsZS4KKworV2VkIEp1biAxMiAw MDoyNDoyOCBFRFQgMTk5NgorICBGaXggYnVnIGluIG91dHB1dC5jIChkZXJlZmVyZW5jaW5nIGEg ZnJlZWQgcG9pbnRlcikgcmV2ZWFsZWQgaW4KKwlwcmludCAqCQkhbnAgaW4gb3V0X2NhbGwgaW4g b3V0cHV0LmMgY2xvYmJlcmVkIGJ5IGZyZWUKKwllbmQJCSFkdXJpbmcgb3V0X2V4cHIuCisKK1dl ZCBKdW4gMTkgMDg6MTI6NDcgRURUIDE5OTYKKyAgZjJjLmg6IGFkZCB0eXBlcyB1aW50ZWdlciwg dWxvbmdpbnQgKGZvciBsaWJGNzcpOyBhZGQgcWJpdF9jbGVhcgorYW5kIHFiaXRfc2V0IG1hY3Jv cyAoaW4gYSBjb21tZW50ZWQtb3V0IHNlY3Rpb24pIGZvciBpbnRlZ2VyKjguCisgIEZvciBpbnRl Z2VyKjgsIHVzZSBxYml0X2NsZWFyIGFuZCBxYml0X3NldCBmb3IgaWJjbHIgYW5kIGlic2V0Lgor ICBsaWJmNzc6IGFkZCBjYXN0cyB0byB1bnNpZ25lZCBpbiBbbHFdYml0c2hmdC5jLgorCitUaHUg SnVuIDIwIDEzOjMwOjQzIEVEVCAxOTk2CisgIENvbXBsYWluIGF0IGNoYXJhY3RlciooKikgaW4g Y29tbW9uIChyYXRoZXIgdGhhbiBmYXVsdGluZykuCisgIEZpeCBidWcgaW4gcmVjb2duaXppbmcg aGV4IGNvbnN0YW50cyB0aGF0IHN0YXJ0IHdpdGggIjE2IyIgKGUuZy4sCisxNiMxMjM0YWJjZCwg d2hpY2ggaXMgYSBzeW5vbnltIGZvciB6JzEyMzRhYmNkJykuCisgIEZpeCBidWdzIGluIGNvbnN0 YW50IGZvbGRpbmcgb2YgZXhwcmVzc2lvbnMgaW52b2x2aW5nIGJ0ZXN0LCBpYmNsciwKK2FuZCBp YnNldC4KKyAgRml4IGJ1ZyBpbiBjb25zdGFudCBmb2xkaW5nIG9mIHJzaGlmdCgxNiM4MDAwMDAw MCwgLTMxKSAob24gYSAzMi1iaXQKK21hY2hpbmU7IG1vcmUgZ2VuZXJhbGx5LCB0aGUgYnVnIHdh cyBpbiBjb25zdGFudCBmb2xkaW5nIG9mCityc2hpZnQoaWJzZXQoMCxOQklUUy0xKSwgMS1OQklU Uykgd2hlbiBmMmMgcnVucyBvbiBhIG1hY2hpbmUgd2l0aAorbG9uZyBpbnRzIGhhdmluZyBOQklU UyBiaXRzLgorCitNb24gSnVuIDI0IDA3OjU4OjUzIEVEVCAxOTk2CisgIEFkanVzdCBzdHJ1Y3Qg TGl0ZXJhbCBhbmQgbmV3bGFiZWwoKSBmdW5jdGlvbiB0byBhY2NvbW1vZGF0ZSBodWdlCitzb3Vy Y2UgZmlsZXMgKHdpdGggbW9yZSB0aGFuIDMyNzY3IG5ld2xhYmVsKCkgaW52b2NhdGlvbnMpLgor ICBPbWl0IC5jIGZpbGUgd2hlbiB0aGUgLmYgZmlsZSBoYXMgYSBtaXNzaW5nIGZpbmFsIGVuZCBz dGF0ZW1lbnQuCisKK1dlZCBKdW4gMjYgMTQ6MDA6MDIgRURUIDE5OTYKKyAgbGliaTc3OiBBZGQg ZGlzY3Vzc2lvbiBvZiBNWFVOSVQgKGhpZ2hlc3QgYWxsb3dlZCBGb3J0cmFuIHVuaXQgbnVtYmVy KQordG8gbGliSTc3L1JFQURNRS4KKworRnJpIEp1biAyOCAxNDoxNjoxMSBFRFQgMTk5NgorICBG aXggZ2xpdGNoIHdpdGggLW9uZXRyaXA6IHRoZSB0ZW1wb3JhcnkgdmFyaWFibGUgdXNlZCBmb3Ig bm9uY29uc3RhbnQKK2luaXRpYWwgbG9vcCB2YXJpYWJsZSB2YWx1ZXMgd2FzIHJlY3ljbGVkIHRv byBzb29uLiAgRXhhbXBsZToKKwlkbyBpID0gaisxLCBrCisJCWNhbGwgZm9vKGkrMSkJISB0ZW1w IGZvciBqKzEgd2FzIHJldXNlZCBoZXJlCisJCWVuZGRvCisJZW5kCisKK1R1ZSBKdWwgIDIgMTY6 MTE6MjcgRURUIDE5OTYKKyAgZm9ybWF0ZGF0YS5jOiBhZGQgYSAwIHRvIHRoZSBlbmQgb2YgdGhl IGJhc2V0eXBlIGFycmF5IChmb3IgVFlCTEFOSykKKyhhbiBvbWlzc2lvbiB0aGF0IHdhcyBoYXJt bGVzcyBvbiBtb3N0IG1hY2hpbmVzKS4KKyAgZXhwci5jOiBmaXggYSBkZXJlZmVyZW5jZSBvZiBO VUxMIHRoYXQgd2FzIG9ubHkgcG9zc2libGUgd2l0aCBidWdneQoraW5wdXQsIHN1Y2ggYXMKKwlz dWJyb3V0aW5lICRzdWIocykJISB0aGUgJyQnIGlzIGVycm9uZW91cworCWNoYXJhY3RlciBzKigq KQorCXMoMTopID0gJyAnCisJZW5kCisKK1NhdCBKdWwgIDYgMDA6NDQ6NTYgRURUIDE5OTYKKyAg Rml4IGdsaXRjaCBpbiB0aGUgaW50cmluc2ljICJyZWFsIiBmdW5jdGlvbiB3aGVuIGFwcGxpZWQg dG8gYQorY29tcGxleCAob3IgZG91YmxlIGNvbXBsZXgpIHZhcmlhYmxlIGFuZCBwYXNzZWQgYXMg YW4gYXJndW1lbnQgdG8KK3NvbWUgaW50cmluc2ljIGZ1bmN0aW9ucy4gIEV4YW1wbGU6CisJY29t cGxleCBhCisJYiA9IHNxcnQoYSkKKwllbmQKKyAgRml4IGdsaXRjaCAob25seSB2aXNpYmxlIGlm IHlvdSBkbyBub3QgdXNlIGYyYydzIG1hbGxvYyBhbmQgdGhlCittYWxsb2MgeW91IGRvIHVzZSBp cyBkZWZlY3RpdmUgaW4gdGhlIHNlbnNlIHRoYXQgbWFsbG9jKDApIHJldHVybnMgMCkKK2luIGhh bmRsaW5nIGluY2x1ZGUgZmlsZXMgdGhhdCBlbmQgd2l0aCBhbm90aGVyIGluY2x1ZGUgKHBlcmhh cHMKK2ZvbGxvd2VkIGJ5IGNvbW1lbnRzKS4KKyAgRml4IGdsaXRjaCB3aXRoIGNoYXJhY3Rlcioo KikgYXJndW1lbnRzIG5hbWVkICJoIiBhbmQgImkiIHdoZW4KK3RoZSBib2R5IG9mIHRoZSBzdWJy b3V0aW5lIGludm9rZXMgdGhlIGludHJpbnNpYyBMRU4gZnVuY3Rpb24uCisgIEFycmFuZ2UgdGhh dCBhZnRlciBhIHByZXZpb3VzICJmMmMgLVAgZm9vLmYiIGhhcyBwcm9kdWNlZCBmb28uUCwKK3J1 bm5pbmcgImYyYyBmb28uUCBmb28uZiIgd2lsbCBwcm9kdWNlIHZhbGlkIEMgd2hlbiBmb28uZiBj b250YWlucworCWNhbGwgc3ViKCcxMjM0JykKKwllbmQKKwlzdWJyb3V0aW5lIHN1Yihtc2cpCisJ ZW5kCitTcGVjaWZpY2FsbHksIHRoZSBsZW5ndGggYXJndW1lbnQgaW4gImNhbGwgc3ViIiBpcyBu b3cgc3VwcHJlc3NlZC4KK1dpdGggb3Igd2l0aG91dCBmb28uUCwgaXQgaXMgYWxzbyBub3cgc3Vw cHJlc3NlZCB3aGVuIHRoZSBvcmRlciBvZgorc3VicHJvZ3JhbXMgaW4gZmlsZSBmb28uZiBpcyBy ZXZlcnNlZDoKKwlzdWJyb3V0aW5lIHN1Yihtc2cpCisJZW5kCisJY2FsbCBzdWIoJzEyMzQnKQor CWVuZAorICBBZGp1c3QgY29weXJpZ2h0IG5vdGljZXMgdG8gcmVmbGVjdCBBVCZUIGJyZWFrdXAu CisKK1dlZCBKdWwgMTAgMDk6MjU6NDkgRURUIDE5OTYKKyAgRml4IGJ1ZyAocG9zc2libGUgbWVt b3J5IGZhdWx0KSBpbiBoYW5kbGluZyBlcnJvbmVvdXNseSBwbGFjZWQKK2FuZCBpbmNvbnNpc3Rl bnQgZGVjbGFyYXRpb25zLiAgRXhhbXBsZSB0aGF0IGZhdWx0ZWQ6CisJY2hhcmFjdGVyKjEgdyg4 KQorCWNhbGwgZm9vKHcpCisJZW5kCisJc3Vicm91dGluZSBmb28obSkKKwlkYXRhIGggLzAuNS8K KwlpbnRlZ2VyIG0oMikJISBzaG91bGQgYmUgYmVmb3JlIGRhdGEKKwllbmQKKyAgRml4IGJ1ZyAo cG9zc2libGUgZmF1bHQpIGluIGhhbmRsaW5nIGlsbGVnYWwgImlmIiBjb25zdHJ1Y3Rpb25zLgor RXhhbXBsZSAodGhhdCBmYXVsdGVkKToKKwlzdWJyb3V0aW5lIGZvbyhpLGopCisJaWYgKGkpIHRo ZW4JCSEgYnVnOiBpIGlzIGludGVnZXIsIG5vdCBsb2dpY2FsCisJZWxzZSBpZiAoaikgdGhlbgkh IGJ1ZzogaiBpcyBpbnRlZ2VyLCBub3QgbG9naWNhbAorCWVuZGlmCisJZW5kCisgIEZpeCBnbGl0 Y2ggd2l0aCBjaGFyYWN0ZXIqKCopIGFyZ3VtZW50IG5hbWVkICJyZXRfbGVuIiB0byBhCitjaGFy YWN0ZXIqKCopIGZ1bmN0aW9uLgorCitXZWQgSnVsIDEwIDIzOjA0OjE2IEVEVCAxOTk2CisgIEZp eCBtb3JlIGdsaXRjaGVzIGluIHRoZSBpbnRyaW5zaWMgInJlYWwiIGZ1bmN0aW9uIHdoZW4gYXBw bGllZCB0byBhCitjb21wbGV4IChvciBkb3VibGUgY29tcGxleCkgdmFyaWFibGUgYW5kIHBhc3Nl ZCBhcyBhbiBhcmd1bWVudCB0bworc29tZSBpbnRyaW5zaWMgZnVuY3Rpb25zLiAgRXhhbXBsZToK Kwljb21wbGV4IGEsIGIKKwlyID0gc3FydChyZWFsKGNvbmpnKGEpKSkgKyBzcXJ0KHJlYWwoYSpi KSkKKwllbmQKKworVGh1IEp1bCAxMSAxNzoyNzoxNiBFRFQgMTk5NgorICBGaXggYSBtZW1vcnkg ZmF1bHQgYXNzb2NpYXRlZCB3aXRoIGNvbXBsaWNhdGVkLCBpbGxlZ2FsIGlucHV0LgorRXhhbXBs ZToKKwlzdWJyb3V0aW5lIGdvbworCWNoYXJhY3RlciBhCisJY2FsbCBmb28oYSkJISBpbmNvbnNp c3RlbnQgd2l0aCBzdWJzZXF1ZW50IGRlZiBhbmQgY2FsbAorCWVuZAorCXN1YnJvdXRpbmUgZm9v KGEpCisJZW5kCisJY2FsbCBmb28oYSkKKwllbmQKKworV2VkIEp1bCAxNyAxOToxODoyOCBFRFQg MTk5NgorICBGaXggeWV0IGFub3RoZXIgY2FzZSBvZiBpbnRyaW5zaWMgInJlYWwiIGFwcGxpZWQg dG8gYSBjb21wbGV4Cithcmd1bWVudC4gIEV4YW1wbGU6CisJY29tcGxleCBhKDMpCisJeCA9IHNx cnQocmVhbChhKDIpKSkJISBnYXZlIGVycm9yIG1lc3NhZ2UgYWJvdXQgYmFkIHRhZworCWVuZAor CitNb24gQXVnIDI2IDExOjI4OjU3IEVEVCAxOTk2CisgIFR3ZWFrIHN5c2RlcC5jIGZvciBub24t VW5peCBzeXN0ZW1zIGluIHdoaWNoIHByb2Nlc3MgSUQncyBjYW4gYmUKK292ZXIgNSBkaWdpdHMg bG9uZy4KKworVHVlIEF1ZyAyNyAwODozMTozMiBFRFQgMTk5NgorICBBZGp1c3QgdGhlIGlzaGZ0 IGludHJpbnNpYyB0byB1c2UgdW5zaWduZWQgcmlnaHQgc2hpZnRzLiAgKFByZXZpb3VzbHksCith IG5lZ2F0aXZlIGNvbnN0YW50IHNlY29uZCBvcGVyYW5kIHJlc3VsdGVkIGluIGEgcG9zc2libHkg c2lnbmVkIHNoaWZ0LikKKworVGh1IFNlcCAxMiAxNDowNDowNyBFRFQgMTk5NgorICBlcXVpdi5j OiBmaXggZ2xpdGNoIHdpdGggLURLUl9oZWFkZXJzLgorICBsaWJpNzc6IGZtdGxpYi5jOiBmaXgg YnVnIGluIHByaW50aW5nIHRoZSBtb3N0IG5lZ2F0aXZlIGludGVnZXIuCisKK0ZyaSBTZXAgMTMg MDg6NTQ6NDAgRURUIDE5OTYKKyAgRGlhZ25vc2Ugc29tZSBpbGxlZ2FsIGFwcGVhcmFuY2VzIG9m IHN1YnN0cmluZyBub3RhdGlvbi4KKworVHVlIFNlcCAxNyAxNzo0ODowOSBFRFQgMTk5NgorICBG aXggZmF1bHQgaW4gaGFuZGxpbmcgc29tZSBjb21wbGV4IHBhcmFtZXRlcnMuICBFeGFtcGxlOgor CXN1YnJvdXRpbmUgZm9vKGEpCisJZG91YmxlIGNvbXBsZXggYSwgYgorCXBhcmFtZXRlcihiID0g KDAsMSkpCisJYSA9IGIJISBmMmMgZmF1bHRlZCBoZXJlCisJZW5kCisKK1RodSBTZXAgMjYgMDc6 NDc6MTAgRURUIDE5OTYKKyAgbGliaTc3OiAgZm10Lmg6ICBmb3IgZm9ybWF0dGVkIHdyaXRlcyBv ZiBuZWdhdGl2ZSBpbnRlZ2VyKjEgdmFsdWVzLAorbWFrZSBpYyBzaWduZWQgb24gQU5TSSBzeXN0 ZW1zLiAgSWYgZm9ybWF0dGVkIHdyaXRlcyBvZiBpbnRlZ2VyKjEKK3ZhbHVlcyB0cm91YmxlIHlv dSB3aGVuIHVzaW5nIGEgSyZSIEMgY29tcGlsZXIsIHN3aXRjaCB0byBhbiBBTlNJCitjb21waWxl ciBvciB1c2UgYSBjb21waWxlciBmbGFnIHRoYXQgbWFrZXMgY2hhcmFjdGVycyBzaWduZWQuCisK K1R1ZSBPY3QgIDEgMTQ6NDE6MzYgRURUIDE5OTYKKyAgR2l2ZSBhIGJldHRlciBlcnJvciBtZXNz YWdlIHdoZW4gZHVtbXkgYXJndW1lbnRzIGFwcGVhciBpbiBkYXRhCitzdGF0ZW1lbnRzLgorCitU aHUgT2N0IDE3IDEzOjM3OjIyIEVEVCAxOTk2CisgIEZpeCBidWcgaW4gdHlwZWNoZWNraW5nIGFy Z3VtZW50cyB0byBjaGFyYWN0ZXIgYW5kIGNvbXBsZXggKG9yCitkb3VibGUgY29tcGxleCkgZnVu Y3Rpb25zOyB0aGUgYnVnIGNvdWxkIGNhdXNlIGxlbmd0aCBhcmd1bWVudHMKK2ZvciBjaGFyYWN0 ZXIgYXJndW1lbnRzIHRvIGJlIG9taXR0ZWQgb24gaW52b2NhdGlvbnMgYXBwZWFyaW5nCit0ZXh0 dWFsbHkgYWZ0ZXIgdGhlIGZpcnN0IGludm9jYXRpb24uICBGb3IgZXhhbXBsZSwgaW4KKwlzdWJy b3V0aW5lIGZvbworCWNoYXJhY3RlciBjCisJY29tcGxleCB6b3QKKwljYWxsIGdvbyh6b3QoYyks IHpvdChjKSkKKwllbmQKK3RoZSBsZW5ndGggd2FzIG9taXR0ZWQgZnJvbSB0aGUgc2Vjb25kIGlu dm9jYXRpb24gb2Ygem90LCBhbmQKK3RoZXJlIHdhcyBhbiBlcnJvbmVvdXMgZXJyb3IgbWVzc2Fn ZSBhYm91dCBpbmNvbnNpc3RlbnQgY2FsbGluZworc2VxdWVuY2VzLgorCitXZWQgRGVjICA0IDEz OjU5OjE0IEVTVCAxOTk2CisgIEZpeCBidWcgcmV2ZWFsZWQgYnkKKwlzdWJyb3V0aW5lIHRlc3Qo Y2R1bSxyZHVtKQorCWNvbXBsZXggY2R1bQorCXJkdW09Y29zKHJlYWwoY2R1bSkpCSEgIlVuZXhw ZWN0ZWQgdGFnIDMgaW4gb3Bjb252X2Z1ZGdlIgorCWVuZAorICBGaXggZ2xpdGNoIGluIHBhcnNp bmcgIkRPIDEwIEQwID0gMSwgMTAiLgorICBGaXggZ2xpdGNoIGluIHBhcnNpbmcKKwlyZWFsKjgg eAorCXJlYWwqOCB4CSEgZXJyb25lb3VzICJpbmNvbXBhdGlibGUgdHlwZSIgbWVzc2FnZQorCWNh bGwgZm9vKHgpCisJZW5kCisKK01vbiBEZWMgIDkgMjM6MTU6MDIgRVNUIDE5OTYKKyAgRml4IGds aXRjaCBpbiBwYXJhbWV0ZXIgYWRqdXN0bWVudHMgZm9yIGFycmF5cyB3aG9zZSBsb3dlcgorYm91 bmQgZGVwZW5kcyBvbiBhIHNjYWxhciBhcmd1bWVudC4gIEV4YW1wbGU6CisJc3Vicm91dGluZSBi dWcocCx6LG0sbikKKwlpbnRlZ2VyIHooKiksbSxuCisJZG91YmxlIHByZWNpc2lvbiBwKHoobSk6 eihtKSArIG4pCSEgcF9vZmZzZXQgYm90Y2hlZAorCWNhbGwgZm9vKHAoMCksIHAobikpCisJZW5k CisgIGxpYmk3NzogY29tcGxhaW4gYWJvdXQgbm9uLXBvc2l0aXZlIHJlYz0gaW4gZGlyZWN0IHJl YWQgYW5kIHdyaXRlCitzdGF0ZW1lbnRzLgorICBsaWJmNzc6IHRyaXZpYWwgYWRqdXN0bWVudHM7 IFZlcnNpb24uYyBub3QgY2hhbmdlZC4KKworV2VkIEZlYiAxMiAwMDoxODowMyBFU1QgMTk5Nwor ICBvdXRwdXQuYzogZml4IChzZWxkb20gcHJvYmxlbWF0aWMpIGdsaXRjaCBpbiBvdXRfY2FsbDog cHV0IHBhcmVucworYXJvdW5kIHRoZSAuLi4gaW4gYSB0ZXN0IG9mIHRoZSBmb3JtICJpZiAocS0+ dGFnID09IFRBRERSICYmIC4uLikiLgorICB2YXguYzogZml4IGJ1ZyByZXZlYWxlZCBpbiB0aGUg InBzaV9vZmZzZXQgPSIgYXNzaWdubWVudCBpbiB0aGUKK2ZvbGxvd2luZyBleGFtcGxlOgorCXN1 YnJvdXRpbmUgZm9vKHBzaSxtKQorCWludGVnZXIgeigxMDApLG0KKwljb21tb24gL2EvIHoKKwlk b3VibGUgcHJlY2lzaW9uIHBzaSh6KG0pOnoobSkgKyAxMCkKKwljYWxsIGZvbyhtKzEsIHBzaSgw KSxwc2koMTApKQorCWVuZAorCitNb24gRmViIDI0IDIzOjQ0OjU0IEVTVCAxOTk3CisgIEZvciBj b25zaXN0ZW5jeSB3aXRoIGYyYydzIGN1cnJlbnQgdHJlYXRtZW50IG9mIGFkamFjZW50IGNoYXJh Y3Rlcgorc3RyaW5ncyBpbiBGT1JNQVQgc3RhdGVtZW50cywgcmVjb2duaXplIGEgSG9sbGVyaXRo IHN0cmluZyBmb2xsb3dpbmcKK2Egc3RyaW5nIChhbmQgbWVyZ2UgYWRqYWNlbnQgc3RyaW5ncyBp biBGT1JNQVQgc3RhdGVtZW50cykuCisKK1dlZCBGZWIgMjYgMTM6NDE6MTEgRVNUIDE5OTcKKyAg TmV3IGxpYmYyYy56aXAsIGEgY29tYmluYXRpb24gb2YgdGhlIGxpYmY3NyBhbmQgbGliaTc3IGJ1 bmRsZXMgKGFuZAorYXZhaWxhYmxlIG9ubHkgYnkgZnRwKS4KKyAgbGliZjc3OiBhZGp1c3QgZnVu Y3Rpb25zIHdpdGggYSBjb21wbGV4IG91dHB1dCBhcmd1bWVudCB0byBwZXJtaXQKK2FsaWFzaW5n IGl0IHdpdGggaW5wdXQgYXJndW1lbnRzLiAgKEZvciBub3csIGF0IGxlYXN0LCB0aGlzIGlzIGp1 c3QKK2ZvciBwb3NzaWJsZSBiZW5lZml0IG9mIGc3Ny4pCisgIGxpYmk3NzogdHdlYWsgdG8gZnRl bGxfLmMgZm9yIHN5c3RlbXMgd2l0aCBzdHJhbmdlIGRlZmluaXRpb25zIG9mCitTRUVLX1NFVCwg ZXRjLgorCitUdWUgQXByICA4IDIwOjU3OjA4IEVEVCAxOTk3CisgIGxpYmY3NzogW2N6XV9kaXYu YzogdHdlYWtzIGludmlzaWJsZSBvbiBtb3N0IHN5c3RlbXMgKHRoYXQgbWF5CitpbXByb3ZlIHRo aW5ncyBzbGlnaHRseSB3aXRoIG9wdGltaXplZCBjb21waWxhdGlvbiBvbiBzeXN0ZW1zIHRoYXQg dXNlCitncmF0dWl0b3VzIGV4dHJhIHByZWNpc2lvbikuCisgIGxpYmk3NzogZm10LmM6IGFkanVz dCB0byBjb21wbGFpbiBhdCBtaXNzaW5nIG51bWJlcnMgaW4gZm9ybWF0cworKGJ1dCBzdGlsbCB0 cmVhdCBtaXNzaW5nICIubm5uIiBhcyAiLjAiKS4KKworRnJpIEFwciAxMSAxNDowNTo1NyBFRFQg MTk5NworICBsaWJpNzc6IGVyci5jOiBhdHRlbXB0IHRvIG1ha2Ugc3RkZXJyIGxpbmUgYnVmZmVy ZWQgcmF0aGVyIHRoYW4KK2Z1bGx5IGJ1ZmZlcmVkLiAgKEJ1ZmZlcmluZyBpcyBuZWVkZWQgZm9y IGZvcm1hdCBpdGVtcyBUIGFuZCBUUi4pCisKK1RodSBBcHIgMTcgMjI6NDI6NDMgRURUIDE5OTcK KyBsaWJmNzc6IGFkZCBGNzdfYWxvYy5vIHRvIG1ha2VmaWxlIChhbmQgbWFrZWZpbGUudSBpbiBs aWJmMmMuemlwKS4KKworRnJpIEFwciAyNSAxOTozMjowOSBFRFQgMTk5NworIGxpYmY3NzogYWRk IFtkZV10aW1lXy5jICh3aGljaCBtYXkgZ2l2ZSB0cm91YmxlIG9uIHNvbWUgc3lzdGVtcykuCisK K1R1ZSBNYXkgMjcgMDk6MTg6NTIgRURUIDE5OTcKKyBsaWJpNzc6IGZ0ZWxsXy5jOiBmaXggdHlw byB0aGF0IGNhdXNlZCB0aGUgdGhpcmQgYXJndW1lbnQgdG8gYmUKK3RyZWF0ZWQgYXMgMiBvbiBz b21lIHN5c3RlbXMuCisKK01vbiBKdW4gIDkgMDA6MDQ6MzcgRURUIDE5OTcKKyBsaWJpNzcgKGFu ZCBsaWJmMmMuemlwKTogYWRqdXN0IGluY2x1ZGUgb3JkZXIgaW4gZXJyLmMgbHJlYWQuYyB3cmVm LmMKK3JkZm10LmMgdG8gaW5jbHVkZSBmbXQuaCAoZXRjLikgYWZ0ZXIgc3lzdGVtIGluY2x1ZGVz LiAgVmVyc2lvbi5jIG5vdAorY2hhbmdlZC4KKworTW9uIEp1bCAyMSAxNjowNDo1NCBFRFQgMTk5 NworICBwcm9jLmM6IGZpeCBnbGl0Y2ggaW4gbG9naWMgZm9yICJub25wb3NpdGl2ZSBkaW1lbnNp b24iIG1lc3NhZ2UuCisgIGxpYmk3NzogaW5xdWlyZS5jOiBhbHdheXMgaW5jbHVkZSBzdHJpbmcu aCAoZm9yIHBvc3NpYmxlIHVzZSB3aXRoCistRE5PTl9VTklYX1NURElPKTsgVmVyc2lvbi5jIG5v dCBjaGFuZ2VkLgorCitUaHUgSnVsIDI0IDE3OjExOjIzIEVEVCAxOTk3CisgIFR3ZWFrICJOb3Rp Y2UiIHRvIHJlZmxlY3QgdGhlIEFUJlQgYnJlYWt1cCAtLSB3ZSBtaXNzZWQgaXQgd2hlbgordXBk YXRpbmcgdGhlIGNvcHlyaWdodCBub3RpY2VzIGluIHRoZSBzb3VyY2UgZmlsZXMgbGFzdCBzdW1t ZXIuCisgIEFkanVzdCBzcmMvbWFrZWZpbGUgc28gbWFsbG9jLm8gaXMgbm90IHVzZWQgYnkgZGVm YXVsdCwgYnV0IGNhbgorYmUgc3BlY2lmaWVkIHdpdGggIm1ha2UgTUFMTE9DPW1hbGxvYy5vIi4K KyAgQWRkIGNvbW1lbnRzIHRvIHNyYy9SRUFETUUgYWJvdXQgdGhlICJDUkFZIiBUM0UuCisKK1R1 ZSBBdWcgIDUgMTQ6NTM6MjUgRURUIDE5OTcKKyAgQWRkIGRlZmluaXRpb24gb2YgY2FsbG9jIHRv IG1hbGxvYy5jOyB0aGlzIG1ha2VzIGYyYydzIG1hbGxvYword29yayBvbiBzb21lIHN5c3RlbXMg d2hlcmUgdHJvdWJsZSBoaXRoZXJ0byBhcm9zZSBiZWNhdXNlIHJlZmVyZW5jZXMKK3RvIGNhbGxv YyBicm91Z2h0IGluIHRoZSBzeXN0ZW0ncyBtYWxsb2MuICAoT24gc2Vuc2libGUgc3lzdGVtcywK K2NhbGxvYyBpcyBkZWZpbmVkIHNlcGFyYXRlbHkgZnJvbSBtYWxsb2MuICBUbyBhdm9pZCBjb25m dXNpb24gb24KK290aGVyIHN5c3RlbXMsIGYyYy9tYWxsb2MuYyBub3cgZGVmaW5lcyBjYWxsb2Mu KQorICBsaWJpNzc6IGxyZWFkLmM6IGFkanVzdCB0byBhY2NvcmQgd2l0aCBhIGNoYW5nZSB0byB0 aGUgRm9ydHJhbiA4WAorZHJhZnQgKGluIDE5OTAgb3IgMTk5MSkgdGhhdCByZXNjaW5kZWQgcGVy bWlzc2lvbiB0byBlbGlkZSBxdW90ZSBtYXJrcworaW4gbmFtZWxpc3QgaW5wdXQgb2YgY2hhcmFj dGVyIGRhdGE7IHRvIGdldCB0aGUgb2xkIGJlaGF2aW9yLCBjb21waWxlCit3aXRoIEY4WF9OTUxf RUxJREVfUVVPVEVTICNkZWZpbmVkLiAgd3J0Zm10Lm86IHdydF9HOiB0d2VhayB0byBwcmludAor dGhlIHJpZ2h0IG51bWJlciBvZiAwJ3MgZm9yIHplcm8gdW5kZXIgRyBmb3JtYXQuCisKK1NhdCBB dWcgMTYgMDU6NDU6MzIgRURUIDE5OTcKKyAgbGliaTc3OiBpaW8uYzogZml4IGJ1ZyBpbiBpbnRl cm5hbCB3cml0ZXMgdG8gYW4gYXJyYXkgb2YgY2hhcmFjdGVyCitzdHJpbmdzIHRoYXQgc29tZXRp bWVzIGNhdXNlZCBvbmUgbW9yZSBhcnJheSBlbGVtZW50IHRoYW4gcmVxdWlyZWQgYnkKK3RoZSBm b3JtYXQgdG8gYmUgYmxhbmstZmlsbGVkLiAgRXhhbXBsZTogZm9ybWF0KDF4KS4KKworV2VkIFNl cCAxNyAwMDozOToyOSBFRFQgMTk5NworICBsaWJpNzc6IGZtdC5bY2hdIHJkZm10LmMgd3J0Zm10 LmM6IHR3ZWFrIHN0cnVjdCBzeWwgZm9yIG1hY2hpbmVzCit3aXRoIDY0LWJpdCBwb2ludGVycyBh bmQgMzItYml0IGludHMgdGhhdCBkaWQgbm90IDY0LWJpdCBhbGlnbgorc3RydWN0IHN5bCAoZS5n LiwgTGludXggb24gdGhlIERFQyBBbHBoYSkuICBUaGlzIGNoYW5nZSBzaG91bGQgYmUKK2ludmlz aWJsZSBvbiBvdGhlciBtYWNoaW5lcy4KKworU3VuIFNlcCAyMSAyMjowNToxOSBFRFQgMTk5Nwor ICBsaWJmNzc6IFtkZV10aW1lXy5jIChVbml4IHN5c3RlbXMgb25seSk6IGNoYW5nZSByZXR1cm4g dHlwZSB0byBkb3VibGUuCisKK1RodSBEZWMgIDQgMjI6MTA6MDkgRVNUIDE5OTcKKyAgRml4IGJ1 ZyB3aXRoIGhhbmRsaW5nIGxhcmdlIGJsb2NrcyBvZiBjb21tZW50cyAob3ZlciA0ayk7IHBhcnRz IG9mIHRoZQorc2Vjb25kIGFuZCBzdWJzZXF1ZW50IGJsb2NrcyB3ZXJlIGxpa2VseSB0byBiZSBs b3N0IChub3QgY29waWVkIGludG8KK2NvbW1lbnRzIGluIHRoZSByZXN1bHRpbmcgQykuICBBbGxv dyBjb21tZW50IGxpbmVzIHRvIGJlIGxvbmdlciBiZWZvcmUKK2JyZWFraW5nIHRoZW0uCisKK01v biBKYW4gMTkgMTc6MTk6MjcgRVNUIDE5OTgKKyAgbWFrZWZpbGU6IGNoYW5nZSB0aGUgcnVsZSBm b3IgbWFraW5nIGdyYW0uYyB0byBvbmUgZm9yIG1ha2luZyBncmFtMS5jOworaGVuY2Vmb3J0aCwg YXNraW5nIG5ldGxpYiB0byAic2VuZCBhbGwgZnJvbSBmMmMvc3JjIiB3aWxsIGJyaW5nIHlvdSBh Cit3b3JraW5nIGdyYW0uYy4gIE5vd2FkYXlzIHRoZXJlIGFyZSBzaW1wbHkgdG9vIG1hbnkgYnJv a2VuIHZlcnNpb25zIG9mCit5YWNjIGZsb2F0aW5nIGFyb3VuZC4KKyAgbGliaTc3OiBiYWNrc3Bh Y2UuYzogZm9yIGItPnVmbXQ9PTAsIGNoYW5nZSBzaXplb2YoaW50KSB0bworc2l6ZW9mKHVpb2xl bikuICBPbiBtYWNoaW5lcyB3aGVyZSB0aGlzIHdvdWxkIG1ha2UgYSBkaWZmZXJlbmNlLCBpdCBp cworYmVzdCBmb3IgcG9ydGFiaWxpdHkgdG8gY29tcGlsZSBsaWJJNzcgd2l0aCAtRFVJT0xFTl9p bnQsIHdoaWNoIHdpbGwKK3JlbmRlciB0aGUgY2hhbmdlIGludmlzaWJsZS4KKworVHVlIEZlYiAy NCAwODozNTozMyBFU1QgMTk5OAorICBtYWtlZmlsZTogcmVtb3ZlIGdyYW0uYyBmcm9tIHRoZSAi bWFrZSBjbGVhbiIgcnVsZS4KKworV2VkIEZlYiAyNSAwODoyOTozOSBFU1QgMTk5OAorICBtYWtl ZmlsZTogY2hhbmdlIENGTEFHUyBhc3NpZ25tZW50IHRvIC1POyBhZGQgInZlcnljbGVhbiIgcnVs ZS4KKworV2VkIE1hciAgNCAxMzoxMzoyMSBFU1QgMTk5OAorICBsaWJpNzc6IG9wZW4uYzogZml4 IGdsaXRjaCBpbiBjb21wYXJpbmcgZmlsZSBuYW1lcyB1bmRlcgorLUROT05fVU5JWF9TVERJTy4K KworTW9uIE1hciAgOSAyMzo1Njo1NiBFU1QgMTk5OAorICBwdXRwY2MuYzogb21pdCBhbiB1bm5l Y2Vzc2FyeSB0ZW1wb3JhcnkgdmFyaWFibGUgaW4gY29tcHV0aW5nCisoZXhwcikqKjMuCisgIGxp YmY3NywgbGliaTc3OiBtaW5vciB0d2Vha3MgdG8gbWFrZSBzb21lIEMrKyBjb21waWxlcnMgaGFw cHk7CitWZXJzaW9uLmMgbm90IGNoYW5nZWQuCisKK1dlZCBNYXIgMTggMTg6MDg6NDcgRVNUIDE5 OTgKKyAgbGliZjc3OiBtaW5vciB0d2Vha3MgdG8gW2VkXXRpbWVfLmM7IFZlcnNpb24uYyBub3Qg Y2hhbmdlZC4KKyAgbGliaTc3OiBlbmRmaWxlLmMsIG9wZW4uYzogYWNxdWlyZSB0ZW1wb3Jhcnkg ZmlsZXMgZnJvbSB0bXBmaWxlKCksCit1bmxlc3MgY29tcGlsZWQgd2l0aCAtRE5PTl9BTlNJX1NU RElPLCB3aGljaCB1c2VzIG1rdGVtcCgpLgorTmV3IGJ1ZmZlcmluZyBzY2hlbWUgaW5kZXBlbmRl bnQgb2YgTk9OX1VOSVhfU1RESU8gZm9yIGhhbmRsaW5nIFQKK2Zvcm1hdCBpdGVtcy4gIE5vdyAt RE5PTl9VTklYX1NURElPIGlzIG5vIGxvbmdlciBiZSBuZWNlc3NhcnkgZm9yCitMaW51eCwgYW5k IGxpYmYyYyBubyBsb25nZXIgY2F1c2VzIHN0ZGVyciB0byBiZSBidWZmZXJlZCAtLSB0aGUgZm9y bWVyCitzZXRidWYgb3Igc2V0dmJ1ZiBjYWxsIGZvciBzdGRlcnIgd2FzIHRvIG1ha2UgVCBmb3Jt YXQgaXRlbXMgd29yay4KK29wZW4uYzogdXNlIHRoZSBQb3NpeCBhY2Nlc3MoKSBmdW5jdGlvbiB0 byBjaGVjayBleGlzdGVuY2Ugb3IKK25vbmV4aXN0ZW5jZSBvZiBmaWxlcywgZXhjZXB0IHVuZGVy IC1ETk9OX1BPU0lYX1NURElPLCB3aGVyZSB0cmlhbAorZm9wZW4gY2FsbHMgYXJlIHVzZWQuICBJ biBvcGVuLmMsIGZpeCBib3RjaCBpbiBjaGFuZ2VzIG9mIDE5OTgwMzA0LgorICBsaWJmMmMuemlw OiB0aGUgUEMgbWFrZWZpbGVzIGFyZSBub3cgc2V0IGZvciBOVC9XOTUsIHdpdGggY29tbWVudHMK K2Fib3V0IGNoYW5nZXMgZm9yIERPUy4KKworRnJpIEFwciAgMyAxNzoyMjoxMiBFU1QgMTk5OAor ICBBZGp1c3QgZml4IG9mIDE5OTYwOTEzIHRvIGFnYWluIHBlcm1pdCBzdWJzdHJpbmcgbm90YXRp b24gb24KK2NoYXJhY3RlciB2YXJpYWJsZXMgaW4gZGF0YSBzdGF0ZW1lbnRzLgorCitTdW4gQXBy ICA1IDE5OjI2OjUwIEVEVCAxOTk4CisgIGxpYmk3Nzogd3NmZS5jOiBtYWtlICQgZm9ybWF0IGl0 ZW0gd29yazogdGhpcyB3YXMgbG9zdCBpbiB0aGUgY2hhbmdlcworb2YgMTcgTWFyY2ggMTk5OC4K KworU2F0IE1heSAxNiAxOTowODo1MSBFRFQgMTk5OAorICBBZGp1c3Qgb3V0cHV0IG9mIGZ0bmxl biBjb25zdGFudHM6IHJhdGhlciB0aGFuIGFwcGVuZGluZyBMLAorcHJlcGVuZCAoZnRubGVuKS4g IFRoaXMgc2hvdWxkIG1ha2UgdGhlIHJlc3VsdGluZyBDIG1vcmUgcG9ydGFibGUsCitlLmcuLCB0 byBzeXN0ZW1zIChzdWNoIGFzIERFQyBBbHBoYSBVbml4IHN5c3RlbXMpIG9uIHdoaWNoIGxvbmcK K21heSBiZSBsb25nZXIgdGhhbiBmdG5sZW4uCisgIEFkanVzdCAtciBzbyBpdCBhbHNvIGNhc3Rz IFJFQUwgZXhwcmVzc2lvbnMgcGFzc2VkIHRvIGludHJpbnNpYworZnVuY3Rpb25zIHRvIFJFQUwu CisKK1dlZCBNYXkgMjcgMTY6MDI6MzUgRURUIDE5OTgKKyAgbGliZjJjLnppcDogdHdlYWsgZGVz Y3JpcHRpb24gb2YgY29tcGlsaW5nIGxpYmYyYyBmb3IgSU5URUdFUio4Cit0byBhY2NvcmQgd2l0 aCBtYWtlZmlsZS51IHJhdGhlciB0aGFuIGxpYkY3Ny9tYWtlZmlsZS4KKworVGh1IE1heSAyOCAy Mjo0NTo1OSBFRFQgMTk5OAorICBsaWJpNzc6IGJhY2tzcGFjZS5jIGRmZS5jIGR1ZS5jIGlpby5j IGxyZWFkLmMgcnNmZS5jIHN1ZS5jIHdzZmUuYzoKK3NldCBmX19jdXJ1bml0IHNvb25lciBzbyB2 YXJpb3VzIGVycm9yIG1lc3NhZ2VzIHdpbGwgY29ycmVjdGx5CitpZGVudGlmeSB0aGUgSS9PIHVu aXQgaW52b2x2ZWQuCisgIGxpYmYyYy56aXA6IGFib3ZlLCBwbHVzIHR3ZWFrcyB0byBQQyBtYWtl ZmlsZXM6IGZvciBzb21lIHB1cnBvc2VzLAoraXQncyBzdGlsbCBiZXN0IHRvIGNvbXBpbGUgd2l0 aCAtRE1TRE9TIChldmVuIGZvciB1c2Ugd2l0aCBOVCkuCisKK1RodSBKdW4gMTggMDE6MjI6NTIg RURUIDE5OTgKKyAgbGliaTc3OiBscmVhZC5jOiBtb2RpZmllZCBzbyBmbG9hdGluZy1wb2ludCBu dW1iZXJzIChjb250YWluaW5nCitlaXRoZXIgYSBkZWNpbWFsIHBvaW50IG9yIGFuIGV4cG9uZW50 IGZpZWxkKSBhcmUgdHJlYXRlZCBhcyBlcnJvcnMKK3doZW4gdGhleSBhcHBlYXIgYXMgbGlzdCBp bnB1dCBmb3IgaW50ZWdlciBkYXRhLiAgQ29tcGlsZSBscmVhZC5jIHdpdGgKKy1EQUxMT1dfRkxP QVRfSU5fSU5URUdFUl9MSVNUX0lOUFVUIHRvIHJlc3RvcmUgdGhlIG9sZCBiZWhhdmlvci4KKwor TW9uIEF1ZyAzMSAxMDozODo1NCBFRFQgMTk5OAorICBmb3JtYXRkYXRhLmM6IGlmIHBvc3NpYmxl LCBhbmQgYXNzdW1pbmcgZG91YmxlcyBtdXN0IGJlIGFsaWduZWQgb24KK2RvdWJsZSBib3VuZGFy aWVzLCB1c2UgZXhpc3RpbmcgaG9sZXMgaW4gREFUQSBmb3IgY29tbW9uIGJsb2NrcyB0bworZm9y Y2UgYWxpZ25tZW50IG9mIHRoZSBibG9jay4gIEZvciBleGFtcGxlLAorCWJsb2NrIGRhdGEKKwlj b21tb24gL2FiYy8gYSwgYgorCWRvdWJsZSBwcmVjaXNpb24gYQorCWludGVnZXIgYigyKQorCWRh dGEgYigyKS8xLworCWVuZAordXNlZCB0byBnZW5lcmF0ZQorCXN0cnVjdCB7CisJICAgIGludGVn ZXIgZmlsbF8xWzNdOworCSAgICBpbnRlZ2VyIGVfMjsKKwkgICAgZG91YmxlcmVhbCBlXzM7CisJ ICAgIH0gYWJjXyA9IHsgezB9LCAxLCAwLiB9OworYW5kIG5vdyBnZW5lcmF0ZXMKKwlzdHJ1Y3Qg eworCSAgICBkb3VibGVyZWFsIGZpbGxfMVsxXTsKKwkgICAgaW50ZWdlciBmaWxsXzJbMV07CisJ ICAgIGludGVnZXIgZV8zOworCSAgICB9IGFiY18gPSB7IHswfSwgezB9LCAxIH07CitJbiB0aGUg b2xkIGdlbmVyYXRlZCBDLCBlXzMgd2FzIGFkZGVkIHRvIGZvcmNlIGFsaWdubWVudDsgaW4gdGhl IG5ldyBDLAorZmlsbF8xIGRvZXMgdGhpcyBqb2IuCisKK01vbiBTZXAgIDcgMTk6NDg6NTEgRURU IDE5OTgKKyAgbGliaTc3OiBtb3ZlIGVfd2RmZSBmcm9tIHNmZS5jIHRvIGRmZS5jLCB3aGVyZSBp dCB3YXMgb3JpZ2luYWxseS4KK1doeSBkaWQgaXQgZXZlciBtb3ZlIHRvIHNmZS5jPworCitUdWUg U2VwICA4IDEwOjIyOjUwIEVEVCAxOTk4CisgIFRyZWF0IGRyZWFsIGFzIGEgc3lub255bSBmb3Ig ZGJsZSB1bmxlc3MgLWNkIGlzIHNwZWNpZmllZCBvbiB0aGUKK2NvbW1hbmQgbGluZS4KKworU3Vu IFNlcCAxMyAyMjoyMzo0MSBFRFQgMTk5OAorICBmb3JtYXQuYzogZml4IGJ1ZyBpbiB3cml0aW5n IHByb3RvdHlwZXMgdW5kZXIgZjJjIC1BIC4uLiAqLlA6Cit1bmRlciBzb21lIGNpcmN1bXN0YW5j ZXMgaW52b2x2aW5nIGV4dGVybmFsIGZ1bmN0aW9ucyB3aXRoIG5vIGtub3duCit0eXBlLCBhIG51 bGwgcG9pbnRlciB3YXMgcGFzc2VkIHRvIHByaW50Zi4KKworVHVlIE9jdCAyMCAyMzoyNTo1NCBF RFQgMTk5OAorICBDb21tZW50cyBhZGRlZCB0byBsaWJmMmMvUkVBRE1FIGFuZCBsaWJGNzcvUkVB RE1FLCBwb2ludGluZyBvdXQKK3RoZSBuZWVkIHRvIG1vZGlmeSBzaWduYWwxLmggb24gc29tZSBz eXN0ZW1zLgorCitXZWQgRmViIDEwIDIyOjU5OjUyIEVTVCAxOTk5CisgIGRlZnMuaCBsZXguYzog cGVybWl0IGxvbmcgbmFtZXMgKHVwIHRvIGF0IGxlYXN0IHJvdWdobHkKK01BWF9TSEFSUExJTkVf TEVOID0gMTAwMCBjaGFyYWN0ZXJzIGxvbmcpIGluICNsaW5lIGxpbmVzICh3aGljaCBvbmx5Citt YXR0ZXJzIHVuZGVyIC1nKS4KKyAgZmM6IGFkZCAtVSBvcHRpb247IHJlY29nbml6ZSAuc28gZmls ZXMuCisKK1NhdCBGZWIgMTMgMTA6MTg6MjcgRVNUIDE5OTkKKyBsaWJmMmM6IGVuZGZpbGUuYywg bHJlYWQuYywgc2lnbmFsMS5oMDogbWlub3IgdHdlYWtzIHRvIG1ha2Ugc29tZQorKEMrKykgY29t cGlsZXJzIGhhcHBpZXI7IGY3N19hbG9jLmM6IG1ha2UgZXhpdF8oKSB2aXNpYmxlIHRvIEMrKwor Y29tcGlsZXJzLiAgVmVyc2lvbiBzdHJpbmdzIG5vdCBjaGFuZ2VkLgorCitUaHUgTWFyIDExIDIz OjE0OjAyIEVTVCAxOTk5CisgIE1vZGlmeSBmMmMgKGV4ZWMuYywgZXhwci5jKSB0byBkaWFnbm9z ZSBpbmNvcnJlY3QgbWl4aW5nIG9mIHR5cGVzCit3aGVuIChmMmMgZXh0ZW5kZWQpIGludHJpbnNp YyBmdW5jdGlvbnMgYXJlIGludm9sdmVkLCBhcyBpbgorKG5vdCgxNykgLmFuZC4gNCkuICBDYXRj aGluZyB0aGlzIGluIHRoZSBmaXJzdCBleGVjdXRhYmxlIHN0YXRlbWVudAoraXMgYSBiaXQgdHJp Y2t5LCBhcyBzb21lIGNoZWNraW5nIG11c3QgYmUgcG9zdHBvbmVkIHVudGlsIGFsbCBzdGF0ZW1l bnQKK2Z1bmN0aW9uIGRlY2xhcmF0aW9ucyBoYXZlIGJlZW4gcGFyc2VkLiAgVGh1cyB0aGVyZSBp cyBhIGNoYW5jZSBvZgordG9kYXkncyBjaGFuZ2VzIGludHJvZHVjaW5nIGJ1Z3MgdW5kZXIgKGxl dCB1cyBob3BlKSB1bnVzdWFsIGNvbmRpdGlvbnMuCisKK1N1biBNYXIgMjggMTM6MTc6NDQgRVNU IDE5OTkKKyAgbGV4LmM6IHR3ZWFrIHRvIGdldCB0aGUgZmlsZSBuYW1lIHJpZ2h0IGluIGVycm9y IG1lc3NhZ2VzIGNhdXNlZAorYnkgc3RhdGVtZW50cyBqdXN0IGFmdGVyIGEgIyBubm4gImZpbGVu YW1lIiBsaW5lIGVtaXR0ZWQgYnkgdGhlIEMKK3ByZXByb2Nlc3Nvci4gIChUaGUgdHJvdWJsZSBp cyB0aGF0IHRoZSBsaW5lIGZvbGxvd2luZyB0aGUgIyBubm4gbGluZQorbXVzdCBiZSByZWFkIHRv IHNlZSBpZiBpdCBpcyBhIGNvbnRpbnVhdGlvbiBvZiB0aGUgc3R1ZmYgdGhhdCBwcmVjZWRlZAor dGhlICMgbm5uIGxpbmUuKSAgV2hlbiAjIG5ubiAiZmlsZW5hbWUiIGxpbmVzIGFwcGVhciBhbW9u ZyB0aGUgbGluZXMKK2ZvciBhIEZvcnRyYW4gc3RhdGVtZW50LCB0aGUgZmlsZW5hbWUgcmVwb3J0 ZWQgaW4gYW4gZXJyb3IgbWVzc2FnZSBmb3IKK3RoZSBzdGF0ZW1lbnQgc2hvdWxkIG5vdyBiZSB0 aGUgZmlsZSB0aGF0IHdhcyBjdXJyZW50IHdoZW4gdGhlIGZpcnN0CitsaW5lIG9mIHRoZSBzdGF0 ZW1lbnQgd2FzIHJlYWQuCisKK1N1biBNYXkgIDIgMjI6Mzg6MjUgRURUIDE5OTkKKyAgbGliZjc3 LCBsaWJpNzcsIGxpYmYyYy56aXA6IG1ha2UgZ2V0ZW52XygpIG1vcmUgcG9ydGFibGUgKGNhbGwK K2dldGVudigpIHJhdGhlciB0aGFuIGtub3dpbmcgYWJvdXQgY2hhciAqKmVudmlyb24pOyBhZGp1 c3Qgc29tZQorY29tcGxleCBpbnRyaW5zaWNzIHRvIHdvcmsgd2l0aCBvdmVybGFwcGluZyBhcmd1 bWVudHMgKGNhdXNlZCBieQoraW5hcHByb3ByaWF0ZSB1c2Ugb2YgZXF1aXZhbGVuY2UpOyBvcGVu LmM6IGdldCAiZXh0ZXJuYWwiIHZlcnN1cworImludGVybmFsIiByaWdodCBpbiB0aGUgZXJyb3Ig bWVzc2FnZSBpZiBhIGZpbGUgY2Fubm90IGJlIG9wZW5lZDsKK2Vyci5jOiBjYXN0IGEgcG9pbnRl ciBkaWZmZXJlbmNlIHRvIChpbnQpIGZvciAlZDsgcmRmbXQuYzogb21pdAorZml4ZWQtbGVuZ3Ro IGJ1ZmZlciB0aGF0IGNvdWxkIGJlIG92ZXJ3cml0dGVuIGJ5IGZvcm1hdHMgSW5uIG9yIExubgor d2l0aCBubiA+IDgzLgorCitNb24gTWF5ICAzIDEzOjE0OjA3IEVEVCAxOTk5CisgICJJbnZpc2li bGUiIGNoYW5nZXMgdG8gb21pdCBhIGZldyBjb21waWxlciB3YXJuaW5ncyBpbiBmMmMgYW5kCits aWJmMmM7IHR3byBuZXcgY2FzdHMgaW4gbGliZjJjL29wZW4uYyB0aGF0IG1hdHRlciB3aXRoIDY0 LWJpdCBsb25ncywKK2FuZCBvbmUgbW9yZSB0d2VhayAobGliZjJjL2NfbG9nLmMpIGZvciBwYXRo b2xvZ2ljYWwgZXF1aXZhbGVuY2VzLgorICBNaW5vciB1cGRhdGUgdG8gImZjIiBzY3JpcHQ6IG5l dyAtTCBmbGFnIGFuZCBjb21tZW50IGNvcnJlY3Rpb24uCisKK0ZyaSBKdW4gMTggMDI6MzM6MDgg RURUIDE5OTkKKyAgbGliZjJjLnppcDogcmVuYW1lIGJhY2tzcGFjZS5jIGJhY2tzcGFjLmMsIGFu ZCBmaXggYSBnbGl0Y2ggaW4gaXQKKy0tIGItPnVmZCBtYXkgY2hhbmdlIGluIHRfcnVuYygpLiAg KEZvciBub3csIGl0J3Mgc3RpbGwgYmFja3NwYWNlLmMKK2luIHRoZSBsaWJpNzcgYnVuZGxlLikK KworU3VuIEp1biAyNyAyMjowNTo0NyBFRFQgMTk5OQorICBsaWJmMmMuemlwLCBsaWJpNzc6IHJz bmUuYzogZml4IGJ1ZyBpbiBuYW1lbGlzdCBpbnB1dDogYSBtaXNwbGFjZWQKK2luY3JlbWVudCBj b3VsZCBjYXVzZSB3cm9uZyBhcnJheSBlbGVtZW50cyB0byBiZSBhc3NpZ25lZDsgZS5nLiwKKyIm aW5wdXQgayg1KT0xMCoxICZlbmQiIGFzc2lnbmVkIGsoNSkgYW5kIGsoMTUgLi4gMjMpLgorCitU dWUgU2VwICA3IDE0OjEwOjI0IEVEVCAxOTk5CisgIGYyYy5oLCBsaWJmMmMvZjJjLmgwLCBsaWJm MmMvUkVBRE1FOiBtaW5vciB0d2Vha3Mgc28gYSBzaW1wbGUKK3NlZCBjb21tYW5kIGNvbnZlcnRz IGYyYy5oID09IGxpYmYyYy9mMmMuaDAgdG8gYSBmb3JtIHN1aXRhYmxlIGZvcgorbWFjaGluZXMg d2l0aCA4LWJ5dGUgbG9uZ3MgYW5kIGRvdWJsZXMsIDQtYnl0ZSBpbnQncyBhbmQgZmxvYXRzLAor d2hpbGUgd29ya2luZyB3aXRoIGEgZm9ydGhjb21pbmcgKGlsbC1hZHZpc2VkKSB1cGRhdGUgdG8g dGhlIEMKK3N0YW5kYXJkIHRoYXQgb3V0bGF3cyBwbGFpbiAidW5zaWduZWQiLgorICBmMmMuaCwg bGliZjJjL2YyYy5oMDogY2hhbmdlICJpZiAwIiB0byAiI2lmZGVmIElOVEVHRVJfU1RBUl84Ii4K KyAgbGliZjc3LCBsaWJmMmMuemlwOiBbY3pdX2Rpdi5jIGFuZCBSRUFETUU6IGFycmFuZ2UgZm9y IGNvbXBpbGF0aW9uCit1bmRlciAtRElFRUVfQ09NUExFWF9ESVZJREUgdG8gbWFrZSB0aGVzZSBy b3V0aW5lcyBhdm9pZCBjYWxsaW5nIHNpZ19kaWUKK3doZW4gdGhlIGRlbm9taW5hdG9yIG9mIGEg Y29tcGxleCBvciBkb3VibGUgY29tcGxleCBkaXZpc2lvbiB2YW5pc2hlczsKK2luc3RlYWQsIHRo ZXkgcmV0dXJuIHBhaXJzIG9mIE5hTnMgb3IgSW5maW5pdGllcywgZGVwZW5kaW5nIHdoZXRoZXIg dGhlCitudW1lcmF0b3IgYWxzbyB2YW5pc2hlcyBvciBub3QuCisKK1R1ZSBPY3QgIDUgMjM6NTA6 MTQgRURUIDE5OTkKKyAgZm9ybWF0ZGF0YS5jLCBpby5jLCBvdXRwdXQuYywgc3lzZGVwLmM6IGFk anVzdCB0byBtYWtlIGZvcm1hdAorc3RyaW5ncyBsZWdhbCB3aGVuIHRoZXkgY29udGFpbiA4LWJp dCBjaGFyYWN0ZXJzIHdpdGggdGhlIGhpZ2ggYml0IG9uLgorKEZvciBtYW55IEMgY29tcGlsZXJz LCB0aGlzIGlzIG5vdCBuZWNlc3NhcnksIGJ1dCBpdCB0aGUgQU5TSS9JU08gQworc3RhbmRhcmQg ZG9lcyBub3QgcmVxdWlyZSB0aGlzIHRvIHdvcmsuKQorICBsaWJmMmMuemlwOiB0d2VhayBSRUFE TUUgYW5kIGNvcnJlY3QgeHN1bTAub3V0LgorCitNb24gT2N0IDI1IDE3OjMwOjU0IEVEVCAxOTk5 CisgIGlvLmM6IGZpeCBnbGl0Y2ggaW50cm9kdWNlZCBpbiB0aGUgcHJldmlvdXMgY2hhbmdlICgx OTk5MTAwNSkgdGhhdAorY2F1c2VkIGZvcm1hdCgnICUnKSB0byBwcmludCAiJSUiIHJhdGhlciB0 aGFuICIlIi4KKworTW9uIE5vdiAxNSAxMjoxMDozNSBFU1QgMTk5OQorICBsaWJmMmMuemlwOiBm aXggYnVnIHdpdGggdGhlIHNlcXVlbmNlIGJhY2tzcGFjZShuKTsgZW5kZmlsZShuKTsKK3Jld2lu ZChuKTsgcmVhZChuKS4gIFN1cHBseSBtaXNzaW5nIChsb25nKSBjYXN0cyBpbiBhIGNvdXBsZSBv ZiBwbGFjZXMKK3doZXJlIHRoZXkgbWF0dGVyIHdoZW4gc2l6ZShmdG5pbnQpID09IHNpemVvZihp bnQpIDwgc2l6ZW9mKGxvbmcpLgorCitUdWUgSmFuIDE4IDE5OjIyOjI0IEVTVCAyMDAwCisgIEFy cmFuZ2UgZm9yIHBhcmFtZXRlciBzdGF0ZW1lbnRzIGludm9sdmluZyBtaW4oLi4uKSBhbmQgbWF4 KC4uLikKK2Z1bmN0aW9ucyBvZiB0aHJlZSBvciBtb3JlIGFyZ3VtZW50cyB0byB3b3JrLgorICBX YXJuIGFib3V0IHRleHQgYWZ0ZXIgImVuZCIgKHJhdGhlciB0aGFuIHJlcG9ydGluZyBhIHN5bnRh eCBlcnJvcgord2l0aCBhIHN1cnByaXNpbmcgbGluZSBudW1iZXIpLgorICBBY2NlcHQgcHJlcHJv Y2Vzc29yIGxpbmUgbnVtYmVycyBvZiB0aGUgZm9ybSAiIyAxMjM0IiAocG9zc2libHkKK3dpdGgg dHJhaWxpbmcgYmxhbmtzKS4KKyAgQWNjZXB0IGEgY29tbWEgYWZ0ZXIgd3JpdGUoLi4uKSBhbmQg YmVmb3JlIGEgbGlzdCBvZiB0aGluZ3MgdG8gd3JpdGUuCisKK0ZyaSBKYW4gMjEgMTc6MjY6Mjcg RVNUIDIwMDAKKyAgTWlub3IgdXBkYXRlcyB0byBtYWtlIGNvbXBpbGluZyBXaW4zMiBjb25zb2xl IGJpbmFyaWVzIGVhc2llci4gIEEKK3NpZGUgZWZmZWN0IGlzIHRoYXQgdGhlIE1TRE9TIHJlc3Ry aWN0aW9uIG9mIG9ubHkgb25lIEZvcnRyYW4gZmlsZQorcGVyIGludm9jYXRpb24gaXMgbGlmdGVk IChhbmQgImYyYyAqLmYiKSB3b3Jrcy4KKworVHVlIEZlYiAgMSAxODozODozMiBFU1QgMjAwMAor ICBmMmMvc3JjL3Rva2RlZnMuaCBhZGRlZCAodG8gaGVscCBwZW9wbGUgb24gbm9uLVVuaXggc3lz dGVtcyAtLSB0aGUKK21ha2VmaWxlIGhhcyBhbHdheXMgaGFkIGEgcnVsZSBmb3IgZ2VuZXJhdGlu ZyB0b2tkZWZzLmgpLgorCitGcmkgTWFyIDEwIDE4OjQ4OjE3IEVTVCAyMDAwCisgIGxpYmY3Nywg bGliZjJjLnppcDogel9sb2cuYzogdGhlIHJlYWwgcGFydCBvZiB0aGUgZG91YmxlIGNvbXBsZXgg bG9nCitvZiBudW1iZXJzIG5lYXIsIGUuZy4sICgrLTEsZXBzKSB3aXRoIHxlcHN8IHNtYWxsIGlz IG5vdyBtb3JlIGFjY3VyYXRlLgorRm9yIGV4YW1wbGUgaWYgeiA9ICgxLDFkLTcpLCB0aGVuICJ3 cml0ZSgqLCopIHoiIG5vdyB3cml0ZXMKKyIoNS5FLTE1LDEuRS0wNyIgcmF0aGVyIHRoYW4gdGhl IHByZXZpb3VzICIoNC44ODQ5ODEzMUUtMTUsMS5FLTA3KSIuCisKK1RodSBBcHIgMjAgMTM6MDI6 NTQgRURUIDIwMDAKKyAgbGliZjc3LCBsaWJpNzcsIGxpYmYyYy56aXA6IHNfY2F0LmMsIHJzbmUu YywgeHdzbmUuYzogZml4IHR5cGUKK2Vycm9ycyB0aGF0IG9ubHkgbWF0dGVyIGlmIHNpemVvZihm dG5pbnQpICE9IHNpemVvZihmdG5sZW4pLgorCitUdWUgTWF5IDMwIDIzOjM2OjE4IEVEVCAyMDAw CisgIGV4cHIuYzogYWRqdXN0IHN1YmNoZWNrKCkgdG8gdXNlIGEgdGVtcG9yYXJ5IHZhcmlhYmxl IG9mIHR5cGUgVFlMT05HCityYXRoZXIgdGhhbiBUWVNIT1JUIHVuZGVyIC1DIC1JMi4KKworV2Vk IE1heSAzMSAwODo0ODowMyBFRFQgMjAwMAorICBTaW1wbGlmeSB5ZXN0ZXJkYXkncyBhZGp1c3Rt ZW50OyB0b2RheSdzIGNoYW5nZSBzaG91bGQgYmUgaW52aXNpYmxlLgorCitUdWUgSnVsICA0IDIy OjUyOjIxIEVEVCAyMDAwCisgIG1pc2MuYywgZnVuY3Rpb24gImFkZHJlc3NhYmxlIjogZml4IGZh dWx0IHdpdGggImYyYyAtSTIgZm9vLmYiIHdoZW4KK2Zvby5mIGNvbnNpc3RzIG9mIHRoZSA0IGxp bmVzCisJc3Vicm91dGluZSBmb28oYykKKwljaGFyYWN0ZXIqKCopIGMKKwlpID0gbWluKGxlbihj KSwyMykKKwllbmQKKyAgU3VuZHJ5IGZpbGVzOiB0d2Vha3MgZm9yIHBvcnRhYmlsaXR5LCBlLmcu LCBmb3IgY29tcGlsYXRpb24gYnkgb3Zlcmx5CitmYXN0aWRpb3VzIEMrKyBjb21waWxlcnM7ICJm YWxzZSIgYW5kICJ0cnVlIiBub3cgdHJlYXRlZCBhcyBDIGtleXdvcmRzCisoc28gdGhleSBnZXQg dHdvIHVuZGVyc2NvcmVzIGFwcGVuZGVkKS4KKyAgbGliZjc3LCBsaWJpNzcsIGxpYmYyYy56aXA6 ICJpbnZpc2libGUiIGFkanVzdG1lbnRzIHRvIHBlcm1pdAorY29tcGlsYXRpb24gYnkgQysrIGNv bXBpbGVyczsgdmVyc2lvbiBudW1iZXJzIG5vdCBjaGFuZ2VkLgorCitUaHUgSnVsICA2IDIzOjQ2 OjA3IEVEVCAyMDAwCisgIFZhcmlvdXMgZmlsZXM6IHR3ZWFrcyB0byBiYW5pc2ggbW9yZSBjb21w aWxlciB3YXJuaW5ncy4KKyAgbGliPzc3LCBsaWJmMmMuemlwL21ha2VmaWxlLnU6IGFkZCAifHwg dHJ1ZSIgdG8gcmFubGliIGludm9jYXRpb25zLgorICBUaGFua3MgdG8gTmVsc29uIEguIEYuIEJl ZWJlIGZvciBtZXNzYWdlcyBsZWFkaW5nIHRvIHRoZXNlIGNoYW5nZXMKKyhhbmQgdG8gbWFueSBv ZiB0aGUgb25lcyB0d28gZGF5cyBhZ28pLgorICB4c3VtLmM6IHR3ZWFrIGluY2x1ZGUgb3JkZXIu CisKK0ZyaSBKdWwgIDcgMTg6MDE6MjUgRURUIDIwMDAKKyAgZmM6IGFjY2VwdCAtbSB4eHggb3Ig LW14eHgsIHBhc3MgdGhlbSB0byB0aGUgY29tcGlsZXIgYXMgLW14eHgKKyhzdWdnZXN0aW9uIG9m IE5lbHNvbiBCZWViZSkuICBOb3RlIHRoYXQgZmMgc2ltcGx5IGFwcGVuZHMgdG8gQ0ZMQUdTLAor c28gc3lzdGVtLXNwZWNpZmljIHN0dWZmIGNhbiBiZSBzdXBwbGllZCBpbiB0aGUgZW52aXJvbm1l bnQgdmFyaWFibGUKK0NGTEFHUy4gIFdpdGggc29tZSBzaGVsbHMsIGludm9jYXRpb25zIG9mIHRo ZSBmb3JtCisJQ0ZMQUdTPSdzeXN0ZW0tc3BlY2lmaWMgc3R1ZmYnIGZjIC4uLgorYXJlIG9uZSB3 YXkgdG8gZG8gdGhpcy4KKworVGh1IEF1ZyAxNyAyMTozODozNiBFRFQgMjAwMAorICBGaXggb2Jz Y3VyZSBnbGl0Y2g6IGluICJFcnJvciBvbiBsaW5lIG5ubiBvZiAuLi46IEJhZCAjIGxpbmU6Li4u IiwKK2dldCBubm4gcmlnaHQuCisKK1NhdCBTZXAgMzAgMDA6Mjg6MzAgRURUIDIwMDAKKyAgbGli Zjc3LCBsaWJmMmMuemlwOiBkdGltZV8uYywgZXRpbWVfLmM6IHVzZSBmbG9hdGluZy1wb2ludCBk aXZpZGU7CitkdGltZV8uZCwgZXJmXy5jLCBlcmZjXy5jLCBldGltZS5jOiBmb3IgdXNlIHdpdGgg ImYyYyAtUiIsIGNvbXBpbGUgd2l0aAorLURSRUFMPWZsb2F0LgorCitUdWUgRGVjICA1IDIyOjU1 OjU2IEVTVCAyMDAwCisgIGxyZWFkLmM6IHVuZGVyIG5hbWVsaXN0IGlucHV0LCB3aGVuIHJlYWRp bmcgYSBsb2dpY2FsIGFycmF5LCB0cmVhdAorVHN0dWZmPSBhbmQgRnN0dWZmPSBhcyBuZXcgYXNz aWdubWVudHMgcmF0aGVyIHRoYW4gYXMgbG9naWNhbCBjb25zdGFudHMuCisKK0ZyaSBGZWIgMjMg MDA6NDM6NTYgRVNUIDIwMDEKKyAgbGliZjJjOiBlbmRmaWxlLmM6IGFkanVzdCB0byB1c2UgdHJ1 bmNhdGUoKSB1bmxlc3MgY29tcGlsZWQgd2l0aAorLUROT19UUlVOQ0FURSAob3Igd2l0aCAtRE1T RE9TKS4gIEFkZCBsaWJmMmMvbWtmaWxlLnBsYW45LgorCitTYXQgRmViIDI0IDIxOjE0OjI0IEVT VCAyMDAxCisgIFByZXZlbnQgbWFsbG9jKDApIHdoZW4gYSBzdWJyb3V0aW5lIG9mIG5vIGFyZ3Vt ZW50cyBoYXMgYW4gZW50cnkKK3dpdGggbm8gYXJndW1lbnRzLCBhcyBpbgorCXN1YnJvdXRpbmUg Zm9vCisJZW50cnkgZ29vCisJZW5kCisgIEZpeCBhIGZhdWx0IHRoYXQgd2FzIHBvc3NpYmxlIHdo ZW4gTUFJTiAoaWxsZWdhbGx5KSBoYWQgZW50cnkgcG9pbnRzLgorICBGaXggYSBidWZmZXIgb3Zl cmZsb3cgY29ubmVjdGVkIHdpdGggdGhlIGVycm9yIG1lc3NhZ2UgZm9yIG5hbWVzIG1vcmUKK3Ro YW4gTUFYTkFNRUxFTiAoaS5lLiwgNTApIGJ5dGVzIGxvbmcuCisgIEZpeCBhIGJ1ZyBpbiBjb21t YW5kLWxpbmUgYXJndW1lbnQgcGFzc2luZyB0aGF0IGNhdXNlZCB0aGUgaW52b2NhdGlvbgorImYy YyAtIWN6b3JrIGZvby5mIiB0byBjb21wbGFpbiBhYm91dCB0d28gaW52YWxpZCBmbGFncyAoJy1v cmsnIGFuZAorJy1vby5mJykgaW5zdGVhZCBvZiBqdXN0IG9uZSAoJy1vcmsnKS4KKyAgZmM6IGFk ZCAtcyBvcHRpb24gKHN0cmlwIGV4ZWN1dGFibGUpOyBwb3J0YWJpbGl0eSB0d2Vha3MuCisgIEFk anVzdG1lbnRzIHRvIGhhbmRpbmcgb2YgaW50ZWdlcio4IHRvIHBlcm1pdCBwcm9jZXNzaW5nIDgt Ynl0ZSBoZXgsCitiaW5hcnksIG9jdGFsLCBhbmQgZGVjaW1hbCBjb25zdGFudHMuICBUaGUgYWRq dXN0bWVudHMgYXJlIG9ubHkKK2F2YWlsYWJsZSB3aGVuIHR5cGUgbG9uZyBsb25nIChmb3IgPj0g NjQgYml0IGludGVnZXJzKSBpcyBhdmFpbGFibGUgdG8KK2YyYzsgdGhleSBhcmUgYXNzdW1lZCBh dmFpbGFibGUgdW5sZXNzIGYyYyBpcyBjb21waWxlZCB3aXRoIGVpdGhlcgorLUROT19UWVFVQUQg b3IgLUROT19MT05HTE9ORy4gIEFzIGhhcyBsb25nIGJlZW4gdGhlIGNhc2UsIGNvbXBpbGF0aW9u CitvZiBmMmMgaXRzZWxmIHdpdGggLUROT19UWVFVQUQgZWxpbWluYXRlcyByZWNvZ25pdGlvbiBv ZiBpbnRlZ2VyKjgKK2FsdG9nZXRoZXIuICBDb21waWxhdGlvbiB3aXRoIGp1c3QgLUROT19MT05H TE9ORyBwZXJtaXRzIHRoZSBwcmV2aW91cworaGFuZGxpbmcgb2YgaW50ZWdlcio4LCB3aGljaCBj b3VsZCBvbmx5IGhhbmRsZSAzMi1iaXQgY29uc3RhbnRzCithc3NvY2lhdGVkIHdpdGggaW50ZWdl cio4IHZhcmlhYmxlcy4KKyAgTmV3IGNvbW1hbmQtbGluZSBhcmd1bWVudCAtaThjb25zdCAoYXZh aWxhYmxlIG9ubHkgd2hlbiBmMmMgaXRzZWxmCitpcyBjb21waWxlZCB3aXRoIG5laXRoZXIgLURO T19UWVFVQUQgbm9yIC1ETk9fTE9OR0xPTkcpIHN1cHByZXNzZXMKK3RoZSBuZXcgYXV0b21hdGlj IHByb21vdGlvbiBvZiBpbnRlZ2VyIGNvbnN0YW50cyB0b28gbG9uZyB0byBleHByZXNzCithcyAz Mi1iaXQgdmFsdWVzIHRvIHR5cGUgaW50ZWdlcio4LiAgVGhlcmUgYXJlIGNvcnJlc3BvbmRpbmcg dXBkYXRlcwordG8gZjJjLjEgYW5kIGYyYy4xdC4KKworV2VkIEZlYiAyOCAwMDo1MDowNCBFU1Qg MjAwMQorICBBZGp1c3QgbWlzYy5jIGZvciAob2xkZXIpIHN5c3RlbXMgdGhhdCByZWNvZ25pemUg bG9uZyBsb25nIGJ1dCBkbyBub3QKK2hhdmUgTExPTkdfTUFYIG9yIExPTkdMT05HX01BWCBpbiBs aW1pdHMuaC4KKyAgbWFpbi5jOiBmaWx0ZXIgb3V0IGJhZCBmaWxlcyBiZWZvcmUgZG9mb3JrIGxv b3AgdG8gYXZvaWQgdHJvdWJsZQoraW4gV2luMzIgImYyYy5leGUiIGJpbmFyaWVzLgorCitUaHUg TWFyICAxIDE2OjI1OjE5IEVTVCAyMDAxCisgIENvc21ldGljIGNoYW5nZSBmb3IgY29uc2lzdGVu Y3kgd2l0aCBzb21lIG90aGVyIG5ldGxpYiBkaXJlY3RvcmllczoKK2NoYW5nZSBOT19MT05HTE9O RyB0byBOT19MT05HX0xPTkcuICAoVGhpcyBpbmNsdWRlcyBhZGp1c3RpbmcgdGhlIGFib3ZlCitl bnRyeSBmb3IgRmViIDIzIDIwMDEuKSAgTm8gY2hhbmdlIChvdGhlciB0aGFuIHRpbWVzdGFtcCkg dG8gdmVyc2lvbi5jLgorICBsaWJmMmM6ICBlbmRmaWxlLmM6ICBzd2l0Y2ggdG8gZnRydW5jYXRl IChhYnNlbnQgLUROT19UUlVOQ0FURSksCit0aHVzIHBlcm1pdHRpbmcgdHJ1bmNhdGlvbiBvZiBz Y3JhdGNoIGZpbGVzIG9uIHRydWUgVW5peCBzeXN0ZW1zLAord2hlcmUgc2NyYXRjaCBmaWxlcyBo YXZlIG5vIG5hbWUuICBBZGQgYW4gZmZsdXNoKCkgKHN1cnByaXNpbmdseSkKK25lZWRlZCBvbiBz b21lIExpbnV4IHN5c3RlbXMuCisKK1R1ZSBNYXIgMjAgMjI6MDM6MjMgRVNUIDIwMDEKKyAgZXhw ci5jOiAgY29tcGxhaW4gKCJpbXBvc3NpYmxlIGNvbnZlcnNpb24iKSBhYm91dCBhdHRlbXB0cyB0 byBhc3NpZ24KK2NoYXJhY3RlciBleHByZXNzaW9ucyAuLi4gdG8gaW50ZWdlciB2YXJpYWJsZXMs IHJhdGhlciB0aGFuIGltcGxpY2l0bHkKK2Fzc2lnbmluZyBpY2hhciguLi4pLgorCitTYXQgSnVu IDIzIDIzOjA4OjIyIEVEVCAyMDAxCisgIE5ldyBjb21tYW5kLWxpbmUgb3B0aW9uIC10cmFwdXYg YWRkcyBjYWxscyBvbiBfdW5pbml0X2YyYygpIHRvIHByb2xvZ3MKK3RvIGR5bmFtaWNhbGx5IGlu aXRpYWxpemUgbG9jYWwgdmFyaWFibGVzLCBleGNlcHQgdGhvc2UgYXBwZWFyaW5nIGluCitTQVZF IG9yIERBVEEgc3RhdGVtZW50cywgd2l0aCB2YWx1ZXMgdGhhdCBtYXkgaGVscCBmaW5kIHJlZmVy ZW5jZXMgdG8KK3VuaW5pdGlhbGl6ZWQgdmFyaWFibGVzLiAgRm9yIGV4YW1wbGUsIHdpdGggSUVF RSBhcml0aG1ldGljLCBmbG9hdGluZy0KK3BvaW50IHZhcmlhYmxlcyBhcmUgaW5pdGlhbGl6ZWQg dG8gc2lnbmFsaW5nIE5hTnMuCisgIGV4cHIuYzogbmV3IHdhcm5pbmcgZm9yIG91dC1vZi1ib3Vu ZHMgY29uc3RhbnQgc3Vic3RyaW5nIGV4cHJlc3Npb25zLgorVW5kZXIgLUMsIHN1Y2ggZXhwcmVz c2lvbnMgbm93IGluaGliaXQgQyBvdXRwdXQuCisgIGxpYmYyYy9ta2ZpbGUucGxhbjk6IGZpeCBn bGl0Y2ggd2l0aCBydWxlIGZvciAiY2hlY2siIChvciB4c3VtLm91dCkuCisgIGxpYmYyYy56aXA6 IGFkZCB1bmluaXQuYyAoZm9yIF91bmluaXRfZjJjKCkpIGluIHN1cHBvcnQgb2YgLXRyYXB1di4K KyAgZmMsIGYyYy4xLCBmMmMuMXQ6IGFkanVzdCBmb3IgLXRyYXB1di4KKworVGh1IEp1bCAgNSAy MjowMDo1MSBFRFQgMjAwMQorICBsaWJmMmMuemlwOiBtb2RpZnkgdW5pbml0LmMgZm9yIF9fbWM2 OGtfXyB1bmRlciBMaW51eC4KKworV2VkIEF1ZyAyMiAwODowMTozNyBFRFQgMjAwMQorICBjZHMu YywgZXhwci5jOiBpbiBjb25zdGFudHMsIHByZXNlcnZlIHRoZSBzaWduIG9mIDAuCisgIGV4cHIu YzogZml4IHNvbWUgZ2xpdGNoZXMgaW4gZm9sZGluZyBjb25zdGFudHMgdG8gaW50ZWdlcio4Ciso d2hlbiBOT19MT05HX0xPTkcgaXMgbm90ICNkZWZpbmVkKS4KKyAgaW50ci5jOiBmb2xkIGNvbnN0 YW50IG1pbiguLi4pIGFuZCBtYXgoLi4uKSBleHByZXNzaW9ucy4KKworRnJpIE5vdiAxNiAwMjow MDowMyBFU1QgMjAwMQorICBsaWJmMmMuemlwOiAgdHdlYWsgdG8gcGVybWl0IGhhbmRsaW5nIGZp bGVzIG92ZXIgMkdCIGxvbmcgd2hlcmUKK3Bvc3NpYmxlLCB3aXRoIHN1aXRhYmxlIC1EIG9wdGlv bnMsIHByb3ZpZGVkIGZvciBzb21lIHN5c3RlbXMgaW4KK25ldyBoZWFkZXIgZmlsZSBzeXNkZXAx LmggKGNvcGllZCBmcm9tIHN5c2RlcDEuaDAgYnkgZGVmYXVsdCkuCitBZGQgYW4gZnNlZWsgdG8g ZW5kZmlsZS5jIHRvIGZpeCBhIGdsaXRjaCBvbiBzb21lIHN5c3RlbXMuCisKK1dlZCBOb3YgMjgg MTc6NTg6MTIgRVNUIDIwMDEKKyAgbGliZjJjLnppcDogIG9uIElFRUUgc3lzdGVtcywgcHJpbnQg LTAgYXMgLTAgd2hlbiB0aGUgcmVsZXZhbnQKK2xpYmYyYy9tYWtlZmlsZS4qIGlzIHN1aXRhYmx5 IGFkanVzdGVkOiAgc2VlIGNvbW1lbnRzIGFib3V0CistRFNJR05FRF9aRVJPUyBpbiBsaWJmMmMv bWFrZWZpbGUuKi4KKworRnJpIEphbiAxOCAxNjoxNzo0NCBFU1QgMjAwMgorICBsaWJmMmMuemlw OiAgIGZpeCBidWdzIChyZXBvcnRlZCBieSBIb2xnZXIgSGVsbWtlKSBpbiBxYml0X2JpdHMoKToK K3dyb25nIHJldHVybiB0eXBlLCBtaXNzaW5nIH4gb24geSBpbiByZXR1cm4gdmFsdWUuICBUaGlz IGFmZmVjdHMKK3RoZSBpbnRyaW5zaWMgaWJpdHMgZnVuY3Rpb24gZm9yIGZpcnN0IGFyZ3VtZW50 IG9mIHR5cGUgaW50ZWdlcio4LgorCitUaHUgRmViICA3IDE3OjE0OjQzIEVTVCAyMDAyCisgIEZp eCBidWcgaGFuZGxpbmcgbGVhZGluZyBhcnJheSBkaW1lbnNpb25zIGluIGNvbW1vbjogIGludmFs aWQgQworcmVzdWx0ZWQuICBFeGFtcGxlIChhZnRlciBvbmUgcHJvdmlkZWQgYnkgRG1pdHJ5IEcu IEJha3NoZXlldik6CisKKwlzdWJyb3V0aW5lIGZvbyhhKQorCWNvbW1vbi9jL20KKwlpbnRlZ2Vy IG0sIG4KKwllcXVpdmFsZW5jZShtLG4pCisJaW50ZWdlciBhKG4sMikKKwlhKDEsMikgPSAzCisJ ZW5kCisKKyAgRml4IGEgYnVnLCBhcHBhcmVudGx5IGludHJvZHVjZWQgc29tZXRpbWUgYWZ0ZXIg MTk5ODA5MTMsIGluCitoYW5kbGluZyBjZXJ0YWluIHN1YnN0cmluZyBleHByZXNzaW9ucyB0aGF0 IGludm9sdmUgdGVtcG9yYXJ5Cithc3NpZ25tZW50cyBhbmQgdGhlIGZpcnN0IGludm9jYXRpb24g b2YgYW4gaW1wbGljaXRseSB0eXBlZCBmdW5jdGlvbi4KK1doZW4gdGhlIGV4cHJlc3Npb25zIGFw cGVhcmVkIGluICJlbHNlIGlmICguLi4pIiAgYW5kICJkbyB3aGlsZSguLi4pIiwKK3RoZSB0ZW1w b3JhcnkgYXNzaWdubWVudHMgYXBwZWFyZWQgdG9vIHNvb24uICBFeGFtcGxlcyBhcmUgaGFyZCB0 bworZmluZCwgYnV0IGhlcmUgaXMgb25lIChhZnRlciBhbiBleGFtcGxlIHByb3ZpZGVkIGJ5IE5h dCBCYWNobWFuKToKKworCXN1YnJvdXRpbmUgZm9vKG4pCisJY2hhcmFjdGVyKjggcworCWRvIHdo aWxlIChtb28ocyhuKzE6bisyKSkgLmdlLiAyKQorCQluID0gbiArIDEKKwkJZW5kZG8KKwllbmQK KworSXQgaXMgaGFyZCBmb3IgZjJjIHRvIGdldCB0aGlzIHNvcnQgb2YgZXhhbXBsZSBjb3JyZWN0 IHdoZW4gdGhlCisidW50eXBlZCIgZnVuY3Rpb24gaXMgYSBnZW5lcmljIGludHJpbnNpYy4gIFdo ZW4gaW5jb3JyZWN0IGNvZGUgd291bGQKK290aGVyd2lzZSByZXN1bHQsIGYyYyBub3cgaXNzdWVz IGFuIGVycm9yIG1lc3NhZ2UgYW5kIGRlY2xpbmVzIHRvCitwcm9kdWNlIEMuICBGb3IgZXhhbXBs ZSwKKworCXN1YnJvdXRpbmUgZm9vKG4pCisJY2hhcmFjdGVyKjggcworCWRvdWJsZSBwcmVjaXNp b24gZ29vCisJZG8gd2hpbGUgKHNpbihnb28ocyhuKzE6bisyKSkpIC5nZS4gMikKKwkJbiA9IG4g KyAxCisJCWVuZGRvCisJZW5kCisKK2dpdmVzIHRoZSBuZXcgZXJyb3IgbWVzc2FnZSwgYnV0IGJv dGgKKworCXN1YnJvdXRpbmUgZm9vKG4pCisJY2hhcmFjdGVyKjggcworCWRvdWJsZSBwcmVjaXNp b24gZ29vCisJZG8gd2hpbGUgKGRzaW4oZ29vKHMobisxOm4rMikpKSAuZ2UuIDIpCisJCW4gPSBu ICsgMQorCQllbmRkbworCWVuZAorYW5kCisJc3Vicm91dGluZSBmb28obikKKwljaGFyYWN0ZXIq OCBzCisJZG91YmxlIHByZWNpc2lvbiBnb28KKwlkbyB3aGlsZSAoc2luKGdvbyhtaW4obiwgKG4t MykqKjIpKSkgLmdlLiAyKQorCQluID0gbiArIDEKKwkJZW5kZG8KKwllbmQKKworZ2l2ZSBjb3Jy ZWN0IEMuCisKK0ZyaSBGZWIgIDggMDg6NDM6NDAgRVNUIDIwMDIKKyAgTWFrZSBhIGNsZWFuZXIg Zml4IG9mIHRoZSBidWcgZml4ZWQgeWVzdGVyZGF5IGluIGhhbmRsaW5nIGNlcnRhaW4KKyJkbyB3 aGlsZSguLi4pIiBhbmQgImVsc2UgaWYgKC4uLikiIGNvbnN0cnVjdHMgaW52b2x2aW5nIGF1eGls aWFyeQorYXNzaWdubWVudHMuICAoWWVzdGVyZGF5J3MgY2hhbmdlcyB0byBleHByLmMgYXJlIHJl Y2FudGVkOyBleHByLmMKK2lzIG5vdyByZXN0b3JlZCB0byB0aGF0IG9mIDIwMDEwODIwLikgIE5v dworCisJc3Vicm91dGluZSBmb28obikKKwljaGFyYWN0ZXIqOCBzCisJZG91YmxlIHByZWNpc2lv biBnb28KKwlkbyB3aGlsZSAoc2luKGdvbyhzKG4rMTpuKzIpKSkgLmdlLiAwLjIpCisJCW4gPSBu ICsgMQorCQllbmRkbworCWVuZAorCitpcyBjb3JyZWN0bHkgdHJhbnNsYXRlZC4KKworVGh1IE1h ciAxNCAxMjo1MzowOCBFU1QgMjAwMgorICBsZXguYzogIGFkanVzdCB0byBhdm9pZCBhbiBlcnJv ciBtZXNzYWdlIHVuZGVyIC03MiB3aGVuIHNvdXJjZSBmaWxlcworYXJlIGluIENSTEYgZm9ybSAo InRleHQgbW9kZSIgb24gTWljcm9zb2Z0IHN5c3RlbXMpLCBhIHNvdXJjZSBsaW5lIGlzCitleGFj dGx5IDcyIGNoYXJhY3RlcnMgbG9uZywgYW5kIGYyYyBpcyBydW4gb24gYSBzeXN0ZW0gKHN1Y2gg YXMgYSBVbml4CitvciBMaW51eCBzeXN0ZW0pIHRoYXQgZG9lcyBub3QgZGlzdGluZ3Vpc2ggdGV4 dCBhbmQgYmluYXJ5IG1vZGVzLgorRXhhbXBsZSAoaW4gQ1JMRiBmb3JtKToKKyAgICAgIHdyaXRl KCosKikiSGVsbG8gd29ybGQsIHdpdGggYSBzb3VyY2UgbGluZSB0aGF0IGlzIDcyIGNoYXJzIGxv bmcuIgorICAgICAgZW5kCisgIGxpYmYyYy96X2xvZy5jOiAgYWRkIGNvZGUgdG8gY29wZSB3aXRo IGJ1Z2d5IGNvbXBpbGVycyAoZS5nLiwgc29tZQordmVyc2lvbnMgb2YgZ2NjIHVuZGVyIC1PMiBv ciAtTzMpIHRoYXQgZG8gZmxvYXRpbmctcG9pbnQgY29tcGFyaXNvbnMKK2FnYWluc3QgdmFsdWVz IGNvbXB1dGVkIGludG8gZXh0ZW5kZWQtcHJlY2lzaW9uIHJlZ2lzdGVycyBvbiBzb21lCitzeXN0 ZW1zIChzdWNoIGFzIEludGVsIElBMzIgc3lzdGVtcykuICBDb21waWxlIHdpdGgKKy1ETk9fRE9V QkxFX0VYVEVOREVEIHRvIG9taXQgdGhlIGtsdWRnZSB0aGF0IGNpcmN1bXZlbnRzIHRoaXMgYnVn LgorCitUaHUgTWF5ICAyIDE5OjA5OjAxIEVEVCAyMDAyCisgIHNyYy9taXNjLmMsIHNyYy9zeXNk ZXAuaCwgc3JjL2dyYW0uYzogdHdlYWtzIGZvciBLUl9oZWFkZXJzIChhIHJhcmUKK2NvbmNlcm4g dG9kYXkpOyB2ZXJzaW9uLmMgdG91Y2hlZCBidXQgbGVmdCB1bmNoYW5nZWQuCisgIGxpYmYyYzog Zml4IGdsaXRjaCBpbiBtYWtlZmlsZS52YzsgS1JfaGVhZGVyIHR3ZWFrcyBpbiBzX3N0b3AuYwor YW5kIHVuaW5pdC5jICh3aGljaCBhbHNvIGhhZCBhIG1pc3BsYWNlZCAjZW5kaWYpLgorCitXZWQg SnVuICA1IDE2OjEzOjM0IEVEVCAyMDAyCisgIGxpYmYyYzogdW5pbml0LmM6IGZvciBMaW51eCBv biBhbiBBUk0gcHJvY2Vzc29yLCBhZGQgc29tZQorI2lmbmRlZiBfRlBVLi4uIHRlc3RzOyBmNzd2 ZXJzLmMgbm90IGNoYW5nZWQuCisKK1R1ZSBKdW4gMjUgMTU6MTM6MzIgRURUIDIwMDIKKyAgTmV3 IGNvbW1hbmQtbGluZSBvcHRpb24gLUsgcmVxdWVzdHMgb2xkLXN0eWxlICgiSyZSIikgQy4gIFRo ZQorZGVmYXVsdCBpcyBjaGFuZ2VkIHRvIC1BIChBTlNJL0lTTyBzdHlsZSkuCisgIFVuZGVyIC1L LCBjYXN0IHN0cmluZy1sZW5ndGggYXJndW1lbnRzIHRvIChmdG5sZW4pLiAgVGhpcyBzaG91bGQK K21hdHRlciBvbmx5IGluIHRoZSB1bnVzdWFsIGNhc2UgdGhhdCAicmVhZG1lIiBpbnN0cnVjdHMg b2J0YWluaW5nCitmMmMuaCBieQorCXNlZCAncy9sb25nIGludCAvbG9uZyBsb25nIC8nIGYyYy5o MCA+ZjJjLmgKKyAgSW5jcmVhc2UgZGVmYXVsdHMgZm9yIHNvbWUgdGFibGUgc2l6ZXM6ICBtYWtl IC1ObjgwMiAtTnEzMDAgLU54NDAwCit0aGUgZGVmYXVsdC4KKworRnJpIFNlcCAgNiAxODozOToy NCBFRFQgMjAwMgorICBsaWJmMmMuemlwOiByc25lLmM6IGZpeCBidWcgd2l0aCBtdWx0aXBsZSBy ZXBlYXQgY291bnRzIGluIHJlYWRpbmcKK25hbWVsaXN0cywgZS5nLiwgJm5sIGEoMikgPSAzKjEu MCwgMioyLjAsIDMqMy4wIC8KKyhCdWcgZm91bmQgYnkgSmltIE1jRG9uYWxkLCByZXBvcnRlZCBi eSBUb29uIE1vZW5lLikKKworRnJpIE9jdCAgNCAxMDoyMzo1MSBFRFQgMjAwMgorICBsaWJmMmMu emlwOiB1bmluaXQuYzogb24gSVJJWCBzeXN0ZW1zLCBvbWl0IHJlZmVyZW5jZXMgdG8gc2hlbGwK K3ZhcmlhYmxlcyAoYSBkcmVnKS4gIFRoaXMgb25seSBtYXR0ZXJzIHdpdGggZjJjIC10cmFwdXYg LgorCitUaHUgRGVjIDEyIDIyOjE2OjAwIEVTVCAyMDAyCisgIHByb2MuYzogdHdlYWsgdG8gb21p dCAiKiAxIiBmcm9tICJhX29mZnNldCA9IDEgKyBhX2RpbTEgKiAxOyIuCisgIGxpYmYyYy56aXA6 IHVuaW5pdC5jOiBhZGp1c3QgdG8gd29yayB3aXRoIEhQLVVYIEIuMTEuMTEgYXMgd2VsbCBhcwor SFAtVVggQi4xMC4yMDsgZjc3dmVycy5jIG5vdCBjaGFuZ2VkLgorCitUdWUgRmViIDExIDA4OjE5 OjU0IEVTVCAyMDAzCisgIEZpeCBhIGZhdWx0IHdpdGggZjJjIC1zIG9uIHRoZSBmb2xsb3dpbmcg ZXhhbXBsZSBvZiBpbnZhbGlkIEZvcnRyYW4KKyhyZXBvcnRlZCBieSBOaWNrb2xheSBBLiBLaG9r aGxvdik7ICJmdW5jdGlvbiIgc2hvdWxkIGFwcGVhciBiZWZvcmUKKyJjYXQiIG9uIHRoZSBmaXJz dCBsaW5lOgorCWNoYXJhY3RlciooKikgY2F0KGEsIGIpCisJY2hhcmFjdGVyKigqKSBhLCBiCisJ Y2F0ID0gYSAvLyBiCisJZW5kCisgIElzc3VlIHdhcm5pbmdzIGFib3V0IGluYXBwcm9wcmlhdGUg dXNlcyBvZiBhcnJheXMgYSwgYiwgYyBhbmQgcGFzcworYSB0ZW1wb3JhcnkgZm9yIGQgaW4KKwly ZWFsIGEoMiksIGIoMiksIGMoMiksIGQKKwljYWxsIGZvbygoYSksIDEqYiwgK2MsICtkKQorCWVu ZAorKGNvcnJlY3RpbmcgYnVncyByZXBvcnRlZCBieSBBcm5hdWQgRGVzaXR0ZXIpLgorCitUaHUg TWFyICA2IDIyOjQ4OjA4IEVTVCAyMDAzCisgIG91dHB1dC5jOiBmaXggYSBidWcgbGVhZGluZyB0 byAiVW5leHBlY3RlZCB0YWcgNCBpbiBvcGNvbnZfZnVkZ2UiCit3aGVuIGYyYyAtcyBwcm9jZXNz ZXMgdGhlIHJlYWwgcGFydCBvZiBhIGNvbXBsZXggYXJyYXkgcmVmZXJlbmNlLgorRXhhbXBsZSAo c2ltcGxpZmllZCBmcm9tIG5ldGxpYi9saW5wYWNrL3pjaGRjLmYpOgorCisJc3Vicm91dGluZSBm b28oYSx3b3JrLG4saykKKwlpbnRlZ2VyIGssIG4KKwljb21wbGV4KjE2IGEobixuKSwgd29yayhu KQorCXdvcmsoaykgPSBkY21wbHgoZHNxcnQoZHJlYWwoYShrLGspKSksMC4wZDApCisJZW5kCisK KyhUaGFua3MgdG8gTmlja29sYXkgQS4gS2hva2hsb3YgZm9yIHRoZSBidWcgcmVwb3J0LikKKwor VGh1IE1hciAyMCAxMzo1MDoxMiBFU1QgMjAwMworICBmb3JtYXQuYzogIGNvZGUgYXJvdW5kIGEg YnVnIChyZXBvcnRlZCBieSBOZWxzb24gSC4gRi4gQmVlYmUpIGluCitzb21lIHZlcnNpb25zIG9m IEZyZWVCU0QuICBDb21waWxpbmcgd2l0aCBfX0ZyZWVCU0RfXyBidXQgbm90CitOT19GU0NBTkZf TExfQlVHICNkZWZpbmVkIG9yIHdpdGggRlNDQU5GX0xMX0JVRyAjZGVmaW5lZCBjYXVzZXMKK3Nw ZWNpYWwgbG9naWMgdG8gcmVwbGFjZSAgZnNjYW5mKGluZmlsZSwgIiVsbHgiLCByZXN1bHQpICB3 aXRoCitjdXN0b20gbG9naWMuICBIZXJlJ3MgYW4gZXhhbXBsZSAoZnJvbSBCZWViZSkgd2hlcmUg dGhlIGJ1ZyBiaXQ6CisJaW50ZWdlcio4IG0sIG4KKwltID0gOTIyMzM3MjAzNjg1NDc3NTgwNwor CWVuZAorCitGcmkgTWFyIDIxIDEzOjE0OjA1IEVTVCAyMDAzCisgIGxpYmYyYy56aXA6IGVyci5j OiBiZWZvcmUgd3JpdGluZyB0byBhIGZpbGUgYWZ0ZXIgcmVhZGluZyBmcm9tIGl0LAorZG8gYW4g Zl9zZWVrKGZpbGUsIDAsIFNFRUtfQ1VSKSB0byBtYWtlIHdyaXRpbmcgbGVnYWwgaW4gQU5TSSBD LgorCitGcmkgSnVuICA2IDE0OjU2OjQ0IEVEVCAyMDAzCitsaWJmMmMuemlwOiAgYWRkIGNvbW1l bnRzIGFib3V0IGxpYmYyYy5zbyAoYW5kIGEgcnVsZSB0aGF0IHdvcmtzIHVuZGVyCitMaW51eCwg YWZ0ZXIgYW4gYWRqdXN0bWVudCB0byB0aGUgQ0ZMQUdTID0gbGluZSkgdG8gbGliZjJjL21ha2Vm aWxlLnUuCisKK1NhdCBPY3QgMjUgMDc6NTc6NTMgTURUIDIwMDMKK1JFQURNRSwgbWFpbi5jLCBz eXNkZXAuYzogIGFkanVzdCBjb21tZW50cyBhYm91dCBsaWJmMmMgYW5kIGV4cGFuZCB0aGUKK2Nv bW1lbnRzIHRoZXJlb24gaW4gdGhlIEMgdGhhdCBmMmMgd3JpdGVzIChzaW5jZSB0b28gZmV3IHBl b3BsZSByZWFkCit0aGUgUkVBRE1FIGZpbGVzKS4gIENoYW5nZSBtYWtlZmlsZSB0byBtYWtlZmls ZS51ICh3aXRoIHRoZQorZXhwZWN0YXRpb24gdGhhdCBwZW9wbGUgd2lsbCAiY3AgbWFrZWZpbGUu dSBtYWtlZmlsZSIgYW5kIGVkaXQKK21ha2VmaWxlIGlmIG5lY2Vzc2FyeSkgYW5kIGFkZCBtYWtl ZmlsZS52YyAoZm9yIE1pY3Jvc29mdCBWaXN1YWwgQysrKS4KKworVGh1IE9jdCAgNyAyMzoyNToy OCBNRFQgMjAwNAorbmFtZXMuYzogZm9yIGNvbnZlbmllbmNlIG9mIE1TVkMrKyB1c2VycywgbWFw ICJjZGVjbCIgdG8gImNkZWNsX18iLgorCitGcmkgTWFyICA0IDE4OjQwOjQ4IE1TVCAyMDA1Citz eXNkZXAuYywgbWFrZWZpbGUudSwgbmV3IGZpbGUgc3lzZGVwdGVzdC5jOiAgY2hhbmdlcyBpbiBy ZXNwb25zZSB0byBhCittZXNzYWdlIGZvcndhcmRlZCBieSBFcmljIEdyb3NzZSBmcm9tIFRoaWVy cnkgQ2FycmV6IDxrb29uQGdlbnRvby5vcmc+Cisod2hvIGlzIGFwcGFyZW50bHkgdW5hd2FyZSBv ZiBmMmMncyAtVCBvcHRpb24pIGFib3V0IGFuIHVubGlrZWx5CitzZWN1cml0eSBpc3N1ZTogIHRo YXQgYSBsb2NhbCBhdHRhY2tlciBjb3VsZCBwbGFudCBzeW1ib2xpYyBsaW5rcyBpbgorL3RtcCBj b3JyZXNwb25kaW5nIHRvIHRlbXBvcmFyeSBmaWxlIG5hbWVzIHRoYXQgZjJjIGdlbmVyYXRlcyBh bmQgdGh1cworY2F1c2Ugb3ZlcndyaXRpbmcgb2YgYXJiaXRyYXJ5IGZpbGVzLiAgVG9kYXkncyBj aGFuZ2UgaXMgdGhhdCBpZgorbmVpdGhlciAtVCBub3IgdGhlIHVudXN1YWwgZGVidWdnaW5nIGZs YWcgLURuIGlzIHNwZWNpZmllZCBhbmQgdGhlCitzeXN0ZW0gaXMgbm90IGFuIE1TLVdpbmRvd3Mg c3lzdGVtICh3aGljaCBjYW5ub3QgaGF2ZSBzeW1ib2xpYyBsaW5rcywKK2FzIGZhciBhcyBJIGtu b3cpLCB0aGVuIGYyYydzIHRlbXBvcmFyeSBmaWxlcyB3aWxsIGJlIHdyaXR0ZW4gaW4gYQordGVt cG9yYXJ5IGRpcmVjdG9yeSB0aGF0IGlzIHJlYWRhYmxlIGFuZCB3cml0YWJsZSBvbmx5IGJ5IHRo ZSB1c2VyIGFuZAordGhhdCBpcyByZW1vdmVkIGF0IHRoZSBlbmQgb2YgZjJjJ3MgZXhlY3V0aW9u LiAgVG8gZGlzYWJsZSB0b2RheSdzCitjaGFuZ2UsIGNvbXBpbGUgc3lzZGVwLmMgd2l0aCAtRE5P X1RFTVBESVIgKGkuZS4sIHdpdGggTk9fVEVNUERJUgorI2RlZmluZWQpLgorCitTdW4gTWFyIDI3 IDIwOjA2OjQ5IE1TVCAyMDA1CitzeXNkZXAuYzogaW4gc2V0X3RtcF9uYW1lcygpLCBmaXggYm90 Y2hlZCBwbGFjZW1lbnQgb2YKKyJpZiAoZGVidWdmbGFnID09IDEpIHJldHVybjsiOiAgbW92ZSBp dCBiZWxvdyBkZWNsYXJhdGlvbnMuCisKK1N1biBNYXkgIDEgMjE6NDU6NDYgTURUIDIwMDUKK3N5 c2RlcC5jOiAgZml4IGEgcG9zc2libGUgZmF1bHQgdW5kZXIgLURNU0RPUyBhbmQgaW1wcm9wZXIg aGFuZGxpbmcKK29mIGEgdG1wbmFtIGZhaWx1cmUgdW5kZXIgdGhlIHVudXN1YWwgY29tYmluYXRp b24gb2YgYm90aCAtRE5PX01LRFRFTVAKK2FuZCAtRE5PX01LU1RFTVAgKHdpdGhvdXQgLUROT19U RU1QRElSKS4KKworVHVlIE9jdCAgNCAyMzozODo1NCBNRFQgMjAwNQorbGliZjJjLnppcDogIHVu aW5pdC5jOiAgb24gSUEzMiBMaW51eCBzeXN0ZW1zLCBsZWF2ZSB0aGUgcm91bmRpbmcKK3ByZWNp c2lvbiBhbG9uZSByYXRoZXIgdGhhbiBmb3JjaW5nIGl0IHRvIDUzIGJpdHM7IGNvbXBpbGUgd2l0 aAorLURVTklOSVRfRjJDX1BSRUNJU0lPTl81MyB0byBnZXQgdGhlIGZvcm1lciBiZWhhdmlvci4g IFRoaXMgb25seQorYWZmZWN0cyBGb3J0cmFuIGZpbGVzIHRyYW5zbGF0ZWQgYnkgZjJjIC10cmFw dXYgLgorCitTdW4gTWF5ICA3IDAwOjM4OjU5IE1EVCAyMDA2CisgIG1haW4uYywgdmVyc2lvbi5j OiAgYWRkIG9wdGlvbnMgLT8gKG9yIC0taGVscCkgdGhhdCBwcmludCBvdXQKK3BvaW50ZXJzIHRv IHVzYWdlIGRvY3VtZW50YXRpb24gYW5kIC12IChvciAtLXZlcnNpb24pIHRoYXQgcHJpbnQKK3Ro ZSBjdXJyZW50IHZlcnNpb24uCisgIGZjIHNjcmlwdDogIGZpeCBib3RjaCB3aXRoIC1PWzEyM107 IHJlY29nbml6ZSAtLXZlcnNpb24gKG9yIC12KQorYW5kIC0taGVscCAob3IgLT8pLgorICBBZGQg ZjJjLnBkZiA9PSBQREYgdmVyc2lvbiBvZiBmMmMucHMuCisKK1N1biBPY3QgIDggMDI6NDU6MDQg TURUIDIwMDYKKyAgcHV0cGNjLmM6IGZpeCBnbGl0Y2ggaW4gc3Vic2NyaXB0aW5nIGNvbXBsZXgg dmFyaWFibGVzOiAgc3Vic2NyaXB0cworb2YgdHlwZSBpbnRlZ2VyKjggd2VyZSBjb252ZXJ0ZWQg dG8gaW50ZWdlcio0LCB3aGljaCBjYXVzZXMgdHJvdWJsZQord2hlbiAzMi1iaXQgYWRkcmVzc2lu ZyBkb2VzIG5vdCBzdWZmaWNlLgorCitUdWUgU2VwIDExIDIzOjU0OjA1IE1EVCAyMDA3CisgIHhz dW0uYzogIGluc2VydCBleHBsaWNpdCAiaW50IiBiZWZvcmUgbWFpbi4KKworTW9uIERlYyAgMyAy MDo1MzoyNCBNU1QgMjAwNworICBsaWJmMmMvbWFpbi5jOiBpbnNlcnQgZXhwbGljaXQgImludCIg YmVmb3JlIG1haW4uCisKK1NhdCBBcHIgIDUgMjE6Mzk6NTcgTURUIDIwMDgKKyAgbGliZjJjLnpp cDogdHdlYWtzIGZvciBwb2xpdGljYWwgQysrIGFuZCBjb25zdCBjb3JyZWN0bmVzcywgYW5kCit0 byBmaXggY3R5cGUgdHJvdWJsZSBpbiBzb21lIHJlY2VudCBMaW51eCB2ZXJzaW9ucy4gIE5vIGJl aGF2aW9yCitzaG91bGQgY2hhbmdlLgorCitTdW4gQXByICA2IDIyOjM4OjU2IE1EVCAyMDA4Cisg IGxpYmYyYy56aXA6IGFkanVzdCBhbHRlcm5hdGUgbWFrZWZpbGVzIHRvIHJlZmxlY3QgeWVzdGVy ZGF5J3MgY2hhbmdlLgorCitXZWQgTm92IDI2IDIzOjIzOjI3IE1TVCAyMDA4CisgIGxpYmYyYy56 aXA6IGFkZCBicmllZiBkaXNjdXNzaW9uIG9mIE1hY09TWCB0byBjb21tZW50cyBpbiBtYWtlZmls ZS51LgorCitGcmkgSmFuICAyIDIzOjEzOjI1IE1TVCAyMDA5CisgIGxpYmYyYy56aXA6IGFkZCAg LUROT19JU0FUVFkgdG8gQ0ZMQUdTIGFzc2lnbm1lbnQgaW4gbWFrZWZpbGUudmMuCisKK1NhdCBB cHIgMTEgMTg6MDY6MDAgTURUIDIwMDkKKyAgc3JjL3N5c2RlcC5jIHNyYy9zeXNkZXB0ZXN0LmM6 IHR3ZWFrIGZvciBNYWNPU1ggKGluY2x1ZGUgPHVuaXN0ZC5oPikuCisKK1dlZCBKdWwgIDcgMTA6 NTE6MTIgTURUIDIwMTAKKyAgc3JjL2RhdGEuYywgc3JjL2Zvcm1hdC5jLCBzcmMvcDFvdXRwdXQu YzogICJpbnZpc2libGUiIHR3ZWFrcyB0bworc2lsZW5jZSB3YXJuaW5ncyBzZWVuIGluIGNvbXBp bGF0aW9uIHVuZGVyIFVidW50dTsgdmVyc2lvbi5jIG5vdCBjaGFuZ2VkLgorCitGcmkgQXVnIDI3 IDA5OjE0OjE3IE1EVCAyMDEwCisgIGZvcm1hdC5jOiBtYWtlIHNpemVvZihidWYpIGRlcGVuZCBv biBNQVhOQU1FTEVOIHRvIGZpeCBhIGJ1ZyB3aXRoIGxvbmcKK25hbWVzLiAgVXBkYXRlIG1zd2lu L2YyYy5leGUuZ3ogYWNjb3JkaW5nbHkuCisKK0ZyaSBTZXAgIDMgMTY6MDM6MjQgTURUIDIwMTAK KyAgZmM6ICBoYXZlICItbSAuLi4iIG1vZGlmeSBDQyByYXRoZXIgdGhhbiBDRkxBR1MgKHRvIGFm ZmVjdCBsaW5raW5nKS4KKworTW9uIEF1ZyAgMSAxMzo0Njo0MCBNRFQgMjAxMQorICBSRUFETUUs IFJFQURNRSBpbiBsaWJmMmMuemlwOiB1cGRhdGUgc29tZSBuZXRsaWIgcG9pbnRlcnMuCisKK1Ro dSBTZXAgMjYgMTY6NDI6MzUgTURUIDIwMTMKKyAgYXJpdGhjaGsuYyBhbmQgc3lzZGVwMS5oMCB1 cGRhdGVkLiAgVGhlIGZvcm1lciBoYXMgYSBuZXcKKyIjaWZkZWYgTk9fU1NaSVpFX1QiIHNlY3Rp b24gZm9yIHVzZSBlbHNld2hlcmUuICBUaGUgbGF0dGVyIGhhcyBhCitjaGFuZ2Ugc3VwcGxpZWQg YnkgR3JlZ29yIFJpY2hhcmRzIGZvciB1c2Ugd2l0aCBzb21lIGxpYmMgdmFyaWFudHMuCisKK0Zy aSBKdWwgMTEgMTY6Mjk6MDMgTURUIDIwMTQKKyAgY29tcHRyeS5iYXQgaW4gbGliZjJjLnppcCB1 cGRhdGVkLgorCitOT1RFOiAgdGhlIG9sZCBsaWJmNzcgYW5kIGxpYmk3NyBidW5kbGVzIGFyZSBu byBsb25nZXIgYmVpbmcgdXBkYXRlZC4KK1VzZSBsaWJmMmMuemlwIGluc3RlYWQuCisKKzIwMTYw MTAyCisgIG1hbGxvYy5jOiAgdXNlIG1lbW1vdmUgcmF0aGVyIHRoYW4gbWVtY3B5IGluIHJlYWxs b2MoKS4KKworMjAxODEwMjYKKyAgRml4IGFuIGFsbG9jYXRpb24gZ2xpdGNoIGluIHByb2MuYzoK KzExNDljMTE0OQorPCAJICAgIHNpemUgPSBzaXplb2YoaW50KSArICgzICsgMiAqIG5kKSAqIHNp emVvZiAoZXhwcHRyKTsKKy0tLQorPiAJICAgIHNpemUgPSBzaXplb2Yoc3RydWN0IERpbWJsb2Nr KSArIDIqc2l6ZW9mKGV4cHB0cikqKG5kLTEpOworVGhhbmtzIHRvIE9sZSBTdHJlaWNoZXIgZm9y IHBvaW50aW5nIG91dCB0aGUgbmVlZCBmb3IgdGhpcyBjaGFuZ2UuCisKKzIwMTkwMzExCisgIG1h aW4uYzogIHVwZGF0ZSBVUkwncyBpbiAiZjJjIC0/IiBhbmQgImYyYyAtLWhlbHAiIG91dHB1dC4K KworMjAxOTExMjkKKyAgcHJlYWQuYzogZml4IGEgZ2xpdGNoIG5vdCBrbm93biB0byBoYXZlIGNh dXNlZCBhbnkgdHJvdWJsZToKKzM1NWMzNTUKKzwgCQlpZiAoYyA8ICcwJyAmJiBjID4gJzknKQor LS0tCis+IAkJaWYgKGMgPCAnMCcgfHwgYyA+ICc5JykKKworMjAyMDA0MjUKKyAgc3lzZGVwdGVz dC5jOiBhZGQgI2luY2x1ZGUgPHN0ZGxpYi5oPgorCisyMDIwMDkxNgorICBkYXRhLmMgZXhlYy5j IGZvcm1hdC5jIGZvcm1hdGRhdGEuYyBmdHlwZXMuaCBtZW0uYyBvdXRwdXQuYworcDFvdXRwdXQu YyBwcm9jLmMgc3lzZGVwLmM6ICBpbnRyb2R1Y2UgdHlwZSBBZGRyLCBhbiB1bnNpZ25lZAoraW50 ZWdlciB0eXBlIHRoYXQgY2FuIGhvbGQgYW4gYWRkcmVzcy4gIFRoZSBjaGFuZ2VzIGFsbG93IGNv bXBpbGF0aW9uCitvZiB0aGUgZjJjIHNvdXJjZSBvbiBwbGF0Zm9ybXMgdGhhdCBhY3R1YWxseSB1 c2UgbW9yZSB0aGFuIDMyIGJpdHMKK2ZvciBhZGRyZXNzZXMuICAoTWFueSA2NC1iaXQgcGxhdGZv cm1zIGtlZXAgYWRkcmVzc2VzIDw9IDMyIGJpdHMKK2xvbmcgd2hlbiBwb3NzaWJsZS4gIE9uZSB0 aGF0IGRvZXMgbm90IGFuZCBmb3Igd2hpY2ggdG9kYXkncyBjaGFuZ2VzCithcmUgcmVsZXZhbnQg aXMgTWljcm9zb2Z0IFdpbmRvd3Mgd2l0aCBNaWNyb3NvZnQncyBjbCBjb21waWxlci4pCisKKzIw MjEwOTI4CisgIFJFQURNRTogYWRkIGEgcGFyYWdyYXBoIGFib3V0IHRoZSBzaXplIG9mIGludGVn ZXJzIGFuZCBhIHNpbXBsZQorY2hhbmdlIHRvIGYyYy5oIHRoYXQgaXMgYXBwcm9wcmlhdGUgd2hl biBzaXplb2YoaW50KSA9PSA0IGFuZAorc2l6ZW9mKGxvbmcpID09IDguCisgIHhzdW0uYzogdHJp dmlhbCBjaGFuZ2UgdG8gYmFuaXNoIGEgcGVkYW50aWMgY29tcGlsZXIgd2FybmluZy4KKworMjAy MzA0MjgKKyAgcHJvYy5jOiAgZml4IGFub3RoZXIgYWxsb2NhdGlvbiBnbGl0Y2ggaW4gcHJvYy5j OgorMTcwMWMxNzAxCis8CSAgICBja2FsbG9jKCBzaXplb2YoaW50KSArICgzKzIqbmQpKnNpemVv ZihleHBwdHIpICk7CistLS0KKz4JICAgIGNrYWxsb2MoIHNpemVvZihzdHJ1Y3QgRGltYmxvY2sp ICsgMipzaXplb2YoZXhwcHRyKSoobmQtMSkgKTsKK1RoaXMgaXMgc2ltaWxhciB0byB0aGUgY2hh bmdlIG9mIDIwMTgxMDI2IGFuZCB0aGUgbmVlZCBmb3IgaXQgd2FzCityZXZlYWxlZCBpbiBFLW1h aWwgZnJvbSBPbGUgU3RyZWljaGVyLgorCisyMDI0MDEyMworICBOZXcgY29tbWFuZC1saW5lIG9w dGlvbnMgLUk4IGFuZCAtY2Y6CisKKyAgLUk4CUFzc3VtZSA4LWJ5dGUgaW50ZWdlciBhbmQgbG9n aWNhbCwgNC1ieXRlIFJFQUwsIDgtYnl0ZQorCWRvdWJsZSBwcmVjaXNpb24gYW5kIGNvbXBsZXgs IGFuZCAxNi1ieXRlIGRvdWJsZSBjb21wbGV4CisJdmFyaWFibGVzLiAgQXBwcm9wcmlhdGUgY2hh bmdlcyB0byBmMmMuaCBtYXkgYmUgbmVlZGVkLgorCisgIC1jZglEbyBub3QgcmVwb3J0IHRoZSBj dXJyZW50IC5mIGZpbGUgZXhjZXB0IGluIGVycm9yIG1lc3NhZ2VzLgorCisyMDI0MDEzMAorICBG aXggYSBnbGl0Y2ggKG1pc3NlZCBjYXNlKSB3aXRoIHRoZSBuZXcgIi1jZiIgY29tbWFuZC1saW5l IG9wdGlvbi4KKyAgTWlub3IgdXBkYXRlcyB0byBtYWtlZmlsZS51IGFuZCBhZGRpdGlvbiBvZiBm aW8uaDAgaW4gbGliZjJjLnppcC4KKworMDI0MDMxMgorICBUd2Vha3MgZm9yIHBlZGFudHMgd2hv IGNvbXBpbGUgd2l0aCAtV2Vycm9yPXN0cmljdC1hbGlhc2luZy4KKworMjAyNDAzMTMKKyAgQWRq dXN0ZWQgdXBkYXRlcyB0byAyMDI0MDMxMjogIG1pc3NlZCB1cGRhdGluZyBzb21lIGZpbGVzOyB2 ZXJzaW9uLmMKK3N0aWxsIHNheXMgMjAyNDAzMTIuCisKKzIwMjQwNTA0CisgIFR3ZWFrIHN5c2Rl cC5jIHRvIHdvcmsgd2l0aCBuZXdlciB2ZXJzaW9ucyBvZiBtaW5ndy4KKworMjAyNTAzMDMKKyAg VHdlYWsgbWtmaWxlLnBsYW45IHRvIGdlbmVyYXRlIHN5c2RlcC5oZCBhbmQgYWRkIG1rZmlsZS5w bGFuOSB0bworc3JjLnRneiBhbmQgdGhlIG1ha2VmaWxlIHZhcmlhbnRzLiAgVGhhbmtzIHRvIEZl cm5hbiBCb2xhbmRvCis8ZmVybmFuYm9sYW5kb0BnbWFpbC5jb20+IGZvciBoZWxwZnVsIEUtbWFp bC4KKyAgbWFrZWZpbGUudmMgbmVlZHMgdG9rZGVmcy5oIGZyb20gbWFrZWZpbGUudSBvciBta2Zp bGUucGxhbjkuCgpkaWZmIC0tZ2l0IGEvZjJjLTIwMTEwODAxLnBhdGNoIGIvZjJjLTIwMTEwODAx LnBhdGNoCmluZGV4IDNjNGZkMGIuLmFmNmFiODggMTAwNjQ0Ci0tLSBhL2YyYy0yMDExMDgwMS5w YXRjaAorKysgYi9mMmMtMjAxMTA4MDEucGF0Y2gKQEAgLTM4LDkgKzM4LDkgQEAKICAjIyBhcnJh bmdlIGZvciAkRFlMRF9MSUJSQVJZX1BBVEggdG8gaW5jbHVkZSB0aGUgZGlyZWN0b3J5IGNvbnRh aW5pbmcgbGliZjJjLnNvLgogCiAtbGliZjJjLnNvOiAkKE9GSUxFUykKLS0JJChDQykgLXNoYXJl ZCAtbyBsaWJmMmMuc28gJChPRklMRVMpCistCSQoQ0MpICQoTERGTEFHUykgLXNoYXJlZCAtbyBs aWJmMmMuc28gJChPRklMRVMpCiArJChTSEFSRUQpOiAkKE9GSUxFUykKLSsJJChDQykgLXNoYXJl ZCAtV2wsLXNvbmFtZSxsaWJmMmMuc28uMCAtbyAkQCAkKE9GSUxFUykgLWxtIC1sYworKwkkKEND KSAkKExERkxBR1MpIC1zaGFyZWQgLVdsLC1zb25hbWUsbGliZjJjLnNvLjAgLW8gJEAgJChPRklM RVMpIC1sbSAtbGMKIAogICMjIyBJZiB5b3VyIHN5c3RlbSBsYWNrcyByYW5saWIsIHlvdSBkb24n dCBuZWVkIGl0OyBzZWUgUkVBRE1FLgogCkBAIC01MywxNiArNTMsMyBAQAogCiAgYmFja3NwYWMu bzoJZmlvLmgKICBjbG9zZS5vOglmaW8uaAotLS0tIGEvc3JjL2YyYy5oCTE5OTktMDktMDcgMTk6 NDY6MjQuMDAwMDAwMDAwICswMjAwCi0rKysgYi9zcmMvZjJjLmgJMjAxMS0xMi0xNCAwMDo1Mzox OS41MDM2MDIwMTEgKzAxMDAKLUBAIC03LDggKzcsOCBAQAotICNpZm5kZWYgRjJDX0lOQ0xVREUK LSAjZGVmaW5lIEYyQ19JTkNMVURFCi0KLS10eXBlZGVmIGxvbmcgaW50IGludGVnZXI7Ci0tdHlw ZWRlZiB1bnNpZ25lZCBsb25nIGludCB1aW50ZWdlcjsKLSt0eXBlZGVmIGludCBpbnRlZ2VyOwot K3R5cGVkZWYgdW5zaWduZWQgaW50IHVpbnRlZ2VyOwotIHR5cGVkZWYgY2hhciAqYWRkcmVzczsK LSB0eXBlZGVmIHNob3J0IGludCBzaG9ydGludDsKLSB0eXBlZGVmIGZsb2F0IHJlYWw7CgpkaWZm IC0tZ2l0IGEvZjJjLnNwZWMgYi9mMmMuc3BlYwppbmRleCAzYjRhMzZkLi5iMDE0YWVhIDEwMDY0 NAotLS0gYS9mMmMuc3BlYworKysgYi9mMmMuc3BlYwpAQCAtMiw4ICsyLDggQEAKIAogTmFtZTog ICAgICAgICAgIGYyYwogU3VtbWFyeTogICAgICAgIEEgRm9ydHJhbiA3NyB0byBDL0MrKyBjb252 ZXJzaW9uIHByb2dyYW0KLVZlcnNpb246ICAgICAgICAyMDIxMDkyOAotUmVsZWFzZTogICAgICAg IDE0JXs/ZGlzdH0KK1ZlcnNpb246ICAgICAgICAyMDI1MDMwMworUmVsZWFzZTogICAgICAgIDEl ez9kaXN0fQogTGljZW5zZTogICAgICAgIE1JVAogCiBVUkw6ICAgICAgICAgICAgaHR0cDovL3d3 dy5uZXRsaWIub3JnL2YyYy8KQEAgLTEyLDEwICsxMiwxMCBAQCBTb3VyY2UxOiAgICAgICAgaHR0 cDovL3d3dy5uZXRsaWIub3JnL2YyYy9saWJmMmMuemlwCiBTb3VyY2UyOiAgICAgICAgaHR0cDov L3d3dy5uZXRsaWIub3JnL2YyYy9mMmMucGRmCiBTb3VyY2UzOiAgICAgICAgaHR0cDovL3d3dy5u ZXRsaWIub3JnL2YyYy9mMmMucHMKIFNvdXJjZTQ6ICAgICAgICBodHRwOi8vd3d3Lm5ldGxpYi5v cmcvZjJjL2ZjCitTb3VyY2U1OiAgICAgICAgaHR0cDovL3d3dy5uZXRsaWIub3JnL2YyYy9jaGFu Z2VzCiAKICMgUGF0Y2ggbWFrZWZpbGUgdG8gYnVpbGQgYSBzaGFyZWQgbGlicmFyeQogUGF0Y2gw OiAgICAgICAgIGYyYy0yMDExMDgwMS5wYXRjaAotUGF0Y2gxOiAgICAgICAgIGxpYmYyYy0yMDEx MDgwMS1mb3JtYXQtc2VjdXJpdHkucGF0Y2gKIFBhdGNoMjogICAgICAgICB1c2UtZ2xpYmMtdG8t Y2hlY2stZnB1LnBhdGNoCiAKIEJ1aWxkUmVxdWlyZXM6ICBnY2MKQEAgLTQ5LDcgKzQ5LDcgQEAg dW56aXAgLXFxICV7U09VUkNFMX0gLWQgbGliZjJjCiBzZWQgLWkgInMvQFNPVkVSQC8le3NvdmVy fS8iIGxpYmYyYy9tYWtlZmlsZS51CiAKICMgQ29weSBpbiBvdGhlciBzb3VyY2UgZmlsZXMuCi1j cCAle1NPVVJDRTJ9ICV7U09VUkNFM30gJXtTT1VSQ0U0fSAuCitsbiAle1NPVVJDRTJ9ICV7U09V UkNFM30gJXtTT1VSQ0U0fSAle1NPVVJDRTV9IC4vCiAKIAogJWJ1aWxkCkBAIC03Myw3ICs3Myw3 IEBAIGluc3RhbGwgLURwbSAwNzU1IGZjICV7YnVpbGRyb290fSV7X2JpbmRpcn0vZjc3CiAKIAog JWZpbGVzCi0lZG9jIGYyYy5wcyBmMmMucGRmIHNyYy9jaGFuZ2VzIHNyYy9SRUFETUUKKyVkb2Mg ZjJjLnBzIGYyYy5wZGYgY2hhbmdlcyBzcmMvUkVBRE1FCiAlbGljZW5zZSBzcmMvTm90aWNlCiAl e19iaW5kaXJ9L2YyYwogJXtfYmluZGlyfS9mNzcKQEAgLTg4LDYgKzg4LDkgQEAgaW5zdGFsbCAt RHBtIDA3NTUgZmMgJXtidWlsZHJvb3R9JXtfYmluZGlyfS9mNzcKIAogCiAlY2hhbmdlbG9nCisq IFdlZCBBdWcgMjYgMjAyNiBBcnR1ciBGcmVuc3play1Jd2lja2kgPGZlZG9yYUBzdmdhbWVzLnBs PiAtIDIwMjUwMzAzLTEKKy0gVXBkYXRlIHRvIHYyMDI1MDMwMworCiAqIFdlZCBKdWwgMTUgMjAy NiBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsZW5nQGZlZG9yYXByb2plY3Qub3JnPiAt IDIwMjEwOTI4LTE0CiAtIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lr aS9GZWRvcmFfNDVfTWFzc19SZWJ1aWxkCiAKCmRpZmYgLS1naXQgYS9saWJmMmMtMjAxMTA4MDEt Zm9ybWF0LXNlY3VyaXR5LnBhdGNoIGIvbGliZjJjLTIwMTEwODAxLWZvcm1hdC1zZWN1cml0eS5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDY1MDFiOS4uMDAwMDAwMAotLS0g YS9saWJmMmMtMjAxMTA4MDEtZm9ybWF0LXNlY3VyaXR5LnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsMTMgKzAsMCBAQAotZGlmZiAtLWdpdCBhL2xpYmYyYy9hcml0aGNoay5jIGIvbGliZjJjL2Fy aXRoY2hrLmMKLWluZGV4IDhlMTU3MjIuLmExYTAzYWMgMTAwNjQ0Ci0tLS0gYS9saWJmMmMvYXJp dGhjaGsuYwotKysrIGIvbGliZjJjL2FyaXRoY2hrLmMKLUBAIC0xMTAsNyArMTEwLDcgQEAgaWNo ZWNrKHZvaWQpCi0gCXJldHVybiAwOwotIAl9Ci0gCi0tY2hhciAqZW1wdHlmbXQgPSAiIjsJLyog YXZvaWQgcG9zc2libGUgd2FybmluZyBtZXNzYWdlIHdpdGggcHJpbnRmKCIiKSAqLwotK2NvbnN0 IGNoYXIgZW1wdHlmbXRbXSA9ICIiOwkvKiBhdm9pZCBwb3NzaWJsZSB3YXJuaW5nIG1lc3NhZ2Ug d2l0aCBwcmludGYoIiIpICovCi0gCi0gIHN0YXRpYyBBa2luZCAqCi0gY2NoZWNrKHZvaWQpCgpk aWZmIC0tZ2l0IGEvc291cmNlcyBiL3NvdXJjZXMKaW5kZXggYTRlNzkwNC4uNjYwMzIzZCAxMDA2 NDQKLS0tIGEvc291cmNlcworKysgYi9zb3VyY2VzCkBAIC0xLDIgKzEsMiBAQAotU0hBNTEyIChs aWJmMmMuemlwKSA9IDE0MWE4ZWQ2YTM5YzVjMTU4NWJjMjFjOGU0ZDdhZDc2Y2Q4MTY5YWVlOTU0 ODMxZDM4NTRkYTE2NzZlNDdiMzdlNjQ1NTljYmViYmNlYmE3YTM0ZWZhN2YwYjA0NWM4Y2JmYzc4 YTlkODE5MjgzYWUzYWMxY2Y1M2UwZDYwYzdhCi1TSEE1MTIgKHNyYy50Z3opID0gNWJlZmNlYTli NWQ4ZjZhMTA5ZmZiZDQ3MjcwNmJhNTVhNjQ5ZDc1ZWQzM2JjN2JkZTg3YWM2YzdkYTM2NTAyYjNj NWU2Y2FlYjBkNTNkOTIwZDA0MWFlMmY4ZTJhYjFmZmMwZTY5OGMxMWYxZWY3ZjZkZTU5OTUwNDc0 MWJjNzIKK1NIQTUxMiAobGliZjJjLnppcCkgPSA1OTZiZDAwMTdlMGM0YjYxMTkxMjAwYTBiYzc4 ODc3NzU4NTA0OWViOTM5YzUyODYyNTM0OTQwNGNjOGQ5YmJkMDk1N2VmZWNkNzkwNzdjNDg3ZmRm ZjVmYzdlNDM1MTg5NTc0YjJjNDk1Y2FmYWE2MDA2ZGQyNTg1YjEzOTYwYQorU0hBNTEyIChzcmMu dGd6KSA9IDE4NDMwNGYzYmRjMThlMmQ5YTVjZWI2YThhYmI1MTA4NzQ5MGIzM2ZkMWIwMGU5OWI5 MmNiN2VhNzkyZDNjMGE1NjU4N2Q3ZGI3NDI5ZTMwODk2MDU5NzgyZjQ4MzhkNGJjMTc2NWQ2MTVk OTUzZDI2ODY5NGM3YTNhNWI5OTBlCg==