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: =?utf-8?q?Miro_Hron=C4=8Dok_=3Cmiro=40hroncok=2Ecz=3E?= To: git-commits@fedoraproject.org Subject: [rpms/python3-rpm] epel10: Merge c10s into epel10 Date: Thu, 25 Jun 2026 07:43:31 GMT Message-ID: <178237341118.1.13214143273201034648.rpms-python3-rpm-a1023a67a1ae@fedoraproject.org> List-ID: X-Git-Repo: rpms/python3-rpm X-Git-Branch: epel10 X-Git-Rev: a1023a67a1ae1aeb5e83aa07d6db004a574c104d QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvcHl0aG9uMy1ycG0K QnJhbmNoIDogZXBlbDEwCkNvbW1pdCA6IGExMDIzYTY3YTFhZTFhZWI1ZTgzYWEwN2Q2ZGIwMDRh NTc0YzEwNGQKQXV0aG9yIDogTWlybyBIcm9uxI1vayA8bWlyb0Bocm9uY29rLmN6PgpEYXRlICAg OiAyMDI2LTA2LTE5VDE1OjU1OjM2KzAyOjAwClN0YXRzICA6ICszNTY1Ly0xNDkzIGluIDcgZmls ZShzKQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL3B5dGhvbjMt cnBtL2MvYTEwMjNhNjdhMWFlMWFlYjVlODNhYTA3ZDZkYjAwNGE1NzRjMTA0ZD9icmFuY2g9ZXBl bDEwCgpMb2c6Ck1lcmdlIGMxMHMgaW50byBlcGVsMTAKCi0tLQpkaWZmIC0tZ2l0IGEvMDAwMS1Q cmV2ZW50LWJ1ZmZlci1vdmVycnVucy1pbi1maW5kUHJlYW1ibGVUYWctZm9yLWxhbmd1LnBhdGNo IGIvMDAwMS1QcmV2ZW50LWJ1ZmZlci1vdmVycnVucy1pbi1maW5kUHJlYW1ibGVUYWctZm9yLWxh bmd1LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxODZmYTEKLS0t IC9kZXYvbnVsbAorKysgYi8wMDAxLVByZXZlbnQtYnVmZmVyLW92ZXJydW5zLWluLWZpbmRQcmVh bWJsZVRhZy1mb3ItbGFuZ3UucGF0Y2gKQEAgLTAsMCArMSw5NyBAQAorRnJvbSBjMGU0YzA4NTMz ZTNlODk5ZDdlMWNjMGQ5ODg1ZTgzZWExZTFiZGZiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQor RnJvbTogRGF2ZSBDYW50cmVsbCA8ZGNhbnRyZWxsQHJlZGhhdC5jb20+CitEYXRlOiBNb24sIDIw IEFwciAyMDI2IDE1OjA1OjA0IC0wNDAwCitTdWJqZWN0OiBbUEFUQ0hdIFByZXZlbnQgYnVmZmVy IG92ZXJydW5zIGluIGZpbmRQcmVhbWJsZVRhZygpIGZvciBsYW5ndWFnZQorIHN0cmluZworTUlN RS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAor Q29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitUaGlzIGlzIHRlY2huaWNhbGx5IHBv c3NpYmxlIGFuZCB0aGVyZSBpcyBhIHJlcHJvZHVjZXIgZm9yIGl0LCBidXQgSQord291bGQgbm90 IGNvbnNpZGVyIHRoaXMgYSBjcml0aWNhbCBwcm9ibGVtLiAgSWYgeW91IGhhdmUgYSByZWFsbHkg bG9uZworbGFuZ3VhZ2UgaWRlbnRpZmllciBzdHJpbmcgaW4gYSBwcmVhbWJsZSB0YWcgYW5kIGl0 J3MgbGFyZ2VyIHRoYW4KK0JVRlNJWiBvbiB0aGUgcGxhdGZvcm0sIHlvdSBnZXQgYSBTSUdTRUdW LiAgTm90IGEgc3VycHJpc2UuCisKK0luIHNwZWMgZmlsZXMgeW91IGNhbiBoYXZlIHN0dWZmIGxp a2UgdGhpcyBpbiB0aGUgcHJlYW1ibGU6CisKKyAgICBTdW1tYXJ5OiBIZXJlIGlzIGEgc2hvcnQg c3VtbWFyeQorICAgIFN1bW1hcnkoZGUpOiBIaWVyIGlzdCBlaW5lIGt1cnplIFp1c2FtbWVuZmFz c3VuZworICAgIFN1bW1hcnkoZW8pOiBKZW4gbWFsbG9uZ2EgcmVzdW1vCisgICAgU3VtbWFyeShF bHZpc2gpOiBTw60gbmEtIGEgZXN0ZW50IHN1bW1hcnVpCisgICAgU3VtbWFyeShnYV9pZSk6IElz IGNvaW1yacO6IGdoZWFyciDDqSBzZW8KKyAgICBTdW1tYXJ5KEtsaW5nb24pOiBuYURldiAnb0gg bmdhaiBzdW1tYXJ5CisKK0FuZCBmaW5kUHJlYW1ibGVUYWcoKSBpcyBldmVudHVhbGx5IGNhbGxl ZCB0byBwaWNrIHVwIHRob3NlIGxhbmd1YWdlCitpZGVudGlmaWVycyBpbiBwYXJlbnMuICBVc3Vh bGx5IHRoZSBpZGVudGlmaWVycyBhcmUgdHdvIGNoYXJhY3RlcnMsCitidXQgc29tZXRpbWVzIHRo ZXkgYXJlIHRocmVlIG9yIGZvdXIuICBUaGUgcGFyc2VyIGluIHRoZSBsaWJyYXJ5IHNjYW5zCith IGNoYXJhY3RlciBhdCBhIHRpbWUgdW50aWwgaXQgaGl0cyB0aGUgY2xvc2luZyBwYXJlbiBhbmQg anVzdCBzdHVmZnMKK2l0IGFsbCBpbiB0aGUgJ2xhbmcnIGJ1ZmZlci4gIFRoZSBwcm9ibGVtIGlz IHRoYXQgYnVmZmVyIGlzIEJVRlNJWiBhbmQKK3RoZXJlIGlzIG5vIGJvdW5kcyBjaGVja2luZyB0 byBzZWUgaWYgdGhlIHN0cmluZyBpbiB0aGUgc3BlYyBmaWxlIGluCitwYXJlbnMgaXMgbGFyZ2Vy IHRoYW4gd2hhdCBCVUZTSVogY2FuIGhvbGQuICBTbyBpdCBpcyB0ZWNobmljYWxseQorcG9zc2li bGUgdG8gcHJvdmlkZSBhIHNwZWMgZmlsZSB3aXRoIGEgY29tcGxldGVseSB1c2VsZXNzIGh1Z2Ug c3RyaW5nCithcyBhIGxhbmd1YWdlIGlkZW50aWZpZXIgdGhhdCB0aGVuIGNyYXNoZXMgdGhlIHNw ZWMgZmlsZSBwYXJzZXIuCisKK1RoaXMgcGF0Y2ggYWRkcyBzb21lIGJvdW5kcyBjaGVja2luZyB0 byB0aGF0IHJlYWRpbmcgbG9vcCB0byBwcmV2ZW50Cit0aGlzIGluY3JlZGlibHkgcmFyZSB5ZXQg dGVjaG5pY2FsbHkgcG9zc2libGUgaXNzdWUuICBJIGRvbid0IGJvdGhlcgorZ3Jvd2luZyB0aGUg YnVmZmVyIGlmIHdlJ3JlIHN0aWxsIHJlYWRpbmcgY2hhcmFjdGVycyBiZWNhdXNlIGhvbmVzdGx5 CitpZiB3ZSBoYXZlIG1vcmUgdGhhbiBCVUZTSVogaW4gcGFyZW5zLCB3ZSd2ZSBnb3QgYSBnYXJi YWdlIHNwZWMgZmlsZS4KKworVGhlIHBhdGNoIGRvZXMgZW5zdXJlIHRoZSB1bnVzZWQgc3BhY2Ug aW4gQlVGU0laIGlzIE5VTEwgYW5kIHRoYXQgdGhlCitsYW5nIGJ1ZmZlciBpcyBOVUxMIHRlcm1p bmF0ZWQgc28gaXQncyBtb2RlcmF0ZWx5IHVzZWZ1bCBpbiBsYXRlcgorcGFydHMgb2YgdGhlIGNv ZGUuCisKK1NpZ25lZC1vZmYtYnk6IERhdmUgQ2FudHJlbGwgPGRjYW50cmVsbEByZWRoYXQuY29t PgorKGJhY2twb3J0ZWQgZnJvbSBjb21taXQgYjZmMmNjNTJmY2M3ZWVkZjAwOTVjMmJmMDQ5NWU0 YjZhYWZkODdjYikKKy0tLQorIGJ1aWxkL3BhcnNlUHJlYW1ibGUuYyB8IDEyICsrKysrKysrLS0t LQorIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCisKK2Rp ZmYgLS1naXQgYS9idWlsZC9wYXJzZVByZWFtYmxlLmMgYi9idWlsZC9wYXJzZVByZWFtYmxlLmMK K2luZGV4IDM2OTM3NDZmOC4uZTE0NjY0OTM5IDEwMDY0NAorLS0tIGEvYnVpbGQvcGFyc2VQcmVh bWJsZS5jCisrKysgYi9idWlsZC9wYXJzZVByZWFtYmxlLmMKK0BAIC0xMDY0LDEwICsxMDY0LDEx IEBAIHN0YXRpYyBzdHJ1Y3QgUHJlYW1ibGVSZWNfcyBjb25zdCBwcmVhbWJsZUxpc3RbXSA9IHsK KyAvKioKKyAgKi8KKyBzdGF0aWMgaW50IGZpbmRQcmVhbWJsZVRhZyhycG1TcGVjIHNwZWMscnBt VGFnVmFsICogdGFnLAorLQkJY29uc3QgY2hhciAqKiBtYWNybywgY2hhciAqIGxhbmcpCisrCQlj b25zdCBjaGFyICoqIG1hY3JvLCBjaGFyICogbGFuZywgc2l6ZV90IGxhbmdzaXplKQorIHsKKyAg ICAgUHJlYW1ibGVSZWMgcDsKKyAgICAgY2hhciAqczsKKysgICAgc2l6ZV90IGwgPSAwOworIAor ICAgICBmb3IgKHAgPSBwcmVhbWJsZUxpc3Q7IHAtPnRva2VuICE9IE5VTEw7IHArKykgeworIAlp ZiAoIShwLT50b2tlbiAmJiAhcnN0cm5jYXNlY21wKHNwZWMtPmxpbmUsIHAtPnRva2VuLCBwLT5s ZW4pKSkKK0BAIC0xMDk3LDE0ICsxMDk4LDE3IEBAIHN0YXRpYyBpbnQgZmluZFByZWFtYmxlVGFn KHJwbVNwZWMgc3BlYyxycG1UYWdWYWwgKiB0YWcsCisgICAgIGNhc2UgMjoKKyAJaWYgKCpzID09 ICc6JykgeworIAkgICAgLyogVHlwZSAxIGlzIG11bHRpbGFuZywgMiBpcyBxdWFsaWZpZXJzIHdp dGggbm8gZGVmYXVsdHMgKi8KKy0JICAgIHN0cmNweShsYW5nLCAocC0+dHlwZSA9PSAxKSA/IFJQ TUJVSUxEX0RFRkFVTFRfTEFORyA6ICIiKTsKKysJICAgIHJzdHJsY3B5KGxhbmcsIChwLT50eXBl ID09IDEpID8gUlBNQlVJTERfREVGQVVMVF9MQU5HIDogIiIsIGxhbmdzaXplKTsKKysJICAgIGwg PSBzdHJsZW4obGFuZyk7CisgCSAgICBicmVhazsKKyAJfQorIAlpZiAoKnMgIT0gJygnKSByZXR1 cm4gMTsKKyAJcysrOworIAlTS0lQU1BBQ0Uocyk7CistCXdoaWxlICghcmlzc3BhY2UoKnMpICYm ICpzICE9ICcpJykKKysJd2hpbGUgKCFyaXNzcGFjZSgqcykgJiYgKnMgIT0gJyknICYmIGwgPCAo bGFuZ3NpemUgLSAxKSkgeworIAkgICAgKmxhbmcrKyA9ICpzKys7CisrCSAgICBsKys7CisrCX0K KyAJKmxhbmcgPSAnXDAnOworIAlTS0lQU1BBQ0Uocyk7CisgCWlmICgqcyAhPSAnKScpIHJldHVy biAxOworQEAgLTExNzMsNyArMTE3Nyw3IEBAIGludCBwYXJzZVByZWFtYmxlKHJwbVNwZWMgc3Bl YywgaW50IGluaXRpYWxQYWNrYWdlKQorIAkgICAgbGluZXAgPSBzcGVjLT5saW5lOworIAkgICAg U0tJUFNQQUNFKGxpbmVwKTsKKyAJICAgIGlmICgqbGluZXAgIT0gJ1wwJykgeworLQkJaWYgKGZp bmRQcmVhbWJsZVRhZyhzcGVjLCAmdGFnLCAmbWFjcm8sIGxhbmcpKSB7CisrCQlpZiAoZmluZFBy ZWFtYmxlVGFnKHNwZWMsICZ0YWcsICZtYWNybywgbGFuZywgc2l6ZW9mKGxhbmcpKSkgeworIAkJ ICAgIGlmIChzcGVjLT5saW5lTnVtID09IDEgJiYKKyAJCQkodW5zaWduZWQgY2hhcikoc3BlYy0+ bGluZVswXSkgPT0gMHhlZCAmJgorIAkJCSh1bnNpZ25lZCBjaGFyKShzcGVjLT5saW5lWzFdKSA9 PSAweGFiICYmCistLSAKKzIuNTQuMAorCgpkaWZmIC0tZ2l0IGEvcHl0aG9uMy1ycG0uc3BlYyBi L3B5dGhvbjMtcnBtLnNwZWMKaW5kZXggNjAxM2I0Zi4uODMyY2NhYSAxMDA2NDQKLS0tIGEvcHl0 aG9uMy1ycG0uc3BlYworKysgYi9weXRob24zLXJwbS5zcGVjCkBAIC0zMCw3ICszMCw3IEBACiAK ICVnbG9iYWwgcnBtdmVyIDQuMTkuMS4xCiAjZ2xvYmFsIHNuYXB2ZXIgcmMxCi0lZ2xvYmFsIGJh c2VyZWxlYXNlIDIzCislZ2xvYmFsIGJhc2VyZWxlYXNlIDI1CiAlZ2xvYmFsIHNvdmVyIDEwCiAK ICVnbG9iYWwgcmhlbHJlbCAle2Jhc2VyZWxlYXNlfQpAQCAtMTg3LDYgKzE4NywxMSBAQCBycG0t NC4xOS54LW11bHRpc2lnLXZlcmlmeS1maXhlcy5wYXRjaAogcnBtLTQuMTkueC1uc3N3aXRjaC1l bmFibGUucGF0Y2gKIDAwMDEtRml4LWVtcHR5LXBhc3N3b3JkLWZpZWxkLWluLXBhc3N3ZC1ncm91 cC1jYXVzaW5nLWVudC5wYXRjaAogCitycG0tNC4xOS54LWFkZC1hdXRvc2V0dXAtQy5wYXRjaAor cnBtLTQuMTkueC1hZGQtcGFya2RiLnBhdGNoCitycG0tNC4xOS54LWltcHJvdmUtc3lzbG9nLnBh dGNoCiswMDAxLVByZXZlbnQtYnVmZmVyLW92ZXJydW5zLWluLWZpbmRQcmVhbWJsZVRhZy1mb3It bGFuZ3UucGF0Y2gKKwogIyBUaGVzZSBhcmUgbm90IHlldCB1cHN0cmVhbQogcnBtLTQuNy4xLWdl b2RlLWk2ODYucGF0Y2gKIAoKZGlmZiAtLWdpdCBhL3JwbS00LjE5LngtYWRkLWF1dG9zZXR1cC1D LnBhdGNoIGIvcnBtLTQuMTkueC1hZGQtYXV0b3NldHVwLUMucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uZTA3MjExZAotLS0gL2Rldi9udWxsCisrKyBiL3JwbS00LjE5 LngtYWRkLWF1dG9zZXR1cC1DLnBhdGNoCkBAIC0wLDAgKzEsMTE2NCBAQAorRnJvbSA5M2RjZWIw ZGMxZTA1YTZlNzFlOTY2YzI3ODE0MzY0ZWI3NzM0NmQyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQorRnJvbTogTWF0dGVvIENyb2NlIDx0ZWtub3JhdmVyQG1ldGEuY29tPgorRGF0ZTogVHVlLCAx NiBKYW4gMjAyNCAxNzoyNjoxNiAtMDUwMAorU3ViamVjdDogW1BBVENIIDAxLzE0XSBhZGQgYnVp bGQgZGlyZWN0b3J5IGF1dG8gcGF0aCB0byAlYXV0b3NldHVwCisKK0FkZCBhIGAtQ2AgZmxhZyB0 byAlYXV0b3NldHVwIGFuZCAlc2V0dXAgd2hpY2ggZW5zdXJlcyB0aGF0IHRoZSBzb3VyY2VzCit3 aWxsIGJlIGV4dHJhY3RlZCBpbiB0aGUgcm9vdCBvZiB0aGUgYnVpbGQgZGlyZWN0b3J5LgorSXQg d29ya3MgYnkgaW5zcGVjdGluZyB0aGUgYXJjaGl2ZSBhbmQgc3RyaXBwaW5nIHRoZSBmaXJzdCBw YXRoIGVudHJ5CitpZiB0aGUgYXJjaGl2ZSBoYXMgYSB0b3AgbGV2ZWwgZGlyZWN0b3J5IGFsb25l IGluIHRoZSByb290LgorCitUaGUgYXJjaGl2ZSBpbnNwZWN0aW9uIGFuZCBwYXRoIHN0cmlwcGlu ZyBpcyBpbXBsZW1lbnRlZCBpbiBycG11bmNvbXByZXNzCit3aGljaCBub3cgaGFzIGEgbmV3IGAt Q2AgZmxhZzoKKworICAgICQgfi9ycG0vdXNyL2xpYi9ycG0vcnBtdW5jb21wcmVzcyAteCAtdiAt QyBzb3VyY2UtMS4wLjAgc291cmNlLXNpbmdsZXJvb3QudGFyLmd6CisgICAgbWtkaXIgJ3NvdXJj ZS0xLjAuMCcgOyAgL3Vzci9iaW4vZ3ppcCAtZGMgICdzb3VyY2Utc2luZ2xlcm9vdC50YXIuZ3on IHwgL3Vzci9iaW4vdGFyIC14dnZvZiAtICAtQyAnc291cmNlLTEuMC4wJyAtLXN0cmlwLWNvbXBv bmVudHM9MQorICAgIC1ydy1yLS1yLS0gcm9vdC9yb290ICAgICAgICAzMiAyMDI0LTAxLTE2IDE5 OjEzIHNvdXJjZS14eHh4eHh4eHh4L2ZpbGUxCisgICAgLXJ3LXItLXItLSByb290L3Jvb3QgICAg IDMzODg2IDIwMjQtMDEtMTYgMTk6MTMgc291cmNlLXh4eHh4eHh4eHgvZmlsZTIKKyAgICBkcnd4 ci14ci14IHJvb3Qvcm9vdCAgICAgICAgIDAgMjAyNC0wMS0xNiAxOToxMyBzb3VyY2UteHh4eHh4 eHh4eC9kaXIxLworICAgIC1yLS1yLS1yLS0gcm9vdC9yb290ICAgICAgIDIxMCAyMDI0LTAxLTE2 IDE5OjEzIHNvdXJjZS14eHh4eHh4eHh4L2RpcjEvZmlsZTMKKworICAgICQgZmluZCBzb3VyY2Ut MS4wLjAgLWxzCisgICAgICAgIDkyMzQxICAgICAgMCBkcnd4ci14ci14ICAgMSB0ZWtub3JhdmVy IHRla25vcmF2ZXIgICAgICAgMjggSmFuIDE2IDE5OjE2IHNvdXJjZS0xLjAuMAorICAgICAgICA5 MjM0MiAgICAgIDQgLXJ3LXItLXItLSAgIDEgdGVrbm9yYXZlciB0ZWtub3JhdmVyICAgICAgIDMy IEphbiAxNiAxOToxMyBzb3VyY2UtMS4wLjAvZmlsZTEKKyAgICAgICAgOTIzNDMgICAgIDM2IC1y dy1yLS1yLS0gICAxIHRla25vcmF2ZXIgdGVrbm9yYXZlciAgICAzMzg4NiBKYW4gMTYgMTk6MTMg c291cmNlLTEuMC4wL2ZpbGUyCisgICAgICAgIDkyMzQ0ICAgICAgMCBkcnd4ci14ci14ICAgMSB0 ZWtub3JhdmVyIHRla25vcmF2ZXIgICAgICAgMTAgSmFuIDE2IDE5OjEzIHNvdXJjZS0xLjAuMC9k aXIxCisgICAgICAgIDkyMzQ1ICAgICAgNCAtci0tci0tci0tICAgMSB0ZWtub3JhdmVyIHRla25v cmF2ZXIgICAgICAyMTAgSmFuIDE2IDE5OjEzIHNvdXJjZS0xLjAuMC9kaXIxL2ZpbGUzCisKKyAg ICAkIH4vcnBtL3Vzci9saWIvcnBtL3JwbXVuY29tcHJlc3MgLXggLXYgLUMgc291cmNlLTIuMC4w IHNvdXJjZS1ub3Jvb3QudGFyLmd6CisgICAgbWtkaXIgJ3NvdXJjZS0yLjAuMCcgOyAgL3Vzci9i aW4vZ3ppcCAtZGMgICdzb3VyY2Utbm9yb290LnRhci5neicgfCAvdXNyL2Jpbi90YXIgLXh2dm9m IC0gIC1DICdzb3VyY2UtMi4wLjAnCisgICAgZHJ3eHIteHIteCByb290L3Jvb3QgICAgICAgICAw IDIwMjQtMDEtMTYgMTk6MTMgZGlyMS8KKyAgICAtci0tci0tci0tIHJvb3Qvcm9vdCAgICAgICAy MTAgMjAyNC0wMS0xNiAxOToxMyBkaXIxL2ZpbGUzCisgICAgLXJ3LXItLXItLSByb290L3Jvb3Qg ICAgICAgIDMyIDIwMjQtMDEtMTYgMTk6MTMgZmlsZTEKKyAgICAtcnctci0tci0tIHJvb3Qvcm9v dCAgICAgMzM4ODYgMjAyNC0wMS0xNiAxOToxMyBmaWxlMgorCisgICAgJCBmaW5kIHNvdXJjZS0y LjAuMCAtbHMKKyAgICAgICAgOTIzNDYgICAgICAwIGRyd3hyLXhyLXggICAxIHRla25vcmF2ZXIg dGVrbm9yYXZlciAgICAgICAyOCBKYW4gMTYgMTk6MTcgc291cmNlLTIuMC4wCisgICAgICAgIDky MzQ3ICAgICAgMCBkcnd4ci14ci14ICAgMSB0ZWtub3JhdmVyIHRla25vcmF2ZXIgICAgICAgMTAg SmFuIDE2IDE5OjEzIHNvdXJjZS0yLjAuMC9kaXIxCisgICAgICAgIDkyMzQ4ICAgICAgNCAtci0t ci0tci0tICAgMSB0ZWtub3JhdmVyIHRla25vcmF2ZXIgICAgICAyMTAgSmFuIDE2IDE5OjEzIHNv dXJjZS0yLjAuMC9kaXIxL2ZpbGUzCisgICAgICAgIDkyMzQ5ICAgICAgNCAtcnctci0tci0tICAg MSB0ZWtub3JhdmVyIHRla25vcmF2ZXIgICAgICAgMzIgSmFuIDE2IDE5OjEzIHNvdXJjZS0yLjAu MC9maWxlMQorICAgICAgICA5MjM1MCAgICAgMzYgLXJ3LXItLXItLSAgIDEgdGVrbm9yYXZlciB0 ZWtub3JhdmVyICAgIDMzODg2IEphbiAxNiAxOToxMyBzb3VyY2UtMi4wLjAvZmlsZTIKKworQW5k IGl0J3MgZXhwb3NlZCB0byAlYXV0b3NldHVwCisKKyAgICAkIHJwbWJ1aWxkIC1icCB0ZXN0LnNw ZWMKKyAgICBFeGVjdXRpbmcoJXByZXApOiAvYmluL3NoIC1lIC92YXIvdG1wL3JwbS10bXAuTkw1 NXNJCisgICAgKyB1bWFzayAwMjIKKyAgICArIGNkIC9ob21lL3Rla25vcmF2ZXIvcnBtYnVpbGQv QlVJTEQKKyAgICArIGNkIC9ob21lL3Rla25vcmF2ZXIvcnBtYnVpbGQvQlVJTEQKKyAgICArIHJt IC1yZiBuZXRwZXJmLTIuNy4xCisgICAgKyAvdXNyL2xpYi9ycG0vcnBtdW5jb21wcmVzcyAteCAt QyBuZXRwZXJmLTIuNy4xIC9ob21lL3Rla25vcmF2ZXIvcnBtYnVpbGQvU09VUkNFUy9uZXRwZXJm LTNiYzQ1NWIudGFyLmd6CisgICAgKyBTVEFUVVM9MAorICAgICsgJ1snIDAgLW5lIDAgJ10nCisg ICAgKyBjZCBuZXRwZXJmLTIuNy4xCisgICAgKyBybSAtcmYgL2hvbWUvdGVrbm9yYXZlci9ycG1i dWlsZC9CVUlMRC9uZXRwZXJmLTIuNy4xLVNQRUNQQVJUUworICAgICsgL3Vzci9iaW4vbWtkaXIg LXAgL2hvbWUvdGVrbm9yYXZlci9ycG1idWlsZC9CVUlMRC9uZXRwZXJmLTIuNy4xLVNQRUNQQVJU UworICAgICsgL3Vzci9iaW4vY2htb2QgLVJmIGErclgsdSt3LGctdyxvLXcgLgorICAgICsgUlBN X0VDPTAKKyAgICArKyBqb2JzIC1wCisgICAgKyBleGl0IDAKKworKGJhY2twb3J0ZWQgZnJvbSBj b21taXQgMzM4NTNjNzNjZjZhZjVmZjMxMDhmZTVjNTlhMGE3YTE2MTRiZWQ5OSkKKy0tLQorIENN YWtlTGlzdHMudHh0ICAgICAgICB8ICA1ICstLQorIGJ1aWxkL3BhcnNlUHJlcC5jICAgICB8IDEz ICsrKysrLS0tCisgZG9jcy9tYW51YWwvc3BlYy5tZCAgIHwgIDMgKysKKyBtYWNyb3MuaW4gICAg ICAgICAgICAgfCAgNCArLS0KKyB0b29scy9DTWFrZUxpc3RzLnR4dCAgfCAgMSArCisgdG9vbHMv cnBtdW5jb21wcmVzcy5jIHwgNzQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystLQorIDYgZmlsZXMgY2hhbmdlZCwgODcgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25z KC0pCisKK2RpZmYgLS1naXQgYS9DTWFrZUxpc3RzLnR4dCBiL0NNYWtlTGlzdHMudHh0CitpbmRl eCA2ZGJmMTc5ZjMuLjdiOWZiZjU2ZiAxMDA2NDQKKy0tLSBhL0NNYWtlTGlzdHMudHh0CisrKysg Yi9DTWFrZUxpc3RzLnR4dAorQEAgLTIwNSw2ICsyMDUsNyBAQCBwa2dfY2hlY2tfbW9kdWxlcyha U1REIElNUE9SVEVEX1RBUkdFVCBsaWJ6c3RkPj0xLjMuOCkKKyBwa2dfY2hlY2tfbW9kdWxlcyhM SUJFTEYgSU1QT1JURURfVEFSR0VUIGxpYmVsZikKKyBwa2dfY2hlY2tfbW9kdWxlcyhMSUJEVyBJ TVBPUlRFRF9UQVJHRVQgbGliZHcpCisgcGtnX2NoZWNrX21vZHVsZXMoTElCTFpNQSBJTVBPUlRF RF9UQVJHRVQgbGlibHptYT49NS4yLjApCisrcGtnX2NoZWNrX21vZHVsZXMoTElCQVJDSElWRSBS RVFVSVJFRCBJTVBPUlRFRF9UQVJHRVQgbGliYXJjaGl2ZSkKKyAKKyAjIEx1YSBtb2R1bGUgZG9l cyBub3Qgc2hpcCBhbiBJTVBPUlRFRCB0YXJnZXQsIGRlZmluZSBvdXIgb3duCisgYWRkX2xpYnJh cnkoTFVBOjpMVUEgSU5URVJGQUNFIElNUE9SVEVEKQorQEAgLTI2NSwxMCArMjY2LDYgQEAgaWYg KFdJVEhfU0VMSU5VWCkKKyAJcGtnX2NoZWNrX21vZHVsZXMoU0VMSU5VWCBSRVFVSVJFRCBJTVBP UlRFRF9UQVJHRVQgbGlic2VsaW51eCkKKyBlbmRpZigpCisgCistaWYgKFdJVEhfQVJDSElWRSkK Ky0JcGtnX2NoZWNrX21vZHVsZXMoTElCQVJDSElWRSBSRVFVSVJFRCBJTVBPUlRFRF9UQVJHRVQg bGliYXJjaGl2ZSkKKy1lbmRpZigpCistCisgaWYgKFdJVEhfRlNWRVJJVFkpCisgCXBrZ19jaGVj a19tb2R1bGVzKEZTVkVSSVRZIFJFUVVJUkVEIElNUE9SVEVEX1RBUkdFVCBsaWJmc3Zlcml0eSkK KyBlbmRpZigpCitkaWZmIC0tZ2l0IGEvYnVpbGQvcGFyc2VQcmVwLmMgYi9idWlsZC9wYXJzZVBy ZXAuYworaW5kZXggMDdkOWE2OTIzLi4wMjJhNWJlN2QgMTAwNjQ0CistLS0gYS9idWlsZC9wYXJz ZVByZXAuYworKysrIGIvYnVpbGQvcGFyc2VQcmVwLmMKK0BAIC0xMjQsNyArMTI0LDcgQEAgZXhp dDoKKyAgKiBAcGFyYW0gcXVpZXRseQlzaG91bGQgLXZ2IGJlIG9taXR0ZWQgZnJvbSB0YXI/Cisg ICogQHJldHVybgkJZXhwYW5kZWQgJXNldHVwIG1hY3JvIChOVUxMIG9uIGVycm9yKQorICAqLwor LXN0YXRpYyBjaGFyICpkb1VudGFyKHJwbVNwZWMgc3BlYywgdWludDMyX3QgYywgaW50IHF1aWV0 bHkpCisrc3RhdGljIGNoYXIgKmRvVW50YXIocnBtU3BlYyBzcGVjLCB1aW50MzJfdCBjLCBpbnQg cXVpZXRseSwgaW50IGF1dG9QYXRoKQorIHsKKyAgICAgY2hhciAqYnVmID0gTlVMTDsKKyAgICAg c3RydWN0IFNvdXJjZSAqc3A7CitAQCAtMTM1LDcgKzEzNSw5IEBAIHN0YXRpYyBjaGFyICpkb1Vu dGFyKHJwbVNwZWMgc3BlYywgdWludDMyX3QgYywgaW50IHF1aWV0bHkpCisgICAgIH0KKyAKKyAg ICAgYnVmID0gcnBtRXhwYW5kKCIle19fcnBtdW5jb21wcmVzc30gLXggIiwKKy0JCSAgICBxdWll dGx5ID8gIiIgOiAiLXYgIiwiJXtzaGVzY2FwZToiLCBzcC0+cGF0aCwgIn0iLCBOVUxMKTsKKysJ CSAgICBxdWlldGx5ID8gIiIgOiAiLXYgIiwKKysJCSAgICBhdXRvUGF0aCA/ICItQyAle2J1aWxk c3ViZGlyfSAiIDogIiIsCisrCQkgICAgIiV7c2hlc2NhcGU6Iiwgc3AtPnBhdGgsICJ9IiwgTlVM TCk7CisgICAgIHJzdHJjYXQoJmJ1ZiwKKyAJIlxuU1RBVFVTPSQ/XG4iCisgCSJpZiBbICRTVEFU VVMgLW5lIDAgXTsgdGhlblxuIgorQEAgLTE2NSwxMiArMTY3LDEzIEBAIHN0YXRpYyBpbnQgZG9T ZXR1cE1hY3JvKHJwbVNwZWMgc3BlYywgY29uc3QgY2hhciAqbGluZSkKKyAgICAgcnBtUkMgcmMg PSBSUE1SQ19GQUlMOworICAgICB1aW50MzJfdCBudW07CisgICAgIGludCBsZWF2ZURpcnMgPSAw LCBza2lwRGVmYXVsdEFjdGlvbiA9IDA7CistICAgIGludCBjcmVhdGVEaXIgPSAwLCBxdWlldGx5 ID0gMDsKKysgICAgaW50IGNyZWF0ZURpciA9IDAsIHF1aWV0bHkgPSAwLCBhdXRvUGF0aCA9IDA7 CisgICAgIGNoYXIgKiBkaXJOYW1lID0gTlVMTDsKKyAgICAgc3RydWN0IHBvcHRPcHRpb24gb3B0 aW9uc1RhYmxlW10gPSB7CisgCSAgICB7IE5VTEwsICdhJywgUE9QVF9BUkdfU1RSSU5HLCBOVUxM LCAnYScsCU5VTEwsIE5VTEx9LAorIAkgICAgeyBOVUxMLCAnYicsIFBPUFRfQVJHX1NUUklORywg TlVMTCwgJ2InLAlOVUxMLCBOVUxMfSwKKyAJICAgIHsgTlVMTCwgJ2MnLCAwLCAmY3JlYXRlRGly LCAwLAkJTlVMTCwgTlVMTH0sCisrCSAgICB7IE5VTEwsICdDJywgMCwgJmF1dG9QYXRoLCAwLAkJ TlVMTCwgTlVMTH0sCisgCSAgICB7IE5VTEwsICdEJywgMCwgJmxlYXZlRGlycywgMCwJCU5VTEws IE5VTEx9LAorIAkgICAgeyBOVUxMLCAnbicsIFBPUFRfQVJHX1NUUklORywgJmRpck5hbWUsIDAs CU5VTEwsIE5VTEx9LAorIAkgICAgeyBOVUxMLCAnVCcsIDAsICZza2lwRGVmYXVsdEFjdGlvbiwg MCwJTlVMTCwgTlVMTH0sCitAQCAtMjAyLDcgKzIwNSw3IEBAIHN0YXRpYyBpbnQgZG9TZXR1cE1h Y3JvKHJwbVNwZWMgc3BlYywgY29uc3QgY2hhciAqbGluZSkKKyAJICAgIGdvdG8gZXhpdDsKKyAJ fQorIAorLQl7ICAgY2hhciAqY2hwdHIgPSBkb1VudGFyKHNwZWMsIG51bSwgcXVpZXRseSk7Cisr CXsgICBjaGFyICpjaHB0ciA9IGRvVW50YXIoc3BlYywgbnVtLCBxdWlldGx5LCAwKTsKKyAJICAg IGlmIChjaHB0ciA9PSBOVUxMKQorIAkJZ290byBleGl0OworIAorQEAgLTI1OSw3ICsyNjIsNyBA QCBzdGF0aWMgaW50IGRvU2V0dXBNYWNybyhycG1TcGVjIHNwZWMsIGNvbnN0IGNoYXIgKmxpbmUp CisgCisgICAgIC8qIGRvIHRoZSBkZWZhdWx0IGFjdGlvbiAqLworICAgIGlmICghc2tpcERlZmF1 bHRBY3Rpb24pIHsKKy0JY2hhciAqY2hwdHIgPSBkb1VudGFyKHNwZWMsIDAsIHF1aWV0bHkpOwor KwljaGFyICpjaHB0ciA9IGRvVW50YXIoc3BlYywgMCwgcXVpZXRseSwgYXV0b1BhdGgpOworIAlp ZiAoIWNocHRyKQorIAkgICAgZ290byBleGl0OworIAlhcHBlbmRCdWYoc3BlYywgY2hwdHIsIDEp OworZGlmZiAtLWdpdCBhL2RvY3MvbWFudWFsL3NwZWMubWQgYi9kb2NzL21hbnVhbC9zcGVjLm1k CitpbmRleCAwOTgwOTk4NzUuLjNhY2U3OWU1NiAxMDA2NDQKKy0tLSBhL2RvY3MvbWFudWFsL3Nw ZWMubWQKKysrKyBiL2RvY3MvbWFudWFsL3NwZWMubWQKK0BAIC00ODksNiArNDg5LDkgQEAgY2Fu IGp1c3QgY3JlYXRlIHRoZSBkaXJlY3RvcnkuIEl0IGFjY2VwdHMgYSBudW1iZXIgb2Ygb3B0aW9u czoKKyAtYSBOICAgICAgICB1bnBhY2sgc291cmNlIE4gYWZ0ZXIgY2hhbmdpbmcgdG8gdGhlIGJ1 aWxkIGRpcmVjdG9yeQorIC1iIE4gICAgICAgIHVucGFjayBzb3VyY2UgTiBiZWZvcmUgY2hhbmdp bmcgdG8gdGhlIGJ1aWxkIGRpcmVjdG9yeQorIC1jICAgICAgICAgIGNyZWF0ZSB0aGUgYnVpbGQg ZGlyZWN0b3J5IChhbmQgY2hhbmdlIHRvIGl0KSBiZWZvcmUgdW5wYWNraW5nCisrLUMgICAgICAg ICAgQ3JlYXRlIHRoZSBidWlsZCBkaXJlY3RvcnkgYW5kIGVuc3VyZSB0aGUgYXJjaGl2ZSBjb250 ZW50cworKyAgICAgICAgICAgIGFyZSB1bnBhY2tlZCB0aGVyZSwgc3RyaXBwaW5nIHRoZSB0b3Ag bGV2ZWwgZGlyZWN0b3J5IGluIHRoZSBhcmNoaXZlCisrICAgICAgICAgICAgaWYgaXQgZXhpc3Rz CisgLUQgICAgICAgICAgZG8gbm90IGRlbGV0ZSB0aGUgYnVpbGQgZGlyZWN0b3J5IHByaW9yIHRv IHVucGFja2luZyAodXNlZAorICAgICAgICAgICAgIHdoZW4gbW9yZSB0aGFuIG9uZSBzb3VyY2Ug aXMgdG8gYmUgdW5wYWNrZWQgd2l0aCBgLWFgIG9yIGAtYmApCisgLW4gRElSICAgICAgc2V0IHRo ZSBuYW1lIG9mIGJ1aWxkIGRpcmVjdG9yeSAoZGVmYXVsdCBpcyBgJXtuYW1lfS0le3ZlcnNpb259 YCkKK2RpZmYgLS1naXQgYS9tYWNyb3MuaW4gYi9tYWNyb3MuaW4KK2luZGV4IGVmNDEzYTM1OC4u MTliZTc5OTA5IDEwMDY0NAorLS0tIGEvbWFjcm9zLmluCisrKysgYi9tYWNyb3MuaW4KK0BAIC0x MzM4LDggKzEzMzgsOCBAQCBlbmQKKyAjICAgICAgICAgICAJdXNhZ2Ugb2YgZ2l0IHJlcG9zaXRv cnkgYW5kIHBlci1wYXRjaCBjb21taXRzLgorICMgLU4JCURpc2FibGUgYXV0b21hdGljIHBhdGNo IGFwcGxpY2F0aW9uCisgIyAtcDxudW0+CVVzZSAtcDxudW0+IGZvciBwYXRjaCBhcHBsaWNhdGlv bgkKKy0lYXV0b3NldHVwKGE6YjpjRG46VHZOUzpwOilcCistJXNldHVwICV7LWF9ICV7LWJ9ICV7 LWN9ICV7LUR9ICV7LW59ICV7LVR9ICV7IS12Oi1xfVwKKyslYXV0b3NldHVwKGE6YjpjQ0RuOlR2 TlM6cDopXAorKyVzZXR1cCAley1hfSAley1ifSAley1jfSAley1DfSAley1EfSAley1ufSAley1U fSAleyEtdjotcX1cCisgJXstUzolZ2xvYmFsIF9fc2NtICV7LVMqfX1cCisgJXtleHBhbmQ6JV9f c2NtX3NldHVwXyV7X19zY219ICV7IS12Oi1xfX1cCisgJXshLU46JWF1dG9wYXRjaCAley12fSAl ey1wOi1wJXstcCp9fX0KK2RpZmYgLS1naXQgYS90b29scy9DTWFrZUxpc3RzLnR4dCBiL3Rvb2xz L0NNYWtlTGlzdHMudHh0CitpbmRleCA1YmU0Y2YyZDAuLmVhNDUyZTczOCAxMDA2NDQKKy0tLSBh L3Rvb2xzL0NNYWtlTGlzdHMudHh0CisrKysgYi90b29scy9DTWFrZUxpc3RzLnR4dAorQEAgLTE5 LDYgKzE5LDcgQEAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKHJwbWx1YSBQUklWQVRFIExVQTo6TFVB KQorIHRhcmdldF9saW5rX2xpYnJhcmllcyhycG1idWlsZCBQUklWQVRFIGxpYnJwbWJ1aWxkKQor IHRhcmdldF9saW5rX2xpYnJhcmllcyhycG1zcGVjIFBSSVZBVEUgbGlicnBtYnVpbGQpCisgdGFy Z2V0X2xpbmtfbGlicmFyaWVzKHJwbWRlcHMgUFJJVkFURSBsaWJycG1idWlsZCkKKyt0YXJnZXRf bGlua19saWJyYXJpZXMocnBtdW5jb21wcmVzcyBQUklWQVRFIFBrZ0NvbmZpZzo6TElCQVJDSElW RSkKKyAKKyBpZiAoSEFWRV9TVFJDSFJOVUwpCisgCWFkZF9leGVjdXRhYmxlKHJwbXNvcnQgcnBt c29ydC5jKQorZGlmZiAtLWdpdCBhL3Rvb2xzL3JwbXVuY29tcHJlc3MuYyBiL3Rvb2xzL3JwbXVu Y29tcHJlc3MuYworaW5kZXggZTEzY2M2YTY2Li5jNDgzMjMzMmMgMTAwNjQ0CistLS0gYS90b29s cy9ycG11bmNvbXByZXNzLmMKKysrKyBiL3Rvb2xzL3JwbXVuY29tcHJlc3MuYworQEAgLTYsNiAr Niw5IEBACisgI2luY2x1ZGUgPHN0ZGlvLmg+CisgI2luY2x1ZGUgPHN0cmluZy5oPgorIAorKyNp bmNsdWRlIDxhcmNoaXZlLmg+CisrI2luY2x1ZGUgPGFyY2hpdmVfZW50cnkuaD4KKysKKyAjaW5j bHVkZSA8cnBtL3JwbWNsaS5oPgorICNpbmNsdWRlIDxycG0vcnBtc3RyaW5nLmg+CisgCitAQCAt MTQsNiArMTcsNyBAQAorIHN0YXRpYyBpbnQgdmVyYm9zZSA9IDA7Cisgc3RhdGljIGludCBleHRy YWN0ID0gMDsKKyBzdGF0aWMgaW50IGRyeXJ1biA9IDA7Cisrc3RhdGljIGNoYXIgKmRzdHBhdGgg PSBOVUxMOworIAorIHN0YXRpYyBzdHJ1Y3QgcG9wdE9wdGlvbiBvcHRpb25zVGFibGVbXSA9IHsK KyAgICAgeyAiZXh0cmFjdCIsICd4JywgUE9QVF9BUkdfVkFMLCAmZXh0cmFjdCwgMSwKK0BAIC0y Miw2ICsyNiw4IEBAIHN0YXRpYyBzdHJ1Y3QgcG9wdE9wdGlvbiBvcHRpb25zVGFibGVbXSA9IHsK KyAJTl8oInByb3ZpZGUgbW9yZSBkZXRhaWxlZCBvdXRwdXQiKSwgTlVMTCB9LAorICAgICB7ICJk cnktcnVuIiwgJ24nLCBQT1BUX0FSR19WQUwsICZkcnlydW4sIDEsCisgCU5fKCJvbmx5IHByaW50 IHdoYXQgd291bGQgYmUgZG9uZSIpLCBOVUxMIH0sCisrICAgIHsgInBhdGgiLCAnQycsIFBPUFRf QVJHX1NUUklORywgJmRzdHBhdGgsIDAsCisrCU5fKCJleHRyYWN0IGludG8gYSBzcGVjaWZpYyBw YXRoIiksIE5VTEwgfSwKKyAKKyAgICAgUE9QVF9BVVRPQUxJQVMKKyAgICAgUE9QVF9BVVRPSEVM UAorQEAgLTc4LDE2ICs4NCw3OCBAQCBzdGF0aWMgY2hhciAqZG9VbmNvbXByZXNzKGNvbnN0IGNo YXIgKmZuKQorICAgICByZXR1cm4gY21kOworIH0KKyAKKysvKioKKysgKiBEZXRlY3QgaWYgYW4g YXJjaGl2ZSBoYXMgYSBzaW5nbGUgdG9wIGxldmVsIGVudHJ5LCBhbmQgaXQncyBhIGRpcmVjdG9y eS4KKysgKgorKyAqIEBwYXJhbSBwYXRoCXBhdGggb2YgdGhlIGFyY2hpdmUKKysgKiBAcmV0dXJu CTEgaWYgYXJjaGl2ZSBhcyBvbmx5IGEgZGlyZWN0b3J5IGFzIHRvcCBsZXZlbCBlbnRyeSwKKysg KiAJCTAgaWYgaXQgY29udGFpbnMgbXVsdGlwbGUgdG9wIGxldmVsIGVudHJpZXMgb3IgYSBzaW5n bGUgZmlsZQorKyAqIAkJLTEgb24gYXJjaGl2ZSBlcnJvcgorKyAqLworK3N0YXRpYyBpbnQgc2lu Z2xlUm9vdChjb25zdCBjaGFyICpwYXRoKQorK3sKKysJc3RydWN0IGFyY2hpdmUgKmE7CisrCXN0 cnVjdCBhcmNoaXZlX2VudHJ5ICplbnRyeTsKKysJaW50IHIsIHJldCA9IC0xLCByb290TGVuOwor KwljaGFyICpyb290TmFtZSA9IE5VTEw7CisrCisrCWEgPSBhcmNoaXZlX3JlYWRfbmV3KCk7Cisr CWFyY2hpdmVfcmVhZF9zdXBwb3J0X2ZpbHRlcl9hbGwoYSk7CisrCWFyY2hpdmVfcmVhZF9zdXBw b3J0X2Zvcm1hdF9hbGwoYSk7CisrCXIgPSBhcmNoaXZlX3JlYWRfb3Blbl9maWxlbmFtZShhLCBw YXRoLCAxMDI0MCk7CisrCWlmIChyICE9IEFSQ0hJVkVfT0spIHsKKysJICAgIGdvdG8gYWZyZWU7 CisrCX0KKysJaWYgKGFyY2hpdmVfcmVhZF9uZXh0X2hlYWRlcihhLCAmZW50cnkpICE9IEFSQ0hJ VkVfT0spIHsKKysJICAgIGdvdG8gYWZyZWU7CisrCX0KKysJcm9vdE5hbWUgPSB4c3RyZHVwKGFy Y2hpdmVfZW50cnlfcGF0aG5hbWUoZW50cnkpKTsKKysJcm9vdExlbiA9IHN0cmxlbihyb290TmFt ZSk7CisrCWlmIChhcmNoaXZlX2VudHJ5X2ZpbGV0eXBlKGVudHJ5KSAhPSBBRV9JRkRJUikgewor KwkgICAgLyogUm9vdCBlbnRyeSBpcyBub3QgYSBkaXJlY3RvcnkgKi8KKysJICAgIHJldCA9IDA7 CisrCSAgICBnb3RvIGFmcmVlOworKwl9CisrCXdoaWxlIChhcmNoaXZlX3JlYWRfbmV4dF9oZWFk ZXIoYSwgJmVudHJ5KSA9PSBBUkNISVZFX09LKSB7CisrCSAgICBpZiAoc3RybmNtcChyb290TmFt ZSwgYXJjaGl2ZV9lbnRyeV9wYXRobmFtZShlbnRyeSksIHJvb3RMZW4pKSB7CisrCQkvKiBtdWx0 aXBsZSB0b3AgbGV2ZWwgZW50cmllcyAqLworKwkJcmV0ID0gMDsKKysJCWdvdG8gYWZyZWU7Cisr CSAgICB9CisrCX0KKysJcmV0ID0gMTsKKysKKythZnJlZToKKysJZnJlZShyb290TmFtZSk7Cisr CXIgPSBhcmNoaXZlX3JlYWRfZnJlZShhKTsKKysJaWYgKHIgIT0gQVJDSElWRV9PSykKKysJICAg IHJldCA9IC0xOworKworKwlyZXR1cm4gcmV0OworK30KKysKKyBzdGF0aWMgY2hhciAqZG9VbnRh cihjb25zdCBjaGFyICpmbikKKyB7CisgICAgIGNvbnN0IHN0cnVjdCBhcmNoaXZlVHlwZV9zICph dCA9IE5VTEw7CisgICAgIGNoYXIgKmJ1ZiA9IE5VTEw7CisgICAgIGNoYXIgKnRhciA9IE5VTEw7 CisgICAgIGNvbnN0IGNoYXIgKnRhcm9wdHMgPSB2ZXJib3NlID8gIi14dnZvZiIgOiAiLXhvZiI7 CisrICAgIGNoYXIgKm1rZGlyID0gTlVMTDsKKysgICAgY2hhciAqc3RyaXBjZCA9IE5VTEw7Cisg CisgICAgIGlmICgoYXQgPSBnZXRBcmNoaXZlcihmbikpID09IE5VTEwpCisgCWdvdG8gZXhpdDsK KyAKKysgICAgaWYgKGRzdHBhdGgpIHsKKysJICAgIGludCBzciA9IHNpbmdsZVJvb3QoZm4pOwor KworKwkgICAgLyogdGhlIHRyaWNrIGlzIHNpbXBsZSwgaWYgdGhlIGFyY2hpdmUgaGFzIG11bHRp cGxlIGVudHJpZXMsCisrCSAgICAgKiBqdXN0IGV4dHJhY3QgaXQgaW50byB0aGUgc3BlY2lmaWVk IGRlc3RpbmF0aW9uIHBhdGgsIG90aGVyd2lzZQorKwkgICAgICogc3RyaXAgdGhlIGZpcnN0IHBh dGggZW50cnkgYW5kIGV4dHJhY3QgaW4gdGhlIGRlc3RpbmF0aW9uIHBhdGgKKysJICAgICAqLwor KwkgICAgcmFzcHJpbnRmKCZta2RpciwgIm1rZGlyICclcycgOyAiLCBkc3RwYXRoKTsKKysJICAg IHJhc3ByaW50Zigmc3RyaXBjZCwgIiAtQyAnJXMnICVzIiwgZHN0cGF0aCwgc3IgPyAiLS1zdHJp cC1jb21wb25lbnRzPTEiIDogIiIpOworKyAgICB9CisgICAgIHRhciA9IHJwbUdldFBhdGgoIiV7 X190YXJ9IiwgTlVMTCk7CisgICAgIGlmIChhdC0+Y29tcHJlc3NlZCAhPSBDT01QUkVTU0VEX05P VCkgeworIAljaGFyICp6aXBwZXIgPSBOVUxMOworQEAgLTk2LDcgKzE2NCw3IEBAIHN0YXRpYyBj aGFyICpkb1VudGFyKGNvbnN0IGNoYXIgKmZuKQorIAl6aXBwZXIgPSBycG1FeHBhbmQoYXQtPmNt ZCwgIiAiLCBhdC0+dW5wYWNrLCAiICIsCisgCQkJICAgdmVyYm9zZSA/ICIiIDogYXQtPnF1aWV0 LCBOVUxMKTsKKyAJaWYgKG5lZWR0YXIpIHsKKy0JICAgIHJhc3ByaW50ZigmYnVmLCAiJXMgJyVz JyB8ICVzICVzIC0iLCB6aXBwZXIsIGZuLCB0YXIsIHRhcm9wdHMpOworKwkgICAgcmFzcHJpbnRm KCZidWYsICIlcyAlcyAnJXMnIHwgJXMgJXMgLSAlcyIsIG1rZGlyID86ICIiLCB6aXBwZXIsIGZu LCB0YXIsIHRhcm9wdHMsIHN0cmlwY2QgPzogIiIpOworIAl9IGVsc2UgaWYgKGF0LT5jb21wcmVz c2VkID09IENPTVBSRVNTRURfR0VNKSB7CisgCSAgICBjaGFyICp0bXAgPSB4c3RyZHVwKGZuKTsK KyAJICAgIGNvbnN0IGNoYXIgKmJuID0gYmFzZW5hbWUodG1wKTsKK0BAIC0xMTksMTEgKzE4Nywx MyBAQCBzdGF0aWMgY2hhciAqZG9VbnRhcihjb25zdCBjaGFyICpmbikKKyAJfQorIAlmcmVlKHpp cHBlcik7CisgICAgIH0gZWxzZSB7CistCXJhc3ByaW50ZigmYnVmLCAiJXMgJXMgJyVzJyIsIHRh ciwgdGFyb3B0cywgZm4pOworKwlyYXNwcmludGYoJmJ1ZiwgIiVzICVzICVzICclcycgJXMiLCBt a2RpciA/OiAiIiwgdGFyLCB0YXJvcHRzLCBmbiwgc3RyaXBjZCA/OiAiIik7CisgICAgIH0KKyAK KyBleGl0OgorICAgICBmcmVlKHRhcik7CisrICAgIGZyZWUobWtkaXIpOworKyAgICBmcmVlKHN0 cmlwY2QpOworICAgICByZXR1cm4gYnVmOworIH0KKyAKKy0tIAorMi41NC4wCisKKworRnJvbSA4 ZWU4M2EzMTc0ZjQ5NTZiYWFkM2ZlYjE2NGQ2OGQxYjQ4ZTYyOWI2IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQorRnJvbTogRmxvcmlhbiBGZXN0aSA8ZmZlc3RpQHJlZGhhdC5jb20+CitEYXRlOiBN b24sIDE3IEp1biAyMDI0IDE1OjAzOjI4ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMDIvMTRdIFBh c3MgVFo9VVRDIHRvIHppcCBpbiBycG11bmNvbXByZXNzCisKK1RoZSBaSVAgZm9ybWF0IGhhcyBu byBub3Rpb24gb2YgdGltZSB6b25lLCBzbyB0aW1lc3RhbXBzIGFyZSBvbmx5CittZWFuaW5nZnVs IGlmIGl0IGlzIGtub3duIHdoYXQgdGltZSB6b25lIHRoZXkgd2VyZSBjcmVhdGVkIGluLiBQYXNz IFVUQwordG8gcHJldmVudCB0aW1lIHN0YW1wcyB0byBkZXBlbmQgb24gbG9jYWwgdGltZSB6b25l IHNldHRpbmcgYW5kIG1ha2UKK2J1aWxkcyBmcm9tIHNvdXJjZXMgaW4gemlwIGZpbGVzIChtb3Jl KSByZXByb2R1Y2libGUuCisKK1RoZSBvdGhlciBhcmNoaXZlIGZvcm1hdHMgKDd6aXAgdXNpbmcg VVRDLCBSdWJ5IGdlbXMgdXNpbmcgdGFyIGFuZCB0YXIKK2l0c2VsZikgZG9uJ3QgaGF2ZSB0aGlz IGlzc3VlLiBFdmVyeXRoaW5nIGVsc2UgYXJlIHN0cmVhbSBjb21wcmVzc29ycwordGhhdCBkb24n dCBkZWFsIHdpdGggZmlsZSBtZXRhIGRhdGEuCisKK1Rlc3RlZCBtYW51YWxseSB3aXRoIEZlZG9y YSdzIHh6LWphdmEtMS45LnppcCBhcyBtZW50aW9uZWQgaW4gdGhlIGlzc3VlLgorCitSZXNvbHZl czogIzI5NTUKKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGI4NDc2MDhjYzIyMjM2YWUxOWFm NTFkYzNmYWVmMTYzOThkZjQxMTApCistLS0KKyB0b29scy9ycG11bmNvbXByZXNzLmMgfCAzMSAr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDE3IGluc2Vy dGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvdG9vbHMvcnBtdW5jb21w cmVzcy5jIGIvdG9vbHMvcnBtdW5jb21wcmVzcy5jCitpbmRleCBjNDgzMjMzMmMuLjRjOWU0NmFh ZCAxMDA2NDQKKy0tLSBhL3Rvb2xzL3JwbXVuY29tcHJlc3MuYworKysrIGIvdG9vbHMvcnBtdW5j b21wcmVzcy5jCitAQCAtNDAsMTkgKzQwLDIwIEBAIHN0cnVjdCBhcmNoaXZlVHlwZV9zIHsKKyAg ICAgY29uc3QgY2hhciAqY21kOworICAgICBjb25zdCBjaGFyICp1bnBhY2s7CisgICAgIGNvbnN0 IGNoYXIgKnF1aWV0OworKyAgICBpbnQgc2V0VFo7CisgfSBhcmNoaXZlVHlwZXNbXSA9IHsKKy0g ICAgeyBDT01QUkVTU0VEX05PVCwJMCwJIiV7X19jYXR9IiAsCSIiLAkJIiIgfSwKKy0gICAgeyBD T01QUkVTU0VEX09USEVSLAkwLAkiJXtfX2d6aXB9IiwJIi1kYyIsCQkiIiAgfSwKKy0gICAgeyBD T01QUkVTU0VEX0JaSVAyLAkwLAkiJXtfX2J6aXAyfSIsCSItZGMiLAkJIiIgfSwKKy0gICAgeyBD T01QUkVTU0VEX1pJUCwJMSwJIiV7X191bnppcH0iLAkiIiwJCSItcXEiIH0sCistICAgIHsgQ09N UFJFU1NFRF9MWk1BLAkwLAkiJXtfX3h6fSIsCSItZGMiLAkJIiIgfSwKKy0gICAgeyBDT01QUkVT U0VEX1haLAkwLAkiJXtfX3h6fSIsCSItZGMiLAkJIiIgfSwKKy0gICAgeyBDT01QUkVTU0VEX0xa SVAsCTAsCSIle19fbHppcH0iLAkiLWRjIiwJCSIiIH0sCistICAgIHsgQ09NUFJFU1NFRF9MUlpJ UCwJMCwJIiV7X19scnppcH0iLAkiLWRxby0iLAkiIiB9LAorLSAgICB7IENPTVBSRVNTRURfN1pJ UCwJMSwJIiV7X183emlwfSIsCSJ4IiwJCSIiIH0sCistICAgIHsgQ09NUFJFU1NFRF9aU1RELAkw LAkiJXtfX3pzdGR9IiwJIi1kYyIsCQkiIiB9LAorLSAgICB7IENPTVBSRVNTRURfR0VNLAkxLAki JXtfX2dlbX0iLAkidW5wYWNrIiwJIiIgfSwKKy0gICAgeyAtMSwJCTAsCU5VTEwsCQlOVUxMLAkJ TlVMTCB9LAorKyAgICB7IENPTVBSRVNTRURfTk9ULAkwLAkiJXtfX2NhdH0iICwJIiIsCQkiIiwg MCB9LAorKyAgICB7IENPTVBSRVNTRURfT1RIRVIsCTAsCSIle19fZ3ppcH0iLAkiLWRjIiwJCSIi LCAwIH0sCisrICAgIHsgQ09NUFJFU1NFRF9CWklQMiwJMCwJIiV7X19iemlwMn0iLAkiLWRjIiwJ CSIiLCAwIH0sCisrICAgIHsgQ09NUFJFU1NFRF9aSVAsCTEsCSIle19fdW56aXB9IiwJIiIsCQki LXFxIiwgMSB9LAorKyAgICB7IENPTVBSRVNTRURfTFpNQSwJMCwJIiV7X194en0iLAkiLWRjIiwJ CSIiLCAwIH0sCisrICAgIHsgQ09NUFJFU1NFRF9YWiwJMCwJIiV7X194en0iLAkiLWRjIiwJCSIi LCAwIH0sCisrICAgIHsgQ09NUFJFU1NFRF9MWklQLAkwLAkiJXtfX2x6aXB9IiwJIi1kYyIsCQki IiwgMCB9LAorKyAgICB7IENPTVBSRVNTRURfTFJaSVAsCTAsCSIle19fbHJ6aXB9IiwJIi1kcW8t IiwJIiIsIDAgfSwKKysgICAgeyBDT01QUkVTU0VEXzdaSVAsCTEsCSIle19fN3ppcH0iLAkieCIs CQkiIiwgMCB9LAorKyAgICB7IENPTVBSRVNTRURfWlNURCwJMCwJIiV7X196c3RkfSIsCSItZGMi LAkJIiIsIDAgfSwKKysgICAgeyBDT01QUkVTU0VEX0dFTSwJMSwJIiV7X19nZW19IiwJInVucGFj ayIsCSIiLCAwIH0sCisrICAgIHsgLTEsCQkwLAlOVUxMLAkJTlVMTCwJCU5VTEwsIDAgfSwKKyB9 OworIAorIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYXJjaGl2ZVR5cGVfcyAqZ2V0QXJjaGl2ZXIoY29u c3QgY2hhciAqZm4pCitAQCAtNzcsNyArNzgsOCBAQCBzdGF0aWMgY2hhciAqZG9VbmNvbXByZXNz KGNvbnN0IGNoYXIgKmZuKQorICAgICBjaGFyICpjbWQgPSBOVUxMOworICAgICBjb25zdCBzdHJ1 Y3QgYXJjaGl2ZVR5cGVfcyAqYXQgPSBnZXRBcmNoaXZlcihmbik7CisgICAgIGlmIChhdCkgewor LQljbWQgPSBycG1FeHBhbmQoYXQtPmNtZCwgIiAiLCBhdC0+dW5wYWNrLCBOVUxMKTsKKysJY21k ID0gcnBtRXhwYW5kKGF0LT5zZXRUWiA/ICJUWj1VVEMgIiA6ICIiLAorKwkJCWF0LT5jbWQsICIg IiwgYXQtPnVucGFjaywgTlVMTCk7CisgCS8qIHBhdGggbXVzdCBub3QgYmUgZXhwYW5kZWQgKi8K KyAJY21kID0gcnN0cnNjYXQoJmNtZCwgIiAiLCBmbiwgTlVMTCk7CisgICAgIH0KK0BAIC0xNjEs NyArMTYzLDggQEAgc3RhdGljIGNoYXIgKmRvVW50YXIoY29uc3QgY2hhciAqZm4pCisgCWNoYXIg KnppcHBlciA9IE5VTEw7CisgCWludCBuZWVkdGFyID0gKGF0LT5leHRyYWN0YWJsZSA9PSAwKTsK KyAKKy0JemlwcGVyID0gcnBtRXhwYW5kKGF0LT5jbWQsICIgIiwgYXQtPnVucGFjaywgIiAiLAor Kwl6aXBwZXIgPSBycG1FeHBhbmQoYXQtPnNldFRaID8gIlRaPVVUQyAiIDogIiIsCisrCQkJICAg YXQtPmNtZCwgIiAiLCBhdC0+dW5wYWNrLCAiICIsCisgCQkJICAgdmVyYm9zZSA/ICIiIDogYXQt PnF1aWV0LCBOVUxMKTsKKyAJaWYgKG5lZWR0YXIpIHsKKyAJICAgIHJhc3ByaW50ZigmYnVmLCAi JXMgJXMgJyVzJyB8ICVzICVzIC0gJXMiLCBta2RpciA/OiAiIiwgemlwcGVyLCBmbiwgdGFyLCB0 YXJvcHRzLCBzdHJpcGNkID86ICIiKTsKKy0tIAorMi41NC4wCisKKworRnJvbSBjNGY1NmMwODk4 YjQ3MDgxMTAzNGY2MjA5OWY3MGJlNzMzZDU4YjM2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQor RnJvbTogRmxvcmlhbiBGZXN0aSA8ZmZlc3RpQHJlZGhhdC5jb20+CitEYXRlOiBNb24sIDE3IEp1 biAyMDI0IDE4OjE5OjQ1ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMDMvMTRdIEZyZWUgY21kIGZv ciAtLWRyeS1ydW4gdG9vCisKK1ByZXZlbnQgbWVtb3J5IGxlYWsgYW5kIHRoZSBtZW1vcnkgc2Fu YXRpemVyIGZhaWxpbmcuCisKKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGU4YTI1MmRjYTlm MDczMWRjNWYyNGQ5MTQ0N2E2OTA2MzYzZmY5ZWMpCistLS0KKyB0b29scy9ycG11bmNvbXByZXNz LmMgfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0p CisKK2RpZmYgLS1naXQgYS90b29scy9ycG11bmNvbXByZXNzLmMgYi90b29scy9ycG11bmNvbXBy ZXNzLmMKK2luZGV4IDRjOWU0NmFhZC4uZTgyMzJhY2JjIDEwMDY0NAorLS0tIGEvdG9vbHMvcnBt dW5jb21wcmVzcy5jCisrKysgYi90b29scy9ycG11bmNvbXByZXNzLmMKK0BAIC0yMzQsMTAgKzIz NCwxMCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQorIAkgICAgaWYgKFdJRkVY SVRFRChzdGF0dXMpICYmIFdFWElUU1RBVFVTKHN0YXR1cykgPT0gMCkKKyAJCWVjID0gRVhJVF9T VUNDRVNTOworIAl9CistCWZyZWUoY21kKTsKKyAgICAgfQorIAorIGV4aXQ6CisrICAgIGZyZWUo Y21kKTsKKyAgICAgcnBtY2xpRmluaShvcHRDb24pOworICAgICByZXR1cm4gZWM7CisgfQorLS0g CisyLjU0LjAKKworCitGcm9tIGI5NGQ3YjU3YWFhODBkN2JiMTcxZGE4NDYyMTVmMzA2YjNkNzhj M2QgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBQYW51IE1hdGlsYWluZW4gPHBtYXRp bGFpQHJlZGhhdC5jb20+CitEYXRlOiBUdWUsIDI3IEF1ZyAyMDI0IDEzOjI3OjIwICswMzAwCitT dWJqZWN0OiBbUEFUQ0ggMDQvMTRdIFdvcmsgYXJvdW5kIHVub3duZWQgZGlyZWN0b3JpZXMgaW4g cnBtdW5jb21wcmVzcyAtQworCitTb21lIGFyY2hpdmVzIGhhdmUgYSBkaXJlY3RvcnkgcHJlZml4 IGJ1dCBhcmUgbWlzc2luZyB0aGUgbGVhZGluZworZGlyZWN0b3J5IGVudHJ5LCB3b3JrIGFyb3Vu ZCBpdCBieSBqdXN0IGNvbXBhcmluZyB0aGUgbGVhZGluZyBkaXJlY3RvcnkKK2NvbXBvbmVudHMg KGlmIGFueSkgYWNyb3NzIHRoZSBhcmNoaXZlLgorCitBZGQgdGVzdHMgZm9yIHVub3duZWQgZGly ZWN0b3JpZXMgd2l0aCBycG11bmNvbXByZXNzIC1DCisKK0dOVSB0YXIgc2VlbXMgdG8gYWx3YXlz IHBsYWNlIHRoZSByb290IGRpcmVjdG9yeSBub2RlIGluIHRoZXJlLCBidXQKK2NsZWFybHkgbm90 IGFsbCBpbXBsZW1lbnRhdGlvbnMgZG8uIE9uZSBvZiB0aGVtIGJlaW5nIFB5dGhvbiB0YXJmaWxl CithcyBvZiBQeXRob24gMy4xMi41LCBzbyB0aGUgdGVzdC10YXJiYWxscyBjcmVhdGVkIGZyb20g dGhlIHByZS1leGlzdGluZworc291cmNlLXNpbmdsZXJvb3QudGFyLmd6IGNvbnRlbnQgd2l0aDoK KworCWltcG9ydCB0YXJmaWxlCisKKwl0YXIgPSB0YXJmaWxlLm9wZW4oInNvdXJjZS1zaW5nbGVy b290LXVub3duZWQxLnRhci5neiIsICJ3Omd6IikKKwlmb3IgbmFtZSBpbiBbInNvdXJjZS1zdHJp cC9maWxlMSIsICJzb3VyY2Utc3RyaXAvZmlsZTIiXToKKwkgICAgdGFyLmFkZChuYW1lKQorCXRh ci5jbG9zZSgpCisKKwl0YXIgPSB0YXJmaWxlLm9wZW4oInNvdXJjZS1zaW5nbGVyb290LXVub3du ZWQyLnRhci5neiIsICJ3Omd6IikKKwlmb3IgbmFtZSBpbiBbInNvdXJjZS1zdHJpcC9kaXIxIiwg InNvdXJjZS1zdHJpcC9maWxlMSIsCisJCQkic291cmNlLXN0cmlwL2ZpbGUyIl06CisJICAgIHRh ci5hZGQobmFtZSkKKwl0YXIuY2xvc2UoKQorCitGaXhlczogIzMyNTAKKyhjaGVycnkgcGlja2Vk IGZyb20gY29tbWl0IDY3MWZjOGU1ZDY2MzNjMTRjOTYyMTkwM2EyM2MwMDQwYWNiNDNmNjUpCist LS0KKyB0b29scy9ycG11bmNvbXByZXNzLmMgfCAxMyArKysrKysrKy0tLS0tCisgMSBmaWxlIGNo YW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3Rv b2xzL3JwbXVuY29tcHJlc3MuYyBiL3Rvb2xzL3JwbXVuY29tcHJlc3MuYworaW5kZXggZTgyMzJh Y2JjLi4yY2Y5ODhkYWMgMTAwNjQ0CistLS0gYS90b29scy9ycG11bmNvbXByZXNzLmMKKysrKyBi L3Rvb2xzL3JwbXVuY29tcHJlc3MuYworQEAgLTExMiwxNSArMTEyLDE4IEBAIHN0YXRpYyBpbnQg c2luZ2xlUm9vdChjb25zdCBjaGFyICpwYXRoKQorIAkgICAgZ290byBhZnJlZTsKKyAJfQorIAly b290TmFtZSA9IHhzdHJkdXAoYXJjaGl2ZV9lbnRyeV9wYXRobmFtZShlbnRyeSkpOworLQlyb290 TGVuID0gc3RybGVuKHJvb3ROYW1lKTsKKy0JaWYgKGFyY2hpdmVfZW50cnlfZmlsZXR5cGUoZW50 cnkpICE9IEFFX0lGRElSKSB7CistCSAgICAvKiBSb290IGVudHJ5IGlzIG5vdCBhIGRpcmVjdG9y eSAqLworKwljaGFyICpzZXAgPSBzdHJjaHIocm9vdE5hbWUsICcvJyk7CisrCWlmIChzZXAgPT0g TlVMTCkgeworKwkgICAgLyogTm8gZGlyZWN0b3JpZXMgaW4gdGhlIHBhdGhuYW1lICovCisgCSAg ICByZXQgPSAwOworIAkgICAgZ290byBhZnJlZTsKKyAJfQorKworKwkvKiBEbyBhbGwgZW50cmll cyBpbiB0aGUgYXJjaGl2ZSBzdGFydCB3aXRoIHRoZSBzYW1lIGxlYWQgZGlyZWN0b3J5PyAqLwor Kwlyb290TGVuID0gc2VwIC0gcm9vdE5hbWUgKyAxOworIAl3aGlsZSAoYXJjaGl2ZV9yZWFkX25l eHRfaGVhZGVyKGEsICZlbnRyeSkgPT0gQVJDSElWRV9PSykgeworLQkgICAgaWYgKHN0cm5jbXAo cm9vdE5hbWUsIGFyY2hpdmVfZW50cnlfcGF0aG5hbWUoZW50cnkpLCByb290TGVuKSkgeworLQkJ LyogbXVsdGlwbGUgdG9wIGxldmVsIGVudHJpZXMgKi8KKysJICAgIGNvbnN0IGNoYXIgKnAgPSBh cmNoaXZlX2VudHJ5X3BhdGhuYW1lKGVudHJ5KTsKKysJICAgIGlmIChzdHJuY21wKHJvb3ROYW1l LCBwLCByb290TGVuKSkgeworIAkJcmV0ID0gMDsKKyAJCWdvdG8gYWZyZWU7CisgCSAgICB9Cist LSAKKzIuNTQuMAorCisKK0Zyb20gYjc1NGI3YmFhMmFiMDdjYjRiOTg3YjZjNGQxNjBhMTIxOTdl MzIwZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEZsb3JpYW4gRmVzdGkgPGZmZXN0 aUByZWRoYXQuY29tPgorRGF0ZTogVGh1LCAyOSBBdWcgMjAyNCAxMjoyOTowNSArMDIwMAorU3Vi amVjdDogW1BBVENIIDA1LzE0XSBSZXBsYWNlIGdjYyBvbmx5ID8gOiBvcGVyYXRvciB1c2FnZQor CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBjOTA3MzNkOTZlOTNmMzU0NDg1MzgyMTc4NzE5 MGZiYjAxNDcyYjE1KQorLS0tCisgdG9vbHMvcnBtdW5jb21wcmVzcy5jIHwgMjMgKysrKysrKysr KysrKy0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgMTAgZGVs ZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS90b29scy9ycG11bmNvbXByZXNzLmMgYi90b29scy9y cG11bmNvbXByZXNzLmMKK2luZGV4IDJjZjk4OGRhYy4uYTNiNzQ2NGQyIDEwMDY0NAorLS0tIGEv dG9vbHMvcnBtdW5jb21wcmVzcy5jCisrKysgYi90b29scy9ycG11bmNvbXByZXNzLmMKK0BAIC0x NTIsMTQgKzE1MiwxNyBAQCBzdGF0aWMgY2hhciAqZG9VbnRhcihjb25zdCBjaGFyICpmbikKKyAJ Z290byBleGl0OworIAorICAgICBpZiAoZHN0cGF0aCkgeworLQkgICAgaW50IHNyID0gc2luZ2xl Um9vdChmbik7CistCistCSAgICAvKiB0aGUgdHJpY2sgaXMgc2ltcGxlLCBpZiB0aGUgYXJjaGl2 ZSBoYXMgbXVsdGlwbGUgZW50cmllcywKKy0JICAgICAqIGp1c3QgZXh0cmFjdCBpdCBpbnRvIHRo ZSBzcGVjaWZpZWQgZGVzdGluYXRpb24gcGF0aCwgb3RoZXJ3aXNlCistCSAgICAgKiBzdHJpcCB0 aGUgZmlyc3QgcGF0aCBlbnRyeSBhbmQgZXh0cmFjdCBpbiB0aGUgZGVzdGluYXRpb24gcGF0aAor LQkgICAgICovCistCSAgICByYXNwcmludGYoJm1rZGlyLCAibWtkaXIgJyVzJyA7ICIsIGRzdHBh dGgpOworLQkgICAgcmFzcHJpbnRmKCZzdHJpcGNkLCAiIC1DICclcycgJXMiLCBkc3RwYXRoLCBz ciA/ICItLXN0cmlwLWNvbXBvbmVudHM9MSIgOiAiIik7CisrCWludCBzciA9IHNpbmdsZVJvb3Qo Zm4pOworKworKwkvKiB0aGUgdHJpY2sgaXMgc2ltcGxlLCBpZiB0aGUgYXJjaGl2ZSBoYXMgbXVs dGlwbGUgZW50cmllcywKKysJICoganVzdCBleHRyYWN0IGl0IGludG8gdGhlIHNwZWNpZmllZCBk ZXN0aW5hdGlvbiBwYXRoLCBvdGhlcndpc2UKKysJICogc3RyaXAgdGhlIGZpcnN0IHBhdGggZW50 cnkgYW5kIGV4dHJhY3QgaW4gdGhlIGRlc3RpbmF0aW9uIHBhdGgKKysJICovCisrCXJhc3ByaW50 ZigmbWtkaXIsICJta2RpciAnJXMnIDsgIiwgZHN0cGF0aCk7CisrCXJhc3ByaW50Zigmc3RyaXBj ZCwgIiAtQyAnJXMnICVzIiwgZHN0cGF0aCwgc3IgPyAiLS1zdHJpcC1jb21wb25lbnRzPTEiIDog IiIpOworKyAgICB9IGVsc2UgeworKwlta2RpciA9IHhzdHJkdXAoIiIpOworKwlzdHJpcGNkID0g eHN0cmR1cCgiIik7CisgICAgIH0KKyAgICAgdGFyID0gcnBtR2V0UGF0aCgiJXtfX3Rhcn0iLCBO VUxMKTsKKyAgICAgaWYgKGF0LT5jb21wcmVzc2VkICE9IENPTVBSRVNTRURfTk9UKSB7CitAQCAt MTcwLDcgKzE3Myw3IEBAIHN0YXRpYyBjaGFyICpkb1VudGFyKGNvbnN0IGNoYXIgKmZuKQorIAkJ CSAgIGF0LT5jbWQsICIgIiwgYXQtPnVucGFjaywgIiAiLAorIAkJCSAgIHZlcmJvc2UgPyAiIiA6 IGF0LT5xdWlldCwgTlVMTCk7CisgCWlmIChuZWVkdGFyKSB7CistCSAgICByYXNwcmludGYoJmJ1 ZiwgIiVzICVzICclcycgfCAlcyAlcyAtICVzIiwgbWtkaXIgPzogIiIsIHppcHBlciwgZm4sIHRh ciwgdGFyb3B0cywgc3RyaXBjZCA/OiAiIik7CisrCSAgICByYXNwcmludGYoJmJ1ZiwgIiVzICVz ICclcycgfCAlcyAlcyAtICVzIiwgbWtkaXIsIHppcHBlciwgZm4sIHRhciwgdGFyb3B0cywgc3Ry aXBjZCk7CisgCX0gZWxzZSBpZiAoYXQtPmNvbXByZXNzZWQgPT0gQ09NUFJFU1NFRF9HRU0pIHsK KyAJICAgIGNoYXIgKnRtcCA9IHhzdHJkdXAoZm4pOworIAkgICAgY29uc3QgY2hhciAqYm4gPSBi YXNlbmFtZSh0bXApOworQEAgLTE5Myw3ICsxOTYsNyBAQCBzdGF0aWMgY2hhciAqZG9VbnRhcihj b25zdCBjaGFyICpmbikKKyAJfQorIAlmcmVlKHppcHBlcik7CisgICAgIH0gZWxzZSB7CistCXJh c3ByaW50ZigmYnVmLCAiJXMgJXMgJXMgJyVzJyAlcyIsIG1rZGlyID86ICIiLCB0YXIsIHRhcm9w dHMsIGZuLCBzdHJpcGNkID86ICIiKTsKKysJcmFzcHJpbnRmKCZidWYsICIlcyAlcyAlcyAnJXMn ICVzIiwgbWtkaXIsIHRhciwgdGFyb3B0cywgZm4sIHN0cmlwY2QpOworICAgICB9CisgCisgZXhp dDoKKy0tIAorMi41NC4wCisKKworRnJvbSBkYzJhMmQwNjAwNmIzZjU1ZGZkNGU4MGJjZDhmOGU4 MDFmZjBjMGM5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRmxvcmlhbiBGZXN0aSA8 ZmZlc3RpQHJlZGhhdC5jb20+CitEYXRlOiBUaHUsIDI5IEF1ZyAyMDI0IDE1OjQwOjE4ICswMjAw CitTdWJqZWN0OiBbUEFUQ0ggMDYvMTRdIFJldHVybiB1bmlxdWUgdG9wIGRpcmVjdG9yeSBpZmYg aXQgZXhpc3RzCisKK1VzZWQgaW4gdGhlIG5leHQgY29tbWl0LgorCisoY2hlcnJ5IHBpY2tlZCBm cm9tIGNvbW1pdCA3YjQ2YTBkMGMzMzZlZTg2NTgyMWRlNTNjZGNmZmYwOTc1MjY2OWVkKQorLS0t CisgdG9vbHMvcnBtdW5jb21wcmVzcy5jIHwgMTggKysrKysrKysrKystLS0tLS0tCisgMSBmaWxl IGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQg YS90b29scy9ycG11bmNvbXByZXNzLmMgYi90b29scy9ycG11bmNvbXByZXNzLmMKK2luZGV4IGEz Yjc0NjRkMi4uODg5NTZkMTczIDEwMDY0NAorLS0tIGEvdG9vbHMvcnBtdW5jb21wcmVzcy5jCisr KysgYi90b29scy9ycG11bmNvbXByZXNzLmMKK0BAIC05MCwxMSArOTAsMTEgQEAgc3RhdGljIGNo YXIgKmRvVW5jb21wcmVzcyhjb25zdCBjaGFyICpmbikKKyAgKiBEZXRlY3QgaWYgYW4gYXJjaGl2 ZSBoYXMgYSBzaW5nbGUgdG9wIGxldmVsIGVudHJ5LCBhbmQgaXQncyBhIGRpcmVjdG9yeS4KKyAg KgorICAqIEBwYXJhbSBwYXRoCXBhdGggb2YgdGhlIGFyY2hpdmUKKy0gKiBAcmV0dXJuCTEgaWYg YXJjaGl2ZSBhcyBvbmx5IGEgZGlyZWN0b3J5IGFzIHRvcCBsZXZlbCBlbnRyeSwKKy0gKiAJCTAg aWYgaXQgY29udGFpbnMgbXVsdGlwbGUgdG9wIGxldmVsIGVudHJpZXMgb3IgYSBzaW5nbGUgZmls ZQorLSAqIAkJLTEgb24gYXJjaGl2ZSBlcnJvcgorKyAqIEByZXR1cm4Jb25seSB0b3AgbGV2ZWwg ZGlyZWN0b3J5IChpZiBhbnkpLAorKyAqIAkJTlVMTCBpZiBpdCBjb250YWlucyBtdWx0aXBsZSB0 b3AgbGV2ZWwgZW50cmllcyBvciBhIHNpbmdsZSBmaWxlCisrICogCQlvciBvbiBhcmNoaXZlIGVy cm9yCisgICovCistc3RhdGljIGludCBzaW5nbGVSb290KGNvbnN0IGNoYXIgKnBhdGgpCisrc3Rh dGljIGNoYXIgKiBzaW5nbGVSb290KGNvbnN0IGNoYXIgKnBhdGgpCisgeworIAlzdHJ1Y3QgYXJj aGl2ZSAqYTsKKyAJc3RydWN0IGFyY2hpdmVfZW50cnkgKmVudHJ5OworQEAgLTEyOCwxNSArMTI4 LDE4IEBAIHN0YXRpYyBpbnQgc2luZ2xlUm9vdChjb25zdCBjaGFyICpwYXRoKQorIAkJZ290byBh ZnJlZTsKKyAJICAgIH0KKyAJfQorKwkqc2VwID0gJ1wwJzsKKyAJcmV0ID0gMTsKKyAKKyBhZnJl ZToKKy0JZnJlZShyb290TmFtZSk7CisgCXIgPSBhcmNoaXZlX3JlYWRfZnJlZShhKTsKKyAJaWYg KHIgIT0gQVJDSElWRV9PSykKKyAJICAgIHJldCA9IC0xOworIAorLQlyZXR1cm4gcmV0OworKwlp ZiAocmV0ICE9IDEpCisrCSAgICByb290TmFtZSA9IF9mcmVlKHJvb3ROYW1lKTsKKysKKysJcmV0 dXJuIHJvb3ROYW1lOworIH0KKyAKKyBzdGF0aWMgY2hhciAqZG9VbnRhcihjb25zdCBjaGFyICpm bikKK0BAIC0xNTIsNyArMTU1LDcgQEAgc3RhdGljIGNoYXIgKmRvVW50YXIoY29uc3QgY2hhciAq Zm4pCisgCWdvdG8gZXhpdDsKKyAKKyAgICAgaWYgKGRzdHBhdGgpIHsKKy0JaW50IHNyID0gc2lu Z2xlUm9vdChmbik7CisrCWNoYXIgKiBzciA9IHNpbmdsZVJvb3QoZm4pOworIAorIAkvKiB0aGUg dHJpY2sgaXMgc2ltcGxlLCBpZiB0aGUgYXJjaGl2ZSBoYXMgbXVsdGlwbGUgZW50cmllcywKKyAJ ICoganVzdCBleHRyYWN0IGl0IGludG8gdGhlIHNwZWNpZmllZCBkZXN0aW5hdGlvbiBwYXRoLCBv dGhlcndpc2UKK0BAIC0xNjAsNiArMTYzLDcgQEAgc3RhdGljIGNoYXIgKmRvVW50YXIoY29uc3Qg Y2hhciAqZm4pCisgCSAqLworIAlyYXNwcmludGYoJm1rZGlyLCAibWtkaXIgJyVzJyA7ICIsIGRz dHBhdGgpOworIAlyYXNwcmludGYoJnN0cmlwY2QsICIgLUMgJyVzJyAlcyIsIGRzdHBhdGgsIHNy ID8gIi0tc3RyaXAtY29tcG9uZW50cz0xIiA6ICIiKTsKKysJZnJlZShzcik7CisgICAgIH0gZWxz ZSB7CisgCW1rZGlyID0geHN0cmR1cCgiIik7CisgCXN0cmlwY2QgPSB4c3RyZHVwKCIiKTsKKy0t IAorMi41NC4wCisKKworRnJvbSA1ODQ3YTM2NmM5MTcyZWFhYmQyNzQzMTE5YzhmOGI5NGIwYjNl OWVmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRmxvcmlhbiBGZXN0aSA8ZmZlc3Rp QHJlZGhhdC5jb20+CitEYXRlOiBUaHUsIDI5IEF1ZyAyMDI0IDE1OjExOjUxICswMjAwCitTdWJq ZWN0OiBbUEFUQ0ggMDcvMTRdIHJwbXVuY29tcHJlc3M6IFN1cHBvcnQgLUMgZm9yIHppcCBhbmQg N3ppcCBhcmNoaXZlcworCitBcyBib3RoIGRvbid0IHN1cHBvcnQgYW4gZXF1aXZhbGVudCB0byB0 YXJzIC0tc3RyaXAtY29tcG9uZW50cz0xIHdlIG1vdmUKK3RoZSBmaWxlcyBvdXQgb2YgdG9wIGRp cmVjdG9yeSBvdXJzZWx2ZXMgd2l0aCBzaGVsbCBjb21tYW5kcy4KKworU3VwcG9ydCBmb3IgUnVi eSBnZW1zIGlzIHN0aWxsIG1pc3NpbmcgLSBpZmYgYXQgYWxsIHBvc3NpYmxlIG9yCitkZXNpcmFi bGUuCisKK1Jlc29sdmVzOiAjMzI0OQorKGJhY2twb3J0ZWQgZnJvbSBjb21taXQgYWJmMDU3NjE2 ZDhmNzNjYzA1NDA1MjAxMjFlYTNjNGNhZDVkOGNkZCkKKy0tLQorIHRvb2xzL3JwbXVuY29tcHJl c3MuYyB8IDU4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KKyAx IGZpbGUgY2hhbmdlZCwgNDAgaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25zKC0pCisKK2RpZmYg LS1naXQgYS90b29scy9ycG11bmNvbXByZXNzLmMgYi90b29scy9ycG11bmNvbXByZXNzLmMKK2lu ZGV4IDg4OTU2ZDE3My4uNjkyY2EzMjJmIDEwMDY0NAorLS0tIGEvdG9vbHMvcnBtdW5jb21wcmVz cy5jCisrKysgYi90b29scy9ycG11bmNvbXByZXNzLmMKK0BAIC00MCwxOSArNDAsMjAgQEAgc3Ry dWN0IGFyY2hpdmVUeXBlX3MgeworICAgICBjb25zdCBjaGFyICpjbWQ7CisgICAgIGNvbnN0IGNo YXIgKnVucGFjazsKKyAgICAgY29uc3QgY2hhciAqcXVpZXQ7CisrICAgIGNvbnN0IGNoYXIgKmRl c3Q7CisgICAgIGludCBzZXRUWjsKKyB9IGFyY2hpdmVUeXBlc1tdID0geworLSAgICB7IENPTVBS RVNTRURfTk9ULAkwLAkiJXtfX2NhdH0iICwJIiIsCQkiIiwgMCB9LAorLSAgICB7IENPTVBSRVNT RURfT1RIRVIsCTAsCSIle19fZ3ppcH0iLAkiLWRjIiwJCSIiLCAwIH0sCistICAgIHsgQ09NUFJF U1NFRF9CWklQMiwJMCwJIiV7X19iemlwMn0iLAkiLWRjIiwJCSIiLCAwIH0sCistICAgIHsgQ09N UFJFU1NFRF9aSVAsCTEsCSIle19fdW56aXB9IiwJIiIsCQkiLXFxIiwgMSB9LAorLSAgICB7IENP TVBSRVNTRURfTFpNQSwJMCwJIiV7X194en0iLAkiLWRjIiwJCSIiLCAwIH0sCistICAgIHsgQ09N UFJFU1NFRF9YWiwJMCwJIiV7X194en0iLAkiLWRjIiwJCSIiLCAwIH0sCistICAgIHsgQ09NUFJF U1NFRF9MWklQLAkwLAkiJXtfX2x6aXB9IiwJIi1kYyIsCQkiIiwgMCB9LAorLSAgICB7IENPTVBS RVNTRURfTFJaSVAsCTAsCSIle19fbHJ6aXB9IiwJIi1kcW8tIiwJIiIsIDAgfSwKKy0gICAgeyBD T01QUkVTU0VEXzdaSVAsCTEsCSIle19fN3ppcH0iLAkieCIsCQkiIiwgMCB9LAorLSAgICB7IENP TVBSRVNTRURfWlNURCwJMCwJIiV7X196c3RkfSIsCSItZGMiLAkJIiIsIDAgfSwKKy0gICAgeyBD T01QUkVTU0VEX0dFTSwJMSwJIiV7X19nZW19IiwJInVucGFjayIsCSIiLCAwIH0sCisrICAgIHsg Q09NUFJFU1NFRF9OT1QsCTAsCSIle19fY2F0fSIgLAkiIiwJCSIiLCAiIiwgMCB9LAorKyAgICB7 IENPTVBSRVNTRURfT1RIRVIsCTAsCSIle19fZ3ppcH0iLAkiLWRjIiwJCSIiLCAiIiwgMCB9LAor KyAgICB7IENPTVBSRVNTRURfQlpJUDIsCTAsCSIle19fYnppcDJ9IiwJIi1kYyIsCQkiIiwgIiIs IDAgfSwKKysgICAgeyBDT01QUkVTU0VEX1pJUCwJMSwJIiV7X191bnppcH0iLAkiIiwJCSItcXEi LCAiLWQiLCAxIH0sCisrICAgIHsgQ09NUFJFU1NFRF9MWk1BLAkwLAkiJXtfX3h6fSIsCSItZGMi LAkJIiIsICIiLCAwIH0sCisrICAgIHsgQ09NUFJFU1NFRF9YWiwJMCwJIiV7X194en0iLAkiLWRj IiwJCSIiLCAiIiwgMCB9LAorKyAgICB7IENPTVBSRVNTRURfTFpJUCwJMCwJIiV7X19semlwfSIs CSItZGMiLAkJIiIsICIiLCAwIH0sCisrICAgIHsgQ09NUFJFU1NFRF9MUlpJUCwJMCwJIiV7X19s cnppcH0iLAkiLWRxby0iLAkiIiwgIiIsIDAgfSwKKysgICAgeyBDT01QUkVTU0VEXzdaSVAsCTEs CSIle19fN3ppcH0iLAkieCIsCQkiLWJzbzAgLWJzcDAiLCAiLW8iLCAwIH0sCisrICAgIHsgQ09N UFJFU1NFRF9aU1RELAkwLAkiJXtfX3pzdGR9IiwJIi1kYyIsCQkiIiwgIiIsIDAgfSwKKysgICAg eyBDT01QUkVTU0VEX0dFTSwJMSwJIiV7X19nZW19IiwJInVucGFjayIsCSIiLCAiLS10YXJnZXQ9 IiwgMCB9LAorICAgICB7IC0xLAkJMCwJTlVMTCwJCU5VTEwsCQlOVUxMLCAwIH0sCisgfTsKKyAK K0BAIC0xNTQsMTUgKzE1NSwzNyBAQCBzdGF0aWMgY2hhciAqZG9VbnRhcihjb25zdCBjaGFyICpm bikKKyAgICAgaWYgKChhdCA9IGdldEFyY2hpdmVyKGZuKSkgPT0gTlVMTCkKKyAJZ290byBleGl0 OworIAorKyAgICBpbnQgbmVlZHRhciA9IChhdC0+ZXh0cmFjdGFibGUgPT0gMCk7CisrCisgICAg IGlmIChkc3RwYXRoKSB7CisgCWNoYXIgKiBzciA9IHNpbmdsZVJvb3QoZm4pOworIAorLQkvKiB0 aGUgdHJpY2sgaXMgc2ltcGxlLCBpZiB0aGUgYXJjaGl2ZSBoYXMgbXVsdGlwbGUgZW50cmllcywK Ky0JICoganVzdCBleHRyYWN0IGl0IGludG8gdGhlIHNwZWNpZmllZCBkZXN0aW5hdGlvbiBwYXRo LCBvdGhlcndpc2UKKy0JICogc3RyaXAgdGhlIGZpcnN0IHBhdGggZW50cnkgYW5kIGV4dHJhY3Qg aW4gdGhlIGRlc3RpbmF0aW9uIHBhdGgKKysJLyogaWYgdGhlIGFyY2hpdmUgaGFzIG11bHRpcGxl IGVudHJpZXMsIGp1c3QgZXh0cmFjdCBpdCBpbnRvIHRoZQorKwkgKiBzcGVjaWZpZWQgZGVzdGlu YXRpb24gcGF0aCwgb3RoZXJ3aXNlIGFsc28gc3RyaXAgdGhlIGZpcnN0IHBhdGgKKysJICogZW50 cnkKKyAJICovCistCXJhc3ByaW50ZigmbWtkaXIsICJta2RpciAnJXMnIDsgIiwgZHN0cGF0aCk7 CistCXJhc3ByaW50Zigmc3RyaXBjZCwgIiAtQyAnJXMnICVzIiwgZHN0cGF0aCwgc3IgPyAiLS1z dHJpcC1jb21wb25lbnRzPTEiIDogIiIpOworKwlpZiAobmVlZHRhcikgeworKwkgICAgcmFzcHJp bnRmKCZta2RpciwgIm1rZGlyIC1wICclcycgOyAiLCBkc3RwYXRoKTsKKysJICAgIHJhc3ByaW50 Zigmc3RyaXBjZCwgIiAtQyAnJXMnICVzIiwgZHN0cGF0aCwgc3IgPyAiLS1zdHJpcC1jb21wb25l bnRzPTEiIDogIiIpOworKwl9IGVsc2UgeworKwkgICAgaWYgKHNyKSB7CisrCQlyYXNwcmludGYo Jm1rZGlyLCAibWtkaXIgLXAgJyVzJyA7IHRtcD1gbWt0ZW1wIC1kIC1wJyVzJ2AgOyAiLAorKwkJ CSAgZHN0cGF0aCwgZHN0cGF0aCk7CisrCQljaGFyICogbW92ZXVwOworKwkJLyogRXh0cmFjdCBp bnRvIHRlbXAgZGlyZWN0b3J5IHRvIGF2b2lkIGNvbGxpc2lvbnMgKi8KKysJCS8qIHRoZW4gbW92 ZSBmaWxlcyBpbiB0b3AgZGlyIHR3byBsZXZlbHMgdXAgKi8KKysJCXJhc3ByaW50ZigKKysJCSAg ICAmbW92ZXVwLAorKwkJICAgICIgJiYgIgorKwkJICAgICIoc2hvcHQgLXMgZG90Z2xvYjsgbXYg XCIkdG1wXCIvJyVzJy8qICclcycpICYmICIKKysJCSAgICAicm1kaXIgXCIkdG1wXCIvJyVzJyBc IiR0bXBcIiAiLCBzciwgZHN0cGF0aCwgc3IpOworKwkJcmFzcHJpbnRmKCZzdHJpcGNkLCAiJXNc IiR0bXBcIiAlcyIsIGF0LT5kZXN0LCBtb3ZldXApOworKwkJZnJlZShtb3ZldXApOworKwkgICAg fSBlbHNlIHsKKysJCXJhc3ByaW50ZigmbWtkaXIsICJta2RpciAtcCAnJXMnIDsgIiwgZHN0cGF0 aCk7CisrCQlyYXNwcmludGYoJnN0cmlwY2QsICIlcyclcyciLCBhdC0+ZGVzdCwgZHN0cGF0aCk7 CisrCSAgICB9CisrCX0KKyAJZnJlZShzcik7CisgICAgIH0gZWxzZSB7CisgCW1rZGlyID0geHN0 cmR1cCgiIik7CitAQCAtMTcxLDcgKzE5NCw2IEBAIHN0YXRpYyBjaGFyICpkb1VudGFyKGNvbnN0 IGNoYXIgKmZuKQorICAgICB0YXIgPSBycG1HZXRQYXRoKCIle19fdGFyfSIsIE5VTEwpOworICAg ICBpZiAoYXQtPmNvbXByZXNzZWQgIT0gQ09NUFJFU1NFRF9OT1QpIHsKKyAJY2hhciAqemlwcGVy ID0gTlVMTDsKKy0JaW50IG5lZWR0YXIgPSAoYXQtPmV4dHJhY3RhYmxlID09IDApOworIAorIAl6 aXBwZXIgPSBycG1FeHBhbmQoYXQtPnNldFRaID8gIlRaPVVUQyAiIDogIiIsCisgCQkJICAgYXQt PmNtZCwgIiAiLCBhdC0+dW5wYWNrLCAiICIsCitAQCAtMTk2LDcgKzIxOCw3IEBAIHN0YXRpYyBj aGFyICpkb1VudGFyKGNvbnN0IGNoYXIgKmZuKQorIAkgICAgZnJlZShnZW0pOworIAkgICAgZnJl ZSh0bXApOworIAl9IGVsc2UgeworLQkgICAgcmFzcHJpbnRmKCZidWYsICIlcyAnJXMnIiwgemlw cGVyLCBmbik7CisrCSAgICByYXNwcmludGYoJmJ1ZiwgIiVzJXMgJyVzJyAlcyIsIG1rZGlyLCB6 aXBwZXIsIGZuLCBzdHJpcGNkKTsKKyAJfQorIAlmcmVlKHppcHBlcik7CisgICAgIH0gZWxzZSB7 CistLSAKKzIuNTQuMAorCisKK0Zyb20gMTI3ZDRhMjk0NzAwNTY4OGU2NDViOWU5NTQ1YjE3OGVm ZDVjMGU2YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFBhbnUgTWF0aWxhaW5lbiA8 cG1hdGlsYWlAcmVkaGF0LmNvbT4KK0RhdGU6IE1vbiwgMiBTZXAgMjAyNCAxMDo1MTo1NyArMDMw MAorU3ViamVjdDogW1BBVENIIDA4LzE0XSBGaXggcnBtdW5jb21wcmVzcyBnb2luZyBpbnRlcmFj dGl2ZSBvbiByZS1leHRyYWN0aW9uIG9mCisgemlwIC8gN3ppcCBhcmNoaXZlcworCitUZXN0aW5n IHRoaXMgaXMgYSBQSVRBIGNvbXBhcmVkIHRvIHRoZSBpc3N1ZSBpdHNlbGY6IHdlIGNhbid0IHVz ZSB0aGUKK2V4aXN0aW5nIC1DIHRlc3RzIGJlY2F1c2UgdGhhdCBmYWlscyBkdWUgdG8gbXYsIGFu ZCB0byBhdm9pZCAtQyB3ZQorbmVlZCB0byBjb250cm9sIHdoZXJlIGl0IHJ1bnMsIGFuZCB0byBk byB0aGF0IHdlIG5lZWQgLS1jaGRpciB3aGljaAorY2F1c2VzIGV4dHJhIHdhcm5pbmdzIGZyb20g YnJhcCBzbyB3ZSBuZWVkIHRvIGlnbm9yZSBzdGRlcnIgd2hpY2gKK3dlIHdvdWxkIG5vdCB3YW50 IHRvIGRvIGhlcmUsIHJlYWxseS4KKworRml4ZXM6ICMyNzc5CisoY2hlcnJ5IHBpY2tlZCBmcm9t IGNvbW1pdCBmYTNlYzdlM2Q3M2E5MzkxMWJiOGQzZDFhYzg3YzJkNjRlZWRhNjgwKQorLS0tCisg dG9vbHMvcnBtdW5jb21wcmVzcy5jIHwgNCArKy0tCisgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0 aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3Rvb2xzL3JwbXVuY29tcHJl c3MuYyBiL3Rvb2xzL3JwbXVuY29tcHJlc3MuYworaW5kZXggNjkyY2EzMjJmLi4zMGJkNzRhMmEg MTAwNjQ0CistLS0gYS90b29scy9ycG11bmNvbXByZXNzLmMKKysrKyBiL3Rvb2xzL3JwbXVuY29t cHJlc3MuYworQEAgLTQ2LDEyICs0NiwxMiBAQCBzdHJ1Y3QgYXJjaGl2ZVR5cGVfcyB7CisgICAg IHsgQ09NUFJFU1NFRF9OT1QsCTAsCSIle19fY2F0fSIgLAkiIiwJCSIiLCAiIiwgMCB9LAorICAg ICB7IENPTVBSRVNTRURfT1RIRVIsCTAsCSIle19fZ3ppcH0iLAkiLWRjIiwJCSIiLCAiIiwgMCB9 LAorICAgICB7IENPTVBSRVNTRURfQlpJUDIsCTAsCSIle19fYnppcDJ9IiwJIi1kYyIsCQkiIiwg IiIsIDAgfSwKKy0gICAgeyBDT01QUkVTU0VEX1pJUCwJMSwJIiV7X191bnppcH0iLAkiIiwJCSIt cXEiLCAiLWQiLCAxIH0sCisrICAgIHsgQ09NUFJFU1NFRF9aSVAsCTEsCSIle19fdW56aXB9IiwJ Ii11IiwJCSItcXEiLCAiLWQiLCAxIH0sCisgICAgIHsgQ09NUFJFU1NFRF9MWk1BLAkwLAkiJXtf X3h6fSIsCSItZGMiLAkJIiIsICIiLCAwIH0sCisgICAgIHsgQ09NUFJFU1NFRF9YWiwJMCwJIiV7 X194en0iLAkiLWRjIiwJCSIiLCAiIiwgMCB9LAorICAgICB7IENPTVBSRVNTRURfTFpJUCwJMCwJ IiV7X19semlwfSIsCSItZGMiLAkJIiIsICIiLCAwIH0sCisgICAgIHsgQ09NUFJFU1NFRF9MUlpJ UCwJMCwJIiV7X19scnppcH0iLAkiLWRxby0iLAkiIiwgIiIsIDAgfSwKKy0gICAgeyBDT01QUkVT U0VEXzdaSVAsCTEsCSIle19fN3ppcH0iLAkieCIsCQkiLWJzbzAgLWJzcDAiLCAiLW8iLCAwIH0s CisrICAgIHsgQ09NUFJFU1NFRF83WklQLAkxLAkiJXtfXzd6aXB9IiwJInggLXkiLAkJIi1ic28w IC1ic3AwIiwgIi1vIiwgMCB9LAorICAgICB7IENPTVBSRVNTRURfWlNURCwJMCwJIiV7X196c3Rk fSIsCSItZGMiLAkJIiIsICIiLCAwIH0sCisgICAgIHsgQ09NUFJFU1NFRF9HRU0sCTEsCSIle19f Z2VtfSIsCSJ1bnBhY2siLAkiIiwgIi0tdGFyZ2V0PSIsIDAgfSwKKyAgICAgeyAtMSwJCTAsCU5V TEwsCQlOVUxMLAkJTlVMTCwgMCB9LAorLS0gCisyLjU0LjAKKworCitGcm9tIGIyOGQxYzRiOGNh ZmM0NTQ5OGI5M2EzMjRjYjhkZDUyYWIyYTc1M2IgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitG cm9tOiBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+CitEYXRlOiBUaHUsIDMg T2N0IDIwMjQgMTI6NTE6MDUgKzAzMDAKK1N1YmplY3Q6IFtQQVRDSCAwOS8xNF0gRml4IHVwIHJw bXVuY29tcHJlc3Mgbm90IGJlaW5nIGNvbXBpbGVkIGFzIEMrKworCitUaGlzIG9uZSBsb25lIHNv dXJjZSBnb3Qgb3Zlcmxvb2tlZCBpbiB0aGUgaW5pdGlhbCBDKysgZW5hYmxlbWVudAoraW4gY29t bWl0IDM3Y2RjYzI5MjY5ZWI1Y2Q2MDNjNjliZTA3ZjgzZjExM2NlNDc5Y2QuIEMrKyBkb2Vzbid0 IGxpa2UKK2p1bXBpbmcgb3ZlciB2YXJpYWJsZSBkZWNsYXJhdGlvbnMsIHNvIGp1c3QgbW92ZSB0 aGUgZGVjbGFyYXRpb25zCitlYXJseSB0byBtaW5pbWFsbHkgZml4IHRoZSBidWlsZC4KKworTmlj ZWx5IGdvZXMgdG8gc2hvdyB0aGUgZGFuZ2VyIG9mIHN1Y2ggaGFja3MgLSB5b3UgY2FuIGFsd2F5 cyBtaXNzCitzb21ldGhpbmcuIE9uIHRoZSBsaWJyYXJ5IHNpZGUgdGhpbmdzIGFyZSBsaWtlbHkg dG8gYmxvdyB1cCBpbgorbGlua2FnZSBidXQgeW91IG5ldmVyIGtub3cgcmVhbGx5LgorCisoYmFj a3BvcnRlZCBmcm9tIGNvbW1pdCA4MjYzMzk1MThhNWVlNDM0OThhYjBmZTA0N2E4NzU0MGE5ODAy MzJlKQorLS0tCisgdG9vbHMvcnBtdW5jb21wcmVzcy5jIHwgNiArKysrLS0KKyAxIGZpbGUgY2hh bmdlZCwgNCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvdG9v bHMvcnBtdW5jb21wcmVzcy5jIGIvdG9vbHMvcnBtdW5jb21wcmVzcy5jCitpbmRleCAzMGJkNzRh MmEuLjkzMmFlM2EzZCAxMDA2NDQKKy0tLSBhL3Rvb2xzL3JwbXVuY29tcHJlc3MuYworKysrIGIv dG9vbHMvcnBtdW5jb21wcmVzcy5jCitAQCAtMTAxLDYgKzEwMSw3IEBAIHN0YXRpYyBjaGFyICog c2luZ2xlUm9vdChjb25zdCBjaGFyICpwYXRoKQorIAlzdHJ1Y3QgYXJjaGl2ZV9lbnRyeSAqZW50 cnk7CisgCWludCByLCByZXQgPSAtMSwgcm9vdExlbjsKKyAJY2hhciAqcm9vdE5hbWUgPSBOVUxM OworKwljaGFyICpzZXAgPSBOVUxMOworIAorIAlhID0gYXJjaGl2ZV9yZWFkX25ldygpOworIAlh cmNoaXZlX3JlYWRfc3VwcG9ydF9maWx0ZXJfYWxsKGEpOworQEAgLTExMyw3ICsxMTQsNyBAQCBz dGF0aWMgY2hhciAqIHNpbmdsZVJvb3QoY29uc3QgY2hhciAqcGF0aCkKKyAJICAgIGdvdG8gYWZy ZWU7CisgCX0KKyAJcm9vdE5hbWUgPSB4c3RyZHVwKGFyY2hpdmVfZW50cnlfcGF0aG5hbWUoZW50 cnkpKTsKKy0JY2hhciAqc2VwID0gc3RyY2hyKHJvb3ROYW1lLCAnLycpOworKwlzZXAgPSBzdHJj aHIocm9vdE5hbWUsICcvJyk7CisgCWlmIChzZXAgPT0gTlVMTCkgeworIAkgICAgLyogTm8gZGly ZWN0b3JpZXMgaW4gdGhlIHBhdGhuYW1lICovCisgCSAgICByZXQgPSAwOworQEAgLTE1MSwxMSAr MTUyLDEyIEBAIHN0YXRpYyBjaGFyICpkb1VudGFyKGNvbnN0IGNoYXIgKmZuKQorICAgICBjb25z dCBjaGFyICp0YXJvcHRzID0gdmVyYm9zZSA/ICIteHZ2b2YiIDogIi14b2YiOworICAgICBjaGFy ICpta2RpciA9IE5VTEw7CisgICAgIGNoYXIgKnN0cmlwY2QgPSBOVUxMOworKyAgICBpbnQgbmVl ZHRhciA9IDA7CisgCisgICAgIGlmICgoYXQgPSBnZXRBcmNoaXZlcihmbikpID09IE5VTEwpCisg CWdvdG8gZXhpdDsKKyAKKy0gICAgaW50IG5lZWR0YXIgPSAoYXQtPmV4dHJhY3RhYmxlID09IDAp OworKyAgICBuZWVkdGFyID0gKGF0LT5leHRyYWN0YWJsZSA9PSAwKTsKKyAKKyAgICAgaWYgKGRz dHBhdGgpIHsKKyAJY2hhciAqIHNyID0gc2luZ2xlUm9vdChmbik7CistLSAKKzIuNTQuMAorCisK K0Zyb20gMDk4OGJiNTZhYTg2YzNmYjA3MTllNDU5MTA2MjEwNjg4MzBmOTE2YiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1pY2hhbCBEb21vbmtvcyA8bWRvbW9ua29AcmVkaGF0LmNv bT4KK0RhdGU6IFR1ZSwgOSBKdW4gMjAyNiAxNTo1NzowOCArMDIwMAorU3ViamVjdDogW1BBVENI IDEwLzE0XSBSZWZhY3RvciBzaW5nbGVSb290KCkKKworTG9jYXRlIHRoZSBzbGFzaCBmaXJzdCBp biB0aGUgcmV0dXJuZWQgY29uc3Qgc3RyaW5nIGFuZCBvbmx5IGR1cGxpY2F0ZQoraXQgd2hlbiBh Y3R1YWxseSBuZWVkZWQuIFRoaXMgd2lsbCBzYXZlIHVzIGFuIGV4dHJhIHN0cmluZyBjb3B5IGlu IHRoZQorbmV4dCBjb21taXRzLgorCitObyBmdW5jdGlvbmFsIGNoYW5nZS4KKworKGNoZXJyeSBw aWNrZWQgZnJvbSBjb21taXQgMjQ3NDRjNTlkMzU5Y2M1MWZjNjQ0ZGRmMjcwN2M0ZWYxYTYzOWNm NikKKy0tLQorIHRvb2xzL3JwbXVuY29tcHJlc3MuYyB8IDE4ICsrKysrKysrKysrKy0tLS0tLQor IDEgZmlsZSBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQorCitkaWZm IC0tZ2l0IGEvdG9vbHMvcnBtdW5jb21wcmVzcy5jIGIvdG9vbHMvcnBtdW5jb21wcmVzcy5jCitp bmRleCA5MzJhZTNhM2QuLjY4ZDE0ODFmNiAxMDA2NDQKKy0tLSBhL3Rvb2xzL3JwbXVuY29tcHJl c3MuYworKysrIGIvdG9vbHMvcnBtdW5jb21wcmVzcy5jCitAQCAtMTAwLDggKzEwMCw5IEBAIHN0 YXRpYyBjaGFyICogc2luZ2xlUm9vdChjb25zdCBjaGFyICpwYXRoKQorIAlzdHJ1Y3QgYXJjaGl2 ZSAqYTsKKyAJc3RydWN0IGFyY2hpdmVfZW50cnkgKmVudHJ5OworIAlpbnQgciwgcmV0ID0gLTEs IHJvb3RMZW47CisrCWNvbnN0IGNoYXIgKnAgPSBOVUxMOworKwljb25zdCBjaGFyICpzZXAgPSBO VUxMOworIAljaGFyICpyb290TmFtZSA9IE5VTEw7CistCWNoYXIgKnNlcCA9IE5VTEw7CisgCisg CWEgPSBhcmNoaXZlX3JlYWRfbmV3KCk7CisgCWFyY2hpdmVfcmVhZF9zdXBwb3J0X2ZpbHRlcl9h bGwoYSk7CitAQCAtMTEzLDI0ICsxMTQsMjkgQEAgc3RhdGljIGNoYXIgKiBzaW5nbGVSb290KGNv bnN0IGNoYXIgKnBhdGgpCisgCWlmIChhcmNoaXZlX3JlYWRfbmV4dF9oZWFkZXIoYSwgJmVudHJ5 KSAhPSBBUkNISVZFX09LKSB7CisgCSAgICBnb3RvIGFmcmVlOworIAl9CistCXJvb3ROYW1lID0g eHN0cmR1cChhcmNoaXZlX2VudHJ5X3BhdGhuYW1lKGVudHJ5KSk7CistCXNlcCA9IHN0cmNocihy b290TmFtZSwgJy8nKTsKKysKKysJLyogRXh0cmFjdCB0aGUgbGVhZCBkaXJlY3RvcnkgZnJvbSB0 aGUgZmlyc3QgZW50cnkgKi8KKysJcCA9IGFyY2hpdmVfZW50cnlfcGF0aG5hbWUoZW50cnkpOwor KwlzZXAgPSBzdHJjaHIocCwgJy8nKTsKKyAJaWYgKHNlcCA9PSBOVUxMKSB7CisgCSAgICAvKiBO byBkaXJlY3RvcmllcyBpbiB0aGUgcGF0aG5hbWUgKi8KKyAJICAgIHJldCA9IDA7CisgCSAgICBn b3RvIGFmcmVlOworKwl9IGVsc2UgeworKwkgICAgcm9vdE5hbWUgPSB4c3RyZHVwKHApOworKwkg ICAgcm9vdExlbiA9IHNlcCAtIHAgKyAxOworIAl9CisgCisgCS8qIERvIGFsbCBlbnRyaWVzIGlu IHRoZSBhcmNoaXZlIHN0YXJ0IHdpdGggdGhlIHNhbWUgbGVhZCBkaXJlY3Rvcnk/ICovCistCXJv b3RMZW4gPSBzZXAgLSByb290TmFtZSArIDE7CisgCXdoaWxlIChhcmNoaXZlX3JlYWRfbmV4dF9o ZWFkZXIoYSwgJmVudHJ5KSA9PSBBUkNISVZFX09LKSB7CistCSAgICBjb25zdCBjaGFyICpwID0g YXJjaGl2ZV9lbnRyeV9wYXRobmFtZShlbnRyeSk7CisrCSAgICBwID0gYXJjaGl2ZV9lbnRyeV9w YXRobmFtZShlbnRyeSk7CisgCSAgICBpZiAoc3RybmNtcChyb290TmFtZSwgcCwgcm9vdExlbikp IHsKKyAJCXJldCA9IDA7CisgCQlnb3RvIGFmcmVlOworIAkgICAgfQorIAl9CistCSpzZXAgPSAn XDAnOworKworKwlyb290TmFtZVtyb290TGVuIC0gMV0gPSAnXDAnOworIAlyZXQgPSAxOworIAor IGFmcmVlOgorLS0gCisyLjU0LjAKKworCitGcm9tIDNhNDQxMjI4NzIwZjcxYmNjMTMyZTUzNWMz NjkxM2JlOWNjNjkzMjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBNaWNoYWwgRG9t b25rb3MgPG1kb21vbmtvQHJlZGhhdC5jb20+CitEYXRlOiBUdWUsIDkgSnVuIDIwMjYgMTY6MzQ6 MjUgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAxMS8xNF0gSW52ZXJ0IGNvbmRpdGlvbmFsIGluIHNp bmdsZVJvb3QoKQorCitObyBmdW5jdGlvbmFsIGNoYW5nZSwganVzdCBtYWtlcyB0aGUgbmV4dCBj b21taXQgc2ltcGxlci4KKworKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgOTRjZmNjZWZmNzdk NzMwZjFjMzQzMmZkYjU3MmZjMTc1YTNmZmRmNikKKy0tLQorIHRvb2xzL3JwbXVuY29tcHJlc3Mu YyB8IDggKysrKy0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0 aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvdG9vbHMvcnBtdW5jb21wcmVzcy5jIGIvdG9vbHMvcnBt dW5jb21wcmVzcy5jCitpbmRleCA2OGQxNDgxZjYuLmVlZjJmNGYwZSAxMDA2NDQKKy0tLSBhL3Rv b2xzL3JwbXVuY29tcHJlc3MuYworKysrIGIvdG9vbHMvcnBtdW5jb21wcmVzcy5jCitAQCAtMTE4 LDEzICsxMTgsMTMgQEAgc3RhdGljIGNoYXIgKiBzaW5nbGVSb290KGNvbnN0IGNoYXIgKnBhdGgp CisgCS8qIEV4dHJhY3QgdGhlIGxlYWQgZGlyZWN0b3J5IGZyb20gdGhlIGZpcnN0IGVudHJ5ICov CisgCXAgPSBhcmNoaXZlX2VudHJ5X3BhdGhuYW1lKGVudHJ5KTsKKyAJc2VwID0gc3RyY2hyKHAs ICcvJyk7CistCWlmIChzZXAgPT0gTlVMTCkgeworKwlpZiAoc2VwKSB7CisrCSAgICByb290TmFt ZSA9IHhzdHJkdXAocCk7CisrCSAgICByb290TGVuID0gc2VwIC0gcCArIDE7CisrCX0gZWxzZSB7 CisgCSAgICAvKiBObyBkaXJlY3RvcmllcyBpbiB0aGUgcGF0aG5hbWUgKi8KKyAJICAgIHJldCA9 IDA7CisgCSAgICBnb3RvIGFmcmVlOworLQl9IGVsc2UgeworLQkgICAgcm9vdE5hbWUgPSB4c3Ry ZHVwKHApOworLQkgICAgcm9vdExlbiA9IHNlcCAtIHAgKyAxOworIAl9CisgCisgCS8qIERvIGFs bCBlbnRyaWVzIGluIHRoZSBhcmNoaXZlIHN0YXJ0IHdpdGggdGhlIHNhbWUgbGVhZCBkaXJlY3Rv cnk/ICovCistLSAKKzIuNTQuMAorCisKK0Zyb20gMThjYzllMTc1YWM2ODA3MTQ4MTQ0MDk5YWNl YTIyMTQ3ZGEzZGRkZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1pY2hhbCBEb21v bmtvcyA8bWRvbW9ua29AcmVkaGF0LmNvbT4KK0RhdGU6IFR1ZSwgOSBKdW4gMjAyNiAxNjoyMDo1 OSArMDIwMAorU3ViamVjdDogW1BBVENIIDEyLzE0XSBIYW5kbGUgc2luZ2xlcm9vdCBhcmNoaXZl cyB3aXRob3V0IHRyYWlsaW5nIHNsYXNoCisKK1doaWxlIHNvbWUgdGFyIGltcGxlbWVudGF0aW9u cyAobGlrZSBHTlUgdGFyKSBkbyBpbmNsdWRlIGEgdHJhaWxpbmcKK3NsYXNoIGluIGRpcmVjdG9y eSBlbnRyaWVzLCBvdGhlcnMgKGxpa2UgcHRhcigxKSB3cml0dGVuIGluIFBlcmwpIGRvCitub3Qu IEhhbmRsZSB0aGUgbGF0dGVyIGluIHRoZSBzaW5nbGVyb290IGRldGVjdGlvbiBsb2dpYyBhcyB3 ZWxsLgorCitBZGQgYSB0ZXN0IGFyY2hpdmUgZ2VuZXJhdGVkIHdpdGggcHRhcigxKSB0aGF0IGhh cyB0aGUgZm9sbG93aW5nIGxheW91dDoKKworICAgIHNvdXJjZS1zdHJpcAorICAgIHNvdXJjZS1z dHJpcC9maWxlMgorICAgIHNvdXJjZS1zdHJpcC9maWxlMQorICAgIHNvdXJjZS1zdHJpcC9kaXIx CisgICAgc291cmNlLXN0cmlwL2RpcjEvZmlsZTMKKworRml4ZXM6ICM0MTgyCisoY2hlcnJ5IHBp Y2tlZCBmcm9tIGNvbW1pdCAyN2ZmNGQ0NTdmZjY2NjczZjY2YjA5MzMyMzRlNWVkNTY5MzI2NDFm KQorLS0tCisgdG9vbHMvcnBtdW5jb21wcmVzcy5jIHwgMyArKysKKyAxIGZpbGUgY2hhbmdlZCwg MyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS90b29scy9ycG11bmNvbXByZXNzLmMgYi90 b29scy9ycG11bmNvbXByZXNzLmMKK2luZGV4IGVlZjJmNGYwZS4uNmFmZjQ3NzU3IDEwMDY0NAor LS0tIGEvdG9vbHMvcnBtdW5jb21wcmVzcy5jCisrKysgYi90b29scy9ycG11bmNvbXByZXNzLmMK K0BAIC0xMjEsNiArMTIxLDkgQEAgc3RhdGljIGNoYXIgKiBzaW5nbGVSb290KGNvbnN0IGNoYXIg KnBhdGgpCisgCWlmIChzZXApIHsKKyAJICAgIHJvb3ROYW1lID0geHN0cmR1cChwKTsKKyAJICAg IHJvb3RMZW4gPSBzZXAgLSBwICsgMTsKKysJfSBlbHNlIGlmIChhcmNoaXZlX2VudHJ5X2ZpbGV0 eXBlKGVudHJ5KSA9PSBBRV9JRkRJUikgeworKwkgICAgcm9vdE5hbWUgPSByc3Ryc2NhdChOVUxM LCBwLCAiLyIsIE5VTEwpOworKwkgICAgcm9vdExlbiA9IHN0cmxlbihyb290TmFtZSk7CisgCX0g ZWxzZSB7CisgCSAgICAvKiBObyBkaXJlY3RvcmllcyBpbiB0aGUgcGF0aG5hbWUgKi8KKyAJICAg IHJldCA9IDA7CistLSAKKzIuNTQuMAorCisKK0Zyb20gY2NkZDQ2ZGU5OTk5NTViMjhmZjVhZTU0 YjczODEzN2E4ZTE0YThjNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1pY2hhbCBE b21vbmtvcyA8bWRvbW9ua29AcmVkaGF0LmNvbT4KK0RhdGU6IEZyaSwgMTIgSnVuIDIwMjYgMTM6 MTM6MjIgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAxMy8xNF0gUHJldmVudCBjb21tYW5kIGluamVj dGlvbiBpbiBycG11bmNvbXByZXNzKDEpCisKK1doZW4gZXh0cmFjdGluZyBhIHNpbmdsZXJvb3Qg YXJjaGl2ZSBpbiAtQyBtb2RlIHdpdGggYW4gYXJjaGl2ZXIgdGhhdAorY2FuIHVuY29tcHJlc3Mg YW5kIGV4dHJhY3QgaW4gb25lIGdvIChzdWNoIGFzIHppcCksIHdlIHdpbGwgaW5jbHVkZSB0aGUK K3RvcC1sZXZlbCBkaXJlY3RvcnkgbmFtZSB2ZXJiYXRpbSBpbiB0aGUgc2hlbGwgY29tbWFuZCB0 aGF0IGRvZXMgb3VyIG93bgordmFyaWFudCBvZiB0YXIncyAtLXN0cmlwLWNvbXBvbmVudHM9MS4g VGhpcyBhbGxvd3MgYW4gYXR0YWNrZXIgdG8gY3JhZnQKK3N1Y2ggYW4gYXJjaGl2ZSB3aGVyZSB0 aGUgdG9wLWxldmVsIGRpcmVjdG9yeSBuYW1lIGNvbnRhaW5zIGFyYml0cmFyeQorc2hlbGwgY29k ZSBlbmNsb3NlZCBpbiBzaW5nbGUgcXVvdGVzLCB3aGljaCBycG11bmNvbXByZXNzIHdpbGwgaGFw cGlseQorZXhlY3V0ZSB3aGVuIG1lcmVseSBleHRyYWN0aW5nIGl0LgorCitUaGF0IGlzIG5hc3R5 IHNpbmNlIG9uZSBkb2VzIG5vdCBleHBlY3QgYSB1dGlsaXR5IGxpa2UgcnBtdW5jb21wcmVzcyB0 bworKmV4ZWN1dGUqIGFueXRoaW5nIGZyb20gdGhlIGFyY2hpdmUgd2hlbiBleHRyYWN0aW5nIGl0 LiBUaGlzIGlzIG5vdyBldmVuCittb3JlIHJlbGV2YW50IHdpdGggY29tbWl0IGE2OThkMWI2YjE4 ZTQzMDgwNmM1NDc1NWFmNTZkNDdhYzQwMWU0MzAgd2hpY2gKK2V4cG9zZWQgcnBtdW5jb21wcmVz cyBmb3IgZ2VuZXJhbCB1c2UgYnkgaW5zdGFsbGluZyBpdCBpbnRvICRQQVRILgorCitGaXggYnkg c2ltcGx5ICpub3QqIHBhc3NpbmcgdGhlIHRvcC1sZXZlbCBkaXJlY3RvcnkgbmFtZSwgYXMgcmV0 dXJuZWQgYnkKK3NpbmdsZVJvb3QoKSwgdG8gdGhlIHNoZWxsLCBldmVyLiBMdWNraWx5LCB3ZSBk b24ndCByZWFsbHkgbmVlZCB0byBzaW5jZQord2Uga25vdyB0aGF0IHRoZSB0ZW1wIGRpcmVjdG9y eSB3aWxsIG9ubHkgaGF2ZSBhIHNpbmdsZSB0b3AtbGV2ZWwgZW50cnksCithbmQgdGhlcmVmb3Jl IGNhbiB1c2UgYSBnbG9iIHRvIGp1c3QgbGV0IHRoZSBzaGVsbCBleHBhbmQgdG8gaXQuCisKK1Ro aXMgcmVsaWVzIG9uIG91ciBzaW5nbGVyb290IGRldGVjdGlvbiBsb2dpYyAqYW5kKiB0aGUgYXJj aGl2ZXIgaGF2aW5nCithIGNvbW1vbiB1bmRlcnN0YW5kaW5nIG9mIHdoYXQgYSBzaW5nbGVyb290 IGFyY2hpdmUgaXMsIG9mIGNvdXJzZSwgd2hpY2gKK21heSBub3QgYmUgaWRlYWwuIFdoYXQgY291 bGQgdGhlb3JldGljYWxseSBoYXBwZW4gaXMgdGhhdCB3ZSBjb25zaWRlciBhbgorYXJjaGl2ZSBz aW5nbGVyb290IGJ1dCB0aGUgYXJjaGl2ZXIsIGZvciBzb21lIHJlYXNvbiwgZXh0cmFjdHMgbXVs dGlwbGUKK3RvcC1sZXZlbCBlbnRyaWVzLCBvciB0aGUgc2luZ2xlIGVudHJ5IHdpbGwgaGF2ZSBh IGRpZmZlcmVudCBuYW1lLiBUaGlzCitjb3VsZCByZXN1bHQgaW4gdGhlIGRlc3RpbmF0aW9uIGRp cmVjdG9yeSB0byBoYXZlIGFuIHVuZXhwZWN0ZWQgbGF5b3V0CitvbmNlIHdlIGRvIHRoZSBtb3Zl LiBUaGF0IHNhaWQsIHRoaXMgaXMgYWxsIGp1c3Qgc3BlY3VsYXRpb24sIGFuZCBldmVuCitpZiB0 cnVlLCBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgc2VjdXJpdHkgZmxhdyB1bmxpa2UgdGhlIG9uZSBi ZWluZyBmaXhlZC4KKworQW4gYWx0ZXJuYXRpdmUgZml4IHdvdWxkIGJlIHNhbml0aXppbmcgdGhl IGRpcmVjdG9yeSBuYW1lIGJlZm9yZSBwYXNzaW5nCitpdCB0byB0aGUgc2hlbGwgKGxpa2UgdGhl IHN1Z2dlc3RlZCBwYXRjaCBpbiBDVkUtMjAyNi00NDYwNCkgYnV0IHRoYXQgaXMKK3RvbyBicml0 dGxlLCBlcnJvciBwcm9uZSBhbmQganVzdCB1bm5lY2Vzc2FyaWx5IGNvbXBsaWNhdGVkLgorCitJ ZGVhbGx5LCB3ZSB3b3VsZCBqdXN0IG5vdCBzaGVsbCBvdXQgYXQgYWxsLCBhbmQgdXNlIHRoZSBs aWJhcmNoaXZlIEFQSQordG8gZG8gdGhlIHdob2xlIGRhbmNlLCB3aGljaCB3ZSBtYXkgaW4gdGhl IGZ1dHVyZSAoc2VlICM0MjM2KS4gQnV0IGZvcgorbm93LCB0aGlzIG1pbmltYWwgZml4IHNob3Vs ZCBkbyB0aGUgam9iLgorCitBZGQgYWxzbyBhIHRlc3QgYXJjaGl2ZSBjcmVhdGVkIHdpdGggdGhl IGZvbGxvd2luZyBQeXRob24gMyBjb2RlIGFkYXB0ZWQKK2Zyb20gdGhlIENWRToKKworICAgIGlt cG9ydCB6aXBmaWxlCisgICAgbmFtZSA9ICJldmlsJyQodG91Y2ggYmVlbmhlcmUpJyIKKyAgICB3 aXRoIHppcGZpbGUuWmlwRmlsZSgic291cmNlLXNpbmdsZXJvb3QtZXZpbC56aXAiLCAidyIpIGFz IHo6CisgICAgICAgIHoud3JpdGVzdHIoZiJ7bmFtZX0vUkVBRE1FLnR4dCIsICJ4IikKKworRml4 ZXM6IENWRS0yMDI2LTQ0NjA0CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAwNjkzY2U3Njc0 YzQyM2YzODJiMTQ4NzYzYTI5ZjdmYWEwYWFjYjQxKQorLS0tCisgdG9vbHMvcnBtdW5jb21wcmVz cy5jIHwgNCArKy0tCisgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlv bnMoLSkKKworZGlmZiAtLWdpdCBhL3Rvb2xzL3JwbXVuY29tcHJlc3MuYyBiL3Rvb2xzL3JwbXVu Y29tcHJlc3MuYworaW5kZXggNmFmZjQ3NzU3Li4zNjUyY2M2YmIgMTAwNjQ0CistLS0gYS90b29s cy9ycG11bmNvbXByZXNzLmMKKysrKyBiL3Rvb2xzL3JwbXVuY29tcHJlc3MuYworQEAgLTE4OCw4 ICsxODgsOCBAQCBzdGF0aWMgY2hhciAqZG9VbnRhcihjb25zdCBjaGFyICpmbikKKyAJCXJhc3By aW50ZigKKyAJCSAgICAmbW92ZXVwLAorIAkJICAgICIgJiYgIgorLQkJICAgICIoc2hvcHQgLXMg ZG90Z2xvYjsgbXYgXCIkdG1wXCIvJyVzJy8qICclcycpICYmICIKKy0JCSAgICAicm1kaXIgXCIk dG1wXCIvJyVzJyBcIiR0bXBcIiAiLCBzciwgZHN0cGF0aCwgc3IpOworKwkJICAgICIoc2hvcHQg LXMgZG90Z2xvYjsgbXYgXCIkdG1wXCIvKi8qICclcycpICYmICIKKysJCSAgICAicm1kaXIgXCIk dG1wXCIvKiBcIiR0bXBcIiAiLCBkc3RwYXRoKTsKKyAJCXJhc3ByaW50Zigmc3RyaXBjZCwgIiVz XCIkdG1wXCIgJXMiLCBhdC0+ZGVzdCwgbW92ZXVwKTsKKyAJCWZyZWUobW92ZXVwKTsKKyAJICAg IH0gZWxzZSB7CistLSAKKzIuNTQuMAorCisKK0Zyb20gNmVlMjE4NmE4YjI0NmQ3Y2Q4ZWZmZjZj NDQ5YzUwOTY2OTIwNjc2MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1pY2hhbCBE b21vbmtvcyA8bWRvbW9ua29AcmVkaGF0LmNvbT4KK0RhdGU6IEZyaSwgMTIgSnVuIDIwMjYgMTM6 MTY6MzkgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAxNC8xNF0gUmV2ZXJ0ICJSZXR1cm4gdW5pcXVl IHRvcCBkaXJlY3RvcnkgaWZmIGl0IGV4aXN0cyIKKworTm93IHRoYXQgd2Ugbm8gbG9uZ2VyIG5l ZWQgdGhlIHNpbmdsZXJvb3QgbmFtZSBpbiB0aGUgY2FsbGVyLCBnbyBiYWNrIHRvCitqdXN0IHJl dHVybmluZyBhbiBpbnRlZ2VyLiBUaGlzIGFsc28gcHJldmVudHMgYW4gYWNjaWRlbnRhbCBpbmNs dXNpb24gb2YKK3RoZSBuYW1lIGluIGEgc2hlbGwgY29tbWFuZCBpbiB0aGUgZnV0dXJlIChzZWUg cHJldmlvdXMgY29tbWl0KS4KKworQWRqdXN0IGFuZCBzaW1wbGlmeSB0aGUgc2luZ2xlUm9vdCgp IGRlc2NyaXB0aW9uIGNvbW1lbnQgd2hpbGUgYXQgaXQuCisKK1RoaXMgcmV2ZXJ0cyBjb21taXQg N2I0NmEwZDBjMzM2ZWU4NjU4MjFkZTUzY2RjZmZmMDk3NTI2NjllZC4KKworKGNoZXJyeSBwaWNr ZWQgZnJvbSBjb21taXQgM2E5MTQ1Y2RkZmY0N2U2MzI0YTlmZmYzYzlhNmFlMDM2ZDdhN2RiNSkK Ky0tLQorIHRvb2xzL3JwbXVuY29tcHJlc3MuYyB8IDE4ICsrKysrKystLS0tLS0tLS0tLQorIDEg ZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQorCitkaWZmIC0t Z2l0IGEvdG9vbHMvcnBtdW5jb21wcmVzcy5jIGIvdG9vbHMvcnBtdW5jb21wcmVzcy5jCitpbmRl eCAzNjUyY2M2YmIuLjcyMzNlNGJiOSAxMDA2NDQKKy0tLSBhL3Rvb2xzL3JwbXVuY29tcHJlc3Mu YworKysrIGIvdG9vbHMvcnBtdW5jb21wcmVzcy5jCitAQCAtOTEsMTEgKzkxLDExIEBAIHN0YXRp YyBjaGFyICpkb1VuY29tcHJlc3MoY29uc3QgY2hhciAqZm4pCisgICogRGV0ZWN0IGlmIGFuIGFy Y2hpdmUgaGFzIGEgc2luZ2xlIHRvcCBsZXZlbCBlbnRyeSwgYW5kIGl0J3MgYSBkaXJlY3Rvcnku CisgICoKKyAgKiBAcGFyYW0gcGF0aAlwYXRoIG9mIHRoZSBhcmNoaXZlCistICogQHJldHVybglv bmx5IHRvcCBsZXZlbCBkaXJlY3RvcnkgKGlmIGFueSksCistICogCQlOVUxMIGlmIGl0IGNvbnRh aW5zIG11bHRpcGxlIHRvcCBsZXZlbCBlbnRyaWVzIG9yIGEgc2luZ2xlIGZpbGUKKy0gKiAJCW9y IG9uIGFyY2hpdmUgZXJyb3IKKysgKiBAcmV0dXJuCTEgaWYgdGhlIGFyY2hpdmUgaGFzIGEgc2lu Z2xlIHRvcCBsZXZlbCwgZGlyZWN0b3J5IGVudHJ5LAorKyAqIAkJMCBvdGhlcndpc2UsCisrICog CQktMSBvbiBhcmNoaXZlIGVycm9yCisgICovCistc3RhdGljIGNoYXIgKiBzaW5nbGVSb290KGNv bnN0IGNoYXIgKnBhdGgpCisrc3RhdGljIGludCBzaW5nbGVSb290KGNvbnN0IGNoYXIgKnBhdGgp CisgeworIAlzdHJ1Y3QgYXJjaGl2ZSAqYTsKKyAJc3RydWN0IGFyY2hpdmVfZW50cnkgKmVudHJ5 OworQEAgLTEzOSwxOCArMTM5LDE1IEBAIHN0YXRpYyBjaGFyICogc2luZ2xlUm9vdChjb25zdCBj aGFyICpwYXRoKQorIAkgICAgfQorIAl9CisgCistCXJvb3ROYW1lW3Jvb3RMZW4gLSAxXSA9ICdc MCc7CisgCXJldCA9IDE7CisgCisgYWZyZWU6CisrCWZyZWUocm9vdE5hbWUpOworIAlyID0gYXJj aGl2ZV9yZWFkX2ZyZWUoYSk7CisgCWlmIChyICE9IEFSQ0hJVkVfT0spCisgCSAgICByZXQgPSAt MTsKKyAKKy0JaWYgKHJldCAhPSAxKQorLQkgICAgcm9vdE5hbWUgPSBfZnJlZShyb290TmFtZSk7 CistCistCXJldHVybiByb290TmFtZTsKKysJcmV0dXJuIHJldDsKKyB9CisgCisgc3RhdGljIGNo YXIgKmRvVW50YXIoY29uc3QgY2hhciAqZm4pCitAQCAtMTY5LDcgKzE2Niw3IEBAIHN0YXRpYyBj aGFyICpkb1VudGFyKGNvbnN0IGNoYXIgKmZuKQorICAgICBuZWVkdGFyID0gKGF0LT5leHRyYWN0 YWJsZSA9PSAwKTsKKyAKKyAgICAgaWYgKGRzdHBhdGgpIHsKKy0JY2hhciAqIHNyID0gc2luZ2xl Um9vdChmbik7CisrCWludCBzciA9IHNpbmdsZVJvb3QoZm4pOworIAorIAkvKiBpZiB0aGUgYXJj aGl2ZSBoYXMgbXVsdGlwbGUgZW50cmllcywganVzdCBleHRyYWN0IGl0IGludG8gdGhlCisgCSAq IHNwZWNpZmllZCBkZXN0aW5hdGlvbiBwYXRoLCBvdGhlcndpc2UgYWxzbyBzdHJpcCB0aGUgZmly c3QgcGF0aAorQEAgLTE5Nyw3ICsxOTQsNiBAQCBzdGF0aWMgY2hhciAqZG9VbnRhcihjb25zdCBj aGFyICpmbikKKyAJCXJhc3ByaW50Zigmc3RyaXBjZCwgIiVzJyVzJyIsIGF0LT5kZXN0LCBkc3Rw YXRoKTsKKyAJICAgIH0KKyAJfQorLQlmcmVlKHNyKTsKKyAgICAgfSBlbHNlIHsKKyAJbWtkaXIg PSB4c3RyZHVwKCIiKTsKKyAJc3RyaXBjZCA9IHhzdHJkdXAoIiIpOworLS0gCisyLjU0LjAKKwoK ZGlmZiAtLWdpdCBhL3JwbS00LjE5LngtYWRkLXBhcmtkYi5wYXRjaCBiL3JwbS00LjE5LngtYWRk LXBhcmtkYi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZTg4YzNm Ci0tLSAvZGV2L251bGwKKysrIGIvcnBtLTQuMTkueC1hZGQtcGFya2RiLnBhdGNoCkBAIC0wLDAg KzEsNDI4IEBACitGcm9tIDE3YTcwM2ViM2RmYTdlMmRhNGY0NDFiZDIwMGQyNTQ4YWVmNjQwMjUg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBNaWNoYWwgRG9tb25rb3MgPG1kb21vbmtv QHJlZGhhdC5jb20+CitEYXRlOiBUdWUsIDIgSnVuIDIwMjYgMTA6MDI6NTMgKzAyMDAKK1N1Ympl Y3Q6IFtQQVRDSCAxLzJdIEV4dHJhY3QgY29tbW9uIGRhdGFiYXNlIHJlYnVpbGQgbG9naWMKKwor Tm8gZnVuY3Rpb25hbCBjaGFuZ2UsIGp1c3QgcHJlcGFyZXMgdGhlIGdyb3VuZCBmb3IgdGhlIG5l eHQgY29tbWl0LgorCisoYmFja3BvcnRlZCBmcm9tIGNvbW1pdCAxZGNkZGY5NWI3ZDk1NmY1ZDAy NGY2M2E1MzFlYTU4YmM0ODVlZmU1KQorLS0tCisgbGliL3JwbXRzLmMgfCA5ICsrKysrKy0tLQor IDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCisKK2RpZmYg LS1naXQgYS9saWIvcnBtdHMuYyBiL2xpYi9ycG10cy5jCitpbmRleCAyZjI5M2U3NTEuLmJjNTJh MmYyOCAxMDA2NDQKKy0tLSBhL2xpYi9ycG10cy5jCisrKysgYi9saWIvcnBtdHMuYworQEAgLTEz NywxMiArMTM3LDEwIEBAIGludCBycG10c1NldERCTW9kZShycG10cyB0cywgaW50IGRibW9kZSkK KyAgICAgcmV0dXJuIHJjOworIH0KKyAKKy0KKy1pbnQgcnBtdHNSZWJ1aWxkREIocnBtdHMgdHMp Cisrc3RhdGljIGludCByZWJ1aWxkREIocnBtdHMgdHMsIGludCByZWJ1aWxkZmxhZ3MpCisgewor ICAgICBpbnQgcmMgPSAtMTsKKyAgICAgcnBtdHhuIHR4biA9IE5VTEw7CistICAgIGludCByZWJ1 aWxkZmxhZ3MgPSAwOworIAorICAgICAvKiBDYW5ub3QgZG8gdGhpcyBvbiBhIHBvcHVsYXRlZCB0 cmFuc2FjdGlvbiBzZXQgKi8KKyAgICAgaWYgKHJwbXRzTkVsZW1lbnRzKHRzKSA+IDApCitAQCAt MTYyLDYgKzE2MCwxMSBAQCBpbnQgcnBtdHNSZWJ1aWxkREIocnBtdHMgdHMpCisgICAgIHJldHVy biByYzsKKyB9CisgCisraW50IHJwbXRzUmVidWlsZERCKHJwbXRzIHRzKQorK3sKKysgICAgcmV0 dXJuIHJlYnVpbGREQih0cywgMCk7CisrfQorKworIGludCBycG10c1ZlcmlmeURCKHJwbXRzIHRz KQorIHsKKyAgICAgaW50IHJjID0gLTE7CistLSAKKzIuNTQuMAorCisKK0Zyb20gODQ1YmUyNGE5 MTI4ZDczZDYzMDdjZWM4NjkyYzU3ODNhNzY3MWE2MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK K0Zyb206IE1pY2hhbCBEb21vbmtvcyA8bWRvbW9ua29AcmVkaGF0LmNvbT4KK0RhdGU6IFdlZCwg MyBKdW4gMjAyNiAxNDoxOTo0MSArMDIwMAorU3ViamVjdDogW1BBVENIIDIvMl0gQWRkIHN1cHBv cnQgZm9yIGRhdGFiYXNlIHBhcmtpbmcKKworUHJpb3IgdG8gaW5jbHVkaW5nIHRoZSBSUE0gZGF0 YWJhc2Ugb24gcmVhZC1vbmx5IG1lZGlhIChzdWNoIGFzIGEgYmFzZQoraW1hZ2UgaW4gcnBtLW9z dHJlZSksIGl0IHNob3VsZCB1bmRlcmdvIHNvbWUgaG91c2VrZWVwaW5nIGFuZCBjbGVhbnVwLgor QWRkIGEgbmV3ICJwYXJraW5nIiBvcGVyYXRpb24gdG8gcnBtZGIoOCkgYW5kIHRoZSBjb3JyZXNw b25kaW5nIEFQSSB0bworZG8ganVzdCB0aGF0LgorCitUaGlzIG9wZXJhdGlvbiBjb25zaXN0cyBv ZiBhIGRhdGFiYXNlIHJlYnVpbGQgY291cGxlZCB3aXRoIGFuIG9wdGlvbmFsLAorYmFja2VuZCBz cGVjaWZpYyBhY3Rpb24gdHJpZ2dlcmVkIGJ5IHBhc3NpbmcgYSBuZXcgZmxhZyBSUE1EQl9GTEFH X1BBUksKK29uIGRhdGFiYXNlIG9wZW4uIFNpbmNlIHRoZSBhY3Rpb24gbWF5IHRha2UgcGxhY2Ug b24gZGF0YWJhc2UgY2xvc2UsIGxldAordGhlIGJhY2tlbmQgcmVwb3J0IGEgZmFpbHVyZSB0byBw YXJrIHRoYXQgd2F5IGJ5IGhhbmRsaW5nIHRoZSByZXN1bHQgaW4KK3JwbWRiUmVidWlsZCgpLgor CitJbXBsZW1lbnQgc3VjaCBhbiBhY3Rpb24gaW4gdGhlIHNxbGl0ZSBiYWNrZW5kIHdoZXJlIGl0 IGFjdHVhbGx5IG1ha2VzIGEKK2RpZmZlcmVuY2U6IENvbW1pdCBhODU4OGY4ZTM5NzAyMjNmMGIy ZmNjNWQ2NzlkY2IxNzZmMmUzMTdiIGVuYWJsZWQgV0FMCittb2RlIGJ1dCBzcWxpdGUgcmVjb21t ZW5kcyB0aGF0IHRoZSBkYXRhYmFzZSBiZSBjb252ZXJ0ZWQgdG8gdGhlIGRlZmF1bHQKK0RFTEVU RSBqb3VybmFsIG1vZGUgcHJpb3IgdG8gImJ1cm5pbmciIGl0IG9udG8gcmVhZC1vbmx5IG1lZGlh IFsqXS4gTWFrZQorc3VyZSB0byBkbyB0aGUgY29udmVyc2lvbiBvbiBkYXRhYmFzZSBjbG9zZSBz aW5jZSB3ZSBtYXkgd3JpdGUgdG8gdGhlCitkYXRhYmFzZSBkdXJpbmcgdGhlIHJlYnVpbGQsIGFu ZCB0aGF0IHNob3VsZCBhbHdheXMgaGFwcGVuIGluIFdBTCBtb2RlLgorCitBcyBhIG5pY2Ugc2lk ZSBlZmZlY3Qgd2l0aCB0aGUgc3FsaXRlIGJhY2tlbmQsIHBhcmtpbmcgdGhlIGRhdGFiYXNlIHdp bGwKK2F1dG9tYXRpY2FsbHkgcmVtb3ZlIHRoZSAqLXdhbCBhbmQgKi1zaG0gZmlsZXMgZnJvbSAl X2RicGF0aCwgbWFraW5nIGl0Cit1c2FibGUgaW4gcmVwcm9kdWNpYmxlIGltYWdlcy4gSGludCBh dCB0aGF0IGluIHRoZSBtYW4gcGFnZSBidXQgbWFrZSBpdAorY2xlYXIgdGhhdCB0aGlzIGlzIG5v dCBhIGd1YXJhbnRlZSAoYnV0IHJhdGhlciBhbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWwKK29mIHNx bGl0ZSkuIE1ha2UgdXNlIG9mIHRoaXMgcHJvcGVydHkgaW4gdGhlIHRlc3QsIHRob3VnaC4KKwor QnkgcGFya2luZywgdGhlIGRhdGFiYXNlIGRvZXMgbm90IGJlY29tZSByZWFkLW9ubHksIGFuZCB0 aGUgcGFya2VkIHN0YXRlCitkb2VzIG5vdCBzdGljayB3aGVuIG9wZW5pbmcgdGhlIGRhdGFiYXNl IGZvciB3cml0aW5nIChhcyB3ZSByZS1lc3RhYmxpc2gKK1dBTCBtb2RlIGluIHN1Y2ggYSBjYXNl KS4gVGhpcyBhbGxvd3MgZm9yIHRoZSBkYXRhYmFzZSB0byBiZSBpbW1lZGlhdGVseQord3JpdGFi bGUgaW5zaWRlIGEgY29udGFpbmVyIHJ1bm5pbmcgb24gdG9wIG9mIGEgYmFzZSBpbWFnZSB0aGF0 IGluY2x1ZGVzCit0aGUgZGF0YWJhc2UsIHdpdGhvdXQgdGhlIHVzZXIgaGF2aW5nIHRvIHVucGFy ayBpdCBmaXJzdC4KKworWypdIGh0dHBzOi8vc3FsaXRlLm9yZy93YWwuaHRtbCNyZWFkX29ubHlf ZGF0YWJhc2VzCisKK0ZpeGVzOiAjMjIxOQorKGJhY2twb3J0ZWQgZnJvbSBjb21taXQgMTgyNTUx NzM5MmMxYTA0YjFmM2JjNmE4OWQzMDhmZGRhMjkyN2VkZCkKKy0tLQorIGRvY3MvbWFuL3JwbWRi LjgubWQgIHwgMTMgKysrKysrKysrKystLQorIGluY2x1ZGUvcnBtL3JwbXRzLmggIHwgIDcgKysr KysrKworIGxpYi9iYWNrZW5kL2RiaS5oICAgIHwgIDEgKworIGxpYi9iYWNrZW5kL3NxbGl0ZS5j IHwgMTcgKysrKysrKysrKysrKysrLS0KKyBsaWIvcnBtZGIuYyAgICAgICAgICB8ICA3ICsrKysr LS0KKyBsaWIvcnBtZGJfaW50ZXJuYWwuaCB8ICAxICsKKyBsaWIvcnBtdHMuYyAgICAgICAgICB8 ICA1ICsrKysrCisgcHl0aG9uL3JwbXRzLXB5LmMgICAgfCAxNSArKysrKysrKysrKysrKysKKyB0 b29scy9ycG1kYi5jICAgICAgICB8ICA2ICsrKysrKworIDkgZmlsZXMgY2hhbmdlZCwgNjYgaW5z ZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2RvY3MvbWFuL3JwbWRi LjgubWQgYi9kb2NzL21hbi9ycG1kYi44Lm1kCitpbmRleCA4YWQxY2UzYmIuLjdkMzA4Y2E5OCAx MDA2NDQKKy0tLSBhL2RvY3MvbWFuL3JwbWRiLjgubWQKKysrKyBiL2RvY3MvbWFuL3JwbWRiLjgu bWQKK0BAIC0xMiw3ICsxMiw3IEBAIHJwbWRiIC0gUlBNIERhdGFiYXNlIFRvb2wKKyBTWU5PUFNJ UworID09PT09PT09CisgCistKipycG1kYioqIHsqKlwtLWluaXRkYlx8XC0tcmVidWlsZGRiKip9 CisrKipycG1kYioqIHsqKlwtLWluaXRkYlx8XC0tcmVidWlsZGRiXHxcLS1wYXJrZGIqKn0KKyAK KyAqKnJwbWRiKiogeyoqXC0tdmVyaWZ5ZGIqKn0KKyAKK0BAIC0yMyw3ICsyMyw3IEBAIERFU0NS SVBUSU9OCisgCisgVGhlIGdlbmVyYWwgZm9ybSBvZiBhbiBycG1kYiBjb21tYW5kIGlzCisgCist KipycG0qKiB7KipcLS1pbml0ZGJcfFwtLXJlYnVpbGRkYioqfSBcWyoqLXYqKlxdIFxbKipcLS1k YnBhdGgKKysqKnJwbSoqIHsqKlwtLWluaXRkYlx8XC0tcmVidWlsZGRiXHxcLS1wYXJrZGIqKn0g XFsqKi12KipcXSBcWyoqXC0tZGJwYXRoCisgKioqRElSRUNUT1JZKlxdIFxbKipcLS1yb290ICoq KkRJUkVDVE9SWSpcXQorIAorIFVzZSAqKlwtLWluaXRkYioqIHRvIGNyZWF0ZSBhIG5ldyBkYXRh YmFzZSBpZiBvbmUgZG9lc25cJ3QgYWxyZWFkeSBleGlzdAorQEAgLTM4LDYgKzM4LDE1IEBAIGZv ciB0cmFuc2Zwb3J0aW5nIHRvIGFub3RoZXIgaG9zdCBvciBkYXRhYmFzZSB0eXBlLgorICoqXC0t aW1wb3J0ZGIqKiBpbXBvcnRzIGEgZGF0YWJhc2UgZnJvbSBhIGhlYWRlci1saXN0IGZvcm1hdCBh cyBjcmVhdGVkCisgYnkgKipcLS1leHBvcnRkYioqLgorIAorKyoqXC0tcGFya2RiKiogcGFya3Mg dGhlIGRhdGFiYXNlLiBUaGlzIHByZXBhcmVzIGFuZCBvcHRpbWl6ZXMgdGhlIGRhdGFiYXNlIGZv cgorK2luY2x1c2lvbiBvbiByZWFkLW9ubHkgbWVkaWEsIHN1Y2ggYXMgaW1tdXRhYmxlIE9TIGlt YWdlcy4gV3JpdGUgb3BlcmF0aW9ucywKKytzdWNoIGFzIFJQTSB0cmFuc2FjdGlvbnMsIHdpbGwg dW5wYXJrIHRoZSBkYXRhYmFzZSBhbmQgY29udGludWUgbm9ybWFsbHksCisrbGVhdmluZyB0aGUg ZGF0YWJhc2UgdW5wYXJrZWQgd2hlbiBmaW5pc2hlZC4gVGh1cywgdG8gdW5wYXJrIG1hbnVhbGx5 LCB1c2UKKysqKlwtLXJlYnVpbGRkYioqLiBEZXBlbmRpbmcgb24gdGhlIGJhY2tlbmQgdXNlZCwg dGhpcyBvcGVyYXRpb24gbWF5IGluY2x1ZGUgdGhlCisrcmVtb3ZhbCBvZiBhdXhpbGlhcnksIGJh Y2tlbmQtc3BlY2lmaWMgZmlsZXMgZnJvbSBkaXNrLCBzdWNoIGFzIHRoZSB3cml0ZS1haGVhZAor K2xvZyBvciBzaGFyZWQgbWVtb3J5IGluZGV4LCBhbmQgdGh1cyBmYWNpbGl0YXRlIGJpdC1mb3It Yml0IHJlcHJvZHVjaWJsZSBPUworK2ltYWdlcy4KKysKKyBTRUUgQUxTTworID09PT09PT09Cisg CitkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ycG0vcnBtdHMuaCBiL2luY2x1ZGUvcnBtL3JwbXRzLmgK K2luZGV4IDVjMTY4ODIwZi4uZDM5MGYyYWM0IDEwMDY0NAorLS0tIGEvaW5jbHVkZS9ycG0vcnBt dHMuaAorKysrIGIvaW5jbHVkZS9ycG0vcnBtdHMuaAorQEAgLTMwOCw2ICszMDgsMTMgQEAgaW50 IHJwbXRzU2V0REJNb2RlKHJwbXRzIHRzLCBpbnQgZGJtb2RlKTsKKyAgKi8KKyBpbnQgcnBtdHNS ZWJ1aWxkREIocnBtdHMgdHMpOworIAorKy8qKiBcaW5ncm91cCBycG10cworKyAqIFBhcmsgdGhl IGRhdGFiYXNlIHVzZWQgYnkgdGhlIHRyYW5zYWN0aW9uLgorKyAqIEBwYXJhbSB0cwkJdHJhbnNh Y3Rpb24gc2V0CisrICogQHJldHVybgkJMCBvbiBzdWNjZXNzCisrICovCisraW50IHJwbXRzUGFy a0RCKHJwbXRzIHRzKTsKKysKKyAvKiogXGluZ3JvdXAgcnBtdHMKKyAgKiBWZXJpZnkgdGhlIGRh dGFiYXNlIHVzZWQgYnkgdGhlIHRyYW5zYWN0aW9uLgorICAqIEBwYXJhbSB0cwkJdHJhbnNhY3Rp b24gc2V0CitkaWZmIC0tZ2l0IGEvbGliL2JhY2tlbmQvZGJpLmggYi9saWIvYmFja2VuZC9kYmku aAoraW5kZXggMDBhZGEwMzhlLi42ZTYyMjZmZjcgMTAwNjQ0CistLS0gYS9saWIvYmFja2VuZC9k YmkuaAorKysrIGIvbGliL2JhY2tlbmQvZGJpLmgKK0BAIC0xMyw2ICsxMyw3IEBAIGVudW0gcnBt ZGJGbGFncyB7CisgICAgIFJQTURCX0ZMQUdfUkVCVUlMRAkJPSAoMSA8PCAxKSwKKyAgICAgUlBN REJfRkxBR19WRVJJRllPTkxZCT0gKDEgPDwgMiksCisgICAgIFJQTURCX0ZMQUdfU0FMVkFHRQkJ PSAoMSA8PCAzKSwKKysgICAgUlBNREJfRkxBR19QQVJLCQk9ICgxIDw8IDQpLAorIH07CisgCisg dHlwZWRlZiBlbnVtIGRiQ3RybE9wX2UgeworZGlmZiAtLWdpdCBhL2xpYi9iYWNrZW5kL3NxbGl0 ZS5jIGIvbGliL2JhY2tlbmQvc3FsaXRlLmMKK2luZGV4IDc2ZTljYWU3Mi4uNmNlZGNjZTE2IDEw MDY0NAorLS0tIGEvbGliL2JhY2tlbmQvc3FsaXRlLmMKKysrKyBiL2xpYi9iYWNrZW5kL3NxbGl0 ZS5jCitAQCAtMTk3LDEwICsxOTcsMjMgQEAgc3RhdGljIGludCBzcWxpdGVfZmluaShycG1kYiBy ZGIpCisgCSAgICBpZiAoc3FsaXRlM19kYl9yZWFkb25seShzZGIsIE5VTEwpID09IDApIHsKKyAJ CXNxbGV4ZWMoc2RiLCAiUFJBR01BIG9wdGltaXplIik7CisgCQlzcWxleGVjKHNkYiwgIlBSQUdN QSB3YWxfY2hlY2twb2ludCA9IFRSVU5DQVRFIik7CisrCisrCQkvKiBQYXJrIHRoZSBkYXRhYmFz ZSBpZiByZXF1ZXN0ZWQgKi8KKysJCWlmICgocmRiLT5kYl9mbGFncyAmIFJQTURCX0ZMQUdfUEFS SykgIT0gMCkgeworKwkJICAgIGludCB6ZXJvID0gMDsKKysJCSAgICAvKiBNYWtlIHN1cmUgYW55 IFdBTCBhbmQgU0hNIGZpbGVzIGFyZSBjbGVhbmVkIHVwICovCisrCQkgICAgc3FsaXRlM19maWxl X2NvbnRyb2woc2RiLCBOVUxMLCBTUUxJVEVfRkNOVExfUEVSU0lTVF9XQUwsCisrCQkJCQkgJnpl cm8pOworKwkJICAgIHJjID0gc3FsZXhlYyhzZGIsICJQUkFHTUEgam91cm5hbF9tb2RlID0gREVM RVRFIik7CisrCQkgICAgaWYgKHJjID09IDApCisrCQkJcnBtbG9nKFJQTUxPR19ERUJVRywgXygi cnBtZGIgc3FsaXRlIHBhcmtpbmcgZG9uZVxuIikpOworKwkJICAgIGVsc2UKKysJCQlycG1sb2co UlBNTE9HX0VSUiwgXygicnBtZGIgc3FsaXRlIHBhcmtpbmcgZmFpbGVkXG4iKSk7CisrCQl9Cisg CSAgICB9CisgCSAgICByZGItPmRiX2RiZW52ID0gTlVMTDsKKyAJICAgIGludCB4eCA9IHNxbGl0 ZTNfY2xvc2Uoc2RiKTsKKy0JICAgIHJjID0gKHh4ICE9IFNRTElURV9PSyk7CisrCSAgICByYyAr PSAoeHggIT0gU1FMSVRFX09LKTsKKyAJfQorICAgICB9CisgCitAQCAtMzI5LDcgKzM0Miw3IEBA IHN0YXRpYyBpbnQgc3FsaXRlX0Nsb3NlKGRiaUluZGV4IGRiaSwgdW5zaWduZWQgaW50IGZsYWdz KQorICAgICBpbnQgcmMgPSAwOworICAgICBpZiAocmRiLT5kYl9mbGFncyAmIFJQTURCX0ZMQUdf UkVCVUlMRCkKKyAJcmMgPSBpbml0X2luZGV4KGRiaSwgcnBtVGFnR2V0VmFsdWUoZGJpLT5kYmlf ZmlsZSkpOworLSAgICBzcWxpdGVfZmluaShkYmktPmRiaV9ycG1kYik7CisrICAgIHJjICs9IHNx bGl0ZV9maW5pKGRiaS0+ZGJpX3JwbWRiKTsKKyAgICAgZGJpRnJlZShkYmkpOworICAgICByZXR1 cm4gcmM7CisgfQorZGlmZiAtLWdpdCBhL2xpYi9ycG1kYi5jIGIvbGliL3JwbWRiLmMKK2luZGV4 IDExN2RmNDZlMS4uMzliMmU3MjNlIDEwMDY0NAorLS0tIGEvbGliL3JwbWRiLmMKKysrKyBiL2xp Yi9ycG1kYi5jCitAQCAtMjQ1MCw3ICsyNDUwLDkgQEAgaW50IHJwbWRiUmVidWlsZChjb25zdCBj aGFyICogcHJlZml4LCBycG10cyB0cywKKyAJZ290byBleGl0OworICAgICB9CisgICAgIGlmIChv cGVuRGF0YWJhc2UocHJlZml4LCBuZXdkYnBhdGgsICZuZXdkYiwKKy0JCSAgICAgKE9fUkRXUiB8 IE9fQ1JFQVQpLCAwNjQ0LCBSUE1EQl9GTEFHX1JFQlVJTEQpKSB7CisrCQkgICAgIChPX1JEV1Ig fCBPX0NSRUFUKSwgMDY0NCwgUlBNREJfRkxBR19SRUJVSUxEIHwKKysJCSAgICAgKHJlYnVpbGRm bGFncyAmIFJQTURCX1JFQlVJTERfRkxBR19QQVJLID8KKysJCSAgICAgICAgIFJQTURCX0ZMQUdf UEFSSyA6IDApKSkgeworIAlyYyA9IDE7CisgCWdvdG8gZXhpdDsKKyAgICAgfQorQEAgLTI0OTgs NyArMjUwMCw4IEBAIGludCBycG1kYlJlYnVpbGQoY29uc3QgY2hhciAqIHByZWZpeCwgcnBtdHMg dHMsCisgCisgICAgIHJwbWRiQ2xvc2Uob2xkZGIpOworICAgICBkYkN0cmwobmV3ZGIsIERCX0NU UkxfSU5ERVhTWU5DKTsKKy0gICAgcnBtZGJDbG9zZShuZXdkYik7CisrICAgIGlmIChycG1kYkNs b3NlKG5ld2RiKSkKKysJZmFpbGVkID0gMTsKKyAKKyAgICAgaWYgKGZhaWxlZCkgeworIAlycG1s b2coUlBNTE9HX1dBUk5JTkcsIAorZGlmZiAtLWdpdCBhL2xpYi9ycG1kYl9pbnRlcm5hbC5oIGIv bGliL3JwbWRiX2ludGVybmFsLmgKK2luZGV4IDA1OTAwMTNkYi4uMzZlMThiNzFhIDEwMDY0NAor LS0tIGEvbGliL3JwbWRiX2ludGVybmFsLmgKKysrKyBiL2xpYi9ycG1kYl9pbnRlcm5hbC5oCitA QCAtMjIsNiArMjIsNyBAQCBleHRlcm4gIkMiIHsKKyAKKyBlbnVtIHJwbWRiUmVidWlsZEZsYWdz X2UgeworICAgICBSUE1EQl9SRUJVSUxEX0ZMQUdfU0FMVkFHRQk9ICgxIDw8IDApLAorKyAgICBS UE1EQl9SRUJVSUxEX0ZMQUdfUEFSSwk9ICgxIDw8IDEpLAorIH07CisgCisgLyoqIFxpbmdyb3Vw IHJwbWRiCitkaWZmIC0tZ2l0IGEvbGliL3JwbXRzLmMgYi9saWIvcnBtdHMuYworaW5kZXggYmM1 MmEyZjI4Li45NmRkMzFiMGEgMTAwNjQ0CistLS0gYS9saWIvcnBtdHMuYworKysrIGIvbGliL3Jw bXRzLmMKK0BAIC0xNjUsNiArMTY1LDExIEBAIGludCBycG10c1JlYnVpbGREQihycG10cyB0cykK KyAgICAgcmV0dXJuIHJlYnVpbGREQih0cywgMCk7CisgfQorIAorK2ludCBycG10c1BhcmtEQihy cG10cyB0cykKKyt7CisrICAgIHJldHVybiByZWJ1aWxkREIodHMsIFJQTURCX1JFQlVJTERfRkxB R19QQVJLKTsKKyt9CisrCisgaW50IHJwbXRzVmVyaWZ5REIocnBtdHMgdHMpCisgeworICAgICBp bnQgcmMgPSAtMTsKK2RpZmYgLS1naXQgYS9weXRob24vcnBtdHMtcHkuYyBiL3B5dGhvbi9ycG10 cy1weS5jCitpbmRleCBhZTJlZWVhMjguLmRjODFkMzQ4OSAxMDA2NDQKKy0tLSBhL3B5dGhvbi9y cG10cy1weS5jCisrKysgYi9weXRob24vcnBtdHMtcHkuYworQEAgLTM3NSw2ICszNzUsMTggQEAg cnBtdHNfUmVidWlsZERCKHJwbXRzT2JqZWN0ICogcykKKyAgICAgcmV0dXJuIFB5X0J1aWxkVmFs dWUoImkiLCByYyk7CisgfQorIAorK3N0YXRpYyBQeU9iamVjdCAqCisrcnBtdHNfUGFya0RCKHJw bXRzT2JqZWN0ICogcykKKyt7CisrICAgIGludCByYzsKKysKKysgICAgUHlfQkVHSU5fQUxMT1df VEhSRUFEUworKyAgICByYyA9IHJwbXRzUGFya0RCKHMtPnRzKTsKKysgICAgUHlfRU5EX0FMTE9X X1RIUkVBRFMKKysKKysgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoImkiLCByYyk7CisrfQorKwor IHN0YXRpYyBQeU9iamVjdCAqCisgcnBtdHNfVmVyaWZ5REIocnBtdHNPYmplY3QgKiBzKQorIHsK K0BAIC03OTksNiArODExLDkgQEAgUmVtb3ZlIGFsbCBlbGVtZW50cyBmcm9tIHRoZSB0cmFuc2Fj dGlvbiBzZXRcbiIgfSwKKyAgeyJyZWJ1aWxkREIiLAkoUHlDRnVuY3Rpb24pIHJwbXRzX1JlYnVp bGREQiwJTUVUSF9OT0FSR1MsCisgInRzLnJlYnVpbGREQigpIC0+IE5vbmVcblwKKyAtIFJlYnVp bGQgdGhlIGRlZmF1bHQgdHJhbnNhY3Rpb24gcnBtZGIuXG4iIH0sCisrIHsicGFya0RCIiwJKFB5 Q0Z1bmN0aW9uKSBycG10c19QYXJrREIsCU1FVEhfTk9BUkdTLAorKyJ0cy5wYXJrREIoKSAtPiBO b25lXG5cCisrLSBQYXJrIHRoZSBkZWZhdWx0IHRyYW5zYWN0aW9uIHJwbWRiLlxuIiB9LAorICB7 InZlcmlmeURCIiwJKFB5Q0Z1bmN0aW9uKSBycG10c19WZXJpZnlEQiwJTUVUSF9OT0FSR1MsCisg InRzLnZlcmlmeURCKCkgLT4gTm9uZVxuXAorIC0gVmVyaWZ5IHRoZSBkZWZhdWx0IHRyYW5zYWN0 aW9uIHJwbWRiLlxuIiB9LAorZGlmZiAtLWdpdCBhL3Rvb2xzL3JwbWRiLmMgYi90b29scy9ycG1k Yi5jCitpbmRleCAzNmVmZmY4YWYuLjNkZTgxYmUyNiAxMDA2NDQKKy0tLSBhL3Rvb2xzL3JwbWRi LmMKKysrKyBiL3Rvb2xzL3JwbWRiLmMKK0BAIC0xMyw2ICsxMyw3IEBAIGVudW0gbW9kZXMgewor ICAgICBNT0RFX0VYUE9SVERCCT0gKDEgPDwgMyksCisgICAgIE1PREVfSU1QT1JUREIJPSAoMSA8 PCA0KSwKKyAgICAgTU9ERV9TQUxWQUdFREIJPSAoMSA8PCA1KSwKKysgICAgTU9ERV9QQVJLREIJ CT0gKDEgPDwgNiksCisgfTsKKyAKKyBzdGF0aWMgaW50IG1vZGUgPSAwOworQEAgLTIzLDYgKzI0 LDggQEAgc3RhdGljIHN0cnVjdCBwb3B0T3B0aW9uIGRiT3B0c1RhYmxlW10gPSB7CisgICAgIHsg InJlYnVpbGRkYiIsICdcMCcsIChQT1BUX0FSR19WQUx8UE9QVF9BUkdGTEFHX09SKSwgJm1vZGUs IE1PREVfUkVCVUlMRERCLAorIAlOXygicmVidWlsZCBkYXRhYmFzZSBpbnZlcnRlZCBsaXN0cyBm cm9tIGluc3RhbGxlZCBwYWNrYWdlIGhlYWRlcnMiKSwKKyAJTlVMTH0sCisrICAgIHsgInBhcmtk YiIsICdcMCcsIChQT1BUX0FSR19WQUx8UE9QVF9BUkdGTEFHX09SKSwKKysJJm1vZGUsIE1PREVf UEFSS0RCLCBOXygicGFyayBkYXRhYmFzZSIpLCBOVUxMfSwKKyAgICAgeyAidmVyaWZ5ZGIiLCAn XDAnLCAoUE9QVF9BUkdfVkFMfFBPUFRfQVJHRkxBR19PUiksCisgCSZtb2RlLCBNT0RFX1ZFUklG WURCLCBOXygidmVyaWZ5IGRhdGFiYXNlIiksIE5VTEx9LAorICAgICB7ICJzYWx2YWdlZGIiLCAn XDAnLCAoUE9QVF9BUkdfVkFMfFBPUFRfQVJHRkxBR19PUnxQT1BUX0FSR0ZMQUdfRE9DX0hJRERF TiksCitAQCAtMTE3LDYgKzEyMCw5IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10p CisgCWVjID0gcnBtdHNSZWJ1aWxkREIodHMpOworIAlycG10c1NldFZTRmxhZ3ModHMsIG92c2Zs YWdzKTsKKyAgICAgfQlicmVhazsKKysgICAgY2FzZSBNT0RFX1BBUktEQjoKKysJZWMgPSBycG10 c1BhcmtEQih0cyk7CisrCWJyZWFrOworICAgICBjYXNlIE1PREVfVkVSSUZZREI6CisgCWVjID0g cnBtdHNWZXJpZnlEQih0cyk7CisgCWJyZWFrOworLS0gCisyLjU0LjAKKworZGlmZiAtdXAgcnBt LTQuMTkuMS4xL2RvY3MvbWFuL3JwbWRiLjgub3JpZyBycG0tNC4xOS4xLjEvZG9jcy9tYW4vcnBt ZGIuOAorLS0tIHJwbS00LjE5LjEuMS9kb2NzL21hbi9ycG1kYi44Lm9yaWcJMjAyNi0wNi0xOCAw OToyNzoyNS40NjkxMDc2NjUgKzAyMDAKKysrKyBycG0tNC4xOS4xLjEvZG9jcy9tYW4vcnBtZGIu OAkyMDI2LTA2LTE4IDA5OjI3OjUzLjkwNzk0NTM1MCArMDIwMAorQEAgLTEsNzAgKzEsNjAgQEAK Ky0uXCIgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgUGFuZG9jIDMuMS4zCisrLlwiIEF1dG9t YXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IFBhbmRvYyAzLjEuMTEuMQorIC5cIgorLS5cIiBEZWZpbmUg ViBmb250IGZvciBpbmxpbmUgdmVyYmF0aW0sIHVzaW5nIEMgZm9udCBpbiBmb3JtYXRzCistLlwi IHRoYXQgcmVuZGVyIHRoaXMsIGFuZCBvdGhlcndpc2UgQiBmb250LgorLS5pZSAiXGZbQ0JdeFxm W10ieCIgXHtcCistLiBmdHIgViBCCistLiBmdHIgVkkgQkkKKy0uIGZ0ciBWQiBCCistLiBmdHIg VkJJIEJJCistLlx9CistLmVsIFx7XAorLS4gZnRyIFYgQ1IKKy0uIGZ0ciBWSSBDSQorLS4gZnRy IFZCIENCCistLiBmdHIgVkJJIENCSQorLS5cfQorIC5USCAiUlBNREIiICI4IiAiMjkgSnVuZSAy MDEwIiAiIiAiIgorLS5oeQorIC5TSCBOQU1FCistLlBQCistcnBtZGIgLSBSUE0gRGF0YWJhc2Ug VG9vbAorK3JwbWRiIFwtIFJQTSBEYXRhYmFzZSBUb29sCisgLlNIIFNZTk9QU0lTCisrXGZbQl1y cG1kYlxmW1JdIHtcZltCXVwtXC1pbml0ZGJ8XC1cLXJlYnVpbGRkYnxcLVwtcGFya2RiXGZbUl19 CisgLlBQCistXGZbQl1ycG1kYlxmW1JdIHtcZltCXS0taW5pdGRifC0tcmVidWlsZGRiXGZbUl19 CistLlBQCistXGZbQl1ycG1kYlxmW1JdIHtcZltCXS0tdmVyaWZ5ZGJcZltSXX0KKytcZltCXXJw bWRiXGZbUl0ge1xmW0JdXC1cLXZlcmlmeWRiXGZbUl19CisgLlBQCistXGZbQl1ycG1kYlxmW1Jd IHtcZltCXS0tZXhwb3J0ZGJ8LS1pbXBvcnRkYlxmW1JdfQorK1xmW0JdcnBtZGJcZltSXSB7XGZb Ql1cLVwtZXhwb3J0ZGJ8XC1cLWltcG9ydGRiXGZbUl19CisgLlNIIERFU0NSSVBUSU9OCistLlBQ CisgVGhlIGdlbmVyYWwgZm9ybSBvZiBhbiBycG1kYiBjb21tYW5kIGlzCisgLlBQCistXGZbQl1y cG1cZltSXSB7XGZbQl0tLWluaXRkYnwtLXJlYnVpbGRkYlxmW1JdfSBbXGZbQl0tdlxmW1JdXQor LVtcZltCXS0tZGJwYXRoIFxmW1JdXGZbSV1ESVJFQ1RPUllcZltSXV0gW1xmW0JdLS1yb290Cist XGZbUl1cZltJXURJUkVDVE9SWVxmW1JdXQorK1xmW0JdcnBtXGZbUl0ge1xmW0JdXC1cLWluaXRk YnxcLVwtcmVidWlsZGRifFwtXC1wYXJrZGJcZltSXX0KKytbXGZbQl1cLXZcZltSXV0gW1xmW0Jd XC1cLWRicGF0aCBcZltSXVxmW0ldRElSRUNUT1JZXGZbUl1dCisrW1xmW0JdXC1cLXJvb3QgXGZb Ul1cZltJXURJUkVDVE9SWVxmW1JdXQorIC5QUAorLVVzZSBcZltCXS0taW5pdGRiXGZbUl0gdG8g Y3JlYXRlIGEgbmV3IGRhdGFiYXNlIGlmIG9uZSBkb2VzblxbYXFddAorK1VzZSBcZltCXVwtXC1p bml0ZGJcZltSXSB0byBjcmVhdGUgYSBuZXcgZGF0YWJhc2UgaWYgb25lIGRvZXNuXFthcV10Cisg YWxyZWFkeSBleGlzdCAoZXhpc3RpbmcgZGF0YWJhc2UgaXMgbm90IG92ZXJ3cml0dGVuKSwgdXNl CistXGZbQl0tLXJlYnVpbGRkYlxmW1JdIHRvIHJlYnVpbGQgdGhlIGRhdGFiYXNlIGluZGljZXMg ZnJvbSB0aGUgaW5zdGFsbGVkCistcGFja2FnZSBoZWFkZXJzLgorK1xmW0JdXC1cLXJlYnVpbGRk YlxmW1JdIHRvIHJlYnVpbGQgdGhlIGRhdGFiYXNlIGluZGljZXMgZnJvbSB0aGUKKytpbnN0YWxs ZWQgcGFja2FnZSBoZWFkZXJzLgorIC5QUAorLVxmW0JdLS12ZXJpZnlkYlxmW1JdIHBlcmZvcm1z IGEgbG93LWxldmVsIGludGVncml0eSBjaGVjayBvbiB0aGUKKytcZltCXVwtXC12ZXJpZnlkYlxm W1JdIHBlcmZvcm1zIGEgbG93XC1sZXZlbCBpbnRlZ3JpdHkgY2hlY2sgb24gdGhlCisgZGF0YWJh c2UuCisgLlBQCistXGZbQl0tLWV4cG9ydGRiXGZbUl0gZXhwb3J0cyB0aGUgZGF0YWJhc2UgaW4g aGVhZGVyLWxpc3QgZm9ybWF0LAorK1xmW0JdXC1cLWV4cG9ydGRiXGZbUl0gZXhwb3J0cyB0aGUg ZGF0YWJhc2UgaW4gaGVhZGVyXC1saXN0IGZvcm1hdCwKKyBzdWl0YWJsZSBmb3IgdHJhbnNmcG9y dGluZyB0byBhbm90aGVyIGhvc3Qgb3IgZGF0YWJhc2UgdHlwZS4KKyAuUFAKKy1cZltCXS0taW1w b3J0ZGJcZltSXSBpbXBvcnRzIGEgZGF0YWJhc2UgZnJvbSBhIGhlYWRlci1saXN0IGZvcm1hdCBh cworLWNyZWF0ZWQgYnkgXGZbQl0tLWV4cG9ydGRiXGZbUl0uCistLlNIIFNFRSBBTFNPCisrXGZb Ql1cLVwtaW1wb3J0ZGJcZltSXSBpbXBvcnRzIGEgZGF0YWJhc2UgZnJvbSBhIGhlYWRlclwtbGlz dCBmb3JtYXQgYXMKKytjcmVhdGVkIGJ5IFxmW0JdXC1cLWV4cG9ydGRiXGZbUl0uCisgLlBQCisr XGZbQl1cLVwtcGFya2RiXGZbUl0gcGFya3MgdGhlIGRhdGFiYXNlLgorK1RoaXMgcHJlcGFyZXMg YW5kIG9wdGltaXplcyB0aGUgZGF0YWJhc2UgZm9yIGluY2x1c2lvbiBvbiByZWFkXC1vbmx5Cisr bWVkaWEsIHN1Y2ggYXMgaW1tdXRhYmxlIE9TIGltYWdlcy4KKytXcml0ZSBvcGVyYXRpb25zLCBz dWNoIGFzIFJQTSB0cmFuc2FjdGlvbnMsIHdpbGwgdW5wYXJrIHRoZSBkYXRhYmFzZSBhbmQKKytj b250aW51ZSBub3JtYWxseSwgbGVhdmluZyB0aGUgZGF0YWJhc2UgdW5wYXJrZWQgd2hlbiBmaW5p c2hlZC4KKytUaHVzLCB0byB1bnBhcmsgbWFudWFsbHksIHVzZSBcZltCXVwtXC1yZWJ1aWxkZGJc ZltSXS4KKytEZXBlbmRpbmcgb24gdGhlIGJhY2tlbmQgdXNlZCwgdGhpcyBvcGVyYXRpb24gbWF5 IGluY2x1ZGUgdGhlIHJlbW92YWwgb2YKKythdXhpbGlhcnksIGJhY2tlbmRcLXNwZWNpZmljIGZp bGVzIGZyb20gZGlzaywgc3VjaCBhcyB0aGUgd3JpdGVcLWFoZWFkCisrbG9nIG9yIHNoYXJlZCBt ZW1vcnkgaW5kZXgsIGFuZCB0aHVzIGZhY2lsaXRhdGUgYml0XC1mb3JcLWJpdAorK3JlcHJvZHVj aWJsZSBPUyBpbWFnZXMuCisrLlNIIFNFRSBBTFNPCisgXGZbQl1wb3B0XGZbUl0oMyksIFxmW0Jd cnBtXGZbUl0oOCksIFxmW0JdcnBta2V5c1xmW1JdKDgpLAorIFxmW0JdcnBtc2lnblxmW1JdKDgp LCBcZltCXXJwbTJjcGlvXGZbUl0oOCksIFxmW0JdcnBtYnVpbGRcZltSXSg4KSwKKyBcZltCXXJw bXNwZWNcZltSXSg4KQorIC5QUAorLVxmW0JdcnBtIC0taGVscFxmW1JdIC0gYXMgcnBtIHN1cHBv cnRzIGN1c3RvbWl6aW5nIHRoZSBvcHRpb25zIHZpYSBwb3B0CistYWxpYXNlcyBpdFxbYXFdcyBp bXBvc3NpYmxlIHRvIGd1YXJhbnRlZSB0aGF0IHdoYXRcW2FxXXMgZGVzY3JpYmVkIGluCistdGhl IG1hbnVhbCBtYXRjaGVzIHdoYXRcW2FxXXMgYXZhaWxhYmxlLgorK1xmW0JdcnBtIFwtXC1oZWxw XGZbUl0gXC0gYXMgcnBtIHN1cHBvcnRzIGN1c3RvbWl6aW5nIHRoZSBvcHRpb25zIHZpYQorK3Bv cHQgYWxpYXNlcyBpdFxbYXFdcyBpbXBvc3NpYmxlIHRvIGd1YXJhbnRlZSB0aGF0IHdoYXRcW2Fx XXMgZGVzY3JpYmVkCisraW4gdGhlIG1hbnVhbCBtYXRjaGVzIHdoYXRcW2FxXXMgYXZhaWxhYmxl LgorIC5QUAorIFxmW0JdaHR0cDovL3d3dy5ycG0ub3JnLyA8VVJMOmh0dHA6Ly93d3cucnBtLm9y Zy8+XGZbUl0KKyAuU0ggQVVUSE9SUworIC5JUAorLS5uZgorLVxmW0NdCisrLkVYCisgTWFyYyBF d2luZyA8bWFyY1xbYXRdcmVkaGF0LmNvbT4KKyBKZWZmIEpvaG5zb24gPGpialxbYXRdcmVkaGF0 LmNvbT4KKyBFcmlrIFRyb2FuIDxld3RcW2F0XXJlZGhhdC5jb20+CisgUGFudSBNYXRpbGFpbmVu IDxwbWF0aWxhaVxbYXRdcmVkaGF0LmNvbT4KKy1cZltSXQorLS5maQorKy5FRQoKZGlmZiAtLWdp dCBhL3JwbS00LjE5LngtaW1wcm92ZS1zeXNsb2cucGF0Y2ggYi9ycG0tNC4xOS54LWltcHJvdmUt c3lzbG9nLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5NzNhMmMK LS0tIC9kZXYvbnVsbAorKysgYi9ycG0tNC4xOS54LWltcHJvdmUtc3lzbG9nLnBhdGNoCkBAIC0w LDAgKzEsNjk5IEBACitGcm9tIDc2YmU1YjcwN2QxZDU1Mzg4YmNiNmJkNzdjOGNjMzUxMTUyNjEy ZGUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBQYW51IE1hdGlsYWluZW4gPHBtYXRp bGFpQHJlZGhhdC5jb20+CitEYXRlOiBXZWQsIDggQXByIDIwMjYgMTA6NDA6MzkgKzAzMDAKK1N1 YmplY3Q6IFtQQVRDSCAxLzZdIEZpeCB3cm9uZyBvcGVyYXRpb24gbmFtZXMgdXNlZCBpbiB0aGUg c3lzbG9nIHBsdWdpbgorCitUaGVyZSBhcmUgbW9yZSBycG10ZSB0eXBlcyB0aGFuIGp1c3QgVFJf QURERUQgYW5kIFRSX1JFTU9WRUQgdGhlc2UgZGF5cywKK2J1dCB0aGlzIGNvZGUgd2FzIG5ldmVy IHVwZGF0ZWQgdG8gbWF0Y2guIEFzIGEgcmVzdWx0LCBpdCdsbCBsb2cKK2FueXRoaW5nIGJ1dCBp bnN0YWxscyAoc3VjaCBhcyAtLXJlc3RvcmUpIGFzIGVyYXN1cmUgd2hpY2ggY2FuIGJlIGEKK2xp dHRsZSBoYWlyLXJhaXNpbmcgd2hlbiBsb29raW5nIGF0IHRoZSBsb2cuCisKK0ZpeGVzOiAjNDE3 MgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgYmJiYTViOTg2ZmY0NjhiYWRiNDlhODIyYmQ3 MGI2OGRjZjYwNmNlZikKKy0tLQorIHBsdWdpbnMvc3lzbG9nLmMgfCAxMyArKysrKysrKysrKyst CisgMSBmaWxlIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKKworZGlm ZiAtLWdpdCBhL3BsdWdpbnMvc3lzbG9nLmMgYi9wbHVnaW5zL3N5c2xvZy5jCitpbmRleCBmN2Ix YTEzODguLjJkYWM5ODcyZiAxMDA2NDQKKy0tLSBhL3BsdWdpbnMvc3lzbG9nLmMKKysrKyBiL3Bs dWdpbnMvc3lzbG9nLmMKK0BAIC03NCwxMyArNzQsMjQgQEAgc3RhdGljIHJwbVJDIHN5c2xvZ190 c21fcG9zdChycG1QbHVnaW4gcGx1Z2luLCBycG10cyB0cywgaW50IHJlcykKKyAgICAgcmV0dXJu IFJQTVJDX09LOworIH0KKyAKKytzdGF0aWMgY29uc3QgY2hhciAqZ2V0T3AocnBtdGUgdGUpCisr eworKyAgICBzd2l0Y2ggKHJwbXRlVHlwZSh0ZSkpIHsKKysgICAgY2FzZSBUUl9BRERFRDoJcmV0 dXJuICJpbnN0YWxsIjsKKysgICAgY2FzZSBUUl9SRU1PVkVEOglyZXR1cm4gImVyYXNlIjsKKysg ICAgY2FzZSBUUl9SUE1EQjoJcmV0dXJuICJycG1kYiI7CisrICAgIGNhc2UgVFJfUkVTVE9SRUQ6 CXJldHVybiAicmVzdG9yZSI7CisrICAgIH0KKysgICAgcmV0dXJuICI8dW5rbm93bj4iOworK30K KysKKyBzdGF0aWMgcnBtUkMgc3lzbG9nX3BzbV9wb3N0KHJwbVBsdWdpbiBwbHVnaW4sIHJwbXRl IHRlLCBpbnQgcmVzKQorIHsKKyAgICAgc3RydWN0IGxvZ3N0YXQgKiBzdGF0ZSA9IHJwbVBsdWdp bkdldERhdGEocGx1Z2luKTsKKyAKKyAgICAgaWYgKHN0YXRlLT5sb2dnaW5nKSB7CisgCWludCBs dmwgPSBMT0dfTk9USUNFOworLQljb25zdCBjaGFyICpvcCA9IChycG10ZVR5cGUodGUpID09IFRS X0FEREVEKSA/ICJpbnN0YWxsIiA6ICJlcmFzZSI7CisrCWNvbnN0IGNoYXIgKm9wID0gZ2V0T3Ao dGUpOworIAljb25zdCBjaGFyICpvdXRjb21lID0gInN1Y2Nlc3MiOworIAkvKiBYWFg6IFBlcm1p dCBjb25maWd1cmFibGUgaGVhZGVyIHF1ZXJ5Zm9ybWF0PyAqLworIAljb25zdCBjaGFyICpwa2cg PSBycG10ZU5FVlJBKHRlKTsKKy0tIAorMi41NC4wCisKKworRnJvbSBmYzVjMDgzYjA2YWUxYjI0 Yzg3OWM4ZGIzZTRhZjVkNTcwNzQ3MDBhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTog UGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPgorRGF0ZTogV2VkLCAxNSBBcHIg MjAyNiAxNjoyOTozMSArMDMwMAorU3ViamVjdDogW1BBVENIIDIvNl0gVXNlIGEgc2FuZSBpZGVu dGl0eSBzdHJpbmcgZm9yIHN5c2xvZworCitUaGUgb2xkICJbUlBNXSIgc3RyaW5nIGlzIGEgUElU QSB0byBncmVwIGZvciBhbmQgYW5ub3lpbmcgd2l0aCBqb3VybmFsY3RsCit0b28uIExldHMganVz dCB1c2UgcGxhaW4gInJwbSIgdG8gcmVkdWNlIGZyaWN0aW9uLiBBbmQgd2l0aCB0aGF0LAorImpv dXJuYWxjdGwgLXQgcnBtIiBpcyBhY3R1YWxseSBhIHByZXR0eSBoYW5keSB3YXkgdG8gbG9vayBh dCB0aGUKK3RyYW5zYWN0aW9uIGhpc3RvcnkuCisKK0luIHRoZW9yeSwgdGhpcyBjb3VsZCBvZiBj b3Vyc2UgYnJlYWsgc29tZWJvZHkncyBzY3JpcHRzLiBCdXQKK2NvbnNpZGVyaW5nIGhvdyBicm9r ZW4gdGhlIG91dHB1dCBoYXMgYmVlbiB3aXRob3V0IGFueWJvZHkgY29tcGxhaW5pbmcsCitpdCBz dWdnZXN0cyBub2JvZHkgaXMgYWN0dWFsbHkgdXNpbmcgdGhpcyBwbHVnaW4gYW5kIHNvLCBjaGFu Z2luZyBjYW5ub3QKK2h1cnQuCisKKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDA5OTEyODM5 NmMyYTc4Y2MyY2E1NzZiZTdjOThkYzI2OWQxMWE0NTcpCistLS0KKyBwbHVnaW5zL3N5c2xvZy5j IHwgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQor CitkaWZmIC0tZ2l0IGEvcGx1Z2lucy9zeXNsb2cuYyBiL3BsdWdpbnMvc3lzbG9nLmMKK2luZGV4 IDJkYWM5ODcyZi4uZTA1YTliNGQxIDEwMDY0NAorLS0tIGEvcGx1Z2lucy9zeXNsb2cuYworKysr IGIvcGx1Z2lucy9zeXNsb2cuYworQEAgLTE2LDcgKzE2LDcgQEAgc3RydWN0IGxvZ3N0YXQgewor IHN0YXRpYyBycG1SQyBzeXNsb2dfaW5pdChycG1QbHVnaW4gcGx1Z2luLCBycG10cyB0cykKKyB7 CisgICAgIC8qIFhYWCBtYWtlIHRoaXMgY29uZmlndXJhYmxlPyAqLworLSAgICBjb25zdCBjaGFy ICogbG9nX2lkZW50ID0gIltSUE1dIjsKKysgICAgY29uc3QgY2hhciAqIGxvZ19pZGVudCA9ICJy cG0iOworICAgICBzdHJ1Y3QgbG9nc3RhdCAqIHN0YXRlID0gcmNhbGxvYygxLCBzaXplb2YoKnN0 YXRlKSk7CisgCisgICAgIHJwbVBsdWdpblNldERhdGEocGx1Z2luLCBzdGF0ZSk7CistLSAKKzIu NTQuMAorCisKK0Zyb20gOTFkMzlkYmJiZWQyYWQ1NTM3NTUxYWVmNWRkM2JkNmQ2NTUxMGJlYyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlA cmVkaGF0LmNvbT4KK0RhdGU6IFdlZCwgMTUgQXByIDIwMjYgMTM6NTM6NTcgKzAzMDAKK1N1Ympl Y3Q6IFtQQVRDSCAzLzZdIEFkZCArIHVzZSBhbiBpbnRlcm5hbCBtYWNybyBmb3IgZGV0ZXJtaW5p bmcgc2NyaXB0LW9ubHkKKyBpbnN0YWxsIGdvYWxzCisKK05vIGZ1bmN0aW9uYWwgY2hhbmdlcywg YnV0IHdlJ2xsIG5lZWQgdGhpcyBpbmZvIGluIGFub3RoZXIgc3BvdCBpbgordGhlIG5leHQgY29t bWl0LgorCisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBiZmVmYzEzN2ViMmQyNGM3Njg1OGNj MTMxYjk5OGE5ZmFjOTlhNjc5KQorLS0tCisgbGliL3JwbXRlLmMgICAgICAgICAgfCAyICstCisg bGliL3JwbXRlX2ludGVybmFsLmggfCAyICsrCisgMiBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlv bnMoKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL2xpYi9ycG10ZS5jIGIvbGliL3Jw bXRlLmMKK2luZGV4IDY1N2I0ZTExZC4uMzgwMmFlYWVjIDEwMDY0NAorLS0tIGEvbGliL3JwbXRl LmMKKysrKyBiL2xpYi9ycG10ZS5jCitAQCAtODE1LDcgKzgxNSw3IEBAIGludCBycG10ZUFkZE9w KHJwbXRlIHRlKQorIGludCBycG10ZVByb2Nlc3MocnBtdGUgdGUsIHBrZ0dvYWwgZ29hbCwgaW50 IG51bSkKKyB7CisgICAgIC8qIE9ubHkgaW5zdGFsbC9lcmFzZSByZXNldHMgcGtnIGZpbGUgaW5m byAqLworLSAgICBpbnQgc2NyaXB0c3RhZ2UgPSAoZ29hbCAhPSBQS0dfSU5TVEFMTCAmJiBnb2Fs ICE9IFBLR19FUkFTRSAmJiBnb2FsICE9IFBLR19SRVNUT1JFKTsKKysgICAgaW50IHNjcmlwdHN0 YWdlID0gaXNTY3JpcHRTdGFnZShnb2FsKTsKKyAgICAgaW50IHRlc3QgPSAocnBtdHNGbGFncyh0 ZS0+dHMpICYgUlBNVFJBTlNfRkxBR19URVNUKTsKKyAgICAgaW50IHJlc2V0X2ZpID0gKHNjcmlw dHN0YWdlID09IDAgJiYgdGVzdCA9PSAwKTsKKyAgICAgaW50IGZhaWxlZCA9IDE7CitkaWZmIC0t Z2l0IGEvbGliL3JwbXRlX2ludGVybmFsLmggYi9saWIvcnBtdGVfaW50ZXJuYWwuaAoraW5kZXgg ZTYxNmMwNTYxLi44ODE3NzJjOTUgMTAwNjQ0CistLS0gYS9saWIvcnBtdGVfaW50ZXJuYWwuaAor KysrIGIvbGliL3JwbXRlX2ludGVybmFsLmgKK0BAIC0yMiw2ICsyMiw4IEBAIHR5cGVkZWYgZW51 bSBwa2dHb2FsX2UgeworICAgICBQS0dfVFJBTlNGSUxFVFJJR0dFUlVOCT0gUlBNVEFHX1RSQU5T RklMRVRSSUdHRVJVTiwKKyB9IHBrZ0dvYWw7CisgCisrI2RlZmluZSBpc1NjcmlwdFN0YWdlKF9n KSAoKF9nKSAhPSBQS0dfSU5TVEFMTCAmJiAoX2cpICE9IFBLR19FUkFTRSAmJiAoX2cpICE9IFBL R19SRVNUT1JFKQorKworIC8qKiBcaW5ncm91cCBycG10ZQorICAqIFRyYW5zYWN0aW9uIGVsZW1l bnQgb3JkZXJpbmcgY2hhaW4gbGlua2FnZS4KKyAgKi8KKy0tIAorMi41NC4wCisKKworRnJvbSAz OGUxZmVkZDcyY2IxNGI5YmY4ZTBhNDI4YTc5MDcxZWIwZTUxMGRjIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQorRnJvbTogUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPgorRGF0 ZTogV2VkLCAxNSBBcHIgMjAyNiAxMzo1OToxNiArMDMwMAorU3ViamVjdDogW1BBVENIIDQvNl0g T25seSBleGVjdXRlIHBzbV9wcmUgYW5kIHBzbV9wb3N0IGZvciB0aGUgbWFpbiBwYWNrYWdlCisg b3BlcmF0aW9uCisKK1RoZXNlIGhvb2tzIGdldHRpbmcgY2FsbGVkIG11bHRpcGxlIHRpbWVzIHdp dGggbm8gbWVhbnMgdG8gaWRlbnRpZnkKK3doeSBpdCdzIGdldHRpbmcgY2FsbGVkIG1ha2VzIHRo ZW0gaW1wb3NzaWJsZSB0byB1c2UgbWVhbmluZ2Z1bGx5LgorT25seSBydW4gdGhlIHBzbSBob29r cyBvbiBub24tc2NyaXB0IGdvYWxzOiBpbnN0YWxsLCBlcmFzZSBhbmQgcmVzdG9yZS4KKworSXQg aXMgb2YgY291cnNlIGEgY2hhbmdlIHRvIHdoYXQgaXMgbm93IGEgcHVibGljIEFQSSBzZW1hbnRp Y3MsCitidXQgdGhlIGZvcm1lciBiZWhhdmlvciBpcyByZWFsbHkgYSBidWcgdGhhdCB3ZSdyZSBm aXhpbmcgaGVyZS4KKworV2l0aCB0aGlzIGNoYW5nZSwgdGhlIHN5c2xvZyBwbHVnaW4gbm8gbG9u Z2VyIGVtaXRzIGR1cGxpY2F0ZXMgYW5kCitpbiBhIHN0cmFuZ2Ugb3JkZXIgYXQgdGhhdC4KKwor Rml4ZXM6ICMxMjU0CisoYmFja3BvcnRlZCBmcm9tIGNvbW1pdCAwYTQ1YWVmYTAxZDE1MTcxODRj NDFmMjMzZjRiNTNjZWJkNzhjZjhkKQorLS0tCisgZG9jcy9tYW51YWwvcGx1Z2lucy5tZCB8IDIg Ky0KKyBsaWIvcHNtLmMgICAgICAgICAgICAgIHwgNyArKysrLS0tCisgMiBmaWxlcyBjaGFuZ2Vk LCA1IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9kb2NzL21h bnVhbC9wbHVnaW5zLm1kIGIvZG9jcy9tYW51YWwvcGx1Z2lucy5tZAoraW5kZXggZTUzZWI5ZTNk Li5iMzRjMTgyZjQgMTAwNjQ0CistLS0gYS9kb2NzL21hbnVhbC9wbHVnaW5zLm1kCisrKysgYi9k b2NzL21hbnVhbC9wbHVnaW5zLm1kCitAQCAtNDQsNyArNDQsNyBAQCBQb3N0IGhvb2sgaXMgZ3Vh cmFudGVlZCB0byBleGVjdXRlIHdoZW5ldmVyIHByZSBob29rIHdhcyBleGVjdXRlZC4KKyAKKyAj IyBQZXIgdHJhbnNhY3Rpb24gZWxlbWVudCBob29rcworIAorLUhvb2tzIGBwc21fcHJlYCBhbmQg YHBzbV9wb3N0YCBvY2N1ciBiZWZvcmUgYW5kIGFmdGVyIHRoZSBwcm9jZXNzaW5nIG9mIHNpbmds ZSB0cmFuc2FjdGlvbiBlbGVtZW50IHdpdGhpbiB0aGUgdHJhbnNhY3Rpb24uIEJvdGggaG9va3Mg Y2FuIGdldCBleGVjdXRlZCBtdWx0aXBsZSB0aW1lcyBmb3IgYSBzaW5nbGUgZWxlbWVudCBhcyB0 aGVzZSBob29rcyBnZXQgY2FsbGVkIHNlcGFyYXRlbHkgZm9yICVwcmV0cmFucyBhbmQgJXBvc3R0 cmFucyBzY3JpcHRsZXRzIGluIGFkZGl0aW9uIHRvIHRoZSBtYWluIHBhY2thZ2UgaW5zdGFsbCBv ciBlcmFzZSBhY3Rpb24uCisrSG9va3MgYHBzbV9wcmVgIGFuZCBgcHNtX3Bvc3RgIG9jY3VyIGJl Zm9yZSBhbmQgYWZ0ZXIgdGhlIHByb2Nlc3Npbmcgb2Ygc2luZ2xlIHRyYW5zYWN0aW9uIGVsZW1l bnQgd2l0aGluIHRoZSB0cmFuc2FjdGlvbiBkdXJpbmcgaW5zdGFsbCwgZXJhc2UgYW5kIHJlc3Rv cmUgb3BlcmF0aW9ucy4KKyAKKyBQb3N0IGhvb2sgaXMgZ3VhcmFudGVlZCB0byBleGVjdXRlIHdo ZW5ldmVyIHByZSBob29rIHdhcyBleGVjdXRlZC4KKyAKK2RpZmYgLS1naXQgYS9saWIvcHNtLmMg Yi9saWIvcHNtLmMKK2luZGV4IDM5MjYxYjlmNC4uODIwNzA0Y2FiIDEwMDY0NAorLS0tIGEvbGli L3BzbS5jCisrKysgYi9saWIvcHNtLmMKK0BAIC0xMTE4LDcgKzExMTgsOCBAQCBzdGF0aWMgcnBt UkMgcnVuR29hbChycG1wc20gcHNtLCBwa2dHb2FsIGdvYWwpCisgcnBtUkMgcnBtcHNtUnVuKHJw bXRzIHRzLCBycG10ZSB0ZSwgcGtnR29hbCBnb2FsKQorIHsKKyAgICAgcnBtcHNtIHBzbSA9IE5V TEw7CistICAgIHJwbVJDIHJjID0gUlBNUkNfRkFJTDsKKysgICAgcnBtUkMgcmMgPSBSUE1SQ19P SzsKKysgICAgaW50IHJ1bnBsdWdpbnMgPSAoaXNTY3JpcHRTdGFnZShnb2FsKSA9PSAwKTsKKyAK KyAgICAgLyogUHNtIGNhbid0IGZhaWwgaW4gdGVzdCBtb2RlLCBqdXN0IHJldHVybiBlYXJseSAq LworICAgICBpZiAocnBtdHNGbGFncyh0cykgJiBSUE1UUkFOU19GTEFHX1RFU1QpCitAQCAtMTEy Niw3ICsxMTI3LDcgQEAgcnBtUkMgcnBtcHNtUnVuKHJwbXRzIHRzLCBycG10ZSB0ZSwgcGtnR29h bCBnb2FsKQorIAorICAgICBwc20gPSBycG1wc21OZXcodHMsIHRlLCBnb2FsKTsKKyAgICAgLyog UnVuIHByZSB0cmFuc2FjdGlvbiBlbGVtZW50IGhvb2sgZm9yIGFsbCBwbHVnaW5zICovCistICAg IGlmIChycG1DaHJvb3RJbigpID09IDApIHsKKysgICAgaWYgKHJ1bnBsdWdpbnMgJiYgcnBtQ2hy b290SW4oKSA9PSAwKSB7CisgCXJjID0gcnBtcGx1Z2luc0NhbGxQc21QcmUocnBtdHNQbHVnaW5z KHRzKSwgdGUpOworIAlycG1DaHJvb3RPdXQoKTsKKyAgICAgfQorQEAgLTExMzUsNyArMTEzNiw3 IEBAIHJwbVJDIHJwbXBzbVJ1bihycG10cyB0cywgcnBtdGUgdGUsIHBrZ0dvYWwgZ29hbCkKKyAJ cmMgPSBydW5Hb2FsKHBzbSwgZ29hbCk7CisgCisgICAgIC8qIFJ1biBwb3N0IHRyYW5zYWN0aW9u IGVsZW1lbnQgaG9vayBmb3IgYWxsIHBsdWdpbnMgKGV2ZW4gb24gZmFpbHVyZSkgKi8KKy0gICAg aWYgKHJwbUNocm9vdEluKCkgPT0gMCkgeworKyAgICBpZiAocnVucGx1Z2lucyAmJiBycG1DaHJv b3RJbigpID09IDApIHsKKyAJcnBtcGx1Z2luc0NhbGxQc21Qb3N0KHJwbXRzUGx1Z2lucyh0cyks IHRlLCByYyk7CisgCXJwbUNocm9vdE91dCgpOworICAgICB9CistLSAKKzIuNTQuMAorCisKK0Zy b20gNGY4NWQ4Y2Y5OGU2NzIwMGY4MmE2Y2VmNjY2ZDZiZmVjYjA4NGYyMSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKK0Zyb206IFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4K K0RhdGU6IFdlZCwgMjAgTWF5IDIwMjYgMTY6MzM6MDIgKzAzMDAKK1N1YmplY3Q6IFtQQVRDSCA1 LzZdIEFkZCBhIGNvbmZpZ3VyYWJsZSBvdXRwdXQgdGFyZ2V0IHRvIHRoZSBzeXNsb2cgcGx1Z2lu CisKK0FsbG93IG9wdGlvbmFsbHkgcmVkaXJlY3RpbmcgdGhlIHBsdWdpbiBvdXRwdXQgdG8gc3Rk ZXJyIGluc3RlYWQgb2YKK3RoZSBhY3R1YWwgc3lzbG9nLiBXZSdsbCBuZWVkIHRoaXMgaW4gdGhl IG5leHQgY29tbWl0IHRvIG1ha2UgdGVzdGluZworYWN0dWFsbHkgZmVhc2libGUuCisKKyhiYWNr cG9ydGVkIGZyb20gY29tbWl0IGZiZjRkNTg4NDU4NzAwZGEyNWYxOTM3NzBkMTBhMzYzMmMyYzQ4 MzYpCistLS0KKyBkb2NzL21hbi9ycG0tcGx1Z2luLXN5c2xvZy44Lm1kIHwgIDkgKysrKystLQor IHBsdWdpbnMvc3lzbG9nLmMgICAgICAgICAgICAgICAgfCA0MyArKysrKysrKysrKysrKysrKysr KysrKysrKystLS0tLS0KKyAyIGZpbGVzIGNoYW5nZWQsIDQzIGluc2VydGlvbnMoKyksIDkgZGVs ZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9kb2NzL21hbi9ycG0tcGx1Z2luLXN5c2xvZy44Lm1k IGIvZG9jcy9tYW4vcnBtLXBsdWdpbi1zeXNsb2cuOC5tZAoraW5kZXggZTlmYTQ4ZTFiLi40N2E2 YmM1NDkgMTAwNjQ0CistLS0gYS9kb2NzL21hbi9ycG0tcGx1Z2luLXN5c2xvZy44Lm1kCisrKysg Yi9kb2NzL21hbi9ycG0tcGx1Z2luLXN5c2xvZy44Lm1kCitAQCAtMTgsOCArMTgsMTMgQEAgVGhl IHBsdWdpbiB3cml0ZXMgYmFzaWMgaW5mb3JtYXRpb24gYWJvdXQgcnBtIHRyYW5zYWN0aW9ucyB0 byB0aGUgc3lzbG9nCisgQ29uZmlndXJhdGlvbgorID09PT09PT09PT09PT0KKyAKKy1UaGVyZSBh cmUgY3VycmVudGx5IG5vIG9wdGlvbnMgZm9yIHRoaXMgcGx1Z2luIGluIHBhcnRpY3VsYXIuIFNl ZQorLSoqcnBtLXBsdWdpbnMqKig4KSBvbiBob3cgdG8gY29udHJvbCBwbHVnaW5zIGluIGdlbmVy YWwuCisrKiolXF9cX3RyYW5zYWN0aW9uXF9zeXNsb2dcX3RhcmdldCoqCisrOiAgIFNwZWNpZnkg dGFyZ2V0IG91dHB1dCBmb3IgdGhlIHBsdWdpbi4gU3VwcG9ydGVkIHZhbHVlcyBhcmU6CisrCisr ICAgIC0gKipzeXNsb2cqKjogc3lzdGVtIGxvZyAoZGVmYXVsdCkKKysgICAgLSAqKnN0ZGVycioq OiBzdGFuZGFyZCBlcnJvcgorKworK1NlZSAqKnJwbS1wbHVnaW5zKiooOCkgb24gaG93IHRvIGNv bnRyb2wgcGx1Z2lucyBpbiBnZW5lcmFsLgorIAorIFNFRSBBTFNPCisgPT09PT09PT0KK2RpZmYg LS1naXQgYS9wbHVnaW5zL3N5c2xvZy5jIGIvcGx1Z2lucy9zeXNsb2cuYworaW5kZXggZTA1YTli NGQxLi41ZGIyOTVmNGIgMTAwNjQ0CistLS0gYS9wbHVnaW5zL3N5c2xvZy5jCisrKysgYi9wbHVn aW5zL3N5c2xvZy5jCitAQCAtMSwzNCArMSw2MyBAQAorICNpbmNsdWRlICJzeXN0ZW0uaCIKKyAK KysjaW5jbHVkZSA8c3RkYXJnLmg+CisgI2luY2x1ZGUgPHN0ZGxpYi5oPgorICNpbmNsdWRlIDxz eXNsb2cuaD4KKyAKKysjaW5jbHVkZSA8cnBtL3JwbWxvZy5oPgorKyNpbmNsdWRlIDxycG0vcnBt bWFjcm8uaD4KKyAjaW5jbHVkZSA8cnBtL3JwbXN0cmluZy5oPgorICNpbmNsdWRlIDxycG0vcnBt dHMuaD4KKyAjaW5jbHVkZSAicnBtcGx1Z2luLmgiCisgCisrdHlwZWRlZiB2b2lkICgqbG9nZ2Vy ZnVuYykoaW50IHByaW8sIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKKysKKyBzdHJ1Y3QgbG9nc3Rh dCB7CisgICAgIGludCBsb2dnaW5nOworICAgICB1bnNpZ25lZCBpbnQgc2NyaXB0ZmFpbDsKKyAg ICAgdW5zaWduZWQgaW50IHBrZ2ZhaWw7CisrICAgIGxvZ2dlcmZ1bmMgbG9nOworIH07CisgCisr c3RhdGljIHZvaWQgZXJybG9nKGludCBwcmlvLCBjb25zdCBjaGFyICpmbXQsIC4uLikKKyt7Cisr ICAgIHZhX2xpc3QgYXA7CisrCisrICAgIHZhX3N0YXJ0KGFwLCBmbXQpOworKyAgICB2ZnByaW50 ZihzdGRlcnIsIGZtdCwgYXApOworKyAgICBmcHJpbnRmKHN0ZGVyciwgIlxuIik7CisrICAgIHZh X2VuZChhcCk7CisrfQorKworIHN0YXRpYyBycG1SQyBzeXNsb2dfaW5pdChycG1QbHVnaW4gcGx1 Z2luLCBycG10cyB0cykKKyB7CisgICAgIC8qIFhYWCBtYWtlIHRoaXMgY29uZmlndXJhYmxlPyAq LworICAgICBjb25zdCBjaGFyICogbG9nX2lkZW50ID0gInJwbSI7CisgICAgIHN0cnVjdCBsb2dz dGF0ICogc3RhdGUgPSByY2FsbG9jKDEsIHNpemVvZigqc3RhdGUpKTsKKysgICAgY2hhciAqdGFy Z2V0ID0gcnBtRXhwYW5kKCIlez9fX3RyYW5zYWN0aW9uX3N5c2xvZ190YXJnZXR9IiwgTlVMTCk7 CisrCisrICAgIGlmIChyc3RyZXEodGFyZ2V0LCAic3RkZXJyIikpIHsKKysJc3RhdGUtPmxvZyA9 IGVycmxvZzsKKysgICAgfSBlbHNlIHsKKysJaWYgKCp0YXJnZXQgJiYgIXJzdHJlcSh0YXJnZXQs ICJzeXNsb2ciKSkgeworKwkgICAgcnBtbG9nKFJQTUxPR19XQVJOSU5HLAorKwkJXygidW5rbm93 biBzeXNsb2cgdGFyZ2V0ICVzLCB1c2luZyAnc3lzbG9nJ1xuIiksIHRhcmdldCk7CisrCX0KKysJ c3RhdGUtPmxvZyA9IHN5c2xvZzsKKysJb3BlbmxvZyhsb2dfaWRlbnQsIChMT0dfUElEKSwgTE9H X1VTRVIpOworKyAgICB9CisgCisgICAgIHJwbVBsdWdpblNldERhdGEocGx1Z2luLCBzdGF0ZSk7 CistICAgIG9wZW5sb2cobG9nX2lkZW50LCAoTE9HX1BJRCksIExPR19VU0VSKTsKKysgICAgZnJl ZSh0YXJnZXQpOworICAgICByZXR1cm4gUlBNUkNfT0s7CisgfQorIAorIHN0YXRpYyB2b2lkIHN5 c2xvZ19jbGVhbnVwKHJwbVBsdWdpbiBwbHVnaW4pCisgeworICAgICBzdHJ1Y3QgbG9nc3RhdCAq IHN0YXRlID0gcnBtUGx1Z2luR2V0RGF0YShwbHVnaW4pOworKyAgICBpZiAoc3RhdGUtPmxvZyA9 PSBzeXNsb2cpCisrCWNsb3NlbG9nKCk7CisgICAgIGZyZWUoc3RhdGUpOworLSAgICBjbG9zZWxv ZygpOworIH0KKyAKKyBzdGF0aWMgcnBtUkMgc3lzbG9nX3RzbV9wcmUocnBtUGx1Z2luIHBsdWdp biwgcnBtdHMgdHMpCitAQCAtNTEsNyArODAsNyBAQCBzdGF0aWMgcnBtUkMgc3lzbG9nX3RzbV9w cmUocnBtUGx1Z2luIHBsdWdpbiwgcnBtdHMgdHMpCisgCXN0YXRlLT5sb2dnaW5nID0gMDsKKyAK KyAgICAgaWYgKHN0YXRlLT5sb2dnaW5nKSB7CistCXN5c2xvZyhMT0dfTk9USUNFLCAiVHJhbnNh Y3Rpb24gSUQgJXggc3RhcnRlZCIsIHJwbXRzR2V0VGlkKHRzKSk7CisrCXN0YXRlLT5sb2coTE9H X05PVElDRSwgIlRyYW5zYWN0aW9uIElEICV4IHN0YXJ0ZWQiLCBycG10c0dldFRpZCh0cykpOwor ICAgICB9CisgCisgICAgIHJldHVybiBSUE1SQ19PSzsKK0BAIC02MywxMCArOTIsMTAgQEAgc3Rh dGljIHJwbVJDIHN5c2xvZ190c21fcG9zdChycG1QbHVnaW4gcGx1Z2luLCBycG10cyB0cywgaW50 IHJlcykKKyAKKyAgICAgaWYgKHN0YXRlLT5sb2dnaW5nKSB7CisgCWlmIChzdGF0ZS0+cGtnZmFp bCB8fCBzdGF0ZS0+c2NyaXB0ZmFpbCkgeworLQkgICAgc3lzbG9nKExPR19XQVJOSU5HLCAiJXUg ZWxlbWVudHMgZmFpbGVkLCAldSBzY3JpcHRzIGZhaWxlZCIsCisrCSAgICBzdGF0ZS0+bG9nKExP R19XQVJOSU5HLCAiJXUgZWxlbWVudHMgZmFpbGVkLCAldSBzY3JpcHRzIGZhaWxlZCIsCisgCQkg ICBzdGF0ZS0+cGtnZmFpbCwgc3RhdGUtPnNjcmlwdGZhaWwpOworIAl9CistCXN5c2xvZyhMT0df Tk9USUNFLCAiVHJhbnNhY3Rpb24gSUQgJXggZmluaXNoZWQ6ICVkIiwKKysJc3RhdGUtPmxvZyhM T0dfTk9USUNFLCAiVHJhbnNhY3Rpb24gSUQgJXggZmluaXNoZWQ6ICVkIiwKKyAJCXJwbXRzR2V0 VGlkKHRzKSwgcmVzKTsKKyAgICAgfQorIAorQEAgLTEwMiw3ICsxMzEsNyBAQCBzdGF0aWMgcnBt UkMgc3lzbG9nX3BzbV9wb3N0KHJwbVBsdWdpbiBwbHVnaW4sIHJwbXRlIHRlLCBpbnQgcmVzKQor IAkgICAgc3RhdGUtPnBrZ2ZhaWwrKzsKKyAJfQorIAorLQlzeXNsb2cobHZsLCAiJXMgJXM6ICVz Iiwgb3AsIHBrZywgb3V0Y29tZSk7CisrCXN0YXRlLT5sb2cobHZsLCAiJXMgJXM6ICVzIiwgb3As IHBrZywgb3V0Y29tZSk7CisgICAgIH0KKyAgICAgcmV0dXJuIFJQTVJDX09LOworIH0KK0BAIC0x MTMsNyArMTQyLDcgQEAgc3RhdGljIHJwbVJDIHN5c2xvZ19zY3JpcHRsZXRfcG9zdChycG1QbHVn aW4gcGx1Z2luLAorICAgICBzdHJ1Y3QgbG9nc3RhdCAqIHN0YXRlID0gcnBtUGx1Z2luR2V0RGF0 YShwbHVnaW4pOworIAorICAgICBpZiAoc3RhdGUtPmxvZ2dpbmcgJiYgcmVzKSB7CistCXN5c2xv ZyhMT0dfV0FSTklORywgInNjcmlwdGxldCAlcyBmYWlsdXJlOiAlZFxuIiwgc19uYW1lLCByZXMp OworKwlzdGF0ZS0+bG9nKExPR19XQVJOSU5HLCAic2NyaXB0bGV0ICVzIGZhaWx1cmU6ICVkXG4i LCBzX25hbWUsIHJlcyk7CisgCXN0YXRlLT5zY3JpcHRmYWlsKys7CisgICAgIH0KKyAgICAgcmV0 dXJuIFJQTVJDX09LOworLS0gCisyLjU0LjAKKworCitGcm9tIGViNDRlYThlYmIzMDViZjEzMjA4 ZGFjNTUxMmJkNmUwMGMzMDg3ZWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBQYW51 IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+CitEYXRlOiBXZWQsIDIwIE1heSAyMDI2 IDE2OjM3OjEzICswMzAwCitTdWJqZWN0OiBbUEFUQ0ggNi82XSBSZXBvcnQgbWVhbmluZ2Z1bCBv cGVyYXRpb24gbmFtZXMgaW4gc3lzbG9nIG91dHB1dAorCitEZXRlcm1pbmUgYW5kIG91dHB1dCBo dW1hbiB1bmRlcnN0YW5kYWJsZSBvcGVyYXRpb25zLCBpbmNsdWRpbmcgdGhlCityZWxhdGVkIHRy YW5zYWN0aW9uIGVsZW1lbnRzIHdoZXJlIHJlbGV2YW50IGFuZCBleHBsYWluIGl0IGluIHRoZQor bWFudWFsLiBEcm9wIHRoZSBjb21tZW50IGFib3V0IG1ha2luZyB0aGluZ3MgbW9yZSBjb25maWd1 cmFibGUsIHRoYXQncworbm90IGhlbHBmdWwgdG8gdGhlIGNvbW11bml0eSAoZXhjZXB0IHBlcmhh cHMgaWYgdGhlIGRlZmF1bHQgaXMgYmFkLAorYXMgaXQgb3JpZ2luYWxseSB3YXMpLgorCitBZGQg dGVzdHMgbm93IHRoYXQgd2UgY2FuIGFjdHVhbGx5IHRlc3QgaXQuCisKK1JlbGF0ZWQ6IFJIRUwt MTU1MjcyCisoYmFja3BvcnRlZCBmcm9tIGNvbW1pdCA5OGJjZGIzNzM5N2MyM2M2Njg5YWI2NDgy NDg3NWY0MDIxYTk4NmVkKQorLS0tCisgZG9jcy9tYW4vcnBtLXBsdWdpbi1zeXNsb2cuOC5tZCB8 IDQ4ICsrKysrKysrKysrKysrKysKKyBwbHVnaW5zL3N5c2xvZy5jICAgICAgICAgICAgICAgIHwg OTcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tCisgMiBmaWxlcyBjaGFuZ2VkLCAx MzQgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9kb2NzL21h bi9ycG0tcGx1Z2luLXN5c2xvZy44Lm1kIGIvZG9jcy9tYW4vcnBtLXBsdWdpbi1zeXNsb2cuOC5t ZAoraW5kZXggNDdhNmJjNTQ5Li4wODk0NGM2YjcgMTAwNjQ0CistLS0gYS9kb2NzL21hbi9ycG0t cGx1Z2luLXN5c2xvZy44Lm1kCisrKysgYi9kb2NzL21hbi9ycG0tcGx1Z2luLXN5c2xvZy44Lm1k CitAQCAtMjYsNiArMjYsNTQgQEAgQ29uZmlndXJhdGlvbgorIAorIFNlZSAqKnJwbS1wbHVnaW5z KiooOCkgb24gaG93IHRvIGNvbnRyb2wgcGx1Z2lucyBpbiBnZW5lcmFsLgorIAorK091dHB1dAor Kz09PT09PQorKworK1RoZSBwbHVnaW4gdXNlcyAqKnJwbSoqIGFzIGl0cyBzeXNsb2cgaWRlbnRp dHkuCisrCisrVGhlIHBhY2thZ2UgbGV2ZWwgb3V0cHV0IGR1cmluZyB0cmFuc2FjdGlvbnMgaXMg YXMgZm9sbG93czoKKysKKytfT1BFUkFUSU9OXyBfTkVWUkFfIFsqKihmcm9tOioqIF9SRUxORVZS QV8qKikqKl0qKjoqKiBfU1RBVFVTXworKworK19PUEVSQVRJT05fIGlzIG9uZSBvZjoKKysKKyst ICoqY2xlYW51cCoqOiBjbGVhbnVwIG9mIHRoZSBwcmV2aW91cyB2ZXJzaW9uIGluICoqdXBncmFk ZSoqIG9yICoqZG93bmdyYWRlKioKKystICoqZG93bmdyYWRlKio6IGRvd25ncmFkZSBhbiBpbnN0 YWxsZWQgcGFja2FnZSB0byBhbiBvbGRlciB2ZXJzaW9uCisrLSAqKmVyYXNlKio6IGVyYXNlIHBh Y2thZ2UgZnJvbSB0aGUgc3lzdGVtCisrLSAqKmluc3RhbGwqKjogaW5zdGFsbCBhIG5ldyBwYWNr YWdlIG9uIHRoZSBzeXN0ZW0KKystICoqcmVwbGFjZSoqOiByZXBsYWNlIChvYnNvbGV0ZSkgYSBw cmV2aW91c2x5IGluc3RhbGxlZCBwYWNrYWdlIHdpdGggYW5vdGhlciBvbmUKKystICoqcmVzdG9y ZSoqOiByZXN0b3JlIHBlcm1pc3Npb25zIGFuZCBzaW1pbGFyIG9uIGFuIGluc3RhbGxlZCBwYWNr YWdlCisrLSAqKnVwZ3JhZGUqKjogdXBncmFkZSBhbiBpbnN0YWxsZWQgcGFja2FnZSB0byBhIG5l d2VyIHZlcnNpb24KKysKKytfTkVWUkFfIGlkZW50aWZpZXMgdGhlIHRyYW5zYWN0aW9uIGVsZW1l bnQgYmVpbmcgb3BlcmF0ZWQgb24uCisrTm90ZSB0aGF0IG9wZXJhdGlvbnMgKipkb3duZ3JhZGUq KiwgKipyZXBsYWNlKiogYW5kICoqdXBncmFkZSoqIGNvbnNpc3Qgb2YgdHdvCisrZWxlbWVudHM6 IGluc3RhbGwgb2Ygb25lIHBhY2thZ2UgdmVyc2lvbiBhbmQgcmVtb3ZhbCBvZiBhbm90aGVyLgor K0luIHRoZXNlIGNhc2VzLCB0aGUgcmVsYXRlZCBlbGVtZW50IGlkZW50aWZpZXIgX1JFTE5FVlJB XyBpcyBpbmRpY2F0ZWQKKytpbiBwYXJlbnRoZXNlcyBhZnRlciAqKmZyb206KiouICBfU1RBVFVT XyBpcyBvbmUgb2YgKipzdWNjZXNzKiogb3IgKipmYWlsdXJlKiouCisrCisrRXhhbXBsZXMKKys9 PT09PT09PQorKworKyoqam91cm5hbGN0bCAtdCBycG0qKgorKzogICBJbnNwZWN0IFJQTSB0cmFu c2FjdGlvbiBoaXN0b3J5IG9uIGEgc3lzdGVtZC1iYXNlZCBPUy4KKysKKysqKlBhY2thZ2UgYWFh IHVwZ3JhZGUgZnJvbSAxLjItMSB0byAyLjAtMSoqCisrYGBgCisrdXBncmFkZTogYWFhLTIuMC0x Lm5vYXJjaCAoZnJvbTogYWFhLTEuMi0xLm5vYXJjaCk6IHN1Y2Nlc3MKKytjbGVhbnVwOiBhYWEt MS4yLTEubm9hcmNoIChmcm9tOiBhYWEtMi4wLTEubm9hcmNoKTogc3VjY2VzcworK2BgYAorKwor KyoqUGFja2FnZSBiYmIgMS4zLTUgb2Jzb2xldGluZyBhYWEgMS4yLTEqKgorK2BgYAorK3JlcGxh Y2U6IGJiYi0xLjMtNS5ub2FyY2ggKGZyb206IGFhYS0xLjItMS5ub2FyY2gpOiBzdWNjZXNzCisr ZXJhc2U6IGFhYS0xLjItMS5ub2FyY2ggKGZyb206IGJiYi0xLjMtNS5ub2FyY2gpOiBzdWNjZXNz CisrYGBgCisrCisrKipQYWNrYWdlIGFhYSAxLjItMSBpbnN0YWxsIGZhaWx1cmUqKgorK2BgYAor K2luc3RhbGw6IGFhYS0xLjItMS5ub2FyY2g6IGZhaWx1cmUKKytgYGAKKysKKyBTRUUgQUxTTwor ID09PT09PT09CisgCitkaWZmIC0tZ2l0IGEvcGx1Z2lucy9zeXNsb2cuYyBiL3BsdWdpbnMvc3lz bG9nLmMKK2luZGV4IDVkYjI5NWY0Yi4uZGJjYzAxOGRiIDEwMDY0NAorLS0tIGEvcGx1Z2lucy9z eXNsb2cuYworKysrIGIvcGx1Z2lucy9zeXNsb2cuYworQEAgLTYsNiArNiw3IEBACisgCisgI2lu Y2x1ZGUgPHJwbS9ycG1sb2cuaD4KKyAjaW5jbHVkZSA8cnBtL3JwbW1hY3JvLmg+CisrI2luY2x1 ZGUgPHJwbS9ycG12ZXIuaD4KKyAjaW5jbHVkZSA8cnBtL3JwbXN0cmluZy5oPgorICNpbmNsdWRl IDxycG0vcnBtdHMuaD4KKyAjaW5jbHVkZSAicnBtcGx1Z2luLmgiCitAQCAtMTYsNiArMTcsNyBA QCBzdHJ1Y3QgbG9nc3RhdCB7CisgICAgIGludCBsb2dnaW5nOworICAgICB1bnNpZ25lZCBpbnQg c2NyaXB0ZmFpbDsKKyAgICAgdW5zaWduZWQgaW50IHBrZ2ZhaWw7CisrICAgIHJwbXRzIHRzOwor ICAgICBsb2dnZXJmdW5jIGxvZzsKKyB9OworIAorQEAgLTMxLDcgKzMzLDYgQEAgc3RhdGljIHZv aWQgZXJybG9nKGludCBwcmlvLCBjb25zdCBjaGFyICpmbXQsIC4uLikKKyAKKyBzdGF0aWMgcnBt UkMgc3lzbG9nX2luaXQocnBtUGx1Z2luIHBsdWdpbiwgcnBtdHMgdHMpCisgeworLSAgICAvKiBY WFggbWFrZSB0aGlzIGNvbmZpZ3VyYWJsZT8gKi8KKyAgICAgY29uc3QgY2hhciAqIGxvZ19pZGVu dCA9ICJycG0iOworICAgICBzdHJ1Y3QgbG9nc3RhdCAqIHN0YXRlID0gcmNhbGxvYygxLCBzaXpl b2YoKnN0YXRlKSk7CisgICAgIGNoYXIgKnRhcmdldCA9IHJwbUV4cGFuZCgiJXs/X190cmFuc2Fj dGlvbl9zeXNsb2dfdGFyZ2V0fSIsIE5VTEwpOworQEAgLTY1LDYgKzY2LDcgQEAgc3RhdGljIHJw bVJDIHN5c2xvZ190c21fcHJlKHJwbVBsdWdpbiBwbHVnaW4sIHJwbXRzIHRzKQorICAgICBzdHJ1 Y3QgbG9nc3RhdCAqIHN0YXRlID0gcnBtUGx1Z2luR2V0RGF0YShwbHVnaW4pOworICAgICAKKyAg ICAgLyogUmVzZXQgY291bnRlcnMgKi8KKysgICAgc3RhdGUtPnRzID0gdHM7CisgICAgIHN0YXRl LT5zY3JpcHRmYWlsID0gMDsKKyAgICAgc3RhdGUtPnBrZ2ZhaWwgPSAwOworIAorQEAgLTEwMywx NSArMTA1LDg5IEBAIHN0YXRpYyBycG1SQyBzeXNsb2dfdHNtX3Bvc3QocnBtUGx1Z2luIHBsdWdp biwgcnBtdHMgdHMsIGludCByZXMpCisgICAgIHJldHVybiBSUE1SQ19PSzsKKyB9CisgCistc3Rh dGljIGNvbnN0IGNoYXIgKmdldE9wKHJwbXRlIHRlKQorK3N0YXRpYyBycG10ZSBmaW5kRGVwZW5k ZW50KHJwbXRzIHRzLCBycG10ZSB0ZSkKKyB7CisrICAgIHJwbXRlIGRlcCA9IE5VTEw7CisrICAg IHJwbXRlIHAgPSBOVUxMOworKyAgICBycG10c2kgcGkgPSBycG10c2lJbml0KHRzKTsKKysgICAg d2hpbGUgKChwID0gcnBtdHNpTmV4dChwaSwgMCkpICE9IE5VTEwpIHsKKysJaWYgKHJwbXRlRGVw ZW5kc09uKHApID09IHRlKSB7CisrCSAgICBkZXAgPSBwOworKwkgICAgYnJlYWs7CisrCX0KKysg ICAgfQorKyAgICBycG10c2lGcmVlKHBpKTsKKysKKysgICAgcmV0dXJuIGRlcDsKKyt9CisrCisr c3RhdGljIGludCBpc09ic29sZXRlKHJwbXRlIGEsIHJwbXRlIGIpCisreworKyAgICByZXR1cm4g c3RyY21wKHJwbXRlTihhKSwgcnBtdGVOKGIpKTsKKyt9CisrCisrc3RhdGljIGludCBpc0Rvd25n cmFkZShycG10ZSBhLCBycG10ZSBiKQorK3sKKysgICAgaW50IGRvd25ncmFkZSA9IDA7CisrICAg IHJwbXZlciBhdiA9IHJwbXZlclBhcnNlKHJwbXRlRVZSKGEpKTsKKysgICAgcnBtdmVyIGJ2ID0g cnBtdmVyUGFyc2UocnBtdGVFVlIoYikpOworKworKyAgICBpZiAoYXYgJiYgYnYgJiYgcnBtdmVy Q21wKGF2LCBidikgPCAwKQorKwlkb3duZ3JhZGUgPSAxOworKworKyAgICBycG12ZXJGcmVlKGF2 KTsKKysgICAgcnBtdmVyRnJlZShidik7CisrICAgIHJldHVybiBkb3duZ3JhZGU7CisrfQorKwor K3N0YXRpYyBjaGFyICpnZXRPcChycG10cyB0cywgcnBtdGUgdGUpCisreworKyAgICBjaGFyICpy ZXQgPSBOVUxMOworKyAgICBjb25zdCBjaGFyICpvcCA9IE5VTEw7CisrICAgIHJwbXRlIGRlcCA9 IE5VTEw7CisrCisgICAgIHN3aXRjaCAocnBtdGVUeXBlKHRlKSkgeworLSAgICBjYXNlIFRSX0FE REVEOglyZXR1cm4gImluc3RhbGwiOworLSAgICBjYXNlIFRSX1JFTU9WRUQ6CXJldHVybiAiZXJh c2UiOworLSAgICBjYXNlIFRSX1JQTURCOglyZXR1cm4gInJwbWRiIjsKKy0gICAgY2FzZSBUUl9S RVNUT1JFRDoJcmV0dXJuICJyZXN0b3JlIjsKKysgICAgY2FzZSBUUl9BRERFRDoKKysJZGVwID0g ZmluZERlcGVuZGVudCh0cywgdGUpOworKwlpZiAoZGVwKSB7CisrCSAgICBpZiAoaXNPYnNvbGV0 ZSh0ZSwgZGVwKSkgeworKwkJb3AgPSAicmVwbGFjZSI7CisrCSAgICB9IGVsc2UgeworKwkJb3Ag PSBpc0Rvd25ncmFkZSh0ZSwgZGVwKSA/ICJkb3duZ3JhZGUiIDogInVwZ3JhZGUiOworKwkgICAg fQorKwl9IGVsc2UgeworKwkgICAgb3AgPSAiaW5zdGFsbCI7CisrCX0KKysJYnJlYWs7CisrICAg IGNhc2UgVFJfUkVNT1ZFRDoKKysJZGVwID0gcnBtdGVEZXBlbmRzT24odGUpOworKwlpZiAoZGVw ICYmICFpc09ic29sZXRlKHRlLCBkZXApKSB7CisrCSAgICBvcCA9ICJjbGVhbnVwIjsKKysJfSBl bHNlIHsKKysJICAgIG9wID0gImVyYXNlIjsKKysJfQorKwlicmVhazsKKysgICAgY2FzZSBUUl9S UE1EQjoKKysJLyogbm90IGFuIG9wZXJhdGlvbiAqLworKwlicmVhazsKKysgICAgY2FzZSBUUl9S RVNUT1JFRDoKKysJb3AgPSAicmVzdG9yZSI7CisrCWJyZWFrOworKyAgICBkZWZhdWx0OgorKwlv cCA9ICI8dW5rbm93bj4iOworKwlicmVhazsKKyAgICAgfQorLSAgICByZXR1cm4gIjx1bmtub3du PiI7CisrCisrICAgIGlmIChvcCkgeworKwlpZiAoZGVwKSB7CisrCSAgICByYXNwcmludGYoJnJl dCwgIiVzOiAlcyAoZnJvbTogJXMpIiwgb3AsCisrCQkJcnBtdGVORVZSQSh0ZSksIHJwbXRlTkVW UkEoZGVwKSk7CisrCX0gZWxzZSB7CisrCSAgICByYXNwcmludGYoJnJldCwgIiVzOiAlcyIsIG9w LCBycG10ZU5FVlJBKHRlKSk7CisrCX0KKysgICAgfQorKworKyAgICByZXR1cm4gcmV0OworIH0K KyAKKyBzdGF0aWMgcnBtUkMgc3lzbG9nX3BzbV9wb3N0KHJwbVBsdWdpbiBwbHVnaW4sIHJwbXRl IHRlLCBpbnQgcmVzKQorQEAgLTEyMCwxMCArMTk2LDggQEAgc3RhdGljIHJwbVJDIHN5c2xvZ19w c21fcG9zdChycG1QbHVnaW4gcGx1Z2luLCBycG10ZSB0ZSwgaW50IHJlcykKKyAKKyAgICAgaWYg KHN0YXRlLT5sb2dnaW5nKSB7CisgCWludCBsdmwgPSBMT0dfTk9USUNFOworLQljb25zdCBjaGFy ICpvcCA9IGdldE9wKHRlKTsKKysJY2hhciAqb3AgPSBnZXRPcChzdGF0ZS0+dHMsIHRlKTsKKyAJ Y29uc3QgY2hhciAqb3V0Y29tZSA9ICJzdWNjZXNzIjsKKy0JLyogWFhYOiBQZXJtaXQgY29uZmln dXJhYmxlIGhlYWRlciBxdWVyeWZvcm1hdD8gKi8KKy0JY29uc3QgY2hhciAqcGtnID0gcnBtdGVO RVZSQSh0ZSk7CisgCisgCWlmIChyZXMgIT0gUlBNUkNfT0spIHsKKyAJICAgIGx2bCA9IExPR19X QVJOSU5HOworQEAgLTEzMSw3ICsyMDUsOCBAQCBzdGF0aWMgcnBtUkMgc3lzbG9nX3BzbV9wb3N0 KHJwbVBsdWdpbiBwbHVnaW4sIHJwbXRlIHRlLCBpbnQgcmVzKQorIAkgICAgc3RhdGUtPnBrZ2Zh aWwrKzsKKyAJfQorIAorLQlzdGF0ZS0+bG9nKGx2bCwgIiVzICVzOiAlcyIsIG9wLCBwa2csIG91 dGNvbWUpOworKwlzdGF0ZS0+bG9nKGx2bCwgIiVzOiAlcyIsIG9wLCBvdXRjb21lKTsKKysJZnJl ZShvcCk7CisgICAgIH0KKyAgICAgcmV0dXJuIFJQTVJDX09LOworIH0KKy0tIAorMi41NC4wCisK K2RpZmYgLXVwIHJwbS00LjE5LjEuMS9kb2NzL21hbi9ycG0tcGx1Z2luLXN5c2xvZy44Lm9yaWcg cnBtLTQuMTkuMS4xL2RvY3MvbWFuL3JwbS1wbHVnaW4tc3lzbG9nLjgKKy0tLSBycG0tNC4xOS4x LjEvZG9jcy9tYW4vcnBtLXBsdWdpbi1zeXNsb2cuOC5vcmlnCTIwMjYtMDYtMTggMDk6MjY6NDUu MTA2MzM3OTU3ICswMjAwCisrKysgcnBtLTQuMTkuMS4xL2RvY3MvbWFuL3JwbS1wbHVnaW4tc3lz bG9nLjgJMjAyNi0wNi0xOCAwOToyNjo0OC4wNzIzMjEwMzQgKzAyMDAKK0BAIC0xLDMyICsxLDgx IEBACistLlwiIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IFBhbmRvYyAzLjEuMworKy5cIiBB dXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBQYW5kb2MgMy4xLjExLjEKKyAuXCIKKy0uXCIgRGVm aW5lIFYgZm9udCBmb3IgaW5saW5lIHZlcmJhdGltLCB1c2luZyBDIGZvbnQgaW4gZm9ybWF0cwor LS5cIiB0aGF0IHJlbmRlciB0aGlzLCBhbmQgb3RoZXJ3aXNlIEIgZm9udC4KKy0uaWUgIlxmW0NC XXhcZltdIngiIFx7XAorLS4gZnRyIFYgQgorLS4gZnRyIFZJIEJJCistLiBmdHIgVkIgQgorLS4g ZnRyIFZCSSBCSQorLS5cfQorLS5lbCBce1wKKy0uIGZ0ciBWIENSCistLiBmdHIgVkkgQ0kKKy0u IGZ0ciBWQiBDQgorLS4gZnRyIFZCSSBDQkkKKy0uXH0KKy0uVEggIlJQTS1TWVNMT0ciICI4IiAi MTQgQXByIDIwMTYiICIiICIiCistLmh5CisrLlRIICJSUE1cLVNZU0xPRyIgIjgiICIxNCBBcHIg MjAxNiIgIiIgIiIKKyAuU0ggTkFNRQorLS5QUAorLXJwbS1wbHVnaW4tc3lzbG9nIC0gU3lzbG9n IHBsdWdpbiBmb3IgdGhlIFJQTSBQYWNrYWdlIE1hbmFnZXIKKytycG1cLXBsdWdpblwtc3lzbG9n IFwtIFN5c2xvZyBwbHVnaW4gZm9yIHRoZSBSUE0gUGFja2FnZSBNYW5hZ2VyCisgLlNIIERlc2Ny aXB0aW9uCistLlBQCisgVGhlIHBsdWdpbiB3cml0ZXMgYmFzaWMgaW5mb3JtYXRpb24gYWJvdXQg cnBtIHRyYW5zYWN0aW9ucyB0byB0aGUgc3lzbG9nCistLSBsaWtlIHRyYW5zYWN0aW9ucyBydW4g YW5kIHBhY2thZ2VzIGluc3RhbGxlZCBvciByZW1vdmVkLgorK1wtIGxpa2UgdHJhbnNhY3Rpb25z IHJ1biBhbmQgcGFja2FnZXMgaW5zdGFsbGVkIG9yIHJlbW92ZWQuCisgLlNIIENvbmZpZ3VyYXRp b24KKysuVFAKKytcZltCXSVfX3RyYW5zYWN0aW9uX3N5c2xvZ190YXJnZXRcZltSXQorK1NwZWNp ZnkgdGFyZ2V0IG91dHB1dCBmb3IgdGhlIHBsdWdpbi4KKytTdXBwb3J0ZWQgdmFsdWVzIGFyZToK KysuUlMKKysuSVAgXFtidV0gMgorK1xmW0Jdc3lzbG9nXGZbUl06IHN5c3RlbSBsb2cgKGRlZmF1 bHQpCisrLklQIFxbYnVdIDIKKytcZltCXXN0ZGVyclxmW1JdOiBzdGFuZGFyZCBlcnJvcgorKy5S RQorIC5QUAorLVRoZXJlIGFyZSBjdXJyZW50bHkgbm8gb3B0aW9ucyBmb3IgdGhpcyBwbHVnaW4g aW4gcGFydGljdWxhci4KKy1TZWUgXGZbQl1ycG0tcGx1Z2luc1xmW1JdKDgpIG9uIGhvdyB0byBj b250cm9sIHBsdWdpbnMgaW4gZ2VuZXJhbC4KKy0uU0ggU0VFIEFMU08KKytTZWUgXGZbQl1ycG1c LXBsdWdpbnNcZltSXSg4KSBvbiBob3cgdG8gY29udHJvbCBwbHVnaW5zIGluIGdlbmVyYWwuCisr LlNIIE91dHB1dAorK1RoZSBwbHVnaW4gdXNlcyBcZltCXXJwbVxmW1JdIGFzIGl0cyBzeXNsb2cg aWRlbnRpdHkuCisrLlBQCisrVGhlIHBhY2thZ2UgbGV2ZWwgb3V0cHV0IGR1cmluZyB0cmFuc2Fj dGlvbnMgaXMgYXMgZm9sbG93czoKKysuUFAKKytcZltJXU9QRVJBVElPTlxmW1JdIFxmW0ldTkVW UkFcZltSXSBbXGZbQl0oZnJvbTpcZltSXQorK1xmW0ldUkVMTkVWUkFcZltSXVxmW0JdKVxmW1Jd XVxmW0JdOlxmW1JdIFxmW0ldU1RBVFVTXGZbUl0KKyAuUFAKKy1cZltCXXJwbVxmW1JdKDgpLCBc ZltCXXJwbS1wbHVnaW5zXGZbUl0oOCkKKytcZltJXU9QRVJBVElPTlxmW1JdIGlzIG9uZSBvZjoK KysuSVAgXFtidV0gMgorK1xmW0JdY2xlYW51cFxmW1JdOiBjbGVhbnVwIG9mIHRoZSBwcmV2aW91 cyB2ZXJzaW9uIGluIFxmW0JddXBncmFkZVxmW1JdCisrb3IgXGZbQl1kb3duZ3JhZGVcZltSXQor Ky5JUCBcW2J1XSAyCisrXGZbQl1kb3duZ3JhZGVcZltSXTogZG93bmdyYWRlIGFuIGluc3RhbGxl ZCBwYWNrYWdlIHRvIGFuIG9sZGVyIHZlcnNpb24KKysuSVAgXFtidV0gMgorK1xmW0JdZXJhc2Vc ZltSXTogZXJhc2UgcGFja2FnZSBmcm9tIHRoZSBzeXN0ZW0KKysuSVAgXFtidV0gMgorK1xmW0Jd aW5zdGFsbFxmW1JdOiBpbnN0YWxsIGEgbmV3IHBhY2thZ2Ugb24gdGhlIHN5c3RlbQorKy5JUCBc W2J1XSAyCisrXGZbQl1yZXBsYWNlXGZbUl06IHJlcGxhY2UgKG9ic29sZXRlKSBhIHByZXZpb3Vz bHkgaW5zdGFsbGVkIHBhY2thZ2UKKyt3aXRoIGFub3RoZXIgb25lCisrLklQIFxbYnVdIDIKKytc ZltCXXJlc3RvcmVcZltSXTogcmVzdG9yZSBwZXJtaXNzaW9ucyBhbmQgc2ltaWxhciBvbiBhbiBp bnN0YWxsZWQKKytwYWNrYWdlCisrLklQIFxbYnVdIDIKKytcZltCXXVwZ3JhZGVcZltSXTogdXBn cmFkZSBhbiBpbnN0YWxsZWQgcGFja2FnZSB0byBhIG5ld2VyIHZlcnNpb24KKysuUFAKKytcZltJ XU5FVlJBXGZbUl0gaWRlbnRpZmllcyB0aGUgdHJhbnNhY3Rpb24gZWxlbWVudCBiZWluZyBvcGVy YXRlZCBvbi4KKytOb3RlIHRoYXQgb3BlcmF0aW9ucyBcZltCXWRvd25ncmFkZVxmW1JdLCBcZltC XXJlcGxhY2VcZltSXSBhbmQKKytcZltCXXVwZ3JhZGVcZltSXSBjb25zaXN0IG9mIHR3byBlbGVt ZW50czogaW5zdGFsbCBvZiBvbmUgcGFja2FnZQorK3ZlcnNpb24gYW5kIHJlbW92YWwgb2YgYW5v dGhlci4KKytJbiB0aGVzZSBjYXNlcywgdGhlIHJlbGF0ZWQgZWxlbWVudCBpZGVudGlmaWVyIFxm W0ldUkVMTkVWUkFcZltSXSBpcworK2luZGljYXRlZCBpbiBwYXJlbnRoZXNlcyBhZnRlciBcZltC XWZyb206XGZbUl0uCisrXGZbSV1TVEFUVVNcZltSXSBpcyBvbmUgb2YgXGZbQl1zdWNjZXNzXGZb Ul0gb3IgXGZbQl1mYWlsdXJlXGZbUl0uCisrLlNIIEV4YW1wbGVzCisrLlRQCisrXGZbQl1qb3Vy bmFsY3RsIFwtdCBycG1cZltSXQorK0luc3BlY3QgUlBNIHRyYW5zYWN0aW9uIGhpc3Rvcnkgb24g YSBzeXN0ZW1kXC1iYXNlZCBPUy4KKysuUFAKKytcZltCXVBhY2thZ2UgYWFhIHVwZ3JhZGUgZnJv bSAxLjJcLTEgdG8gMi4wXC0xXGZbUl0KKysuSVAKKysuRVgKKyt1cGdyYWRlOiBhYWFcLTIuMFwt MS5ub2FyY2ggKGZyb206IGFhYVwtMS4yXC0xLm5vYXJjaCk6IHN1Y2Nlc3MKKytjbGVhbnVwOiBh YWFcLTEuMlwtMS5ub2FyY2ggKGZyb206IGFhYVwtMi4wXC0xLm5vYXJjaCk6IHN1Y2Nlc3MKKysu RUUKKysuUFAKKytcZltCXVBhY2thZ2UgYmJiIDEuM1wtNSBvYnNvbGV0aW5nIGFhYSAxLjJcLTFc ZltSXQorKy5JUAorKy5FWAorK3JlcGxhY2U6IGJiYlwtMS4zXC01Lm5vYXJjaCAoZnJvbTogYWFh XC0xLjJcLTEubm9hcmNoKTogc3VjY2VzcworK2VyYXNlOiBhYWFcLTEuMlwtMS5ub2FyY2ggKGZy b206IGJiYlwtMS4zXC01Lm5vYXJjaCk6IHN1Y2Nlc3MKKysuRUUKKysuUFAKKytcZltCXVBhY2th Z2UgYWFhIDEuMlwtMSBpbnN0YWxsIGZhaWx1cmVcZltSXQorKy5JUAorKy5FWAorK2luc3RhbGw6 IGFhYVwtMS4yXC0xLm5vYXJjaDogZmFpbHVyZQorKy5FRQorKy5TSCBTRUUgQUxTTworK1xmW0Jd cnBtXGZbUl0oOCksIFxmW0JdcnBtXC1wbHVnaW5zXGZbUl0oOCkKCmRpZmYgLS1naXQgYS9tYWNy b3MuZm9yZWFjaCBiL21hY3Jvcy5mb3JlYWNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmU1NTQyNDgKLS0tIC9kZXYvbnVsbAorKysgYi9tYWNyb3MuZm9yZWFjaApAQCAtMCww ICsxLDI5IEBACisjIFRoaXMgaXMgYSBuYcOvdmUgaW1wbGVtZW50YXRpb24gb2YgYSBmb3JhY2gg UlBNIG1hY3JvLgorIyBJdCBhbGxvd3MgdG8gcmVwZWF0IGJsb2NrcyBpbiB0aGUgc3BlY2ZpbGUg Zm9yIGRpZmZlcmVudCBQeXRob24gdmVyc2lvbnMgYnkgdXNpbmcKKyMgICAgICV7Zm9yZWFjaCAt bSBweXRob24zX3BrZ3ZlcnNpb24gMy4xMyAzLjE0ICV7cXVvdGU6Li4ufX0KKyMgT3IsIGxlc3Mg Ym9pbGVycGxhdHk6CisjICAgICAlZ2xvYmFsIHB5dGhvbjNfcGtndmVyc2lvbnMgMy4xMyAzLjE0 CisjICAgICAle2ZvcmVhY2hweSAle3F1b3RlOi4uLn19CisjIEhvd2V2ZXIgbm90ZSB0aGF0IGFu eSBtYWNybyB3aGljaCB2YWx1ZSBkZXBlbmRzIG9uICVweXRob24zX3BrZ3ZlcnNpb24KKyMgbmVl ZHMgdG8gYmUgZXNjYXBlZCBpbiB0aGUgJXtxdW90ZTouLi59IGJsb2NrLgorIyBTaW1pbGFyaWx5 LCBzb21lIHNwZWNpYWwgbWFjcm8tbG9va2luZyB0aGluZ3MgaW4gJWZpbGVzIChsaWtlICVsaWNl bnNlKQorIyBuZWVkIHRvIGJlIGRvdWJsZS1lc2NhcGVkICglJSUlbGljZW5zZSkgb3IgZWxzZSB0 aGV5IGV4cGFuZCB0byB0aGUgYWN0dWFsIExpY2Vuc2UuCisKKyVmb3JlYWNoKG06KSAle2x1YToK KyAgaWYgb3B0Lm0gPT0gbmlsIG9yIG9wdC5tID09ICIiIHRoZW4KKyAgICBycG0uZXhwYW5kKCIl e2Vycm9yOiUlZm9yZWFjaCByZXF1aXJlcyAtbSA8bWFjcm9fbmFtZT59IikKKyAgZW5kCisgIGlm ICNhcmcgPCAyIHRoZW4KKyAgICBycG0uZXhwYW5kKCIle2Vycm9yOiUlZm9yZWFjaCByZXF1aXJl cyBhdCBsZWFzdCBvbmUgbWFjcm8gdmFsdWUgYW5kIGEgdGVtcGxhdGUgc3RyaW5nfSIpCisgIGVu ZAorICAtLSBUaGUgc3RyaW5nIHRlbXBsYXRlIGlzIHRoZSBsYXN0IGFyZ3VtZW50CisgIGxvY2Fs IHRlbXBsYXRlID0gYXJnWyNhcmddCisgIGZvciBpID0gMSwgI2FyZy0xIGRvCisgICAgcnBtLmRl ZmluZShvcHQubSAuLiAiICIgLi4gYXJnW2ldKQorICAgIHByaW50KHJwbS5leHBhbmQodGVtcGxh dGUpKQorICAgIHByaW50KCJcXG4iKQorICAgIHJwbS51bmRlZmluZShvcHQubSkKKyAgZW5kCit9 CisKKyVmb3JlYWNocHkoKSAle2ZvcmVhY2ggLW0gcHl0aG9uM19wa2d2ZXJzaW9uICV7cHl0aG9u M19wa2d2ZXJzaW9uc30gJXtxdW90ZTolMX19CgpkaWZmIC0tZ2l0IGEvcHl0aG9uMy1ycG0uc3Bl YyBiL3B5dGhvbjMtcnBtLnNwZWMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u ODMyY2NhYQotLS0gL2Rldi9udWxsCisrKyBiL3B5dGhvbjMtcnBtLnNwZWMKQEAgLTAsMCArMSwx MTQyIEBACisjIFRoZSBQeXRob24gdmVyc2lvbnMgd2UgYnVpbGQgZm9yCislZ2xvYmFsIHB5dGhv bjNfcGtndmVyc2lvbnMgMy4xMyAzLjE0CisKKyMgYnVpbGQgYWdhaW5zdCB4ej8KKyViY29uZF93 aXRob3V0IHh6CisjIGJ1aWxkIHdpdGggcGx1Z2lucz8KKyViY29uZF93aXRob3V0IHBsdWdpbnMK KyMgYnVpbGQgd2l0aCBsaWJhcmNoaXZlPyAobmVlZGVkIGZvciBycG0yYXJjaGl2ZSkKKyViY29u ZF93aXRob3V0IGxpYmFyY2hpdmUKKyMgYnVpbGQgd2l0aCBsaWJpbWFldm0uc28KKyViY29uZF93 aXRob3V0IGxpYmltYWV2bQorIyBidWlsZCB3aXRoIGZzdmVyaXR5IHN1cHBvcnQ/CislaWYgMCV7 P3JoZWx9CislYmNvbmRfd2l0aCBmc3Zlcml0eQorJWVsc2UKKyViY29uZF93aXRob3V0IGZzdmVy aXR5CislZW5kaWYKKyMgYnVpbGQgd2l0aCB6c3RkIHN1cHBvcnQ/CislYmNvbmRfd2l0aG91dCB6 c3RkCisjIGJ1aWxkIHdpdGggbmRiIGJhY2tlbmQ/CislYmNvbmRfd2l0aG91dCBuZGIKKyMgYnVp bGQgd2l0aCBzcWxpdGUgc3VwcG9ydD8KKyViY29uZF93aXRob3V0IHNxbGl0ZQorIyBidWlsZCB3 aXRoIGJkYl9ybyBzdXBwb3J0PworJWJjb25kX3dpdGhvdXQgYmRiX3JvCisjIGJ1aWxkIHdpdGgg c2VxdW9pYSBjcnlwdG8/CislYmNvbmRfd2l0aG91dCBzZXF1b2lhCisKKyVkZWZpbmUgcnBtaG9t ZSAvdXNyL2xpYi9ycG0KKworJWdsb2JhbCBycG12ZXIgNC4xOS4xLjEKKyNnbG9iYWwgc25hcHZl ciByYzEKKyVnbG9iYWwgYmFzZXJlbGVhc2UgMjUKKyVnbG9iYWwgc292ZXIgMTAKKworJWdsb2Jh bCByaGVscmVsICV7YmFzZXJlbGVhc2V9CislZ2xvYmFsIHJlbF9uZXh0ICV7bHVhOnByaW50KHRv bnVtYmVyKHJwbS5leHBhbmQoIiViYXNlcmVsZWFzZSIpKSArIDEpfQorJWdsb2JhbCByaGVscmVs X25leHQgJXs/c25hcHZlcjowLiV7c25hcHZlcn0ufSV7cmVsX25leHR9CisKKyMgQnVtcCB0aGlz IGZvciBFUEVMIG9ubHkgcmVidWlsZHMsIHJlc2V0IHdoZW4gJSViYXNlcmVsZWFzZSB3YXMgYnVt cGVkCislZ2xvYmFsIGVwZWxyZWxlYXNlIDIKKworJWdsb2JhbCBzcmN2ZXIgJXtycG12ZXJ9JXs/ c25hcHZlcjotJXtzbmFwdmVyfX0KKyVnbG9iYWwgc3JjZGlyICV7P3NuYXB2ZXI6dGVzdGluZ30l eyE/c25hcHZlcjpycG0tJShlY2hvICV7cnBtdmVyfSB8IGN1dCAtZCcuJyAtZjEtMikueH0KKwor U3VtbWFyeTogUHl0aG9uIDMuWCBwYWNrYWdlcyB3aXRoIFJQTSBiaW5kaW5ncworTmFtZTogcHl0 aG9uMy1ycG0KK1ZlcnNpb246ICV7cnBtdmVyfQorUmVsZWFzZTogJXtyaGVscmVsfS4le2VwZWxy ZWxlYXNlfSV7P2Rpc3R9CitVcmw6IGh0dHA6Ly93d3cucnBtLm9yZy8KK0xpY2Vuc2U6IEdQTC0y LjAtb3ItbGF0ZXIKK1NvdXJjZTA6IGh0dHA6Ly9mdHAucnBtLm9yZy9yZWxlYXNlcy8le3NyY2Rp cn0vcnBtLSV7c3JjdmVyfS50YXIuYnoyCisKK1NvdXJjZTEwOiBycG1kYi1yZWJ1aWxkLnNlcnZp Y2UKKworU291cmNlMjA6IHJwbWRiLW1pZ3JhdGUuc2VydmljZQorU291cmNlMjE6IHJwbWRiX21p Z3JhdGUKKworU291cmNlMzA6IG1hY3Jvcy5ycG1zaWduLXNlcXVvaWEKKworIyBFUEVMLW9ubHkg bWFjcm8gaGVscGVyCitTb3VyY2U5MDogbWFjcm9zLmZvcmVhY2gKKyVpZiAle2V4aXN0czole1NP VVJDRTkwfX0KKyAgJXtsb2FkOiV7U09VUkNFOTB9fQorJWVsaWYgJXtleGlzdHM6bWFjcm9zLmZv cmVhY2h9CisgICMgc29tZXRoaW5nIGlzIHBhcnNpbmcgdGhlIHNwZWMgd2l0aG91dCAlJV9zb3Vy Y2VkaXIgbWFjcm8gcHJvcGVybHkgc2V0CisgICV7bG9hZDptYWNyb3MuZm9yZWFjaH0KKyVlbmRp ZgorCisjIFRoaXMgcHJldmVudHMgYSBidWlsZCB3aXRoIHVuaW5zdGFsbGFibGUgcnVudGltZSBS ZXF1aXJlcworQnVpbGRSZXF1aXJlczogKHJwbS1saWJzID49ICV7dmVyc2lvbn0tJXtyaGVscmVs fSB3aXRoIHJwbS1saWJzIDwgJXt2ZXJzaW9ufS0le3JoZWxyZWxfbmV4dH0pCitCdWlsZFJlcXVp cmVzOiBycG0tc2lnbi1saWJzCisKKyMgWFhYIGdlbmVyYWxseSBhc3N1bWVkIHRvIGJlIGluc3Rh bGxlZCBidXQgbWFrZSBpdCBleHBsaWNpdCBhcyBycG0KKyMgaXMgYSBiaXQgc3BlY2lhbC4uLgor QnVpbGRSZXF1aXJlczogcmVkaGF0LXJwbS1jb25maWcgPj0gOTQKK0J1aWxkUmVxdWlyZXM6IHN5 c3RlbWQtcnBtLW1hY3JvcworQnVpbGRSZXF1aXJlczogZ2NjIG1ha2UKK0J1aWxkUmVxdWlyZXM6 IGNtYWtlID49IDMuMTgKK0J1aWxkUmVxdWlyZXM6IGdhd2sKK0J1aWxkUmVxdWlyZXM6IGVsZnV0 aWxzLWRldmVsID49IDAuMTEyCitCdWlsZFJlcXVpcmVzOiBlbGZ1dGlscy1saWJlbGYtZGV2ZWwK K0J1aWxkUmVxdWlyZXM6IHJlYWRsaW5lLWRldmVsIHpsaWItZGV2ZWwKKyMgVGhlIHBvcHQgdmVy c2lvbiBoZXJlIGp1c3QgZG9jdW1lbnRzIGFuIG9sZGVyIGtub3duLWdvb2QgdmVyc2lvbgorQnVp bGRSZXF1aXJlczogcG9wdC1kZXZlbCA+PSAxLjEwLjIKK0J1aWxkUmVxdWlyZXM6IGZpbGUtZGV2 ZWwKK0J1aWxkUmVxdWlyZXM6IGdldHRleHQtZGV2ZWwKK0J1aWxkUmVxdWlyZXM6IG5jdXJzZXMt ZGV2ZWwKK0J1aWxkUmVxdWlyZXM6IGJ6aXAyLWRldmVsID49IDAuOS4wYy0yCitCdWlsZFJlcXVp cmVzOiBsdWEtZGV2ZWwgPj0gNS4xCitCdWlsZFJlcXVpcmVzOiBsaWJjYXAtZGV2ZWwKK0J1aWxk UmVxdWlyZXM6IGxpYmFjbC1kZXZlbAorJWlmICV7d2l0aCB4en0KK0J1aWxkUmVxdWlyZXM6IHh6 LWRldmVsID49IDQuOTk5LjgKKyVlbmRpZgorJWlmICV7d2l0aCBsaWJhcmNoaXZlfQorQnVpbGRS ZXF1aXJlczogbGliYXJjaGl2ZS1kZXZlbAorJWVuZGlmCislaWYgJXt3aXRoIHpzdGR9CitCdWls ZFJlcXVpcmVzOiBsaWJ6c3RkLWRldmVsCislZW5kaWYKKyVpZiAle3dpdGggc3FsaXRlfQorQnVp bGRSZXF1aXJlczogc3FsaXRlLWRldmVsCislZW5kaWYKKworIyBOZWVkZWQgZm9yIHJlLWJ1aWxk aW5nIHRoZSBkb2N1bWVudGF0aW9uIGFuZCBtYW4gcGFnZXMKKyMgbm9ybWFsbHkgdGhvc2UgYXJl IHNoaXBwZWQgaW4gdGhlIHRhcmJhbGwgcHJlLWJ1aWxkCisjIGJ1dCBuZWVkIHJlLWJ1aWxkaW5n IGlmIHNvdXJjZXMgYXJlIHBhdGNoZWQKKyVpZiAwCitCdWlsZFJlcXVpcmVzOiBwYW5kb2MKK0J1 aWxkUmVxdWlyZXM6IGRveHlnZW4KKyVlbmRpZgorCisKKyVpZiAle3dpdGggc2VxdW9pYX0KKyVn bG9iYWwgY3J5cHRvIHNlcXVvaWEKK0J1aWxkUmVxdWlyZXM6IHJwbS1zZXF1b2lhLWRldmVsID49 IDEuOS4wCislZWxzZQorJWdsb2JhbCBjcnlwdG8gb3BlbnNzbAorQnVpbGRSZXF1aXJlczogb3Bl bnNzbC1kZXZlbAorJWVuZGlmCisKKyMgQ291cGxlIG9mIHBhdGNoZXMgY2hhbmdlIG1ha2VmaWxl cyBzbywgcmVxdWlyZSBmb3Igbm93Li4uCitCdWlsZFJlcXVpcmVzOiBhdXRvbWFrZSBsaWJ0b29s CisKKyVpZiAle3dpdGggcGx1Z2luc30KK0J1aWxkUmVxdWlyZXM6IGxpYnNlbGludXgtZGV2ZWwK K0J1aWxkUmVxdWlyZXM6IGRidXMtZGV2ZWwKK0J1aWxkUmVxdWlyZXM6IGF1ZGl0LWxpYnMtZGV2 ZWwKKyVlbmRpZgorCislaWYgJXt3aXRoIGxpYmltYWV2bX0KK0J1aWxkUmVxdWlyZXM6IGltYS1l dm0tdXRpbHMtZGV2ZWwgPj0gMS4wCislZW5kaWYKKworJWlmICV7d2l0aCBmc3Zlcml0eX0KK0J1 aWxkUmVxdWlyZXM6IGZzdmVyaXR5LXV0aWxzLWRldmVsCislZW5kaWYKKworJXBhdGNobGlzdAor IyBTZXQgcnBtZGIgcGF0aCB0byAvdXNyL2xpYi9zeXNpbWFnZS9ycG0KK3JwbS00LjE3LngtcnBt X2RicGF0aC5wYXRjaAorIyBEaXNhYmxlIGF1dG9jb25mIGNvbmZpZy5zaXRlIHByb2Nlc3Npbmcg KCM5NjI4MzcpCitycG0tNC4xOC54LXNpdGVjb25maWcucGF0Y2gKKyMgSW4gY3VycmVudCBGZWRv cmEsIG1hbi1wYWdlcyBwa2cgb3ducyBhbGwgdGhlIGxvY2FsaXplZCBtYW4gZGlyZWN0b3JpZXMK K3JwbS00LjkuOTAtbm8tbWFuLWRpcnMucGF0Y2gKKyMgRGlzYWJsZSBuZXcgdXNlci9ncm91cCBo YW5kbGluZworCitycG0tNC4xOC45Mi1kaXNhYmxlLXN5c3VzZXJzLnBhdGNoCitycG0tNC4xOC45 MC13ZWFrLXVzZXItZ3JvdXAucGF0Y2gKKworIyBQYXRjaGVzIGFscmVhZHkgdXBzdHJlYW06Cisw MDAxLUZpeC1wb3RlbnRpYWwtdXNlLW9mLXVuaW5pdGlhbGl6ZWQtcGlwZS1hcnJheS5wYXRjaAor MDAwMS1GaXgtcG90ZW50aWFsLXVzZS1vZi11bmluaXRpYWxpemVkLXBncC1zdHJ1Y3QucGF0Y2gK KzAwMDEtRml4LW1lbW9yeS1sZWFrLWluLXJwbXNpZ24ucGF0Y2gKKworMDAwMS1SZWZhY3Rvci1z aWduLWNvbW1hbmQtZXhwYW5kLWFuZC1wYXJzZS1vdXQtb2YtcnVuR1BHLnBhdGNoCiswMDAyLUVs aW1pbmF0ZS1oYXJkY29kZWQtR1BHLXJlZmVyZW5jZXMtZnJvbS11c2VyLXZpc2libGUucGF0Y2gK KzAwMDMtRGVjbGFyZS1zaWduQ21kLXN0YXRpYy5wYXRjaAorCiswMDAxLVJlcG9ydC11bnNhZmUt c3ltbGlua3MtZHVyaW5nLWluc3RhbGxhdGlvbi1hcy1hLXNwZWMucGF0Y2gKKzAwMDItRml4LUZB X1RPVUNILWVkLWZpbGVzLWdldHRpbmctcmVtb3ZlZC1vbi1mYWlsZWQtdXBkYS5wYXRjaAorCisw MDAxLUZpeC1wb3NzaWJsZS1wYWNrYWdlLWNvcnJ1cHRpb24tb24tZGVsc2lnbi1yZXNpZ24tYWQu cGF0Y2gKKzAwMDItRml4LXJlZ3Jlc3Npb24tb24tYnVpbGQtaWQtZ2VuZXJhdGlvbi1mcm9tLWNv bXByZXNzZS5wYXRjaAorMDAwMy1GaXgtcm9vdC1yZWxvY2F0aW9uLXJlZ3Jlc3Npb24ucGF0Y2gK KworMDAwMS1NYWtlLV9wYXNzd2RfcGF0aC1hbmQtX2dyb3VwX3BhdGgtbGlzdHMucGF0Y2gKKzAw MDItRml4LW1lbW9yeS1sZWFrLWluLXJwbXNwZWMtc2hlbGwucGF0Y2gKKzAwMDMtRml4LW1lbW9y eS1sZWFrLWluLXJ1bkdQRy5wYXRjaAorMDAwNC1UYWxrLWFib3V0LXJwbXNpZ24taW4tdGhlLXJw bXNpZ24tbWFuLXBhZ2UucGF0Y2gKKzAwMDUtUmV2ZXJ0LURyb3AtcmVkdW5kYW50LWFyZ3VtZW50 LWZyb20tcnBtY2xpVHJhbnNhY3Rpby5wYXRjaAorMDAwMS1TdG9yZS1jb25maWd1cmFibGUtZGln ZXN0LXMtb24tcGFja2FnZXMtZnJvbS12ZXJpZmljLnBhdGNoCiswMDAxLUVuc3VyZS1iaW5hcnkt YW5kLXNvdXJjZS1oZWFkZXJzLWFyZS1pZGVudGlmaWVkLWFzLXMucGF0Y2gKKzAwMDItQWRkLXN1 cHBvcnQtZm9yLXNwZWMtbG9jYWwtZmlsZS1hdHRyaWJ1dGVzLWFuZC1nZW5lci5wYXRjaAorCity cG0tNC4xOS54LXJwbWtleXMtYWRkLWxpc3QtZXJhc2UucGF0Y2gKKworIyBQUUMgcmVhZGluZXNz CitycG0tNC4xOS54LW11bHRpc2lnLnBhdGNoCitycG0tNC4xOS54LXBxYy1hbGdvLnBhdGNoCity cG0tNC4xOS54LXBxYy1maXhlcy5wYXRjaAorCiswMDAxLVJlYWxseS1hbGxvdy1xdWFsaWZpZXJz LWxpa2UtcHJlLXBvc3QtbWV0YS1mb3Itd2Vhay0ucGF0Y2gKKworcnBtLTQuMTkueC1tdWx0aXNp Zy12ZXJpZnktZml4ZXMucGF0Y2gKK3JwbS00LjE5LngtbnNzd2l0Y2gtZW5hYmxlLnBhdGNoCisw MDAxLUZpeC1lbXB0eS1wYXNzd29yZC1maWVsZC1pbi1wYXNzd2QtZ3JvdXAtY2F1c2luZy1lbnQu cGF0Y2gKKworcnBtLTQuMTkueC1hZGQtYXV0b3NldHVwLUMucGF0Y2gKK3JwbS00LjE5LngtYWRk LXBhcmtkYi5wYXRjaAorcnBtLTQuMTkueC1pbXByb3ZlLXN5c2xvZy5wYXRjaAorMDAwMS1QcmV2 ZW50LWJ1ZmZlci1vdmVycnVucy1pbi1maW5kUHJlYW1ibGVUYWctZm9yLWxhbmd1LnBhdGNoCisK KyMgVGhlc2UgYXJlIG5vdCB5ZXQgdXBzdHJlYW0KK3JwbS00LjcuMS1nZW9kZS1pNjg2LnBhdGNo CisKKyVkZXNjcmlwdGlvbgorQWRkaXRpb25hbCBQeXRob24gMy5YIHBhY2thZ2VzIHdpdGggdGhl IFJQTSBQeXRob24gYmluZGluZ3MuCisKKyV7Zm9yZWFjaHB5ICV7cXVvdGU6CislcGFja2FnZSAt biBweXRob24lJXtweXRob24zX3BrZ3ZlcnNpb259LXJwbQorU3VtbWFyeTogUHl0aG9uICUle3B5 dGhvbjNfcGtndmVyc2lvbn0gYmluZGluZ3MgZm9yIGFwcHMgd2hpY2ggd2lsbCBtYW5pcHVsYXRl IFJQTSBwYWNrYWdlcworQnVpbGRSZXF1aXJlczogcHl0aG9uJSV7cHl0aG9uM19wa2d2ZXJzaW9u fS1kZXZlbAorUmVxdWlyZXM6IChycG0tbGlicyV7P19pc2F9ID49ICV7dmVyc2lvbn0tJXtyaGVs cmVsfSB3aXRoIHJwbS1saWJzJXs/X2lzYX0gPCAle3ZlcnNpb259LSV7cmhlbHJlbF9uZXh0fSkK KworJWRlc2NyaXB0aW9uIC1uIHB5dGhvbiUle3B5dGhvbjNfcGtndmVyc2lvbn0tcnBtCitUaGUg cHl0aG9uJSV7cHl0aG9uM19wa2d2ZXJzaW9ufS1ycG0gcGFja2FnZSBjb250YWlucyBhIG1vZHVs ZSB0aGF0IHBlcm1pdHMgYXBwbGljYXRpb25zCit3cml0dGVuIGluIHRoZSBQeXRob24gcHJvZ3Jh bW1pbmcgbGFuZ3VhZ2UgdG8gdXNlIHRoZSBpbnRlcmZhY2UKK3N1cHBsaWVkIGJ5IFJQTSBQYWNr YWdlIE1hbmFnZXIgbGlicmFyaWVzLgorCitUaGlzIHBhY2thZ2Ugc2hvdWxkIGJlIGluc3RhbGxl ZCBpZiB5b3Ugd2FudCB0byBkZXZlbG9wIFB5dGhvbiAlJXtweXRob24zX3BrZ3ZlcnNpb259Citw cm9ncmFtcyB0aGF0IHdpbGwgbWFuaXB1bGF0ZSBSUE0gcGFja2FnZXMgYW5kIGRhdGFiYXNlcy4K K319CisKKyVwcmVwCislYXV0b3NldHVwIC1uIHJwbS0le3NyY3Zlcn0gLXAxCisKKyVidWlsZAor JXNldF9idWlsZF9mbGFncworCisjIEFzIG9mIFJQTSA0LjE5IHdlIG5lZWQgdG8gYnVpbGQgdGhl IGV4dGVuc2lvbiBtb2R1bGUgZm9yIGVhY2ggUHl0aG9uIHZlcnNpb24uCisjIEZvciBzaW1pbGlj aXR5LCB3ZSBidWlsZCBldmVyeXRoaW5nLgorIyBJbiBSUE0gNC4yMCssIHRoZSBtb2R1bGUgdXNl cyBQeXRob24gc3RhYmxlIEFCSQorIyBhbmQgaXQgd2lsbCBiZSBwb3NzaWJsZSB0byBjb3B5IHRo ZSBidWlsdCBmaWxlcyBmcm9tIHB5dGhvbjMtcnBtIGluc3RlYWQuCisle2ZvcmVhY2hweSAle3F1 b3RlOgorbWtkaXIgX2J1aWxkJSV7cHl0aG9uM19wa2d2ZXJzaW9ufQorY2QgX2J1aWxkJSV7cHl0 aG9uM19wa2d2ZXJzaW9ufQorY21ha2UgXAorICAgICAgLURDTUFLRV9JTlNUQUxMX1BSRUZJWD0l e191c3J9IFwKKyAgICAgIC1EQ01BS0VfSU5TVEFMTF9TSEFSRURTVEFURURJUjpQQVRIPSV7X3Zh cn0vbGliIFwKKyAgICAgICV7P3dpdGhfYmRiX3JvOi1ERU5BQkxFX0JEQl9STz1PTn0gXAorICAg ICAgJXshP3dpdGhfbmRiOi1ERU5BQkxFX05EQj1PRkZ9IFwKKyAgICAgICV7IT93aXRoX3NxbGl0 ZTotREVOQUJMRV9TUUxJVEU9T0ZGfSBcCisgICAgICAleyE/d2l0aF9wbHVnaW5zOi1ERU5BQkxF X1BMVUdJTlM9T0ZGfSBcCisgICAgICAlez93aXRoX2ZzdmVyaXR5Oi1EV0lUSF9GU1ZFUklUWT1P Tn0gXAorICAgICAgJXs/d2l0aF9saWJpbWFldm06LURXSVRIX0lNQUVWTT1PTn0gXAorICAgICAg JXshP3dpdGhfbGliYXJjaGl2ZTotRFdJVEhfQVJDSElWRT1PRkZ9IFwKKyAgICAgICV7IT93aXRo X2NoZWNrOi1ERU5BQkxFX1RFU1RTVUlURT1PRkZ9IFwKKyAgICAgICV7P3dpdGhfc2VxdW9pYTot RFdJVEhfU0VRVU9JQT1PTn0gXAorICAgICAgJXshP3dpdGhfc2VxdW9pYTotRFdJVEhfSU5URVJO QUxfT1BFTlBHUD1PTn0gXAorICAgICAgJXshP3dpdGhfc2VxdW9pYTotRFdJVEhfT1BFTlNTTD1P TiB9IFwKKyAgICAgIC1EUlBNX1ZFTkRPUj1yZWRoYXQgXAorICAgICAgLURQeXRob24zX0VYRUNV VEFCTEU9JSV7cHl0aG9uM30gXAorICAuLgorCislbWFrZV9idWlsZAorY2QgLi4KK319CisKKyVp bnN0YWxsCisKKyV7Zm9yZWFjaHB5ICV7cXVvdGU6CitjZCBfYnVpbGQlJXtweXRob24zX3BrZ3Zl cnNpb259CislbWFrZV9pbnN0YWxsCitjZCAuLgorfX0KKworbWtkaXIgLXAgJFJQTV9CVUlMRF9S T09UJXtfdW5pdGRpcn0KK2luc3RhbGwgLW0gNjQ0ICV7U09VUkNFMTB9ICRSUE1fQlVJTERfUk9P VC8le191bml0ZGlyfQoraW5zdGFsbCAtbSA2NDQgJXtTT1VSQ0UyMH0gJFJQTV9CVUlMRF9ST09U LyV7X3VuaXRkaXJ9CisKK21rZGlyIC1wICRSUE1fQlVJTERfUk9PVCV7cnBtaG9tZX0KK2luc3Rh bGwgLW0gNzU1ICV7U09VUkNFMjF9ICRSUE1fQlVJTERfUk9PVC8le3JwbWhvbWV9CisKKyMgQnVp bHQtaW4gcmVwbGFjZW1lbnQgZm9yIHN5c3RlbWQtc3lzdXNlcnMoOCkKK2luc3RhbGwgLW0gNzU1 IHNjcmlwdHMvc3lzdXNlcnMuc2ggJFJQTV9CVUlMRF9ST09ULyV7cnBtaG9tZX0KKworIyBTYXZl IGxpc3Qgb2YgcGFja2FnZXMgdGhyb3VnaCBjcm9uCitta2RpciAtcCAke1JQTV9CVUlMRF9ST09U fSV7X3N5c2NvbmZkaXJ9L2Nyb24uZGFpbHkKK2luc3RhbGwgLW0gNzU1IHNjcmlwdHMvcnBtLmRh aWx5ICR7UlBNX0JVSUxEX1JPT1R9JXtfc3lzY29uZmRpcn0vY3Jvbi5kYWlseS9ycG0KKworbWtk aXIgLXAgJHtSUE1fQlVJTERfUk9PVH0le19zeXNjb25mZGlyfS9sb2dyb3RhdGUuZAoraW5zdGFs bCAtbSA2NDQgc2NyaXB0cy9ycG0ubG9nICR7UlBNX0JVSUxEX1JPT1R9JXtfc3lzY29uZmRpcn0v bG9ncm90YXRlLmQvcnBtCisKK21rZGlyIC1wICRSUE1fQlVJTERfUk9PVCV7X3N5c2NvbmZkaXJ9 L3JwbQorbWtkaXIgLXAgJFJQTV9CVUlMRF9ST09UJXtycG1ob21lfS9tYWNyb3MuZAorbWtkaXIg LXAgJFJQTV9CVUlMRF9ST09UL3Vzci9saWIvc3lzaW1hZ2UvcnBtCitjZCBfYnVpbGQzLjEzICAj IFVzZSBhbnkgYnVpbHQgUHl0aG9uIHZlcnNpb24gaGVyZQorCisjIGluaXQgYW4gZW1wdHkgZGF0 YWJhc2UgZm9yICVnaG9zdCdpbmcgZm9yIGFsbCBzdXBwb3J0ZWQgYmFja2VuZHMKK2ZvciBiZSBp biAlez93aXRoX25kYjpuZGJ9ICV7P3dpdGhfc3FsaXRlOnNxbGl0ZX07IGRvCisgICAgbWtkaXIg JHtiZX0KKyAgICB0b29scy9ycG1kYiAtLXJjZmlsZSBycG1yYyAtLWRlZmluZSAiX2RiX2JhY2tl bmQgJHtiZX0iIC0tZGJwYXRoPSR7UFdEfS8ke2JlfSAtLWluaXRkYgorICAgIGNwIC12YSAke2Jl fS8uICRSUE1fQlVJTERfUk9PVC91c3IvbGliL3N5c2ltYWdlL3JwbS8KK2RvbmUKKworIyBzb21l IHBhY2thZ2VzIGludm9rZSBmaW5kLWRlYnVnaW5mbyBkaXJlY3RseSwgcHJlc2VydmUgY29tcGF0 IGZvciBub3cKK2xuIC1zIC4uLy4uL2Jpbi9maW5kLWRlYnVnaW5mbyAkUlBNX0JVSUxEX1JPT1Qv dXNyL2xpYi9ycG0vZmluZC1kZWJ1Z2luZm8uc2gKKworZmluZCAkUlBNX0JVSUxEX1JPT1QgLW5h bWUgIioubGEifHhhcmdzIHJtIC1mCisKKyMgVGhlc2UgbGl2ZSBpbiBwZXJsLWdlbmVyYXRvcnMg YW5kIHB5dGhvbi1ycG0tZ2VuZXJhdG9ycyBub3cKK3JtIC1mICRSUE1fQlVJTERfUk9PVC8le3Jw bWhvbWV9L3twZXJsZGVwcy5wbCxwZXJsLioscHl0aG9uZCp9CitybSAtZiAkUlBNX0JVSUxEX1JP T1QvJXtfZmlsZWF0dHJzZGlyfS97cGVybCoscHl0aG9uKn0KK3JtIC1yZiAkUlBNX0JVSUxEX1JP T1QvdmFyL3RtcAorCisjIHdvcmthcm91bmQgZm9yIGh0dHBzOi8vZ2l0aHViLmNvbS9ycG0tc29m dHdhcmUtbWFuYWdlbWVudC9ycG0vaXNzdWVzLzI4MTEKK3JtICRSUE1fQlVJTERfUk9PVC8le19k ZWZhdWx0ZG9jZGlyfS9ycG0vUkVBRE1FLm1kCisKKyMgU2lnbmluZyBtYWNyb3MgZm9yIFNlcXVv aWEKK2luc3RhbGwgLW0gNjQ0ICV7U09VUkNFMzB9ICRSUE1fQlVJTERfUk9PVC8le19kZWZhdWx0 ZG9jZGlyfS9ycG0vCisKKyMgUmVtb3ZlIGFsbCBub24tUHl0aG9uIGZpbGVzCitybSAtciAle2J1 aWxkcm9vdH0le19iaW5kaXJ9CitybSAtciAle2J1aWxkcm9vdH0le19kYXRhZGlyfQorcm0gLXIg JXtidWlsZHJvb3R9JXtfaW5jbHVkZWRpcn0KK3JtIC1yICV7YnVpbGRyb290fSV7X2xpYmRpcn0v bGliKgorcm0gLXIgJXtidWlsZHJvb3R9JXtfbGliZGlyfS9jbWFrZS9ycG0vCitybSAtciAle2J1 aWxkcm9vdH0le19saWJkaXJ9L3BrZ2NvbmZpZy8KK3JtIC1yICV7YnVpbGRyb290fSV7X2xpYmRp cn0vcnBtLXBsdWdpbnMvCitybSAtciAle2J1aWxkcm9vdH0le19wcmVmaXh9L2xpYgorcm0gLXIg JXtidWlsZHJvb3R9JXtfc3lzY29uZmRpcn0KKworJWNoZWNrCisle2ZvcmVhY2hweSAle3F1b3Rl OiUlcHkzX2NoZWNrX2ltcG9ydCBycG0gcnBtLnRyYW5zYWN0aW9ufX0KKworJXtmb3JlYWNocHkg JXtxdW90ZToKKyVmaWxlcyAtbiBweXRob24lJXtweXRob24zX3BrZ3ZlcnNpb259LXJwbQorJSUl JWxpY2Vuc2UgQ09QWUlORworJWRpciAlJXtweXRob24zX3NpdGVhcmNofS9ycG0KKyUle3B5dGhv bjNfc2l0ZWFyY2h9L3JwbS0le3JwbXZlcn0qLmVnZy1pbmZvCislJXtweXRob24zX3NpdGVhcmNo fS9ycG0vX19pbml0X18ucHkKKyUle3B5dGhvbjNfc2l0ZWFyY2h9L3JwbS90cmFuc2FjdGlvbi5w eQorJSV7cHl0aG9uM19zaXRlYXJjaH0vcnBtL19ycG0uc28KKyVhcnRpZmFjdCAlJXtweXRob24z X3NpdGVhcmNofS9ycG0vX19weWNhY2hlX18vCit9fQorCislY2hhbmdlbG9nCisqIFR1ZSBNYXIg MTcgMjAyNiBNaXJvIEhyb27EjW9rIDxtaHJvbmNva0ByZWRoYXQuY29tPiAtIDQuMTkuMS4xLTIz LjIKKy0gQWRkIHB5dGhvbjMuMTQtcnBtCisKKyogVGh1IEZlYiAwNSAyMDI2IE1pY2hhbCBEb21v bmtvcyA8bWRvbW9ua29AcmVkaGF0LmNvbT4gLSA0LjE5LjEuMS0yMworLSBGaXgga2V5IGltcG9y dCBBUEkgdG8gcmV0dXJuIE5PVFRSVVNURUQgZm9yIGRpc2FibGVkIGFsZ29yaXRobXMgKFJIRUwt MTEyMzk0KQorCisqIFR1ZSBKYW4gMjcgMjAyNiBNaWNoYWwgRG9tb25rb3MgPG1kb21vbmtvQHJl ZGhhdC5jb20+IC0gNC4xOS4xLjEtMjIKKy0gSWdub3JlIHNpZ25hdHVyZXMgbWFkZSBieSB1bmtu b3duIG9yIGRpc2FibGVkIGFsZ29yaXRobXMgKFJIRUwtMTEyMzk0KQorLSBFbmFibGUgTlNTLWJh c2VkIHVzZXIgYW5kIGdyb3VwIGxvb2t1cHMgYWdhaW4gKFJIRUwtMTE4MzY1KQorLSBGaXggaWdu b3JlZCBwYXNzd29yZCBmaWVsZCBpZiBlbXB0eSBpbiBwYXNzd2QvZ3JvdXAgZmlsZSAoUkhFTC0x MTgzNjUpCisKKyogVGh1IE5vdiAyNyAyMDI1IE1pY2hhbCBEb21vbmtvcyA8bWRvbW9ua29AcmVk aGF0LmNvbT4gLSA0LjE5LjEuMS0yMQorLSBGaXggcHJlL3Bvc3QvbWV0YS9ldGMuIHF1YWxpZmll cnMgZm9yIHdlYWsgZGVwZW5kZW5jaWVzIChSSEVMLTEwMTkzNikKKy0gRml4IHJlZHVuZGFudCBy cG1kYi1taWdyYXRlLnNlcnZpY2UgcnVucyAoUkhFTC05NjUxMCkKKworKiBUdWUgQXVnIDI2IDIw MjUgTWljaGFsIERvbW9ua29zIDxtZG9tb25rb0ByZWRoYXQuY29tPiAtIDQuMTkuMS4xLTIwCist IEZpeCBycG1zaWduKDgpIG1hbiBwYWdlIChSSEVMLTEwOTIyMSkKKworKiBNb24gQXVnIDI1IDIw MjUgTWljaGFsIERvbW9ua29zIDxtZG9tb25rb0ByZWRoYXQuY29tPiAtIDQuMTkuMS4xLTE5Cist IEFkZGl0aW9uYWwgUFFDLXJlbGF0ZWQgZml4ZXMgKFJIRUwtMTA5MjIxKQorCisqIFRodSBKdWwg MjQgMjAyNSBNaWNoYWwgRG9tb25rb3MgPG1kb21vbmtvQHJlZGhhdC5jb20+IC0gNC4xOS4xLjEt MTgKKy0gQWRkIHN1cHBvcnQgZm9yIG11bHRpcGxlIE9wZW5QR1Agc2lnbmF0dXJlcyBwZXIgcGFj a2FnZSAoUkhFTC0xMDA1NzEpCistIEFkZCBzdXBwb3J0IGZvciBPcGVuUEdQIHY2IHNpZ25hdHVy ZSBwcmUtc2FsdGluZyAoUkhFTC0xMDA1NzEpCistIEFkZCBzdXBwb3J0IGZvciBQUUMgYWxnb3Jp dGhtcyBmcm9tIFJGQy05NTgwIChSSEVMLTEwMDU3MSkKKy0gQWRkIC0tbGlzdCBhbmQgLS1lcmFz ZSBjb21tYW5kcyB0byBycG1rZXlzKDgpIChSSEVMLTEwNTQyMSkKKy0gRml4IHJlZ3Jlc3Npb24g b24gZHluYW1pYyBzdWJwYWNrYWdlIFJQTVRBR19TT1VSQ0VSUE0gbWlzc2luZyAoUkhFTC0xMDIw MjMpCisKKyogV2VkIEp1biAxMSAyMDI1IE1pY2hhbCBEb21vbmtvcyA8bWRvbW9ua29AcmVkaGF0 LmNvbT4gLSA0LjE5LjEuMS0xNworLSBCdW1wIHJlbGVhc2UgZm9yIGFub3RoZXIgcmVidWlsZAor CisqIFdlZCBKdW4gMTEgMjAyNSBNaWNoYWwgRG9tb25rb3MgPG1kb21vbmtvQHJlZGhhdC5jb20+ IC0gNC4xOS4xLjEtMTYKKy0gRml4IHJlZ3Jlc3Npb24gb24gc3VicGFja2FnZSBkZWJ1Z2luZm8g UlBNVEFHX1NPVVJDRVJQTSBtaXNzaW5nIChSSEVMLTg3MzgzKQorCisqIFRodSBNYXkgMjkgMjAy NSBNaWNoYWwgRG9tb25rb3MgPG1kb21vbmtvQHJlZGhhdC5jb20+IC0gNC4xOS4xLjEtMTUKKy0g QWRkIHN1cHBvcnQgZm9yIHNwZWMgbG9jYWwgZmlsZSBhdHRyaWJ1dGVzIGFuZCBnZW5lcmF0b3Jz IChSSEVMLTg0MDU3KQorLSBFbnN1cmUgYmluYXJ5IGFuZCBzb3VyY2UgaGVhZGVycyBhcmUgaWRl bnRpZmllZCBhcyBzdWNoIChSSEVMLTg3MzgzKQorCisqIFRodSBBcHIgMjQgMjAyNSBNaWNoYWwg RG9tb25rb3MgPG1kb21vbmtvQHJlZGhhdC5jb20+IC0gNC4xOS4xLjEtMTQKKy0gU3RvcmUgY29u ZmlndXJhYmxlIGRpZ2VzdChzKSBvbiBwYWNrYWdlcyBpbiBycG1kYiAoUkhFTC04NDA2MikKKy0g Rml4IGNvbW1hbmQgcmVmZXJlbmNlcyBpbiBycG1zaWduKDgpIG1hbiBwYWdlLCB0YWtlIElJIChS SEVMLTczMTczKQorCisqIFR1ZSBBcHIgMjIgMjAyNSBNaWNoYWwgRG9tb25rb3MgPG1kb21vbmtv QHJlZGhhdC5jb20+IC0gNC4xOS4xLjEtMTMKKy0gTWFrZSAlJV9wYXNzd2RfcGF0aCBhbmQgJSVf Z3JvdXBfcGF0aCBpbnRvIGxpc3RzIChSSEVMLTc4NjkzKQorLSBGaXggbWVtb3J5IGxlYWsgaW4g cnBtc3BlYyAtLXNoZWxsIChSSEVMLTU1Mjg0KQorLSBGaXggbWVtb3J5IGxlYWsgaW4gcnBtc2ln biAoUkhFTC04MjI4NCkKKy0gRml4IGNvbW1hbmQgcmVmZXJlbmNlcyBpbiBycG1zaWduKDgpIG1h biBwYWdlIChSSEVMLTczMTczKQorLSBGaXggZXhpdCBjb2RlIHJlZ3Jlc3Npb24gb24gdXBkYXRl IGZhaWx1cmUgKFJIRUwtODczODQpCisKKyogRnJpIEZlYiAwNyAyMDI1IE1pY2hhbCBEb21vbmtv cyA8bWRvbW9ua29AcmVkaGF0LmNvbT4gLSA0LjE5LjEuMS0xMgorLSBSZWJ1aWxkIGZvciBpbWEt ZXZtLXV0aWxzIDEuNiBzb25hbWUgYnVtcCAoUkhFTC02NTM3OCkKKworKiBGcmkgSmFuIDI0IDIw MjUgTWljaGFsIERvbW9ua29zIDxtZG9tb25rb0ByZWRoYXQuY29tPiAtIDQuMTkuMS4xLTExCist IEZpeCBwb3NzaWJsZSBwYWNrYWdlIGNvcnJ1cHRpb24gb24gLS1kZWxzaWduL3Jlc2lnbi9hZGRz aWduIChSSEVMLTY5NTE4KQorLSBGaXggcmVncmVzc2lvbiBvbiBidWlsZC1pZCBnZW5lcmF0aW9u IGZyb20gY29tcHJlc3NlZCBFTEYgKFJIRUwtNTQwMDApCistIEZpeCByb290IHJlbG9jYXRpb24g cmVncmVzc2lvbiAoUkhFTC01NjYxMykKKy0gVXBkYXRlIHNlcXVvaWEgbWFjcm9zIGZvciBzcSAx LjAgKFJIRUwtNTYzNjMpCisKKyogTW9uIEphbiAxMyAyMDI1IE1pY2hhbCBEb21vbmtvcyA8bWRv bW9ua29AcmVkaGF0LmNvbT4gLSA0LjE5LjEuMS0xMAorLSBSZXBvcnQgdW5zYWZlIHN5bWxpbmtz IGR1cmluZyBpbnN0YWxsYXRpb24gYXMgYSBzcGVjaWZpYyBjYXNlIChSSEVMLTczMTg2KQorLSBG aXggRkFfVE9VQ0gnZWQgZmlsZXMgZ2V0dGluZyByZW1vdmVkIG9uIGZhaWxlZCB1cGRhdGUgKFJI RUwtNTQzODYpCistIFJlYnVpbGQgZm9yIGltYS1ldm0tdXRpbHMgMS42IHNvbmFtZSBidW1wIChS SEVMLTY1Mzc4KQorCisqIFdlZCBEZWMgMDQgMjAyNCBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFp QHJlZGhhdC5jb20+IC0gNC4xOS4xLjEtOQorLSBSZXZlcnQgdGhlIGdudXBnL3NlcXVvaWEgc3Vi LXBhY2thZ2VzLCB0b28gbXVjaCBoZWFkYWNoZQorLSBTaGlwIHNlcXVvaWEtc2lnbmluZyBlbmFi bGVtZW50IG1hY3JvcyBhcyBkb2N1bWVudGF0aW9uIGluc3RlYWQKKy0gR2VuZXJhdGUgYmluYXJ5 IHNpZ25hdHVyZXMgd2l0aCBTZXF1b2lhIHRvbworCisqIFR1ZSBOb3YgMTIgMjAyNCBNaWNoYWwg RG9tb25rb3MgPG1kb21vbmtvQHJlZGhhdC5jb20+IC0gNC4xOS4xLjEtOAorLSBBZGQgU2VxdW9p YSBzaWduaW5nIHN1cHBvcnQgYmFjaworCisqIFR1ZSBPY3QgMjkgMjAyNCBUcm95IERhd3NvbiA8 dGRhd3NvbkByZWRoYXQuY29tPiAtIDQuMTkuMS4xLTcKKy0gQnVtcCByZWxlYXNlIGZvciBPY3Rv YmVyIDIwMjQgbWFzcyByZWJ1aWxkOgorICBSZXNvbHZlczogUkhFTC02NDAxOAorCisqIEZyaSBP Y3QgMjUgMjAyNCBNaWNoYWwgRG9tb25rb3MgPG1kb21vbmtvQHJlZGhhdC5jb20+IC0gNC4xOS4x LjEtNgorLSBSZXZlcnQgU2VxdW9pYSBzaWduaW5nIHN1cHBvcnQgZm9yIG5vdywgYnJlYWtzIENJ CisKKyogRnJpIE9jdCAyNSAyMDI0IE1pY2hhbCBEb21vbmtvcyA8bWRvbW9ua29AcmVkaGF0LmNv bT4gLSA0LjE5LjEuMS01CistIEZpeCBDb25mbGljdHMgaW4gbmV3IHJwbS1zaWduIGJhY2tlbmRz CisKKyogTW9uIE9jdCAxNCAyMDI0IFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNv bT4gLSA0LjE5LjEuMS00CistIFJlbW92ZSBoYXJkY29kZWQgR1BHIHJlZmVyZW5jZXMgZnJvbSBz aWduaW5nIGVycm9yIG1lc3NhZ2VzCistIFN1cHBvcnQgc3dpdGNoaW5nIGJldHdlZW4gR251UEcg YW5kIFNlcXVvaWEgZm9yIHBhY2thZ2Ugc2lnbmluZyAoUkhFTC01NjM2MykKKworKiBUdWUgQXVn IDEzIDIwMjQgTWljaGFsIERvbW9ua29zIDxtZG9tb25rb0ByZWRoYXQuY29tPiAtIDQuMTkuMS4x LTMKKy0gRml4IHBvdGVudGlhbCB1c2Ugb2YgdW5pbml0aWFsaXplZCBwaXBlIGFycmF5IChSSEVM LTU0MDEyKQorLSBGaXggcG90ZW50aWFsIHVzZSBvZiB1bmluaXRpYWxpemVkIHBncCBzdHJ1Y3Qg KFJIRUwtNTQwMTMpCistIEZpeCBtZW1vcnkgbGVhayBpbiBycG1zaWduKDgpIChSSEVMLTM3NTY0 KQorCisqIE1vbiBKdW4gMjQgMjAyNCBUcm95IERhd3NvbiA8dGRhd3NvbkByZWRoYXQuY29tPiAt IDQuMTkuMS4xLTIKKy0gQnVtcCByZWxlYXNlIGZvciBKdW5lIDIwMjQgbWFzcyByZWJ1aWxkCisK KyogV2VkIEZlYiAwNyAyMDI0IE1pY2hhbCBEb21vbmtvcyA8bWRvbW9ua29AcmVkaGF0LmNvbT4g LSA0LjE5LjEuMS0xCistIFVwZGF0ZSB0byA0LjE5LjEuMSAoaHR0cHM6Ly9ycG0ub3JnL3dpa2kv UmVsZWFzZXMvNC4xOS4xLjEpCisKKyogRnJpIEphbiAyNiAyMDI0IEZlZG9yYSBSZWxlYXNlIEVu Z2luZWVyaW5nIDxyZWxlbmdAZmVkb3JhcHJvamVjdC5vcmc+IC0gNC4xOS4xLTQKKy0gUmVidWls dCBmb3IgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV80MF9NYXNzX1JlYnVp bGQKKworKiBNb24gSmFuIDIyIDIwMjQgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVu Z0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSA0LjE5LjEtMworLSBSZWJ1aWx0IGZvciBodHRwczovL2Zl ZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzQwX01hc3NfUmVidWlsZAorCisqIEZyaSBEZWMg MTUgMjAyMyBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xOS4xLTIK Ky0gRml4IGJvZ3VzIHdhcm5pbmdzIGFib3V0IHJ1bmF3YXkgTHVhIHNjcmlwdHMgKCMyMjU0NDYz KQorCisqIFR1ZSBEZWMgMTIgMjAyMyBNaWNoYWwgRG9tb25rb3MgPG1kb21vbmtvQHJlZGhhdC5j b20+IC0gNC4xOS4xLTEKKy0gVXBkYXRlIHRvIDQuMTkuMSAoaHR0cHM6Ly9ycG0ub3JnL3dpa2kv UmVsZWFzZXMvNC4xOS4xKQorCisqIFRodSBOb3YgMzAgMjAyMyBTdGVwaGVuIEdhbGxhZ2hlciA8 c2dhbGxhZ2hAcmVkaGF0LmNvbT4gLSA0LjE5LjAtMworLSBGaXggaXNzdWVzIHdpdGggJSVnZXRu Y3B1cyBzb21ldGltZXMgcmV0dXJuaW5nIDAgb24gaTY4NiBzeXN0ZW1zCisKKyogTW9uIE5vdiAx MyAyMDIzIFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE5LjAtMgor LSBFbnN1cmUgY2VudHJhbCBwYWNrYWdlIG9wcyBsb2cgdmlhIHJwbS1wbHVnaW4tYXVkaXQgcmVj b21tZW5kcyAoIzE0NzY5MjYpCistIE93biBvdXIgUHl0aG9uIG1vZHVsZSBkaXJlY3RvcnkgKCMy MjQ4NTU1KQorLSBGaXggc3lzdXNlcnMuZCBnZW5lcmF0b3IgYmFyZmluZyBvbiBsZWdpdCBjb250 ZW50ICgjMjI0NjIzNikKKworKiBUdWUgU2VwIDE5IDIwMjMgTWljaGFsIERvbW9ua29zIDxtZG9t b25rb0ByZWRoYXQuY29tPiAtIDQuMTkuMC0xCistIFVwZGF0ZSB0byA0LjE5LjAKKworKiBNb24g U2VwIDA0IDIwMjMgTWljaGFsIERvbW9ua29zIDxtZG9tb25rb0ByZWRoYXQuY29tPiAtIDQuMTgu OTktMQorLSBVcGRhdGUgdG8gNC4xOSByYzEKKworKiBUdWUgQXVnIDIyIDIwMjMgUGFudSBNYXRp bGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTguOTItMworLSBGaXggcmVncmVzc2lv biBvbiB1bmNvbXByZXNzaW5nIDd6aXAgY29tcHJlc3NlZCBzb3VyY2VzICgjMjIyOTk4NCkKKy0g Rml4IGEgY29uZmxpY3Qgd2l0aCBwcmUtZXhpc3Rpbmcgc2NsLXV0aWxzICVfcm9vdF9wcmVmaXgg bWFjcm8gKCMyMjMzNDU0KQorCisqIE1vbiBBdWcgMjEgMjAyMyBQYW51IE1hdGlsYWluZW4gPHBt YXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xOC45Mi0yCistIEJlaGF2ZSBtb3JlIGNvbnNpc3RlbnRs eSB3aGVuIHRhcmdldCAlJW9wdGZsYWdzIGFyZSBub3QgZGVmaW5lZCAoIzIyMzE3MjcpCisKKyog V2VkIEF1ZyAwMiAyMDIzIE1pY2hhbCBEb21vbmtvcyA8bWRvbW9ua29AcmVkaGF0LmNvbT4gLSA0 LjE4LjkyLTEKKy0gVXBkYXRlIHRvIDQuMTkgYmV0YQorCisqIFR1ZSBKdWwgMjUgMjAyMyBZYWFr b3YgU2Vsa293aXR6IDx5c2Vsa293aUByZWRoYXQuY29tPiAtIDQuMTguOTEtOQorLSBEcm9wIGZz dmVyaXR5IHBsdWdpbiBmcm9tIFJIRUwgYnVpbGRzCisKKyogRnJpIEp1bCAyMSAyMDIzIEZlZG9y YSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWxlbmdAZmVkb3JhcHJvamVjdC5vcmc+IC0gNC4xOC45 MS04CistIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFf MzlfTWFzc19SZWJ1aWxkCisKKyogV2VkIEp1biAyOCAyMDIzIFBhbnUgTWF0aWxhaW5lbiA8cG1h dGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE4LjkxLTcKKy0gUmVidWlsdCBmb3IgUHl0aG9uIDMuMTIK KworKiBXZWQgSnVuIDI4IDIwMjMgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29t PiAtIDQuMTguOTEtNgorLSBGaXggYSBzcGVjIHBhcnNpbmcgZXJyb3IgaGFuZGxpbmcgcmVncmVz c2lvbgorLSBGaXggYSBwZXItZmlsZSBwbHVnaW4gaG9vayByZWdyZXNzaW9uCisKKyogVHVlIEp1 biAyNyAyMDIzIFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE4Ljkx LTUKKy0gRml4IHBvdGVudGlhbCBjcmFzaCB3aXRoIG11bHRpcGxlIGluLXByb2Nlc3Mgc3FsaXRl IHVzZXMKKworKiBNb24gSnVuIDI2IDIwMjMgUHl0aG9uIE1haW50IDxweXRob24tbWFpbnRAcmVk aGF0LmNvbT4gLSA0LjE4LjkxLTQKKy0gUmVidWlsdCBmb3IgUHl0aG9uIDMuMTIKKworKiBXZWQg SnVuIDIxIDIwMjMgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTgu OTEtMworLSBFbmFibGUgdXNlci9ncm91cCBwcm92aWRlIGdlbmVyYXRpb24KKy0gQWRkIGEgY29u ZmxpY3QgZm9yIHN5c3RlbWQgdmVyc2lvbnMgY2FycnlpbmcgdGhlaXIgb3duCisKKyogVHVlIEp1 biAxMyAyMDIzIFB5dGhvbiBNYWludCA8cHl0aG9uLW1haW50QHJlZGhhdC5jb20+IC0gNC4xOC45 MS0yCistIFJlYnVpbHQgZm9yIFB5dGhvbiAzLjEyCisKKyogRnJpIEp1biAwOSAyMDIzIE1pY2hh bCBEb21vbmtvcyA8bWRvbW9ua29AcmVkaGF0LmNvbT4gLSA0LjE4LjkxLTEKKy0gVXBkYXRlIHRv IDQuMTkgYWxwaGEyCisKKyogVGh1IEp1biAwOCAyMDIzIFBldGVyIFJvYmluc29uIDxwYnJvYmlu c29uQGZlZG9yYXByb2plY3Qub3JnPiAtIDQuMTguOTAtMTAKKy0gUmVidWlsZCBmb3IgaW1hLWV2 bS11dGlscyAxLjUgc29uYW1lIGJ1bXAKKworKiBNb24gTWF5IDI5IDIwMjMgUGFudSBNYXRpbGFp bmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTguOTAtOQorLSBSZXZlcnQgJSVfc21wX2J1 aWxkX25jcHVzIG1hY3JvIGNoYW5naW5nIHRvIHBhcmFtZXRyaWMgKCMyMjEwMzQ3KQorCisqIFRo dSBNYXkgMjUgMjAyMyBGbG9yaWFuIEZlc3RpIDxmZmVzdGlAcmVkaGF0LmNvbT4gLSA0LjE4Ljkw LTgKKy0gU2V0ICVfc2hhcmVkc3RhdGVkaXIgdG8gL3Zhci9saWIgKCMyMjA5OTg5KQorCisqIFRo dSBNYXkgMjUgMjAyMyBGbG9yaWFuIEZlc3RpIDxmZmVzdGlAcmVkaGF0LmNvbT4gLSA0LjE4Ljkw LTcKKy0gUmVtb3ZlIGNvbXBhdCBsaW5rcyBmb3Igb2xkIHNvIG5hbWUgb2YgdGhlIGxpYnJhcmll cworLSBSZW1vdmUgY29tcGF0IGZvcndhcmQgcG9ydHMgZm9yIGxpYmRuZgorCisqIE1vbiBNYXkg MjIgMjAyMyBGbG9yaWFuIEZlc3RpIDxmZmVzdGlAcmVkaGF0LmNvbT4gLSA0LjE4LjkwLTYKKy0g Rml4IHVuZGVmaW5lZCBzeW1ib2xzIGZyb20gcGx1Z2lucworCisqIFdlZCBNYXkgMTcgMjAyMyBG bG9yaWFuIEZlc3RpIDxmZmVzdGlAcmVkaGF0LmNvbT4gLSA0LjE4LjkwLTUKKy0gVXNlIG1rZGly IC1wIGZvciBjcmVhdGluZyBTUEVDUEFSVFMgZGlyCisKKyogV2VkIE1heSAxNyAyMDIzIEZsb3Jp YW4gRmVzdGkgPGZmZXN0aUByZWRoYXQuY29tPiAtIDQuMTguOTAtNAorLSBFbmFibGUgbGFyZ2Ug ZmlsZSBzdXBwb3J0IG9uIDMyLWJpdCBzeXN0ZW1zIGFnYWluCisKKyogTW9uIE1heSAxNSAyMDIz IEZsb3JpYW4gRmVzdGkgPGZmZXN0aUByZWRoYXQuY29tPiAtIDQuMTguOTAtMworLSBGaXggbGli YnppcDIgZGV0ZWN0aW9uCisKKyogVGh1IE1heSAxMSAyMDIzIEZsb3JpYW4gRmVzdGkgPGZmZXN0 aUByZWRoYXQuY29tPiAtIDQuMTguOTAtMgorLSBBZGQgY29tcGF0IGxpbmtzIGZvciBidWlsZGlu ZyBkbmYgYW5kIGZyaWVuZHMKKworKiBUaHUgTWF5IDA0IDIwMjMgRmxvcmlhbiBGZXN0aSA8ZmZl c3RpQHJlZGhhdC5jb20+IC0gNC4xOC45MC0xCistIFVwZGF0ZSB0byA0LjE5IGFscGhhCisKKyog VHVlIEFwciAyNSAyMDIzIE1pcm8gSHJvbsSNb2sgPG1ocm9uY29rQHJlZGhhdC5jb20+IC0gNC4x OC4xLTMKKy0gRXhwbGljaXRseSByZXF1aXJlIHJwbS1zZXF1b2lhID49IDEuNC4wIG9uIHJ1bnRp bWUgdG8gYXZvaWQKKyAgcnBtOiBzeW1ib2wgbG9va3VwIGVycm9yOiAvbGliNjQvbGlicnBtaW8u c28uOTogdW5kZWZpbmVkIHN5bWJvbDogX3BncFZlcmlmeVNpZ25hdHVyZTIKKworKiBUaHUgQXBy IDIwIDIwMjMgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTguMS0y CistIEJhY2twb3J0IGltcHJvdmVkIGNyeXB0byBlcnJvciBtZXNzYWdlcyBmcm9tIHVwc3RyZWFt CisKKyogV2VkIE1hciAxNSAyMDIzIE1pY2hhbCBEb21vbmtvcyA8bWRvbW9ua29AcmVkaGF0LmNv bT4gLSA0LjE4LjEtMQorLSBSZWJhc2UgdG8gcnBtIDQuMTguMSAoaHR0cHM6Ly9ycG0ub3JnL3dp a2kvUmVsZWFzZXMvNC4xOC4xKQorCisqIFRodSBGZWIgMTYgMjAyMyBQYW51IE1hdGlsYWluZW4g PHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xOC4wLTExCistIERpc2FibGUgZGVidWdpbmZvZCBs b29rdXBzIGluIHJwbWJ1aWxkIHNjcmlwdHMKKy0gRXhjbHVkZSBrZXJuZWwgbW9kdWxlcyBmcm9t IEVMRiBkZXBlbmRlbmN5IGdlbmVyYXRpb24KKworKiBGcmkgSmFuIDIwIDIwMjMgRmVkb3JhIFJl bGVhc2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSA0LjE4LjAtMTAK Ky0gUmVidWlsdCBmb3IgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV8zOF9N YXNzX1JlYnVpbGQKKworKiBNb24gSmFuIDA5IDIwMjMgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxh aUByZWRoYXQuY29tPiAtIDQuMTguMC05CistIEdlbmVyYXRlIFB5dGhvbiBlZ2ctaW5mbyBmcm9t IGF1dG9tYWtlICgjMjEzNTU2MSkKKy0gRHJvcCBzZXR1cC5weS1iYXNlZCBQeXRob24gYnVpbGQg KCMyMTM1NzE5KQorCisqIFdlZCBEZWMgMDcgMjAyMiBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFp QHJlZGhhdC5jb20+IC0gNC4xOC4wLTgKKy0gRml4IGhhbmctdXAgb24gZmFpbGVkIGtleSBpbXBv cnQgKHJlbGF0ZWQgdG8gIzIxNDk3NjIpCisKKyogVGh1IE5vdiAyNCAyMDIyIFBhbnUgTWF0aWxh aW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE4LjAtNworLSBSZXF1aXJlIHJwbS1zZXF1 b2lhID49IDEuMi4wIGZvciBWMyBzaWduYXR1cmUgc3VwcG9ydCwgcmUtZW5hYmxlICgjMjE0MTY4 NikKKworKiBUaHUgTm92IDEwIDIwMjIgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQu Y29tPiAtIDQuMTguMC02CistIFJldmVydCBiYWNrIHRvIGludGVybmFsIE9wZW5QR1AgcGFyc2Vy IGZvciBWMyBzaWduYXR1cmUgc3VwcG9ydCAoIzIxNDE2ODYpCisKKyogVHVlIE5vdiAwMSAyMDIy IFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE4LjAtNQorLSBTd2l0 Y2ggdG8gU2VxdW9pYSBjcnlwdG8gKGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9DaGFu Z2VzL1JwbVNlcXVvaWEpCisKKyogRnJpIE9jdCAxNCAyMDIyIFBhbnUgTWF0aWxhaW5lbiA8cG1h dGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE4LjAtNAorLSBBZGQgYW4gb3B0aW9uIGZvciBidWlsZGlu ZyB3aXRoIFNlcXVvaWEgY3J5cHRvCisKKyogV2VkIE9jdCAwNSAyMDIyIFBhbnUgTWF0aWxhaW5l biA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE4LjAtMworLSBCcmVhayBhbmNpZW50IHJwbSA8 LT4gcnBtLWxpYnMgb3JkZXJpbmcgbG9vcAorCisqIE1vbiBPY3QgMDMgMjAyMiBQYW51IE1hdGls YWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xOC4wLTIKKy0gRHJvcCB0aGUgdGVtcG9y YXJ5IGJ1aWxkLWRlcGVuZGVuY3kgb24gcGFuZG9jIGJlZm9yZSBpdCBncm93cyBhIGJlYXJkCist IFN0YXJ0IHV0aWxpemluZyAlJXBhdGNobGlzdCwgZmluYWxseQorCisqIFdlZCBTZXAgMjEgMjAy MiBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xOC4wLTEKKy0gUmVi YXNlIHRvIHJwbSA0LjE4LjAgKGh0dHBzOi8vcnBtLm9yZy93aWtpL1JlbGVhc2VzLzQuMTguMCkK KworKiBXZWQgU2VwIDE0IDIwMjIgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29t PiAtIDQuMTguMC0wLnJjMS40CistIEZpeCBhIGxhcmdpc2ggZGlyZWN0b3J5IHdhbGsgcmVsYXRl ZCBtZW1vcnkgbGVhayBpbiB0cmFuc2FjdGlvbnMKKworKiBXZWQgU2VwIDA3IDIwMjIgUGFudSBN YXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTguMC0wLnJjMS4zCistIEZpeCBi dWZmZXIgb3ZlcnJ1biBvbiBycG1kYiBxdWVyaWVzIGludm9sdmluZyBeIGluIHZlcnNpb24KKwor KiBXZWQgU2VwIDA3IDIwMjIgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAt IDQuMTguMC0wLnJjMS4yCistIEJyZWFrIHNlbGludXgtcG9saWN5IDwtPiBycG0tcGx1Z2luLXNl bGludXggb3JkZXJpbmcgbG9vcCAoIzE4NTEyNjYpCisKKyogRnJpIFNlcCAwMiAyMDIyIFBhbnUg TWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE4LjAtMC5yYzEuMQorLSBSZWJh c2UgdG8gNC4xOC4wLXJjMSAoaHR0cHM6Ly9ycG0ub3JnL3dpa2kvUmVsZWFzZXMvNC4xOC4wKQor CisqIFR1ZSBBdWcgMDIgMjAyMiBNaWNoYWwgRG9tb25rb3MgPG1kb21vbmtvQHJlZGhhdC5jb20+ IC0gNC4xOC4wLTAuYmV0YTEuNAorLSBSZXZlcnQgJSVhdXRvc2V0dXAgLVMgZ2l0IHBhdGNoIGR1 ZSB0byBhbm90aGVyIHJlZ3Jlc3Npb24KKworKiBTYXQgSnVsIDIzIDIwMjIgRmVkb3JhIFJlbGVh c2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSA0LjE4LjAtMC5iZXRh MS4zCistIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFf MzdfTWFzc19SZWJ1aWxkCisKKyogTW9uIEp1bCAxMSAyMDIyIE1pY2hhbCBEb21vbmtvcyA8bWRv bW9ua29AcmVkaGF0LmNvbT4gLSA0LjE4LjAtMC5iZXRhMS4yCistIEZpeCBjaGVjay1idWlsZHJv b3QgcmVncmVzc2lvbiB3cnQgYnVuZGxlZCBTUlBNICgjMjEwNDE1MCkKKy0gRml4ICUlYXV0b3Nl dHVwIC1TIGdpdCByZWdyZXNzaW9uIHdydCBkZWZhdWx0IGdpdCBicmFuY2gKKworKiBUdWUgSnVu IDI4IDIwMjIgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTguMC0w LmJldGExLjEKKy0gUmViYXNlIHRvIDQuMTguMC1iZXRhMSAoaHR0cHM6Ly9ycG0ub3JnL3dpa2kv UmVsZWFzZXMvNC4xOC4wKQorCisqIE1vbiBKdW4gMTMgMjAyMiBQeXRob24gTWFpbnQgPHB5dGhv bi1tYWludEByZWRoYXQuY29tPiAtIDQuMTguMC0wLmFscGhhMi4yCistIFJlYnVpbHQgZm9yIFB5 dGhvbiAzLjExCisKKyogTW9uIE1heSAyMyAyMDIyIFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlA cmVkaGF0LmNvbT4gLSA0LjE4LjAtMC5hbHBoYTIuMQorLSBSZWJhc2UgdG8gNC4xOC4wLTAuYWxw aGEyCistIFByZXZlbnQgdW5jb250cm9sbGVkIHNxbGl0ZSBXQUwgZ3Jvd3RoIGR1cmluZyBsYXJn ZSB0cmFuc2FjdGlvbnMKKworKiBUaHUgQXByIDI4IDIwMjIgUGFudSBNYXRpbGFpbmVuIDxwbWF0 aWxhaUByZWRoYXQuY29tPiAtIDQuMTguMC0wLmFscGhhMS42CistIEZpeCBydWJ5Z2VtIHVucGFj ayByZWdyZXNzaW9uLCBjYXVzaW5nIHJ1YnlnZW0gYnVpbGRzIHRvIGZhaWwKKworKiBXZWQgQXBy IDI3IDIwMjIgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTguMC0w LmFscGhhMS41CistIEZpeCB2ZXJib3NlIHNvdXJjZSB1bmNvbXByZXNzIHJlZ3Jlc3Npb24gKCMy MDc5MTI3KQorCisqIFR1ZSBBcHIgMjYgMjAyMiBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJl ZGhhdC5jb20+IC0gNC4xOC4wLTAuYWxwaGExLjQKKy0gRnVydGhlciBkeW5hbWljIGJ1aWxkcmVx dWlyZXMgY2xpIHN3aXRjaCByZWdyZXNzaW9uIGZpeGVzICgjMjA3ODc0NCkKKworKiBUdWUgQXBy IDI2IDIwMjIgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTguMC0w LmFscGhhMS4zCistIEZpeCBycG1idWlsZCAtYmEgLS1ub2RlcHMgcmVncmVzc2lvbiB3cnQgZHlu YW1pYyBidWlsZHJlcXVpcmVzICgjMjA3ODc0NCkKKworKiBUdWUgQXByIDI2IDIwMjIgUGFudSBN YXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTguMC0wLmFscGhhMS4yCistIEZp eCBycG1idWlsZCAtYnIgbm90IHByb2R1Y2luZyBhIHNyYy5ycG0gcmVncmVzc2lvbiAoIzIwNzg3 NDQpCisKKyogTW9uIEFwciAyNSAyMDIyIFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0 LmNvbT4gLSA0LjE4LjAtMC5hbHBoYTEuMQorLSBSZWJhc2UgdG8gNC4xOC4wIGFscGhhIChodHRw czovL2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvQ2hhbmdlcy9SUE0tNC4xOCkKKy0gQWRkIHBhdGNo ZXMgZm9yIHR3byBsYXRlIGRpc2NvdmVyZWQgcmVncmVzc2lvbnMKKworKiBNb24gTWFyIDIxIDIw MjIgTmVhbCBHb21wYSA8bmdvbXBhQGZlZG9yYXByb2plY3Qub3JnPiAtIDQuMTcuMC0xMAorLSBD cmVhdGUgcnBtZGIgZGlyZWN0b3J5IHN5bWxpbmsgaW4gcG9zdHRyYW5zIGJ5IGRlZmF1bHQgKCMy MDY2NDI3KQorCisqIFdlZCBGZWIgMTYgMjAyMiBOZWFsIEdvbXBhIDxuZ29tcGFAZmVkb3JhcHJv amVjdC5vcmc+IC0gNC4xNy4wLTkKKy0gQWRkIGRlcGVuZGVuY2llcyBmb3IgdGhlIHJwbWRiIG1p Z3JhdGlvbiBzY3JpcHRsZXQgKCMyMDU1MDMzKQorCisqIFdlZCBGZWIgMDIgMjAyMiBQYW51IE1h dGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNy4wLTgKKy0gUmVhbGx5IGZpeCBz cHVyaW91cyAlJXRyYW5zZmlsZXRyaWdnZXJwb3N0dW4gZXhlY3V0aW9uICgjMjAyMzMxMSwgIzIw NDgxNjgpCisKKyogV2VkIEphbiAyNiAyMDIyIE5lYWwgR29tcGEgPG5nb21wYUBmZWRvcmFwcm9q ZWN0Lm9yZz4gLSA0LjE3LjAtNworLSBNaWdyYXRlIHJwbWRiIHRvIC91c3IvbGliL3N5c2ltYWdl L3JwbSAoIzIwNDIwOTkpCisgIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9DaGFuZ2Vz L1JlbG9jYXRlUlBNVG9Vc3IKKworKiBGcmkgSmFuIDIxIDIwMjIgRmVkb3JhIFJlbGVhc2UgRW5n aW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSA0LjE3LjAtNgorLSBSZWJ1aWx0 IGZvciBodHRwczovL2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzM2X01hc3NfUmVidWls ZAorCisqIFRodSBKYW4gMjAgMjAyMiBCasO2cm4gRXNzZXIgPGJlc3NlcjgyQGZlZG9yYXByb2pl Y3Qub3JnPiAtIDQuMTcuMC01CistIFJlYnVpbGQgKGltYS1ldm0tdXRpbHMpCistIFVzZSBiYXNl cmVsZWFzZSBmb3IgcnBtIHJlbGVhc2UgdGFnIHRvIG1ha2UgcnBtZGV2LWJ1bXBzcGVjIHdvcmsK KworKiBGcmkgSmFuIDE0IDIwMjIgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29t PiAtIDQuMTcuMC00CistIEZpeCBzcHVyaW91cyAlJXRyYW5zZmlsZXRyaWdnZXJwb3N0dW4gZXhl Y3V0aW9uICgjMjAyMzMxMSkKKworKiBGcmkgSmFuIDE0IDIwMjIgUGFudSBNYXRpbGFpbmVuIDxw bWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTcuMC0zCistIEZpeCBmYXBvbGljeWQgcGx1Z2luIGRl cGVuZGVuY2llcyB0byByZXBsYWNlIGZhcG9saWN5ZC1kbmYtcGx1Z2luICgjMjAwNzYzOSkKKwor KiBNb24gTm92IDA4IDIwMjEgUGV0ZXIgUm9iaW5zb24gPHBicm9iaW5zb25AZmVkb3JhcHJvamVj dC5vcmc+IC0gNC4xNy4wLTIKKy0gUmVidWlscyBmb3IgaW1hLWV2bS11dGlscyAxLjQgc29uYW1l IGJ1bXAKKworKiBUdWUgU2VwIDE0IDIwMjEgU2FoYW5hIFByYXNhZCA8c2FoYW5hQHJlZGhhdC5j b20+IC0gNC4xNy4wLTEuMQorLSBSZWJ1aWx0IHdpdGggT3BlblNTTCAzLjAuMAorCisqIEZyaSBT ZXAgMDMgMjAyMSBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNy4w LTEKKy0gUmViYXNlIHRvIDQuMTcuMCBmaW5hbCAoaHR0cHM6Ly9ycG0ub3JnL3dpa2kvUmVsZWFz ZXMvNC4xNy4wKQorCisqIFRodSBBdWcgMTkgMjAyMSBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFp QHJlZGhhdC5jb20+IC0gNC4xNy4wLTAucmMxLjEKKy0gUmViYXNlIHRvIDQuMTcuMCByYzEKKwor KiBGcmkgSnVsIDIzIDIwMjEgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRv cmFwcm9qZWN0Lm9yZz4gLSA0LjE3LjAtMC5iZXRhMS4wLjIKKy0gUmVidWlsdCBmb3IgaHR0cHM6 Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV8zNV9NYXNzX1JlYnVpbGQKKworKiBUdWUg SnVuIDIyIDIwMjEgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTcu MC0wLmJldGExLjEKKy0gUmViYXNlIHRvIDQuMTcuMCBiZXRhMQorLSBBZGQgYmFjayAvdXNyL2xp Yi9ycG0vZmluZC1kZWJ1Z2luZm8uc2ggYXMgYSBjb21wYXQgc3ltbGluaworLSBBZGQgdGVtcG9y YXJ5IGJ1aWxkcmVxdWlyZSBvbiBwYW5kb2MgZHVlIHRvIG1ha2VmaWxlIGJ1Z3MgaW4gYmV0YTEK KworKiBXZWQgSnVuIDAyIDIwMjEgUHl0aG9uIE1haW50IDxweXRob24tbWFpbnRAcmVkaGF0LmNv bT4gLSA0LjE2LjkwLTAuZ2l0MTUzOTUuOC4xCistIFJlYnVpbHQgZm9yIFB5dGhvbiAzLjEwCisK KyogTW9uIE1heSAxNyAyMDIxIFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4g LSA0LjE2LjkwLTAuZ2l0MTUzOTUuOAorLSBTd2l0Y2ggdG8gZXh0ZXJuYWwgZGVidWdlZGl0CisK KyogTW9uIE1heSAxNyAyMDIxIFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4g LSA0LjE2LjkwLTAuZ2l0MTUzOTUuNworLSBIYW5kbGUgZGlmZmVyZW50IGZpbmQtZGVidWdpbmZv LnNoIGxvY2F0aW9uIHdpdGggZXh0ZXJuYWwgZGVidWdlZGl0CisKKyogRnJpIE1heSAwNyAyMDIx IFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE2LjkwLTAuZ2l0MTUz OTUuNgorLSBGaXggcmVncmVzc2lvbiBjYXVzaW5nIGEgY3Jhc2ggb24gTHVhIHN0YXRlIHJlc2V0 ICgjMTk1ODA5NSkKKworKiBUaHUgQXByIDI5IDIwMjEgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxh aUByZWRoYXQuY29tPiAtIDQuMTYuOTAtMC5naXQxNTM5NS41CistIFByb3BlciBmaXggZm9yIGNv bW1lbnRzIGFmZmVjdGluZyBtYWNybyBmaWxlIHBhcnNpbmcgKCMxOTUzOTEwKQorCisqIFR1ZSBB cHIgMjcgMjAyMSBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNi45 MC0wLmdpdDE1Mzk1LjQKKy0gRW5hYmxlIGZhcG9saWN5ZCBwbHVnaW4gYnVpbGQKKworKiBUdWUg QXByIDI3IDIwMjEgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTYu OTAtMC5naXQxNTM5NS4zCistIFRlbXBvcmFyaWx5IHJldmVydCBtYWNybyBmaWxlIGxvYWRpbmcg Zml4IGR1ZSB0byByZWdyZXNzaW9uICMxOTUzOTEwCisKKyogTW9uIEFwciAyNiAyMDIxIFBhbnUg TWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE2LjkwLTAuZ2l0MTUzOTUuMgor LSBBZGQgYSBiY29uZCB0byBidWlsZCB3aXRoIGV4dGVybmFsIGRlYnVnZWRpdAorCisqIE1vbiBB cHIgMjYgMjAyMSBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNi45 MC0wLmdpdDE1Mzk1LjEKKy0gUmViYXNlIHRvIHJwbSA0LjE3LjAgYWxwaGEgKGh0dHBzOi8vcnBt Lm9yZy93aWtpL1JlbGVhc2VzLzQuMTcuMCkKKy0gRHJvcCBhIGxvY2FsIGhhY2sgZm9yIGEgY29z bWV0aWMgRmVkb3JhIDIyIGVyYSBycG0yY3BpbyBpc3N1ZQorLSBEcm9wIEJEQiBzdXBwb3J0IGxl ZnRvdmVycyBmcm9tIHRoZSBzcGVjCistIEFkZCBidWlsZCBjb25kaXRpb25hbCBmb3IgZnN2ZXJp dHkgcGx1Z2luCisKKyogTW9uIE1hciAyMiAyMDIxIFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlA cmVkaGF0LmNvbT4gLSA0LjE2LjEuMy0xCistIFJlYmFzZSB0byBycG0gNC4xNi4xLjMgKGh0dHBz Oi8vcnBtLm9yZy93aWtpL1JlbGVhc2VzLzQuMTYuMS4zKQorCisqIFdlZCBGZWIgMDMgMjAyMSBQ YW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNi4xLjItNgorLSBEcm9w IHN1cHBvcnQgZm9yIHJlYWQtd3JpdGUgQmVya2VsZXkgREIgZm9ybWF0ICgjMTc4NzMxMSkKKwor KiBXZWQgRmViIDAzIDIwMjEgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAt IDQuMTYuMS4yLTUKKy0gTWFrZSB3aXRoL3dpdGhvdXQgYmRiIGJ1aWxkIG9wdGlvbiBhY3R1YWxs eSB3b3JrCistIENsZWFuIHVwIHVucGFja2FnZWQgL3Zhci90bXAgZnJvbSB0aGUgYnVpbGQgcm9v dAorCisqIFdlZCBKYW4gMjcgMjAyMSBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsZW5n QGZlZG9yYXByb2plY3Qub3JnPiAtIDQuMTYuMS4yLTQuMQorLSBSZWJ1aWx0IGZvciBodHRwczov L2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzM0X01hc3NfUmVidWlsZAorCisqIEZyaSBK YW4gMjIgMjAyMSBNYXJrIFdpZWxhYXJkIDxtandAZmVkb3JhcHJvamVjdC5vcmc+IC0gNC4xNi4x LjItNAorLSBGaXggZWRpdF9hdHRyaWJ1dGVzX3N0cl9jb21wX2RpciBpbiBQYXRjaDkxNiAoIzE5 MTkxMDcpCisKKyogVHVlIEphbiAxOSAyMDIxIEplZmYgTGF3IDxsYXdAcmVkaGF0LmNvbT4gLSA0 LjE2LjEuMi0zCistIEZpeCB0eXBvIGluIHRlc3QgZm9yIEYzMyBvciBuZXdlcgorCisqIFR1ZSBK YW4gMTkgMjAyMSBNYXJrIFdpZWxhYXJkIDxtandAZmVkb3JhcHJvamVjdC5vcmc+IC0gNC4xNi4x LjItMgorLSBBZGQgZGVidWdlZGl0IERXQVJGNSBzdXBwb3J0CisKKyogV2VkIERlYyAxNiAyMDIw IFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE2LjEuMi0xCistIFJl YmFzZSB0byBycG0gNC4xNi4xLjIgKGh0dHA6Ly9ycG0ub3JnL3dpa2kvUmVsZWFzZXMvNC4xNi4x LjIpCistIEFkZCBhIHNwZWMgc2FmZWd1YXJkIGZvciBhY2NpZGVudGFsIHNvbmFtZSBidW1wcwor CisqIFdlZCBEZWMgMTYgMjAyMCBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+ IC0gNC4xNi4xLjEtMQorLSBSZWJhc2UgdG8gcnBtIDQuMTYuMS4xIChodHRwOi8vcnBtLm9yZy93 aWtpL1JlbGVhc2VzLzQuMTYuMS4xKQorCisqIFRodSBEZWMgMTAgMjAyMCBQYW51IE1hdGlsYWlu ZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNi4xLTEKKy0gUmViYXNlIHRvIHJwbSA0LjE2 LjEgKGh0dHA6Ly9ycG0ub3JnL3dpa2kvUmVsZWFzZXMvNC4xNi4xKQorCisqIE1vbiBOb3YgMzAg MjAyMCBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNi4wLTUKKy0g T25seSBkaXNhYmxlIHRlc3Qtc3VpdGUgd2hlcmUgaXQncyBhY3R1YWxseSBicm9rZW4KKworKiBN b24gTm92IDMwIDIwMjAgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQu MTYuMC00CistIEZpeCBCREIgY3Jhc2hpbmcgb24gZmFpbGVkIG9wZW4gYXR0ZW1wdHMgKCMxOTAy Mzk1LCAjMTg5ODI5OSwgIzE5MDA0MDcpCistIEZpeCB1bm5lY2Vzc2FyeSBkb3VibGUgZmFpbHVy ZSBvbiBsYXp5IGtleXJpbmcgb3BlbgorCisqIFdlZCBPY3QgMjggMjAyMCBQYW51IE1hdGlsYWlu ZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNi4wLTMKKy0gSXNzdWUgZGVwcmVjYXRpb24g d2FybmluZyB3aGVuIGNyZWF0aW5nIEJEQiBkYXRhYmFzZXMgKCMxNzg3MzExKQorLSBUZW1wb3Jh cmlseSBkaXNhYmxlIHRlc3Qtc3VpdGUgZHVlIHRvIG1hc3NpdmUgZmFrZWNocm9vdCBicmVha2Fn ZQorCisqIE1vbiBPY3QgMDUgMjAyMCBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5j b20+IC0gNC4xNi4wLTIKKy0gQ2xlYW4gdXAgYWZ0ZXIgdGVzdC1zdWl0ZSB3aGljaCBsZWF2ZXMg YSByZWFkLW9ubHkgdHJlZSBiZWhpbmQKKworKiBXZWQgU2VwIDMwIDIwMjAgUGFudSBNYXRpbGFp bmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTYuMC0xCistIFJlYmFzZSB0byA0LjE2LjAg ZmluYWwgKGh0dHBzOi8vcnBtLm9yZy93aWtpL1JlbGVhc2VzLzQuMTYuMCkKKworKiBNb24gQXVn IDMxIDIwMjAgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTYuMC0w LnJjMS4xCistIFJlYmFzZSB0byA0LjE2LjAtcmMxCistIFJ1biB0ZXN0LXN1aXRlIGluIHBhcmFs bGVsCisKKyogU2F0IEF1ZyAwMSAyMDIwIEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWxl bmdAZmVkb3JhcHJvamVjdC5vcmc+IC0gNC4xNi4wLTAuYmV0YTMuMi4zCistIFNlY29uZCBhdHRl bXB0IC0gUmVidWlsdCBmb3IKKyAgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9y YV8zM19NYXNzX1JlYnVpbGQKKworKiBXZWQgSnVsIDI5IDIwMjAgRmVkb3JhIFJlbGVhc2UgRW5n aW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSA0LjE2LjAtMC5iZXRhMy4yLjIK Ky0gUmVidWlsdCBmb3IgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV8zM19N YXNzX1JlYnVpbGQKKworKiBTdW4gSnVsIDI2IDIwMjAgUGV0ZXIgUm9iaW5zb24gPHBicm9iaW5z b25AZmVkb3JhcHJvamVjdC5vcmc+IC0gNC4xNi4wLTAuYmV0YTMuMi4xCistIHJlYnVpbGQgZm9y IGltYS1ldm0tdXRpbHMgMS4zCisKKyogTW9uIEp1biAyOSAyMDIwIFRvbSBDYWxsYXdheSA8c3Bv dEBmZWRvcmFwcm9qZWN0Lm9yZz4gLSA0LjE2LjAtMC5iZXRhMy4yCistIHJlYnVpbGQgZm9yIGx1 YSA1LjQKKworKiBXZWQgSnVuIDI0IDIwMjAgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRo YXQuY29tPiAtIDQuMTYuMC0wLmJldGEzLjEKKy0gUmViYXNlIHRvIGJldGEzCisKKyogV2VkIEp1 biAxMCAyMDIwIFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE2LjAt MC5iZXRhMS40CistIEZpeCBwcmVmaXggc2VhcmNoIG9uIHNxbGl0ZSBiYWNrZW5kIChtYW55IGZp bGUgdHJpZ2dlcnMgbm90IHJ1bm5pbmcpCisKKyogTW9uIEp1biA4IDIwMjAgUGFudSBNYXRpbGFp bmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTYuMC0wLmJldGExLjMKKy0gVW5icmVhayBt ZXRhaW5mbygpIHByb3ZpZGUgZ2VuZXJhdGlvbgorCisqIFdlZCBKdW4gMyAyMDIwIFBhbnUgTWF0 aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE2LjAtMC5iZXRhMS4yCistIERvbid0 IGF1dG8tZW5hYmxlIF9mbHVzaF9pbyBvbiBub24tcm90YXRpb25hbCBtZWRpYSwgaXQncyB0b28g Y29zdGx5CisKKyogTW9uIEp1biAxIDIwMjAgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRo YXQuY29tPiAtIDQuMTYuMC0wLmJldGExLjEKKy0gUmViYXNlIHRvIHJwbSA0LjE2LjAtYmV0YTEK KworKiBGcmkgTWF5IDIyIDIwMjAgTWlybyBIcm9uxI1vayA8bWhyb25jb2tAcmVkaGF0LmNvbT4g LSA0LjE1LjkwLTAuZ2l0MTQ5NzEuMTIuMQorLSBSZWJ1aWx0IGZvciBQeXRob24gMy45CisKKyog VHVlIE1heSAxMiAyMDIwIFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0 LjE1LjkwLTAuZ2l0MTQ5NzEuMTIKKy0gRml4IHNlZ2ZhdWx0IHdoZW4gdHJ5aW5nIHRvIHVzZSB1 bmtub3duIGRhdGFiYXNlIGJhY2tlbmQKKworKiBUaHUgTWF5IDcgMjAyMCBQYW51IE1hdGlsYWlu ZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNS45MC0wLmdpdDE0OTcxLjExCistIEZsYWcg QkRCIGRhdGFiYXNlcyBmb3IgcmVidWlsZCBvbiBuZXh0IHJlYm9vdCB3aGVuZXZlciBycG0gaXMg dXBkYXRlZAorLSBTd2l0Y2ggZGVmYXVsdCBkYXRhYmFzZSB0byBzcWxpdGUgKCMxODE4OTEwKQor CisqIE1vbiBNYXkgNCAyMDIwIFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4g LSA0LjE1LjkwLTAuZ2l0MTQ5NzEuMTAKKy0gSGFuZGxlIHJwbWRiLXJlYnVpbGQgc2VydmljZSBl bmFibGVtZW50IGZvciB1cGdyYWRlcworCisqIFRodSBBcHIgMjMgMjAyMCBQYW51IE1hdGlsYWlu ZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNS45MC0wLmdpdDE0OTcxLjkKKy0gRml4IHF1 ZXN0aW9uYWJsZSB1c2VzIG9mICUle25hbWV9IGFuZCAlJXt2ZXJzaW9ufSBpbiB0aGUgc3BlYwor CisqIFdlZCBBcHIgMjIgMjAyMCBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+ IC0gNC4xNS45MC0wLmdpdDE0OTcxLjgKKy0gRml4IHJlZ3Jlc3Npb24ocykgb24gYnVpbGQgZGVw ZW5kZW5jeSByZXNvbHV0aW9uCisKKyogV2VkIEFwciAyMiAyMDIwIFBhbnUgTWF0aWxhaW5lbiA8 cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE1LjkwLTAuZ2l0MTQ5NzEuNworLSBBZGQgcnBtZGIt cmVidWlsZCBzeXN0ZW1kIHNlcnZpY2UKKworKiBGcmkgQXByIDE3IDIwMjAgUGFudSBNYXRpbGFp bmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTUuOTAtMC5naXQxNDk3MS42CistIFdhcm4g b24gdW5kZWZpbmVkIG1hY3JvcyBpbiBidWlsZHRyZWUgc2V0dXAgbWFjcm9zICgjMTgyMDM0OSkK KworKiBUaHUgQXByIDA5IDIwMjAgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29t PiAtIDQuMTUuOTAtMC5naXQxNDk3MS41CistIEZpeCByZWdyZXNzaW9uIGNhdXNpbmcgYWxsIEVM RiBmaWxlcyBjbGFzc2lmaWVkIGFzIE9DYW1sCisKKyogTW9uIEFwciAwNiAyMDIwIFBhbnUgTWF0 aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE1LjkwLTAuZ2l0MTQ5NzEuNAorLSBG aXggaW52YWxpZCBwYXRoIHBhc3NlZCB0byBwYXJhbWV0cmljIG1hY3JvIGdlbmVyYXRvcnMKKwor KiBUaHUgQXByIDAyIDIwMjAgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAt IDQuMTUuOTAtMC5naXQxNDk3MS4zCistIEZpeCBkYiBsb2NrIGZpbGVzIG5vdCBnZXR0aW5nIHBh Y2thZ2VkCisKKyogVHVlIE1hciAzMSAyMDIwIFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVk aGF0LmNvbT4gLSA0LjE1LjkwLTAuZ2l0MTQ5NzEuMgorLSBNb3ZlIGJkYiBzcGVjaWZpYyBzeXN0 ZW1kLXRtcGZpbGVzIGNsZWFudXAgY3J1dGNoIGJlaGluZCB0aGUgYmRiIGJjb25kCisKKyogVHVl IE1hciAzMSAyMDIwIFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE1 LjkwLTAuZ2l0MTQ5NzEuMQorLSBSZWJhc2UgdG8gcnBtIDQuMTYgYWxwaGEgKGh0dHBzOi8vcnBt Lm9yZy93aWtpL1JlbGVhc2VzLzQuMTYuMCkKKy0gQWRkIGJjb25kcyBmb3IgYW5kIGVuYWJsZSBz cWxpdGUsIG5kYiBhbmQgYmRiX3JvIGRhdGFiYXNlIGJhY2tlbmRzCistIEFkZCBiY29uZCBmb3Ig ZGlzYWJsaW5nIGJkYiBiYWNrZW5kCistIERyb3AgbG1kYiBiY29uZCwgdGhlIGJhY2tlbmQgd2Fz IHJlbW92ZWQgdXBzdHJlYW0KKy0gRW5zdXJlIGFsbCBkYXRhYmFzZSBiYWNrZW5kIGZpbGVzIGFy ZSBvd25lZAorLSBGaXggZXh0ZXJuYWwgZW52aXJvbm1lbnQgY2F1c2luZyB0ZXN0LXN1aXRlIGZh aWx1cmVzIGluIHNwZWMgYnVpbGQKKy0gUmUtZW5hYmxlIGhhcmQgdGVzdC1zdWl0ZSBmYWlsdXJl cyBhZ2FpbgorCisqIFRodSBKYW4gMzAgMjAyMCBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8 cmVsZW5nQGZlZG9yYXByb2plY3Qub3JnPiAtIDQuMTUuMS0yLjEKKy0gUmVidWlsdCBmb3IgaHR0 cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV8zMl9NYXNzX1JlYnVpbGQKKworKiBU aHUgSmFuIDkgMjAyMCBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4x NS4xLTIKKy0gT2Jzb2xldGUgcHl0aG9uMi1ycG0gdG8gZml4IHVwZ3JhZGUgcGF0aCAoIzE3NzUx MTMpCisKKyogTW9uIE5vdiAxOCAyMDE5IFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0 LmNvbT4gLSA0LjE1LjEtMQorLSBSZWJhc2UgdG8gNC4xNS4xIChodHRwczovL3JwbS5vcmcvd2lr aS9SZWxlYXNlcy80LjE1LjEpCisKKyogVGh1IE5vdiAxNCAyMDE5IEFkYW0gV2lsbGlhbXNvbiA8 YXdpbGxpYW1AcmVkaGF0LmNvbT4gLSA0LjE1LjAtNworLSBSZWFsbHkgcmV2ZXJ0IGFybXY4IGRl dGVjdGlvbiBpbXByb3ZlbWVudHMgKHBhdGNoIHdhcyBub3QgYXBwbGllZCBpbiAtNikKKworKiBX ZWQgT2N0IDIzIDIwMTkgUGV0ZXIgUm9iaW5zb24gPHBicm9iaW5zb25AZmVkb3JhcHJvamVjdC5v cmc+IDQuMTUuMC02CistIFJldmVydCBhcm12OCBkZXRlY3Rpb24gaW1wcm92ZW1lbnRzCisKKyog TW9uIE9jdCAyMSAyMDE5IFN0ZXBoZW4gR2FsbGFnaGVyIDxzZ2FsbGFnaEByZWRoYXQuY29tPiAt IDQuMTUuMC01CistIFJldmVydCBhbGlhc2luZyBhcm02NCB0byBhYXJjaDY0CistIFJlc29sdmVz OiByaGJ6IzE3NjM4MzEKKworKiBGcmkgT2N0IDE4IDIwMTkgUGFudSBNYXRpbGFpbmVuIDxwbWF0 aWxhaUByZWRoYXQuY29tPiAtIDQuMTUuMC00CistIFJldmVydCBwcm9ibGVtYXRpYyBzdWItdmFy aWFudHMgb2YgYXJtdjggKCMxNjkxNDMwKQorCisqIFRodSBPY3QgMTcgMjAxOSBQYW51IE1hdGls YWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNS4wLTMKKy0gRHJvcCBweXRob24yIGJp bmRpbmdzIGZvciBnb29kICgjMTc2MTIxMSkKKworKiBUdWUgT2N0IDE1IDIwMTkgQWRhbSBXaWxs aWFtc29uIDxhd2lsbGlhbUByZWRoYXQuY29tPiAtIDQuMTUuMC0yCistIFJldmVydCBzeXN0ZW1k IGluaGliaXQgcGx1Z2luJ3MgY2FsbGluZyBvZiBkYnVzX3NodXRkb3duICgjMTc1MDU3NSkKKwor KiBUaHUgU2VwIDI2IDIwMTkgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAt IDQuMTUuMC0xCistIFVwZGF0ZSB0byA0LjE1LjAgZmluYWwgKGh0dHBzOi8vcnBtLm9yZy93aWtp L1JlbGVhc2VzLzQuMTUuMCkKKworKiBXZWQgQXVnIDI4IDIwMTkgUGFudSBNYXRpbGFpbmVuIDxw bWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTUuMC0wLnJjMS4xCistIFVwZGF0ZSB0byA0LjE1LjAt cmMxCisKKyogVHVlIEF1ZyAyNyAyMDE5IFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0 LmNvbT4gLSA0LjE1LjAtMC5iZXRhLjYKKy0gRml4IHNvbWUgaXNzdWVzIGluIHRoZSB0aHJlYWQg Y2FwIGxvZ2ljCisKKyogTW9uIEF1ZyAyNiAyMDE5IFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlA cmVkaGF0LmNvbT4gLSA0LjE1LjAtMC5iZXRhLjUKKy0gUmUtZW5hYmxlIHRlc3Qtc3VpdGUsIHRl bXBvcmFyaWx5IGRpc2FibGVkIGR1cmluZyBhbHBoYSB0cm91Ymxlc2hvb3RpbmcKKworKiBGcmkg QXVnIDIzIDIwMTkgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTUu MC0wLmJldGEuNAorLSBDYXAgbnVtYmVyIG9mIHRocmVhZHMgb24gMzJiaXQgcGxhdGZvcm1zICgj MTcyOTM4MikKKy0gRHJvcCAlJV9sdG9fY2ZsYWdzIG1hY3JvIChyZXZlcnRlZCB1cHN0cmVhbSkK KworKiBGcmkgQXVnIDIzIDIwMTkgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29t PiAtIDQuMTUuMC0wLmJldGEuMworLSBSZXN0b3JlIHN0cmljdCBvcmRlciBvZiBidWlsZCBzY3Jp cHRsZXQgc3Rkb3V0L3N0ZGVyciBvdXRwdXQKKworKiBUaHUgQXVnIDE1IDIwMTkgTWlybyBIcm9u xI1vayA8bWhyb25jb2tAcmVkaGF0LmNvbT4gLSA0LjE1LjAtMC5iZXRhLjIuMworLSBSZWJ1aWx0 IGZvciBQeXRob24gMy44CisKKyogV2VkIEp1bCAzMSAyMDE5IE1pcm8gSHJvbsSNb2sgPG1ocm9u Y29rQHJlZGhhdC5jb20+IC0gNC4xNS4wLTAuYmV0YS4yLjIKKy0gUmVidWlsdCBmb3IgbGliaW1h ZXZtLnNvLjEKKworKiBGcmkgSnVsIDI2IDIwMTkgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcg PHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSA0LjE1LjAtMC5iZXRhLjIuMQorLSBSZWJ1aWx0 IGZvciBodHRwczovL2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzMxX01hc3NfUmVidWls ZAorCisqIFNhdCBKdWwgMjAgMTg6MzA6MTAgQ0VTVCAyMDE5IElnb3IgR25hdGVua28gPGlnbmF0 ZW5rb2JyYWluQGZlZG9yYXByb2plY3Qub3JnPiAtIDQuMTUuMC0wLmJldGEuMgorLSBCYWNrcG9y dCBwYXRjaCB0byBub3Qgc2V0IFJQTVRBR19CVUlMRFRJTUUgdG8gU09VUkNFX0RBVEVfRVBPQ0gK KworKiBUaHUgSnVuIDI3IDIwMTkgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29t PiAtIDQuMTUuMC0wLmJldGEuMQorLSBSZWJhc2UgdG8gNC4xNS4wIGJldGEKKworKiBUaHUgSnVu IDIwIDIwMTkgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTQuOTAt MC5naXQxNDY1My4xOAorLSBGaXggZXhjZXNzaXZlIFRMUyB1c2UsIHBhcnQgSUkgKCMxNzIyMTgx KQorCisqIFRodSBKdW4gMjAgMjAxOSBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5j b20+IC0gNC4xNC45MC0wLmdpdDE0NjUzLjE3CistIEZpeCBleGNlc3NpdmUgVExTIHVzZSAoIzE3 MjIxODEpCisKKyogV2VkIEp1biAxOSAyMDE5IFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVk aGF0LmNvbT4gLSA0LjE0LjkwLTAuZ2l0MTQ2NTMuMTYKKy0gRHJvcCBidWlsZGFyY2ggYWdhaW4g bm93IHRoYXQgcHl0aG9uX3Byb3ZpZGUgbm8gbG9uZ2VyIG5lZWRzIGl0ICgjMTcyMDEzOSkKKwor KiBGcmkgSnVuIDE0IDIwMTkgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAt IDQuMTQuOTAtMC5naXQxNDY1My4xNQorLSBUZW1wb3JhcmlseSByZS1lbmFibGUgYnVpbGRhcmNo IG1hY3JvIGZvciBweXRob25fcHJvdmlkZSBtYWNybyB1c2UgKCMxNzIwMTM5KQorCisqIFRodSBK dW4gMTMgMjAxOSBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNC45 MC0wLmdpdDE0NjUzLjE0CistIERvbid0IGZhaWwgYnVpbGQgdHJ5aW5nIHRvIGtpbGwgYSBub24t ZXhpc3RlbnQgcHJvY2VzcyAoIzE3MjAxNDMpCisKKyogVHVlIEp1biAxMSAxNDo1OToxNiBDRVNU IDIwMTkgSWdvciBHbmF0ZW5rbyA8aWduYXRlbmtvYnJhaW5AZmVkb3JhcHJvamVjdC5vcmc+IC0g NC4xNC45MC0wLmdpdDE0NjUzLjEzCistIEZpeCBidWlsZCBvZiBiaW5hcnkgcGFja2FnZXMgaW4g cGFyYWxsZWwKKworKiBUdWUgSnVuIDExIDAwOjA4OjUwIENFU1QgMjAxOSBJZ29yIEduYXRlbmtv IDxpZ25hdGVua29icmFpbkBmZWRvcmFwcm9qZWN0Lm9yZz4gLSA0LjE0LjkwLTAuZ2l0MTQ2NTMu MTAKKy0gUmV2ZXJ0IGdlbmVyYXRpb24gb2YgYmluYXJ5IHBhY2thZ2VzIGluIHBhcmFsbGVsCisK KyogTW9uIEp1biAxMCAyMDE5IFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4g LSA0LjE0LjkwLTAuZ2l0MTQ2NTMuMQorLSBVcGRhdGUgdG8gNC4xNS4wIGFscGhhCisKKyogTW9u IEp1biAxMCAyMDE5IFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE0 LjIuMS0xNAorLSBEcm9wIHN1cHBvcnQgZm9yIHNhbml0aXplciBidWlsZCwgaXQgbmV2ZXIgcmVh bGx5IHdvcmtlZCBhbnl3YXkKKy0gRHJvcCBsZWZ0b3ZlciBidWlsZC1kZXBlbmRlbmN5IG9uIGJp bnV0aWxzLWRldmVsCistIFRydW5jYXRlIGNoYW5nZWxvZyB0byBycG0gNC4xNC54IChsYXN0IHR3 byB5ZWFycykKKworKiBNb24gSnVuIDEwIDIwMTkgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUBy ZWRoYXQuY29tPiAtIDQuMTQuMi4xLTEzCistIERyb3Agc3VwcG9ydCBmb3IgRmVkb3JhIDwgMjgg YnVpbGRzCistIERyb3AgbGVmdG92ZXIgQkRCLXJlbGF0ZWQgY29tcGlsZXIgZmxhZyBmb28KKwor KiBGcmkgSnVuIDA3IDIwMTkgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAt IDQuMTQuMi4xLTEyCistIFVzZSBwcmUtZGV0ZXJtaW5lZCBidWlsZGhvc3QgaW4gdGVzdC1zdWl0 ZSB0byBhdm9pZCBETlMgdXNhZ2UKKy0gRHJvcCBvYnNvbGV0ZSBzcGVjc3BvIGFuZCBncGcyIHJl bGF0ZWQgcGF0Y2hlcworCisqIEZyaSBKdW4gMDcgMjAxOSBJZ29yIEduYXRlbmtvIDxpZ25hdGVu a29icmFpbkBmZWRvcmFwcm9qZWN0Lm9yZz4gLSA0LjE0LjIuMS0xMQorLSBVc2UgcHkyLzMgbWFj cm9zIGZvciBidWlsZGluZyBhbmQgaW5zdGFsbGluZyB0aGUgYmluZGluZ3MKKworKiBUdWUgTWF5 IDIxIDIwMTkgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTQuMi4x LTEwCistIFN1cHBvcnQgYnVpbGQtaWQgZ2VuZXJhdGlvbiBmcm9tIGNvbXByZXNzZWQgRUxGIGZp bGVzICgjMTY1MDA3MikKKworKiBGcmkgTWF5IDAzIDIwMTkgSWdvciBHbmF0ZW5rbyA8aWduYXRl bmtvYnJhaW5AZmVkb3JhcHJvamVjdC5vcmc+IC0gNC4xNC4yLjEtOQorLSBTdWdnZXN0IGdkYi1t aW5pbWFsCisKKyogVGh1IEFwciAyNSAyMDE5IFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVk aGF0LmNvbT4gLSA0LjE0LjIuMS04CistIFJlcGxhY2UgZGVwcmVjYXRlZCBfX2dsb2JhbF9sZGZs YWdzIHVzZXMgd2l0aCBidWlsZF9sZGZsYWdzIG1hY3JvCisKKyogVGh1IEFwciAxMSAyMDE5IFBh bnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE0LjIuMS03CistIEZpeCBl eGNlc3NpdmUgcmVmZXJlbmNlIGNvdW50aW5nIG9uIGZha2VkIHN0cmluZyAuZGVjb2RlKCkKKwor KiBXZWQgQXByIDEwIDIwMTkgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAt IDQuMTQuMi4xLTYKKy0gVW5icmVhayBQeXRob24gMyBBUEkgYnkgcmV0dXJuaW5nIHN0cmluZyBk YXRhIGFzIHN1cnJvZ2F0ZS1lc2NhcGVkIHV0Zi04CisgIHN0cmluZyBvYmplY3RzIGluc3RlYWQg b2YgYnl0ZXMgKCMxNjkzNzUxKQorLSBBcyBhIHRlbXBvcmFyeSBjcnV0Y2gsICBtb25rZXktcGF0 Y2ggYSAuZGVjb2RlKCkgbWV0aG9kIHRvIHJldHVybmVkIHN0cmluZ3MKKyAgdG8gZ2l2ZSB1c2Vy cyB0aW1lIHRvIG1pZ3JhdGUgZnJvbSB0aGUgbG9uZy1zdGFuZGluZyBicm9rZW4gYmVoYXZpb3IK KworKiBXZWQgQXByIDEwIDIwMTkgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29t PiAtIDQuMTQuMi4xLTUKKy0gR2VuZXJhdGUgbWluaWRlYnVnIGZvciBQSUUgZXhlY3V0YWJsZXMg b24gZmlsZSA+PSA1LjMzIHRvbworLSBCYWNrcG9ydCBmaW5kLWRlYnVnaW5mbyAtLWctbGlicyBv cHRpb24gZm9yIGdsaWJjJ3MgYmVuZWZpdCAoIzE2NjE1MTIpCisKKyogU2F0IEZlYiAwMiAyMDE5 IEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWxlbmdAZmVkb3JhcHJvamVjdC5vcmc+IC0g NC4xNC4yLjEtNC4xCistIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lr aS9GZWRvcmFfMzBfTWFzc19SZWJ1aWxkCisKKyogV2VkIERlYyAxOSAyMDE4IFBhbnUgTWF0aWxh aW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE0LjIuMS00CistIEJhY2twb3J0IHRoZSBu ZXcgbW9kdWxhcml0eSBsYWJlbCB0YWcgKCMxNjUwMjg2KQorCisqIE1vbiBOb3YgMTkgMjAxOCBQ YW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNC4yLjEtMworLSBUYWtl IHByZWZpeCBpbnRvIGFjY291bnQgd2hlbiBjb21wcmVzc2luZyBtYW4gcGFnZXMgZXRjIGZvciBG bGF0cGFrIGJ1aWxkcworCisqIFdlZCBPY3QgMjQgMjAxOCBQYW51IE1hdGlsYWluZW4gPHBtYXRp bGFpQHJlZGhhdC5jb20+IC0gNC4xNC4yLjEtMgorLSBTZWxpbnV4IHBsdWdpbiByZXF1aXJlcyBh IGJhc2UgcG9saWN5IHRvIHdvcmsgKCMxNjQxNjMxKQorCisqIE1vbiBPY3QgMjIgMjAxOCBQYW51 IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNC4yLjEtMQorLSBSZWJhc2Ug dG8gcnBtIDQuMTQuMi4xIChodHRwOi8vcnBtLm9yZy93aWtpL1JlbGVhc2VzLzQuMTQuMi4xKQor CisqIFdlZCBPY3QgMTcgMjAxOCBJZ29yIEduYXRlbmtvIDxpZ25hdGVua29icmFpbkBmZWRvcmFw cm9qZWN0Lm9yZz4gLSA0LjE0LjItOQorLSBQdXNoIG5hbWUvZXBvY2gvdmVyc2lvbi9yZWxlYXNl IG1hY3JvIGJlZm9yZSBpbnZva2luZyBkZXBnZW5zCisKKyogVHVlIE9jdCAxNiAyMDE4IElnb3Ig R25hdGVua28gPGlnbmF0ZW5rb2JyYWluQGZlZG9yYXByb2plY3Qub3JnPiAtIDQuMTQuMi04Cist IFJlc3VycmVjdCBsb25nIHNpbmNlIGJyb2tlbiBMdWEgbGlicmFyeSBwYXRoCisKKyogRnJpIE9j dCAxMiAyMDE4IFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE0LjIt NworLSBBY3R1YWxseSBmYWlsIGJ1aWxkIG9uIHRlc3Qtc3VpdGUgZmFpbHVyZXMgYWdhaW4KKy0g SW52b2tlIHB5dGhvbjIgZXhwbGljaXRseSBmcm9tIHRlc3Qtc3VpdGUgdG8gdW5icmVhayBidWls ZCwgcGFydCBJSQorCisqIFRodSBPY3QgMTEgMjAxOCBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFp QHJlZGhhdC5jb20+IC0gNC4xNC4yLTYKKy0gRHJvcCBkdXBsaWNhdGUgQkRCIGJ1aWxkcmVxdWly ZQorLSBEcm9wIG5vd2FkYXlzIHVubmVjZXNzYXJ5IEJEQiBtYWNybyBmb28KKy0gRHJvcCBub3dh ZGF5cyB1bm5lY2Vzc2FyeSBtYW51YWwgbGliY2FwIGRlcGVuZGVuY3kKKworKiBUaHUgT2N0IDEx IDIwMTggUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTQuMi01Cist IE93biBhbGwgcnBtZGIgZmlsZXMgYW5kIGVuc3VyZSB0aGUgbGlzdCByZW1haW5zIHVwIHRvIGRh dGUKKy0gRHJvcCByZWR1bmRhbnQgdmVyaWZ5IGV4Y2x1c2lvbnMgb24gcnBtZGIgZ2hvc3RzCist IEZpeCBidWlsZCB3aGVuIHN5c3RlbWQgaXMgbm90IGluc3RhbGxlZCAoZHVoKQorCisqIFRodSBP Y3QgMTEgMjAxOCBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNC4y LTQKKy0gRXJtLCByZWFsbHkgdXNlIHRoZSBtYWNybyBmb3IgdG1wZmlsZXMuZCBwYXRoCistIEVy bSwgZG9uJ3QgbnVrZSBidWlsZHJvb3QgYXQgYmVnaW5uaW5nIG9mICUlaW5zdGFsbAorLSBVc2Ug bW9kZXJuIGJ1aWxkL2luc3RhbGwgaGVscGVyIG1hY3JvcworCisqIFRodSBPY3QgMTEgMjAxOCBQ YW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNC4yLTMKKy0gRWgsIHNl bGludXggcGx1Z2luIGRlcGVuZGVuY3kgY29uZGl0aW9uIHdhcyB1cHNpZGUgZG93biAoIzE0OTMy NjcpCistIERyb3Agbm8gbG9uZ2VyIG5lY2Vzc2FyeSBjb25kaXRpb24gb3ZlciBpbWFldm0gbmFt ZQorLSBEcm9wIG5vIGxvbmdlciBuZWNlc3Nhcnkgb2Jzb2xldGUgb24gY29tcGF0LWxpYnJwbTMK KworKiBUaHUgT2N0IDExIDIwMTggUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29t PiAtIDQuMTQuMi0yCistIEZpeCBhbmNpZW50IFB5dGhvbiBHSUwgbG9ja2luZyBidWcgKCMxNjMy NDg4KQorLSBVc2UgdGhlIGFwcHJvcHJpYXRlIG1hY3JvIGZvciB0bXBmaWxlcy5kIG5vdyB0aGF0 IG9uZSBleGlzdHMKKworKiBUdWUgQXVnIDIxIDIwMTggUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxh aUByZWRoYXQuY29tPiAtIDQuMTQuMi0xCistIFVwZGF0ZSB0byBycG0gNC4xNC4yIGZpbmFsICho dHRwOi8vcnBtLm9yZy93aWtpL1JlbGVhc2VzLzQuMTQuMikKKworKiBNb24gQXVnIDEzIDIwMTgg UGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTQuMi0wLnJjMi4yCist IE1vdmUgcHl0aG9uLW1hY3JvLWhlbHBlciB0byBtYWluIHBhY2thZ2Ugd2hlcmUgdGhlIG1hY3Jv cyBhcmUgKCMxNTc3ODYwKQorCisqIFdlZCBBdWcgMDggMjAxOCBQYW51IE1hdGlsYWluZW4gPHBt YXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNC4yLTAucmMyLjEKKy0gVXBkYXRlIHRvIHJwbSA0LjE0 LjItcmMyCisKKyogU2F0IEp1bCAyMSAyMDE4IElnb3IgR25hdGVua28gPGlnbmF0ZW5rb2JyYWlu QGZlZG9yYXByb2plY3Qub3JnPiAtIDQuMTQuMi0wLnJjMS4yCistIERlY29tcHJlc3MgRFdBUkYg Y29tcHJlc3NlZCBFTEYgc2VjdGlvbnMKKworKiBTYXQgSnVsIDE0IDIwMTggRmVkb3JhIFJlbGVh c2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSA0LjE0LjItMC5yYzEu MS4yCistIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFf MjlfTWFzc19SZWJ1aWxkCisKKyogTW9uIEp1bCAwMiAyMDE4IE1pcm8gSHJvbsSNb2sgPG1ocm9u Y29rQHJlZGhhdC5jb20+IC0gNC4xNC4yLTAucmMxLjEuMQorLSBSZWJ1aWx0IGZvciBQeXRob24g My43CisKKyogRnJpIEp1biAyOSAyMDE4IFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0 LmNvbT4gLSA0LjE0LjItMC5yYzEuMQorLSBVcGRhdGUgdG8gcnBtIDQuMTQuMi1yYzEKKy0gUGF0 Y2hpbmcgdGVzdC1zdWl0ZSBmb3IgcHl0aG9uMiB0b28gcGFpbmZ1bCwganVzdCBzZWQgaXQgaW5z dGVhZAorLSBGaXggcHJlbWF0dXJlIHZlcnNpb24gaW5jcmVtZW50IGZyb20gcHJldmlvdXMgY2hh bmdlbG9nIGVudHJpZXMsIG9vcHMKKworKiBGcmkgSnVuIDI5IDIwMTggUGFudSBNYXRpbGFpbmVu IDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTQuMS0xMworLSBFaG0sIG5lZWQgdG8gcGF0Y2gg dGhlIGF1dG9nZW5lcmF0ZWQgcnBtdGVzdHMgc2NyaXB0IHRvbyBmb3IgcHl0aG9uMgorLSBFaG0s IGl0J3MgbGRjb25maWdfc2NyaXB0bGV0cyBub3Qgc2NyaXB0cworLSBEcm9wIHRoZSBub24td29y a2luZyBweXRob24gZW52dmFyIG1hZ2ljIGZyb20gb2Jzb2xldGVkIGNoYW5nZQorCisqIEZyaSBK dW4gMjkgMjAxOCBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNC4x LTEyCistIEludm9rZSBweXRob24yIGV4cGxpY2l0bHkgZnJvbSB0ZXN0LXN1aXRlIHRvIHVuYnJl YWsgYnVpbGQKKworKiBGcmkgSnVuIDI5IDIwMTggUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUBy ZWRoYXQuY29tPiAtIDQuMTQuMS0xMQorLSBSZW1vdmUgZGlyZWN0IGxkY29uZmlnIGNhbGxzLCB1 c2UgY29tcGF0IG1hY3JvcyBpbnN0ZWFkCisKKyogRnJpIEp1biAxNSAyMDE4IE1pcm8gSHJvbsSN b2sgPG1ocm9uY29rQHJlZGhhdC5jb20+IC0gNC4xNC4xLTEwLjEKKy0gUmVidWlsdCBmb3IgUHl0 aG9uIDMuNworCisqIE1vbiBNYXkgMjggMjAxOCBNaXJvIEhyb27EjW9rIDxtaHJvbmNva0ByZWRo YXQuY29tPiAtIDQuMTQuMS0xMAorLSBCYWNrcG9ydCB1cHN0cmVhbSBzb2x1dGlvbiB0byBtYWtl IGJycC1weXRob24tYnl0ZWNvbXBpbGUgYXV0b21hZ2ljIHBhcnQgb3B0LW91dGFibGUKKyAgaHR0 cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0NoYW5nZXMvTm9fbW9yZV9hdXRvbWFnaWNfUHl0 aG9uX2J5dGVjb21waWxhdGlvbgorCisqIFR1ZSBNYXkgMjIgMjAxOCBNYXJrIFdpZWxhYXJkIDxt andAZmVkb3JhcHJvamVjdC5vcmc+IC0gNC4xNC4xLTkKKy0gZmluZC1kZWJ1Z2luZm8uc2g6IEhh bmRsZSBhcHBsaWNhdGlvbi94LXBpZS1leGVjdXRhYmxlICgjMTU4MTIyNCkKKworKiBUdWUgRmVi IDIwIDIwMTggSWdvciBHbmF0ZW5rbyA8aWduYXRlbmtvYnJhaW5AZmVkb3JhcHJvamVjdC5vcmc+ IC0gNC4xNC4xLTgKKy0gU3BsaXQgcnBtLWJ1aWxkLWxpYnMgdG8gb25lIG1vcmUgc3VicGFja2Fn ZSBycG0tc2lnbi1saWJzCisKKyogTW9uIEZlYiAxOSAyMDE4IFBhbnUgTWF0aWxhaW5lbiA8cG1h dGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE0LjEtNworLSBFeHBsaWNpdGx5IEJ1aWxkUmVxdWlyZSBn Y2MgYW5kIG1ha2UKKworKiBGcmkgRmViIDA5IDIwMTggSWdvciBHbmF0ZW5rbyA8aWduYXRlbmtv YnJhaW5AZmVkb3JhcHJvamVjdC5vcmc+IC0gNC4xNC4xLTYuMQorLSBFc2NhcGUgbWFjcm9zIGlu ICUlY2hhbmdlbG9nCisKKyogV2VkIEphbiAzMSAyMDE4IFBhbnUgTWF0aWxhaW5lbiA8cG1hdGls YWlAcmVkaGF0LmNvbT4gLSA0LjE0LjEtNgorLSBBdm9pZCB1bm5lY2Vzc2FyeSBtYWNybyBoZWxw ZXIgZGVwZW5kZW5jeSBvbiAvdXNyL2Jpbi9weXRob24gKCMxNTM4NjU3KQorLSBGaXggcmVsZWFz ZSBvZiBwcmV2aW91cyBjaGFuZ2Vsb2cgZW50cnkKKworKiBUdWUgSmFuIDMwIDIwMTggVG9tYXMg T3JzYXZhIDx0b3JzYXZhQHJlZGhhdC5jb20+IC0gNC4xNC4xLTUKKy0gQWRkIGVudnZhciB0aGF0 IHdpbGwgYmUgcHJlc2VudCBkdXJpbmcgUlBNIGJ1aWxkLAorICBQYXJ0IG9mIGEgRmVkb3JhIENo YW5nZSBmb3IgRjI4OiAiQXZvaWQgL3Vzci9iaW4vcHl0aG9uIGluIFJQTSBidWlsZCIKKyAgaHR0 cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0NoYW5nZXMvQXZvaWRfdXNyX2Jpbl9weXRob25f aW5fUlBNX0J1aWxkCisKKyogVHVlIEphbiAzMCAyMDE4IFBldHIgVmlrdG9yaW4gPHB2aWt0b3Jp QHJlZGhhdC5jb20+IC0gNC4xNC4xLTQKKy0gU2tpcCBhdXRvbWF0aWMgUHl0aG9uIGJ5dGUtY29t cGlsYXRpb24gaWYgKi5weSBmaWxlcyBhcmUgbm90IHByZXNlbnQKKworKiBUaHUgSmFuIDI1IDIw MTggRmxvcmlhbiBXZWltZXIgPGZ3ZWltZXJAcmVkaGF0LmNvbT4gLSA0LjE0LjEtMworLSBSZWJ1 aWxkIHRvIHdvcmsgYXJvdW5kIGdjYyBidWcgbGVhZGluZyB0byBsaWJycG0gbWlzY29tcGlsYXRp b24gKCMxNTM4NjQ4KQorCisqIFRodSBKYW4gMTggMjAxOCBQYW51IE1hdGlsYWluZW4gPHBtYXRp bGFpQHJlZGhhdC5jb20+IC0gNC4xNC4xLTIKKy0gQXZvaWQgbnVraW5nIHRoZSBuZXcgcHl0aG9u LW1hY3JvLWhlbHBlciBhbG9uZyB3aXRoIGRlcCBnZW5lcmF0b3JzICgjMTUzNTY5MikKKworKiBU dWUgSmFuIDE2IDIwMTggUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQu MTQuMS0xCistIFJlYmFzZSB0byBycG0gNC4xNC4xIChodHRwOi8vcnBtLm9yZy93aWtpL1JlbGVh c2VzLzQuMTQuMSkKKworKiBUdWUgTm92IDA3IDIwMTcgSWdvciBHbmF0ZW5rbyA8aWduYXRlbmtv YnJhaW5AZmVkb3JhcHJvamVjdC5vcmc+IC0gNC4xNC4wLTUKKy0gRml4IHR5cG8gaW4gT2Jzb2xl dGVzCisKKyogTW9uIE5vdiAwNiAyMDE3IElnb3IgR25hdGVua28gPGlnbmF0ZW5rb2JyYWluQGZl ZG9yYXByb2plY3Qub3JnPiAtIDQuMTQuMC00CistIFJlbW92ZSBwbGF0Zm9ybS1weXRob24gYml0 cworCisqIFRodSBPY3QgMjYgMjAxNyBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5j b20+IC0gNC4xNC4wLTMKKy0gTW92ZSBzZWxpbnV4IHBsdWdpbiBkZXBlbmRlbmN5IHRvIHNlbGlu dXgtcG9saWN5IGluIEZlZG9yYSA+PSAyOCAoIzE0OTMyNjcpCisKKyogVGh1IE9jdCAxMiAyMDE3 IFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE0LjAtMgorLSBEdW1w IG91dCB0ZXN0LXN1aXRlIGxvZyBpbiBjYXNlIG9mIGZhaWx1cmVzIGFnYWluCistIERvbid0IGFz c3VtZSBwZXItdXNlciBncm91cHMgaW4gdGVzdC1zdWl0ZQorCisqIFRodSBPY3QgMTIgMjAxNyBQ YW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNC4wLTEKKy0gUmViYXNl IHRvIHJwbSA0LjE0LjAgZmluYWwgKGh0dHA6Ly9ycG0ub3JnL3dpa2kvUmVsZWFzZXMvNC4xNC4w KQorCisqIFR1ZSBPY3QgMTAgMjAxNyBUcm95IERhd3NvbiA8dGRhd3NvbkByZWRoYXQuY29tPiAt IDQuMTQuMC0wLnJjMi42CistIENsZWFudXAgc3BlYyBmaWxlIGNvbmRpdGlvbmFscworCisqIFR1 ZSBPY3QgMDMgMjAxNyBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4x NC4wLTAucmMyLjUKKy0gQWRkIGJ1aWxkIGNvbmRpdGlvbmFscyBmb3IgenN0ZCBhbmQgbG1kYiBz dXBwb3J0CistIEVuYWJsZSB6c3RkIHN1cHBvcnQKKworKiBUdWUgT2N0IDAzIDIwMTcgUGFudSBN YXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTQuMC0wLnJjMi40CistIFNwZWMg Y2xlYW51cHMKKworKiBGcmkgU2VwIDI5IDIwMTcgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUBy ZWRoYXQuY29tPiAtIDQuMTQuMC0wLnJjMi4zCistIEJ1aWxkUmVxdWlyZSBnbnVwZzIgZm9yIHRo ZSB0ZXN0c3VpdGUKKworKiBGcmkgU2VwIDI5IDIwMTcgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxh aUByZWRoYXQuY29tPiAtIDQuMTQuMC0wLnJjMi4yCistIGltYS1ldm0tdXRpbHMgb25seSBoYXMg YSAtZGV2ZWwgcGFja2FnZSBpbiBmZWRvcmEgPj0gMjgKKworKiBUaHUgU2VwIDI4IDIwMTcgUGFu dSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTQuMC0wLnJjMi4xCistIFJl YmFzZSB0byBycG0gNC4xNC4wLXJjMiAoaHR0cDovL3JwbS5vcmcvd2lraS9SZWxlYXNlcy80LjE0 LjApCisKKyogTW9uIFNlcCAxOCAyMDE3IFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0 LmNvbT4gLSA0LjE0LjAtMC5yYzEuMworLSBGaXggRnRlbGwoKSBwYXN0IDJHQiBvbiAzMmJpdCBh cmNoaXRlY3R1cmVzICgjMTQ5MjU4NykKKworKiBUaHUgU2VwIDA3IDIwMTcgUGFudSBNYXRpbGFp bmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTQuMC0wLnJjMS4yCistIEFjdHVhbGx5IGhv bm9yIHdpdGgvd2l0aG91dCBsaWJpbWFldm0gb3B0aW9uCistIGltYS1ldm0tdXRpbHMtZGV2ZWwg Pj0gMS4wIGlzIHJlcXVpcmVkIGZvciBycG0gPj0gNC4xNC4wCisKKyogV2VkIFNlcCAwNiAyMDE3 IFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE0LjAtMC5yYzEuMQor LSBSZWJhc2UgdG8gcnBtIDQuMTQuMC1yYzEgKGh0dHA6Ly9ycG0ub3JnL3dpa2kvUmVsZWFzZXMv NC4xNC4wKQorLSBSZS1lbmFibGUgU0hBMjU2IGhlYWRlciBkaWdlc3QgZ2VuZXJhdGlvbiAoc2Vl ICMxNDgwNDA3KQorCisqIE1vbiBBdWcgMjggMjAxNyBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFp QHJlZGhhdC5jb20+IC0gNC4xMy45MC0wLmdpdDE0MDAwLjgKKy0gQmFuZC1haWQgZm9yIERCX1ZF UlNJT05fTUlTTUFUQ0ggZXJyb3JzIG9uIGdsaWJjIHVwZGF0ZXMgKCMxNDY1ODA5KQorCisqIFRo dSBBdWcgMjQgMjAxNyBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4x My45MC0wLmdpdDE0MDAwLjcKKy0gUmVtb3ZlIHVnbHkga2x1ZGdlcyBmcm9tIHBvc3R0cmFucyBz Y3JpcHQsIEJEQiBoYW5kbGVzIHRoaXMgbm93CisKKyogRnJpIEF1ZyAxOCAyMDE3IFBhbnUgTWF0 aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjEzLjkwLTAuZ2l0MTQwMDAuNgorLSBT aWxlbmNlIGhhcm1sZXNzIGJ1dCBib2d1cyBlcnJvciBtZXNzYWdlIG9uIG5vYXJjaCBwYWNrYWdl cyAoIzE0ODIxNDQpCisKKyogVGh1IEF1ZyAxNyAyMDE3IE1pcm8gSHJvbsSNb2sgPG1ocm9uY29r QHJlZGhhdC5jb20+IC0gNC4xMy45MC0wLmdpdDE0MDAyLjUKKy0gQnVpbGQgd2l0aCBwbGF0Zm9y bV9weXRob24KKworKiBNb24gQXVnIDE0IDIwMTcgTWlybyBIcm9uxI1vayA8bWhyb25jb2tAcmVk aGF0LmNvbT4gLSA0LjEzLjkwLTAuZ2l0MTQwMDAuNAorLSBBZGQgcGxhdGZvcm0tcHl0aG9uIGJ5 dGVjb21waWxhdGlvbiBwYXRjaDogcGxhdGZvcm0tcHl0aG9uLWJ5dGVjb21waWxlLnBhdGNoCist IEFkZCBwbGF0Zm9ybSBweXRob24gZGVwcyBnZW5lcmF0b3IgcGF0Y2g6IHBsYXRmb3JtLXB5dGhv bi1hYmkucGF0Y2gKKy0gQWRkIGEgcGxhdGZvcm0tcHl0aG9uIHN1YnBhY2thZ2UgYW5kIHJlbW92 ZSBzeXN0ZW0gcHl0aG9uIHJlbGF0ZWQgZGVjbGFyYXRpb25zCistIEJ1aWxkIHJwbSB3aXRob3V0 IHBsYXRmb3JtX3B5dGhvbiBmb3IgYnl0ZWNvbXBpbGF0aW9uCisgIChodHRwczovL2ZlZG9yYXBy b2plY3Qub3JnL3dpa2kvQ2hhbmdlcy9QbGF0Zm9ybV9QeXRob25fU3RhY2spCisKKyogTW9uIEF1 ZyAxNCAyMDE3IFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjEzLjkw LTAuZ2l0MTQwMDAuMworLSBEaXNhYmxlIG1hY3JvIGFyZ3VtZW50IHF1b3RpbmcgYXMgYSBiYW5k LWFpZCB0byAjMTQ4MTAyNQorCisqIEZyaSBBdWcgMTEgMjAxNyBQYW51IE1hdGlsYWluZW4gPHBt YXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xMy45MC0wLmdpdDE0MDAwLjIKKy0gRGlzYWJsZSBTSEEy NTYgaGVhZGVyLW9ubHkgZGlnZXN0IGdlbmVyYXRpb24gdGVtcG9yYXJpbHkgKCMxNDgwNDA3KQor CisqIFRodSBBdWcgMTAgMjAxNyBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+ IC0gNC4xMy45MC0wLmdpdDE0MDAwLjEKKy0gUmViYXNlIHRvIHJwbSA0LjEzLjkwIGFrYSA0LjE0 LjAtYWxwaGEgKCMxNDc0ODM2KQorCgpkaWZmIC0tZ2l0IGEvcnBtLnNwZWMgYi9ycG0uc3BlYwpk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZThkNDA4NC4uMDAwMDAwMAotLS0gYS9ycG0u c3BlYworKysgL2Rldi9udWxsCkBAIC0xLDE0OTIgKzAsMCBAQAotIyBidWlsZCBhZ2FpbnN0IHh6 PwotJWJjb25kX3dpdGhvdXQgeHoKLSMgYnVpbGQgd2l0aCBwbHVnaW5zPwotJWJjb25kX3dpdGhv dXQgcGx1Z2lucwotIyBidWlsZCB3aXRoIGxpYmFyY2hpdmU/IChuZWVkZWQgZm9yIHJwbTJhcmNo aXZlKQotJWJjb25kX3dpdGhvdXQgbGliYXJjaGl2ZQotIyBidWlsZCB3aXRoIGxpYmltYWV2bS5z bwotJWJjb25kX3dpdGhvdXQgbGliaW1hZXZtCi0jIGJ1aWxkIHdpdGggZnN2ZXJpdHkgc3VwcG9y dD8KLSVpZiAwJXs/cmhlbH0KLSViY29uZF93aXRoIGZzdmVyaXR5Ci0lZWxzZQotJWJjb25kX3dp dGhvdXQgZnN2ZXJpdHkKLSVlbmRpZgotIyBidWlsZCB3aXRoIHpzdGQgc3VwcG9ydD8KLSViY29u ZF93aXRob3V0IHpzdGQKLSMgYnVpbGQgd2l0aCBuZGIgYmFja2VuZD8KLSViY29uZF93aXRob3V0 IG5kYgotIyBidWlsZCB3aXRoIHNxbGl0ZSBzdXBwb3J0PwotJWJjb25kX3dpdGhvdXQgc3FsaXRl Ci0jIGJ1aWxkIHdpdGggYmRiX3JvIHN1cHBvcnQ/Ci0lYmNvbmRfd2l0aG91dCBiZGJfcm8KLSMg YnVpbGQgd2l0aCBzZXF1b2lhIGNyeXB0bz8KLSViY29uZF93aXRob3V0IHNlcXVvaWEKLQotJWRl ZmluZSBycG1ob21lIC91c3IvbGliL3JwbQotCi0lZ2xvYmFsIHJwbXZlciA0LjE5LjEuMQotI2ds b2JhbCBzbmFwdmVyIHJjMQotJWdsb2JhbCBiYXNlcmVsZWFzZSAyNQotJWdsb2JhbCBzb3ZlciAx MAotCi0lZ2xvYmFsIHNyY3ZlciAle3JwbXZlcn0lez9zbmFwdmVyOi0le3NuYXB2ZXJ9fQotJWds b2JhbCBzcmNkaXIgJXs/c25hcHZlcjp0ZXN0aW5nfSV7IT9zbmFwdmVyOnJwbS0lKGVjaG8gJXty cG12ZXJ9IHwgY3V0IC1kJy4nIC1mMS0yKS54fQotCi1TdW1tYXJ5OiBUaGUgUlBNIHBhY2thZ2Ug bWFuYWdlbWVudCBzeXN0ZW0KLU5hbWU6IHJwbQotVmVyc2lvbjogJXtycG12ZXJ9Ci1SZWxlYXNl OiAlez9zbmFwdmVyOjAuJXtzbmFwdmVyfS59JXtiYXNlcmVsZWFzZX0lez9kaXN0fQotVXJsOiBo dHRwOi8vd3d3LnJwbS5vcmcvCi1MaWNlbnNlOiBHUEwtMi4wLW9yLWxhdGVyCi1Tb3VyY2UwOiBo dHRwOi8vZnRwLnJwbS5vcmcvcmVsZWFzZXMvJXtzcmNkaXJ9L3JwbS0le3NyY3Zlcn0udGFyLmJ6 MgotCi1Tb3VyY2UxMDogcnBtZGItcmVidWlsZC5zZXJ2aWNlCi0KLVNvdXJjZTIwOiBycG1kYi1t aWdyYXRlLnNlcnZpY2UKLVNvdXJjZTIxOiBycG1kYl9taWdyYXRlCi0KLVNvdXJjZTMwOiBtYWNy b3MucnBtc2lnbi1zZXF1b2lhCi0KLVJlcXVpcmVzOiBjb3JldXRpbHMKLVJlcXVpcmVzOiBwb3B0 JXtfaXNhfSA+PSAxLjEwLjIuMQotUmVxdWlyZXM6IGN1cmwKLUNvbmZsaWN0czogc3lzdGVtZCA8 IDI1My41LTYKLU9ic29sZXRlczogcHl0aG9uMi1ycG0gPCAle3ZlcnNpb259LSV7cmVsZWFzZX0K LQotIyBYWFggZ2VuZXJhbGx5IGFzc3VtZWQgdG8gYmUgaW5zdGFsbGVkIGJ1dCBtYWtlIGl0IGV4 cGxpY2l0IGFzIHJwbQotIyBpcyBhIGJpdCBzcGVjaWFsLi4uCi1CdWlsZFJlcXVpcmVzOiByZWRo YXQtcnBtLWNvbmZpZyA+PSA5NAotQnVpbGRSZXF1aXJlczogc3lzdGVtZC1ycG0tbWFjcm9zCi1C dWlsZFJlcXVpcmVzOiBnY2MgbWFrZQotQnVpbGRSZXF1aXJlczogY21ha2UgPj0gMy4xOAotQnVp bGRSZXF1aXJlczogZ2F3awotQnVpbGRSZXF1aXJlczogZWxmdXRpbHMtZGV2ZWwgPj0gMC4xMTIK LUJ1aWxkUmVxdWlyZXM6IGVsZnV0aWxzLWxpYmVsZi1kZXZlbAotQnVpbGRSZXF1aXJlczogcmVh ZGxpbmUtZGV2ZWwgemxpYi1kZXZlbAotIyBUaGUgcG9wdCB2ZXJzaW9uIGhlcmUganVzdCBkb2N1 bWVudHMgYW4gb2xkZXIga25vd24tZ29vZCB2ZXJzaW9uCi1CdWlsZFJlcXVpcmVzOiBwb3B0LWRl dmVsID49IDEuMTAuMgotQnVpbGRSZXF1aXJlczogZmlsZS1kZXZlbAotQnVpbGRSZXF1aXJlczog Z2V0dGV4dC1kZXZlbAotQnVpbGRSZXF1aXJlczogbmN1cnNlcy1kZXZlbAotQnVpbGRSZXF1aXJl czogYnppcDItZGV2ZWwgPj0gMC45LjBjLTIKLUJ1aWxkUmVxdWlyZXM6IGx1YS1kZXZlbCA+PSA1 LjEKLUJ1aWxkUmVxdWlyZXM6IGxpYmNhcC1kZXZlbAotQnVpbGRSZXF1aXJlczogbGliYWNsLWRl dmVsCi0laWYgJXt3aXRoIHh6fQotQnVpbGRSZXF1aXJlczogeHotZGV2ZWwgPj0gNC45OTkuOAot JWVuZGlmCi0laWYgJXt3aXRoIGxpYmFyY2hpdmV9Ci1CdWlsZFJlcXVpcmVzOiBsaWJhcmNoaXZl LWRldmVsCi0lZW5kaWYKLSVpZiAle3dpdGggenN0ZH0KLUJ1aWxkUmVxdWlyZXM6IGxpYnpzdGQt ZGV2ZWwKLSVlbmRpZgotJWlmICV7d2l0aCBzcWxpdGV9Ci1CdWlsZFJlcXVpcmVzOiBzcWxpdGUt ZGV2ZWwKLSVlbmRpZgotCi0jIE5lZWRlZCBmb3IgcmUtYnVpbGRpbmcgdGhlIGRvY3VtZW50YXRp b24gYW5kIG1hbiBwYWdlcwotIyBub3JtYWxseSB0aG9zZSBhcmUgc2hpcHBlZCBpbiB0aGUgdGFy YmFsbCBwcmUtYnVpbGQKLSMgYnV0IG5lZWQgcmUtYnVpbGRpbmcgaWYgc291cmNlcyBhcmUgcGF0 Y2hlZAotJWlmIDAKLUJ1aWxkUmVxdWlyZXM6IHBhbmRvYwotQnVpbGRSZXF1aXJlczogZG94eWdl bgotJWVuZGlmCi0KLQotJWlmICV7d2l0aCBzZXF1b2lhfQotJWdsb2JhbCBjcnlwdG8gc2VxdW9p YQotQnVpbGRSZXF1aXJlczogcnBtLXNlcXVvaWEtZGV2ZWwgPj0gMS45LjAKLSVlbHNlCi0lZ2xv YmFsIGNyeXB0byBvcGVuc3NsCi1CdWlsZFJlcXVpcmVzOiBvcGVuc3NsLWRldmVsCi0lZW5kaWYK LQotIyBDb3VwbGUgb2YgcGF0Y2hlcyBjaGFuZ2UgbWFrZWZpbGVzIHNvLCByZXF1aXJlIGZvciBu b3cuLi4KLUJ1aWxkUmVxdWlyZXM6IGF1dG9tYWtlIGxpYnRvb2wKLQotJWlmICV7d2l0aCBwbHVn aW5zfQotQnVpbGRSZXF1aXJlczogbGlic2VsaW51eC1kZXZlbAotQnVpbGRSZXF1aXJlczogZGJ1 cy1kZXZlbAotQnVpbGRSZXF1aXJlczogYXVkaXQtbGlicy1kZXZlbAotJWVuZGlmCi0KLSVpZiAl e3dpdGggbGliaW1hZXZtfQotQnVpbGRSZXF1aXJlczogaW1hLWV2bS11dGlscy1kZXZlbCA+PSAx LjAKLSVlbmRpZgotCi0laWYgJXt3aXRoIGZzdmVyaXR5fQotQnVpbGRSZXF1aXJlczogZnN2ZXJp dHktdXRpbHMtZGV2ZWwKLSVlbmRpZgotCi0jIEZvciB0aGUgcnBtZGIgbWlncmF0aW9uIHNjcmlw dGxldCAoIzIwNTUwMzMpCi1SZXF1aXJlcyhwcmUpOiBjb3JldXRpbHMKLVJlcXVpcmVzKHByZSk6 IGZpbmR1dGlscwotUmVxdWlyZXMocHJlKTogc2VkCi0KLSVwYXRjaGxpc3QKLSMgU2V0IHJwbWRi IHBhdGggdG8gL3Vzci9saWIvc3lzaW1hZ2UvcnBtCi1ycG0tNC4xNy54LXJwbV9kYnBhdGgucGF0 Y2gKLSMgRGlzYWJsZSBhdXRvY29uZiBjb25maWcuc2l0ZSBwcm9jZXNzaW5nICgjOTYyODM3KQot cnBtLTQuMTgueC1zaXRlY29uZmlnLnBhdGNoCi0jIEluIGN1cnJlbnQgRmVkb3JhLCBtYW4tcGFn ZXMgcGtnIG93bnMgYWxsIHRoZSBsb2NhbGl6ZWQgbWFuIGRpcmVjdG9yaWVzCi1ycG0tNC45Ljkw LW5vLW1hbi1kaXJzLnBhdGNoCi0jIERpc2FibGUgbmV3IHVzZXIvZ3JvdXAgaGFuZGxpbmcKLQot cnBtLTQuMTguOTItZGlzYWJsZS1zeXN1c2Vycy5wYXRjaAotcnBtLTQuMTguOTAtd2Vhay11c2Vy LWdyb3VwLnBhdGNoCi0KLSMgUGF0Y2hlcyBhbHJlYWR5IHVwc3RyZWFtOgotMDAwMS1GaXgtcG90 ZW50aWFsLXVzZS1vZi11bmluaXRpYWxpemVkLXBpcGUtYXJyYXkucGF0Y2gKLTAwMDEtRml4LXBv dGVudGlhbC11c2Utb2YtdW5pbml0aWFsaXplZC1wZ3Atc3RydWN0LnBhdGNoCi0wMDAxLUZpeC1t ZW1vcnktbGVhay1pbi1ycG1zaWduLnBhdGNoCi0KLTAwMDEtUmVmYWN0b3Itc2lnbi1jb21tYW5k LWV4cGFuZC1hbmQtcGFyc2Utb3V0LW9mLXJ1bkdQRy5wYXRjaAotMDAwMi1FbGltaW5hdGUtaGFy ZGNvZGVkLUdQRy1yZWZlcmVuY2VzLWZyb20tdXNlci12aXNpYmxlLnBhdGNoCi0wMDAzLURlY2xh cmUtc2lnbkNtZC1zdGF0aWMucGF0Y2gKLQotMDAwMS1SZXBvcnQtdW5zYWZlLXN5bWxpbmtzLWR1 cmluZy1pbnN0YWxsYXRpb24tYXMtYS1zcGVjLnBhdGNoCi0wMDAyLUZpeC1GQV9UT1VDSC1lZC1m aWxlcy1nZXR0aW5nLXJlbW92ZWQtb24tZmFpbGVkLXVwZGEucGF0Y2gKLQotMDAwMS1GaXgtcG9z c2libGUtcGFja2FnZS1jb3JydXB0aW9uLW9uLWRlbHNpZ24tcmVzaWduLWFkLnBhdGNoCi0wMDAy LUZpeC1yZWdyZXNzaW9uLW9uLWJ1aWxkLWlkLWdlbmVyYXRpb24tZnJvbS1jb21wcmVzc2UucGF0 Y2gKLTAwMDMtRml4LXJvb3QtcmVsb2NhdGlvbi1yZWdyZXNzaW9uLnBhdGNoCi0KLTAwMDEtTWFr ZS1fcGFzc3dkX3BhdGgtYW5kLV9ncm91cF9wYXRoLWxpc3RzLnBhdGNoCi0wMDAyLUZpeC1tZW1v cnktbGVhay1pbi1ycG1zcGVjLXNoZWxsLnBhdGNoCi0wMDAzLUZpeC1tZW1vcnktbGVhay1pbi1y dW5HUEcucGF0Y2gKLTAwMDQtVGFsay1hYm91dC1ycG1zaWduLWluLXRoZS1ycG1zaWduLW1hbi1w YWdlLnBhdGNoCi0wMDA1LVJldmVydC1Ecm9wLXJlZHVuZGFudC1hcmd1bWVudC1mcm9tLXJwbWNs aVRyYW5zYWN0aW8ucGF0Y2gKLTAwMDEtU3RvcmUtY29uZmlndXJhYmxlLWRpZ2VzdC1zLW9uLXBh Y2thZ2VzLWZyb20tdmVyaWZpYy5wYXRjaAotMDAwMS1FbnN1cmUtYmluYXJ5LWFuZC1zb3VyY2Ut aGVhZGVycy1hcmUtaWRlbnRpZmllZC1hcy1zLnBhdGNoCi0wMDAyLUFkZC1zdXBwb3J0LWZvci1z cGVjLWxvY2FsLWZpbGUtYXR0cmlidXRlcy1hbmQtZ2VuZXIucGF0Y2gKLQotcnBtLTQuMTkueC1y cG1rZXlzLWFkZC1saXN0LWVyYXNlLnBhdGNoCi0KLSMgUFFDIHJlYWRpbmVzcwotcnBtLTQuMTku eC1tdWx0aXNpZy5wYXRjaAotcnBtLTQuMTkueC1wcWMtYWxnby5wYXRjaAotcnBtLTQuMTkueC1w cWMtZml4ZXMucGF0Y2gKLQotMDAwMS1SZWFsbHktYWxsb3ctcXVhbGlmaWVycy1saWtlLXByZS1w b3N0LW1ldGEtZm9yLXdlYWstLnBhdGNoCi0KLXJwbS00LjE5LngtbXVsdGlzaWctdmVyaWZ5LWZp eGVzLnBhdGNoCi1ycG0tNC4xOS54LW5zc3dpdGNoLWVuYWJsZS5wYXRjaAotMDAwMS1GaXgtZW1w dHktcGFzc3dvcmQtZmllbGQtaW4tcGFzc3dkLWdyb3VwLWNhdXNpbmctZW50LnBhdGNoCi0KLXJw bS00LjE5LngtYWRkLWF1dG9zZXR1cC1DLnBhdGNoCi1ycG0tNC4xOS54LWFkZC1wYXJrZGIucGF0 Y2gKLXJwbS00LjE5LngtaW1wcm92ZS1zeXNsb2cucGF0Y2gKLTAwMDEtUHJldmVudC1idWZmZXIt b3ZlcnJ1bnMtaW4tZmluZFByZWFtYmxlVGFnLWZvci1sYW5ndS5wYXRjaAotCi0jIFRoZXNlIGFy ZSBub3QgeWV0IHVwc3RyZWFtCi1ycG0tNC43LjEtZ2VvZGUtaTY4Ni5wYXRjaAotCi0lZGVzY3Jp cHRpb24KLVRoZSBSUE0gUGFja2FnZSBNYW5hZ2VyIChSUE0pIGlzIGEgcG93ZXJmdWwgY29tbWFu ZCBsaW5lIGRyaXZlbgotcGFja2FnZSBtYW5hZ2VtZW50IHN5c3RlbSBjYXBhYmxlIG9mIGluc3Rh bGxpbmcsIHVuaW5zdGFsbGluZywKLXZlcmlmeWluZywgcXVlcnlpbmcsIGFuZCB1cGRhdGluZyBz b2Z0d2FyZSBwYWNrYWdlcy4gRWFjaCBzb2Z0d2FyZQotcGFja2FnZSBjb25zaXN0cyBvZiBhbiBh cmNoaXZlIG9mIGZpbGVzIGFsb25nIHdpdGggaW5mb3JtYXRpb24gYWJvdXQKLXRoZSBwYWNrYWdl IGxpa2UgaXRzIHZlcnNpb24sIGEgZGVzY3JpcHRpb24sIGV0Yy4KLQotJXBhY2thZ2UgbGlicwot U3VtbWFyeTogIExpYnJhcmllcyBmb3IgbWFuaXB1bGF0aW5nIFJQTSBwYWNrYWdlcwotTGljZW5z ZTogIEdQTC0yLjAtb3ItbGF0ZXIgT1IgTEdQTC0yLjEtb3ItbGF0ZXIKLVJlcXVpcmVzKG1ldGEp OiAle25hbWV9ID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci0laWYgJXt3aXRoIHNlcXVvaWF9Ci0j ID49IDEuNC4wIHJlcXVpcmVkIGZvciBwZ3BWZXJpZnlTaWduYXR1cmUyKCkgYW5kIHBncFBydFBh cmFtczIoKQotUmVxdWlyZXM6IHJwbS1zZXF1b2lhJXtfaXNhfSA+PSAxLjkuMAotIyBNb3N0IHN5 c3RlbXMgc2hvdWxkIGhhdmUgYSBjZW50cmFsIHBhY2thZ2Ugb3BlcmF0aW9ucyBsb2cKLVJlcXVp cmVzKG1ldGEpOiAocnBtLXBsdWdpbi1hdWRpdCBpZiBhdWRpdCkKLVJlcXVpcmVzKG1ldGEpOiAo cnBtLXBsdWdpbi1zeXNsb2cgaWYgc3lzbG9nKQotJWVuZGlmCi0KLSVkZXNjcmlwdGlvbiBsaWJz Ci1UaGlzIHBhY2thZ2UgY29udGFpbnMgdGhlIFJQTSBzaGFyZWQgbGlicmFyaWVzLgotCi0lcGFj a2FnZSBidWlsZC1saWJzCi1TdW1tYXJ5OiAgTGlicmFyaWVzIGZvciBidWlsZGluZyBSUE0gcGFj a2FnZXMKLVJlcXVpcmVzOiBycG0tbGlicyV7X2lzYX0gPSAle3ZlcnNpb259LSV7cmVsZWFzZX0K LQotJWRlc2NyaXB0aW9uIGJ1aWxkLWxpYnMKLVRoaXMgcGFja2FnZSBjb250YWlucyB0aGUgUlBN IHNoYXJlZCBsaWJyYXJpZXMgZm9yIGJ1aWxkaW5nIHBhY2thZ2VzLgotCi0lcGFja2FnZSBzaWdu LWxpYnMKLVN1bW1hcnk6ICBMaWJyYXJpZXMgZm9yIHNpZ25pbmcgUlBNIHBhY2thZ2VzCi1SZXF1 aXJlczogcnBtLWxpYnMle19pc2F9ID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci0jIGluIGNhc2Ug c29tZWJvZHkgb24gdGhlIHN0cmVhbSBoYWQgdGhlc2UgaW5zdGFsbGVkCi1PYnNvbGV0ZXM6IHJw bS1zaWduLWdudXBnIDwgNC4xOS4xLjEtOS5lbDEwCi1PYnNvbGV0ZXM6IHJwbS1zaWduLXNlcXVv aWEgPCA0LjE5LjEuMS05LmVsMTAKLQotJWRlc2NyaXB0aW9uIHNpZ24tbGlicwotVGhpcyBwYWNr YWdlIGNvbnRhaW5zIHRoZSBSUE0gc2hhcmVkIGxpYnJhcmllcyBmb3Igc2lnbmluZyBwYWNrYWdl cy4KLQotJXBhY2thZ2UgZGV2ZWwKLVN1bW1hcnk6ICBEZXZlbG9wbWVudCBmaWxlcyBmb3IgbWFu aXB1bGF0aW5nIFJQTSBwYWNrYWdlcwotTGljZW5zZTogIEdQTC0yLjAtb3ItbGF0ZXIgT1IgTEdQ TC0yLjEtb3ItbGF0ZXIKLVJlcXVpcmVzOiAle25hbWV9ID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9 Ci1SZXF1aXJlczogJXtuYW1lfS1saWJzJXtfaXNhfSA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQot UmVxdWlyZXM6ICV7bmFtZX0tYnVpbGQtbGlicyV7X2lzYX0gPSAle3ZlcnNpb259LSV7cmVsZWFz ZX0KLVJlcXVpcmVzOiAle25hbWV9LXNpZ24tbGlicyV7X2lzYX0gPSAle3ZlcnNpb259LSV7cmVs ZWFzZX0KLVJlcXVpcmVzOiBwb3B0LWRldmVsJXtfaXNhfQotCi0lZGVzY3JpcHRpb24gZGV2ZWwK LVRoaXMgcGFja2FnZSBjb250YWlucyB0aGUgUlBNIEMgbGlicmFyeSBhbmQgaGVhZGVyIGZpbGVz LiBUaGVzZQotZGV2ZWxvcG1lbnQgZmlsZXMgd2lsbCBzaW1wbGlmeSB0aGUgcHJvY2VzcyBvZiB3 cml0aW5nIHByb2dyYW1zIHRoYXQKLW1hbmlwdWxhdGUgUlBNIHBhY2thZ2VzIGFuZCBkYXRhYmFz ZXMuIFRoZXNlIGZpbGVzIGFyZSBpbnRlbmRlZCB0bwotc2ltcGxpZnkgdGhlIHByb2Nlc3Mgb2Yg Y3JlYXRpbmcgZ3JhcGhpY2FsIHBhY2thZ2UgbWFuYWdlcnMgb3IgYW55Ci1vdGhlciB0b29scyB0 aGF0IG5lZWQgYW4gaW50aW1hdGUga25vd2xlZGdlIG9mIFJQTSBwYWNrYWdlcyBpbiBvcmRlcgot dG8gZnVuY3Rpb24uCi0KLVRoaXMgcGFja2FnZSBzaG91bGQgYmUgaW5zdGFsbGVkIGlmIHlvdSB3 YW50IHRvIGRldmVsb3AgcHJvZ3JhbXMgdGhhdAotd2lsbCBtYW5pcHVsYXRlIFJQTSBwYWNrYWdl cyBhbmQgZGF0YWJhc2VzLgotCi0lcGFja2FnZSBidWlsZAotU3VtbWFyeTogU2NyaXB0cyBhbmQg ZXhlY3V0YWJsZSBwcm9ncmFtcyB1c2VkIHRvIGJ1aWxkIHBhY2thZ2VzCi1SZXF1aXJlczogcnBt ID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci1SZXF1aXJlczogZWxmdXRpbHMgPj0gMC4xMjggYmlu dXRpbHMKLVJlcXVpcmVzOiBmaW5kdXRpbHMgc2VkIGdyZXAgZ2F3ayBkaWZmdXRpbHMgZmlsZSBw YXRjaCA+PSAyLjUKLVJlcXVpcmVzOiB0YXIgdW56aXAgZ3ppcCBiemlwMiBjcGlvIHh6Ci0laWYg JXt3aXRoIHpzdGR9Ci1SZXF1aXJlczogenN0ZAotJWVuZGlmCi1SZXF1aXJlczogZGVidWdlZGl0 ID49IDAuMwotUmVxdWlyZXM6IHBrZ2NvbmZpZyA+PSAxOjAuMjQKLVJlcXVpcmVzOiAvdXNyL2Jp bi9nZGItYWRkLWluZGV4Ci0jIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9DaGFuZ2Vz L01pbmltYWxfR0RCX2luX2J1aWxkcm9vdAotU3VnZ2VzdHM6IGdkYi1taW5pbWFsCi0jIFRlY2hu aWNhbGx5IHJwbWJ1aWxkIGRvZXNuJ3QgcmVxdWlyZSBhbnkgZXh0ZXJuYWwgY29uZmlndXJhdGlv biwgYnV0Ci0jIGNyZWF0aW5nIGRpc3Ryby1jb21wYXRpYmxlIHBhY2thZ2VzIGRvZXMuIFRvIG1h a2UgdGhlIGNvbW1vbiBjYXNlCi0jICJqdXN0IHdvcmsiIHdoaWxlIGFsbG93aW5nIGZvciBhbHRl cm5hdGl2ZXMsIGRlcGVuZCBvbiBhIHZpcnR1YWwKLSMgcHJvdmlkZSwgdHlwaWNhbGx5IGNvbWlu ZyBmcm9tIHJlZGhhdC1ycG0tY29uZmlnLgotUmVxdWlyZXM6IHN5c3RlbS1ycG0tY29uZmlnCi0K LSVkZXNjcmlwdGlvbiBidWlsZAotVGhlIHJwbS1idWlsZCBwYWNrYWdlIGNvbnRhaW5zIHRoZSBz Y3JpcHRzIGFuZCBleGVjdXRhYmxlIHByb2dyYW1zCi10aGF0IGFyZSB1c2VkIHRvIGJ1aWxkIHBh Y2thZ2VzIHVzaW5nIHRoZSBSUE0gUGFja2FnZSBNYW5hZ2VyLgotCi0lcGFja2FnZSBzaWduCi1T dW1tYXJ5OiBQYWNrYWdlIHNpZ25pbmcgc3VwcG9ydAotUmVxdWlyZXM6IHJwbS1zaWduLWxpYnMl e19pc2F9ID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci0KLSVkZXNjcmlwdGlvbiBzaWduCi1UaGlz IHBhY2thZ2UgY29udGFpbnMgc3VwcG9ydCBmb3IgZGlnaXRhbGx5IHNpZ25pbmcgUlBNIHBhY2th Z2VzLgotCi0lcGFja2FnZSAtbiBweXRob24zLSV7bmFtZX0KLVN1bW1hcnk6IFB5dGhvbiAzIGJp bmRpbmdzIGZvciBhcHBzIHdoaWNoIHdpbGwgbWFuaXB1bGF0ZSBSUE0gcGFja2FnZXMKLUJ1aWxk UmVxdWlyZXM6IHB5dGhvbjMtZGV2ZWwKLSV7P3B5dGhvbl9wcm92aWRlOiVweXRob25fcHJvdmlk ZSBweXRob24zLSV7bmFtZX19Ci1SZXF1aXJlczogJXtuYW1lfS1saWJzJXs/X2lzYX0gPSAle3Zl cnNpb259LSV7cmVsZWFzZX0KLVByb3ZpZGVzOiAle25hbWV9LXB5dGhvbjMgPSAle3ZlcnNpb259 LSV7cmVsZWFzZX0KLU9ic29sZXRlczogJXtuYW1lfS1weXRob24zIDwgJXt2ZXJzaW9ufS0le3Jl bGVhc2V9Ci0KLSVkZXNjcmlwdGlvbiAtbiBweXRob24zLSV7bmFtZX0KLVRoZSBweXRob24zLXJw bSBwYWNrYWdlIGNvbnRhaW5zIGEgbW9kdWxlIHRoYXQgcGVybWl0cyBhcHBsaWNhdGlvbnMKLXdy aXR0ZW4gaW4gdGhlIFB5dGhvbiBwcm9ncmFtbWluZyBsYW5ndWFnZSB0byB1c2UgdGhlIGludGVy ZmFjZQotc3VwcGxpZWQgYnkgUlBNIFBhY2thZ2UgTWFuYWdlciBsaWJyYXJpZXMuCi0KLVRoaXMg cGFja2FnZSBzaG91bGQgYmUgaW5zdGFsbGVkIGlmIHlvdSB3YW50IHRvIGRldmVsb3AgUHl0aG9u IDMKLXByb2dyYW1zIHRoYXQgd2lsbCBtYW5pcHVsYXRlIFJQTSBwYWNrYWdlcyBhbmQgZGF0YWJh c2VzLgotCi0lcGFja2FnZSBhcGlkb2NzCi1TdW1tYXJ5OiBBUEkgZG9jdW1lbnRhdGlvbiBmb3Ig UlBNIGxpYnJhcmllcwotQnVpbGRBcmNoOiBub2FyY2gKLQotJWRlc2NyaXB0aW9uIGFwaWRvY3MK LVRoaXMgcGFja2FnZSBjb250YWlucyBBUEkgZG9jdW1lbnRhdGlvbiBmb3IgZGV2ZWxvcGluZyBh cHBsaWNhdGlvbnMKLXRoYXQgd2lsbCBtYW5pcHVsYXRlIFJQTSBwYWNrYWdlcyBhbmQgZGF0YWJh c2VzLgotCi0lcGFja2FnZSBjcm9uCi1TdW1tYXJ5OiBDcmVhdGUgZGFpbHkgbG9ncyBvZiBpbnN0 YWxsZWQgcGFja2FnZXMuCi1CdWlsZEFyY2g6IG5vYXJjaAotUmVxdWlyZXM6IGNyb250YWJzIGxv Z3JvdGF0ZSBycG0gPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KLQotJWRlc2NyaXB0aW9uIGNyb24K LVRoaXMgcGFja2FnZSBjb250YWlucyBhIGNyb24gam9iIHdoaWNoIGNyZWF0ZXMgZGFpbHkgbG9n cyBvZiBpbnN0YWxsZWQKLXBhY2thZ2VzIG9uIGEgc3lzdGVtLgotCi0laWYgJXt3aXRoIHBsdWdp bnN9Ci0lcGFja2FnZSBwbHVnaW4tc2VsaW51eAotU3VtbWFyeTogUnBtIHBsdWdpbiBmb3IgU0VM aW51eCBmdW5jdGlvbmFsaXR5Ci1SZXF1aXJlczogcnBtLWxpYnMle19pc2F9ID0gJXt2ZXJzaW9u fS0le3JlbGVhc2V9Ci1SZXF1aXJlcyhtZXRhKTogc2VsaW51eC1wb2xpY3ktYmFzZQotCi0lZGVz Y3JpcHRpb24gcGx1Z2luLXNlbGludXgKLSV7c3VtbWFyeX0uCi0KLSVwYWNrYWdlIHBsdWdpbi1z eXNsb2cKLVN1bW1hcnk6IFJwbSBwbHVnaW4gZm9yIHN5c2xvZyBmdW5jdGlvbmFsaXR5Ci1SZXF1 aXJlczogcnBtLWxpYnMle19pc2F9ID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci0KLSVkZXNjcmlw dGlvbiBwbHVnaW4tc3lzbG9nCi0le3N1bW1hcnl9LgotCi0lcGFja2FnZSBwbHVnaW4tc3lzdGVt ZC1pbmhpYml0Ci1TdW1tYXJ5OiBScG0gcGx1Z2luIGZvciBzeXN0ZW1kIGluaGliaXQgZnVuY3Rp b25hbGl0eQotUmVxdWlyZXM6IHJwbS1saWJzJXtfaXNhfSA9ICV7dmVyc2lvbn0tJXtyZWxlYXNl fQotCi0lZGVzY3JpcHRpb24gcGx1Z2luLXN5c3RlbWQtaW5oaWJpdAotVGhpcyBwbHVnaW4gYmxv Y2tzIHN5c3RlbWQgZnJvbSBlbnRlcmluZyBpZGxlLCBzbGVlcCBvciBzaHV0ZG93biB3aGlsZSBh biBycG0KLXRyYW5zYWN0aW9uIGlzIHJ1bm5pbmcgdXNpbmcgdGhlIHN5c3RlbWQtaW5oaWJpdCBt ZWNoYW5pc20uCi0KLSVpZiAle3dpdGggbGliaW1hZXZtfQotJXBhY2thZ2UgcGx1Z2luLWltYQot U3VtbWFyeTogUnBtIHBsdWdpbiBpbWEgZmlsZSBzaWduYXR1cmVzCi1SZXF1aXJlczogcnBtLWxp YnMle19pc2F9ID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci0KLSVkZXNjcmlwdGlvbiBwbHVnaW4t aW1hCi0le3N1bW1hcnl9LgotJWVuZGlmCi0KLSVwYWNrYWdlIHBsdWdpbi1wcmlvcmVzZXQKLVN1 bW1hcnk6IFJwbSBwbHVnaW4gZm9yIHJlc2V0dGluZyBzY3JpcHRsZXQgcHJpb3JpdGllcyBmb3Ig U3lzViBpbml0Ci1SZXF1aXJlczogcnBtLWxpYnMle19pc2F9ID0gJXt2ZXJzaW9ufS0le3JlbGVh c2V9Ci0KLSVkZXNjcmlwdGlvbiBwbHVnaW4tcHJpb3Jlc2V0Ci0le3N1bW1hcnl9LgotCi1Vc2Vm dWwgb24gbGVnYWN5IFN5c1YgaW5pdCBzeXN0ZW1zIGlmIHlvdSBydW4gcnBtIHRyYW5zYWN0aW9u cyB3aXRoCi1uaWNlL2lvbmljZSBwcmlvcml0aWVzLiBTaG91bGQgbm90IGJlIHVzZWQgb24gc3lz dGVtZCBzeXN0ZW1zLgotCi0lcGFja2FnZSBwbHVnaW4tYXVkaXQKLVN1bW1hcnk6IFJwbSBwbHVn aW4gZm9yIGxvZ2dpbmcgYXVkaXQgZXZlbnRzIG9uIHBhY2thZ2Ugb3BlcmF0aW9ucwotUmVxdWly ZXM6IHJwbS1saWJzJXtfaXNhfSA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQotCi0lZGVzY3JpcHRp b24gcGx1Z2luLWF1ZGl0Ci0le3N1bW1hcnl9LgotCi0laWYgJXt3aXRoIGZzdmVyaXR5fQotJXBh Y2thZ2UgcGx1Z2luLWZzdmVyaXR5Ci1TdW1tYXJ5OiBScG0gcGx1Z2luIGZvciBmc3Zlcml0eSBm aWxlIHNpZ25hdHVyZXMKLVJlcXVpcmVzOiBycG0tbGlicyV7X2lzYX0gPSAle3ZlcnNpb259LSV7 cmVsZWFzZX0KLQotJWRlc2NyaXB0aW9uIHBsdWdpbi1mc3Zlcml0eQotJXtzdW1tYXJ5fS4KLSVl bmRpZgotCi0lcGFja2FnZSBwbHVnaW4tZmFwb2xpY3lkCi1TdW1tYXJ5OiBScG0gcGx1Z2luIGZv ciBmYXBvbGljeWQgc3VwcG9ydAotUmVxdWlyZXM6IHJwbS1saWJzJXtfaXNhfSA9ICV7dmVyc2lv bn0tJXtyZWxlYXNlfQotUHJvdmlkZXM6IGZhcG9saWN5ZC1wbHVnaW4gPSAle3ZlcnNpb259LSV7 cmVsZWFzZX0KLSMgZmFwb2xpY3lkLWRuZi1wbHVnaW4gY3VycmVudGx5IGF0IDEuMC40Ci1PYnNv bGV0ZXM6IGZhcG9saWN5ZC1kbmYtcGx1Z2luIDwgMS4wLjUKLQotJWRlc2NyaXB0aW9uIHBsdWdp bi1mYXBvbGljeWQKLSV7c3VtbWFyeX0uCi0KLVNlZSBodHRwczovL3Blb3BsZS5yZWRoYXQuY29t L3NncnViYi9mYXBvbGljeWQvIGZvciBpbmZvcm1hdGlvbiBhYm91dAotdGhlIGZhcG9saWN5ZCBk YWVtb24uCi0KLSVwYWNrYWdlIHBsdWdpbi1kYnVzLWFubm91bmNlCi1TdW1tYXJ5OiBScG0gcGx1 Z2luIGZvciBhbm5vdW5jaW5nIHRyYW5zYWN0aW9ucyBvbiB0aGUgREJVUwotUmVxdWlyZXM6IHJw bS1saWJzJXtfaXNhfSA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQotCi0lZGVzY3JpcHRpb24gcGx1 Z2luLWRidXMtYW5ub3VuY2UKLVRoZSBwbHVnaW4gYW5ub3VuY2VzIGJhc2ljIGluZm9ybWF0aW9u IGFib3V0IHJwbSB0cmFuc2FjdGlvbnMgdG8gdGhlCi1zeXN0ZW0gREJVUyAtIGxpa2UgcGFja2Fn ZXMgaW5zdGFsbGVkIG9yIHJlbW92ZWQuICBPdGhlciBwcm9ncmFtcyBjYW4KLXN1YnNjcmliZSB0 byB0aGUgc2lnbmFscyB0byBnZXQgbm90aWZpZWQgd2hlbiBwYWNrYWdlcyBvbiB0aGUgc3lzdGVt Ci1jaGFuZ2UuCi0KLSMgd2l0aCBwbHVnaW5zCi0lZW5kaWYKLQotJXByZXAKLSVhdXRvc2V0dXAg LW4gcnBtLSV7c3JjdmVyfSAtcDEKLQotJWJ1aWxkCi0lc2V0X2J1aWxkX2ZsYWdzCi0KLW1rZGly IF9idWlsZAotY2QgX2J1aWxkCi1jbWFrZSBcCi0gICAgICAtRENNQUtFX0lOU1RBTExfUFJFRklY PSV7X3Vzcn0gXAotICAgICAgLURDTUFLRV9JTlNUQUxMX1NIQVJFRFNUQVRFRElSOlBBVEg9JXtf dmFyfS9saWIgXAotICAgICAgJXs/d2l0aF9iZGJfcm86LURFTkFCTEVfQkRCX1JPPU9OfSBcCi0g ICAgICAleyE/d2l0aF9uZGI6LURFTkFCTEVfTkRCPU9GRn0gXAotICAgICAgJXshP3dpdGhfc3Fs aXRlOi1ERU5BQkxFX1NRTElURT1PRkZ9IFwKLSAgICAgICV7IT93aXRoX3BsdWdpbnM6LURFTkFC TEVfUExVR0lOUz1PRkZ9IFwKLSAgICAgICV7P3dpdGhfZnN2ZXJpdHk6LURXSVRIX0ZTVkVSSVRZ PU9OfSBcCi0gICAgICAlez93aXRoX2xpYmltYWV2bTotRFdJVEhfSU1BRVZNPU9OfSBcCi0gICAg ICAleyE/d2l0aF9saWJhcmNoaXZlOi1EV0lUSF9BUkNISVZFPU9GRn0gXAotICAgICAgJXshP3dp dGhfY2hlY2s6LURFTkFCTEVfVEVTVFNVSVRFPU9GRn0gXAotICAgICAgJXs/d2l0aF9zZXF1b2lh Oi1EV0lUSF9TRVFVT0lBPU9OfSBcCi0gICAgICAleyE/d2l0aF9zZXF1b2lhOi1EV0lUSF9JTlRF Uk5BTF9PUEVOUEdQPU9OfSBcCi0gICAgICAleyE/d2l0aF9zZXF1b2lhOi1EV0lUSF9PUEVOU1NM PU9OIH0gXAotICAgICAgLURSUE1fVkVORE9SPXJlZGhhdCBcCi0gIC4uCi0KLSVtYWtlX2J1aWxk Ci0KLSVpbnN0YWxsCi1jZCBfYnVpbGQKLSVtYWtlX2luc3RhbGwKLWNkIC4uCi0KLW1rZGlyIC1w ICRSUE1fQlVJTERfUk9PVCV7X3VuaXRkaXJ9Ci1pbnN0YWxsIC1tIDY0NCAle1NPVVJDRTEwfSAk UlBNX0JVSUxEX1JPT1QvJXtfdW5pdGRpcn0KLWluc3RhbGwgLW0gNjQ0ICV7U09VUkNFMjB9ICRS UE1fQlVJTERfUk9PVC8le191bml0ZGlyfQotCi1ta2RpciAtcCAkUlBNX0JVSUxEX1JPT1Qle3Jw bWhvbWV9Ci1pbnN0YWxsIC1tIDc1NSAle1NPVVJDRTIxfSAkUlBNX0JVSUxEX1JPT1QvJXtycG1o b21lfQotCi0jIEJ1aWx0LWluIHJlcGxhY2VtZW50IGZvciBzeXN0ZW1kLXN5c3VzZXJzKDgpCi1p bnN0YWxsIC1tIDc1NSBzY3JpcHRzL3N5c3VzZXJzLnNoICRSUE1fQlVJTERfUk9PVC8le3JwbWhv bWV9Ci0KLSMgU2F2ZSBsaXN0IG9mIHBhY2thZ2VzIHRocm91Z2ggY3JvbgotbWtkaXIgLXAgJHtS UE1fQlVJTERfUk9PVH0le19zeXNjb25mZGlyfS9jcm9uLmRhaWx5Ci1pbnN0YWxsIC1tIDc1NSBz Y3JpcHRzL3JwbS5kYWlseSAke1JQTV9CVUlMRF9ST09UfSV7X3N5c2NvbmZkaXJ9L2Nyb24uZGFp bHkvcnBtCi0KLW1rZGlyIC1wICR7UlBNX0JVSUxEX1JPT1R9JXtfc3lzY29uZmRpcn0vbG9ncm90 YXRlLmQKLWluc3RhbGwgLW0gNjQ0IHNjcmlwdHMvcnBtLmxvZyAke1JQTV9CVUlMRF9ST09UfSV7 X3N5c2NvbmZkaXJ9L2xvZ3JvdGF0ZS5kL3JwbQotCi1ta2RpciAtcCAkUlBNX0JVSUxEX1JPT1Ql e19zeXNjb25mZGlyfS9ycG0KLW1rZGlyIC1wICRSUE1fQlVJTERfUk9PVCV7cnBtaG9tZX0vbWFj cm9zLmQKLW1rZGlyIC1wICRSUE1fQlVJTERfUk9PVC91c3IvbGliL3N5c2ltYWdlL3JwbQotY2Qg X2J1aWxkCi0KLSMgaW5pdCBhbiBlbXB0eSBkYXRhYmFzZSBmb3IgJWdob3N0J2luZyBmb3IgYWxs IHN1cHBvcnRlZCBiYWNrZW5kcwotZm9yIGJlIGluICV7P3dpdGhfbmRiOm5kYn0gJXs/d2l0aF9z cWxpdGU6c3FsaXRlfTsgZG8KLSAgICBta2RpciAke2JlfQotICAgIHRvb2xzL3JwbWRiIC0tcmNm aWxlIHJwbXJjIC0tZGVmaW5lICJfZGJfYmFja2VuZCAke2JlfSIgLS1kYnBhdGg9JHtQV0R9LyR7 YmV9IC0taW5pdGRiCi0gICAgY3AgLXZhICR7YmV9Ly4gJFJQTV9CVUlMRF9ST09UL3Vzci9saWIv c3lzaW1hZ2UvcnBtLwotZG9uZQotCi0jIHNvbWUgcGFja2FnZXMgaW52b2tlIGZpbmQtZGVidWdp bmZvIGRpcmVjdGx5LCBwcmVzZXJ2ZSBjb21wYXQgZm9yIG5vdwotbG4gLXMgLi4vLi4vYmluL2Zp bmQtZGVidWdpbmZvICRSUE1fQlVJTERfUk9PVC91c3IvbGliL3JwbS9maW5kLWRlYnVnaW5mby5z aAotCi0lZmluZF9sYW5nIHJwbQotCi1maW5kICRSUE1fQlVJTERfUk9PVCAtbmFtZSAiKi5sYSJ8 eGFyZ3Mgcm0gLWYKLQotIyBUaGVzZSBsaXZlIGluIHBlcmwtZ2VuZXJhdG9ycyBhbmQgcHl0aG9u LXJwbS1nZW5lcmF0b3JzIG5vdwotcm0gLWYgJFJQTV9CVUlMRF9ST09ULyV7cnBtaG9tZX0ve3Bl cmxkZXBzLnBsLHBlcmwuKixweXRob25kKn0KLXJtIC1mICRSUE1fQlVJTERfUk9PVC8le19maWxl YXR0cnNkaXJ9L3twZXJsKixweXRob24qfQotcm0gLXJmICRSUE1fQlVJTERfUk9PVC92YXIvdG1w Ci0KLSMgd29ya2Fyb3VuZCBmb3IgaHR0cHM6Ly9naXRodWIuY29tL3JwbS1zb2Z0d2FyZS1tYW5h Z2VtZW50L3JwbS9pc3N1ZXMvMjgxMQotcm0gJFJQTV9CVUlMRF9ST09ULyV7X2RlZmF1bHRkb2Nk aXJ9L3JwbS9SRUFETUUubWQKLQotIyBTaWduaW5nIG1hY3JvcyBmb3IgU2VxdW9pYQotaW5zdGFs bCAtbSA2NDQgJXtTT1VSQ0UzMH0gJFJQTV9CVUlMRF9ST09ULyV7X2RlZmF1bHRkb2NkaXJ9L3Jw bS8KLQotcm0gJFJQTV9CVUlMRF9ST09ULyV7cnBtaG9tZX0vcnBtZHVtcAotCi0lcHJlCi0jIFN5 bWxpbmsgYWxsIHJwbWRiIGZpbGVzIHRvIHRoZSBuZXcgbG9jYXRpb24gaWYgd2UncmUgc3RpbGwg dXNpbmcgL3Zhci9saWIvcnBtCi1pZiBbICEgLUwgL3Zhci9saWIvcnBtIF0gJiYgWyAtZCAvdmFy L2xpYi9ycG0gXTsgdGhlbgotICAgIG1rZGlyIC1wIC91c3IvbGliL3N5c2ltYWdlL3JwbQotICAg IHJwbWRiX2ZpbGVzPSQoZmluZCAvdmFyL2xpYi9ycG0gLW1heGRlcHRoIDEgLXR5cGUgZiB8IHNl ZCAnc3xeL3Zhci9saWIvcnBtL3x8ZycgfCBzb3J0KQotICAgIGZvciBycG1kYl9maWxlIGluICR7 cnBtZGJfZmlsZXNbQF19OyBkbwotICAgICAgICBsbiAtc2ZyIC92YXIvbGliL3JwbS8ke3JwbWRi X2ZpbGV9IC91c3IvbGliL3N5c2ltYWdlL3JwbS8ke3JwbWRiX2ZpbGV9Ci0gICAgZG9uZQotZmkK LQotJXRyaWdnZXJ1biAtLSBycG0gPCA0LjE3LjAtNwotIyBIYW5kbGUgcnBtZGIgbWlncmF0ZSBz ZXJ2aWNlIG9uIGVyYXN1cmUgb2Ygb2xkIHRvIGF2b2lkIG9yZGVyaW5nIGlzc3VlcwotaWYgWyAt eCAvdXNyL2Jpbi9zeXN0ZW1jdGwgXTsgdGhlbgotICAgIHN5c3RlbWN0bCAtLW5vLXJlbG9hZCBw cmVzZXQgcnBtZGItbWlncmF0ZSB8fDoKLWZpCi0KLSVwb3N0dHJhbnMKLWlmIFsgISAtTCAvdmFy L2xpYi9ycG0gXSAmJiBbIC1kIC92YXIvbGliL3JwbSBdOyB0aGVuCi0gICAgdG91Y2ggL3Zhci9s aWIvcnBtLy5taWdyYXRlZGIKLWZpCi1pZiBbICEgLWQgL3Zhci9saWIvcnBtIF0gJiYgWyAtZCAv dXNyL2xpYi9zeXNpbWFnZS9ycG0gXSAmJiBbICEgLWYgL3Vzci9saWIvc3lzaW1hZ2UvcnBtLy5y cG1kYmRpcnN5bWxpbmtfY3JlYXRlZCBdOyB0aGVuCi0gICAgbG4gLXNmciAvdXNyL2xpYi9zeXNp bWFnZS9ycG0gL3Zhci9saWIvcnBtCi0gICAgdG91Y2ggL3Vzci9saWIvc3lzaW1hZ2UvcnBtLy5y cG1kYmRpcnN5bWxpbmtfY3JlYXRlZAotZmkKLQotJWZpbGVzIC1mIF9idWlsZC9ycG0ubGFuZwot JWxpY2Vuc2UgQ09QWUlORwotJWRvYyBDUkVESVRTIGRvY3MvbWFudWFsL1thLXpdKgotJWRvYyAl e19kZWZhdWx0ZG9jZGlyfS9ycG0vQ09OVFJJQlVUSU5HLm1kCi0lZG9jICV7X2RlZmF1bHRkb2Nk aXJ9L3JwbS9DT1BZSU5HCi0lZG9jICV7X2RlZmF1bHRkb2NkaXJ9L3JwbS9JTlNUQUxMCi0lZG9j ICV7X2RlZmF1bHRkb2NkaXJ9L3JwbS9SRUFETUUKLQotJXtfdW5pdGRpcn0vcnBtZGItcmVidWls ZC5zZXJ2aWNlCi0le191bml0ZGlyfS9ycG1kYi1taWdyYXRlLnNlcnZpY2UKLQotJWRpciAle19z eXNjb25mZGlyfS9ycG0KLQotJWF0dHIoMDc1NSwgcm9vdCwgcm9vdCkgJWRpciAvdXNyL2xpYi9z eXNpbWFnZS9ycG0KLSVhdHRyKDA2NDQsIHJvb3QsIHJvb3QpICVnaG9zdCAlY29uZmlnKG1pc3Np bmdvayxub3JlcGxhY2UpIC91c3IvbGliL3N5c2ltYWdlL3JwbS8qCi0lYXR0cigwNjQ0LCByb290 LCByb290KSAlZ2hvc3QgL3Vzci9saWIvc3lzaW1hZ2UvcnBtLy4qLmxvY2sKLQotJXtfYmluZGly fS9ycG0KLSVpZiAle3dpdGggbGliYXJjaGl2ZX0KLSV7X2JpbmRpcn0vcnBtMmFyY2hpdmUKLSVl bmRpZgotJXtfYmluZGlyfS9ycG0yY3BpbwotJXtfYmluZGlyfS9ycG1kYgotJXtfYmluZGlyfS9y cG1rZXlzCi0le19iaW5kaXJ9L3JwbXF1ZXJ5Ci0le19iaW5kaXJ9L3JwbXZlcmlmeQotJXtfYmlu ZGlyfS9ycG1zb3J0Ci0KLSV7X21hbmRpcn0vbWFuOC9ycG0uOCoKLSV7X21hbmRpcn0vbWFuOC9y cG1kYi44KgotJXtfbWFuZGlyfS9tYW44L3JwbWtleXMuOCoKLSVpZiAle3dpdGggbGliYXJjaGl2 ZX0KLSV7X21hbmRpcn0vbWFuOC9ycG0yYXJjaGl2ZS44KgotJWVuZGlmCi0le19tYW5kaXJ9L21h bjgvcnBtMmNwaW8uOCoKLSV7X21hbmRpcn0vbWFuOC9ycG0tbWlzYy44KgotJXtfbWFuZGlyfS9t YW44L3JwbXNvcnQuOCoKLSV7X21hbmRpcn0vbWFuOC9ycG0tcGx1Z2lucy44KgotCi0lYXR0cigw NzU1LCByb290LCByb290KSAlZGlyICV7cnBtaG9tZX0KLSV7cnBtaG9tZX0vbWFjcm9zCi0lZGly ICV7cnBtaG9tZX0vbWFjcm9zLmQKLSV7cnBtaG9tZX0vbHVhCi0le3JwbWhvbWV9L3JwbXBvcHQq Ci0le3JwbWhvbWV9L3JwbXJjCi0KLSV7cnBtaG9tZX0vcnBtZGJfKgotJXtycG1ob21lfS9ycG0u ZGFpbHkKLSV7cnBtaG9tZX0vcnBtLmxvZwotJXtycG1ob21lfS9ycG0uc3VwcAotJXtycG1ob21l fS9ycG0yY3Bpby5zaAotJXtycG1ob21lfS90Z3BnCi0KLSV7cnBtaG9tZX0vcGxhdGZvcm0KLSV7 cnBtaG9tZX0vc3lzdXNlcnMuc2gKLQotJWRpciAle3JwbWhvbWV9L2ZpbGVhdHRycwotCi0lZmls ZXMgbGlicwotJXtfbGliZGlyfS9saWJycG1pby5zby4le3NvdmVyfQotJXtfbGliZGlyfS9saWJy cG0uc28uJXtzb3Zlcn0KLSV7X2xpYmRpcn0vbGlicnBtaW8uc28uJXtzb3Zlcn0uKgotJXtfbGli ZGlyfS9saWJycG0uc28uJXtzb3Zlcn0uKgotJWlmICV7d2l0aCBwbHVnaW5zfQotJWRpciAle19s aWJkaXJ9L3JwbS1wbHVnaW5zCi0KLSVmaWxlcyBwbHVnaW4tc3lzbG9nCi0le19saWJkaXJ9L3Jw bS1wbHVnaW5zL3N5c2xvZy5zbwotJXtfbWFuZGlyfS9tYW44L3JwbS1wbHVnaW4tc3lzbG9nLjgq Ci0KLSVmaWxlcyBwbHVnaW4tc2VsaW51eAotJXtfbGliZGlyfS9ycG0tcGx1Z2lucy9zZWxpbnV4 LnNvCi0le19tYW5kaXJ9L21hbjgvcnBtLXBsdWdpbi1zZWxpbnV4LjgqCi0KLSVmaWxlcyBwbHVn aW4tc3lzdGVtZC1pbmhpYml0Ci0le19saWJkaXJ9L3JwbS1wbHVnaW5zL3N5c3RlbWRfaW5oaWJp dC5zbwotJXtfbWFuZGlyfS9tYW44L3JwbS1wbHVnaW4tc3lzdGVtZC1pbmhpYml0LjgqCi0KLSVp ZiAle3dpdGggbGliaW1hZXZtfQotJWZpbGVzIHBsdWdpbi1pbWEKLSV7X2xpYmRpcn0vcnBtLXBs dWdpbnMvaW1hLnNvCi0le19tYW5kaXJ9L21hbjgvcnBtLXBsdWdpbi1pbWEuOCoKLSVlbmRpZgot Ci0laWYgJXt3aXRoIGZzdmVyaXR5fQotJWZpbGVzIHBsdWdpbi1mc3Zlcml0eQotJXtfbGliZGly fS9ycG0tcGx1Z2lucy9mc3Zlcml0eS5zbwotJWVuZGlmCi0KLSVmaWxlcyBwbHVnaW4tZmFwb2xp Y3lkCi0le19saWJkaXJ9L3JwbS1wbHVnaW5zL2ZhcG9saWN5ZC5zbwotJXtfbWFuZGlyfS9tYW44 L3JwbS1wbHVnaW4tZmFwb2xpY3lkLjgqCi0KLSVmaWxlcyBwbHVnaW4tcHJpb3Jlc2V0Ci0le19s aWJkaXJ9L3JwbS1wbHVnaW5zL3ByaW9yZXNldC5zbwotJXtfbWFuZGlyfS9tYW44L3JwbS1wbHVn aW4tcHJpb3Jlc2V0LjgqCi0KLSVmaWxlcyBwbHVnaW4tYXVkaXQKLSV7X2xpYmRpcn0vcnBtLXBs dWdpbnMvYXVkaXQuc28KLSV7X21hbmRpcn0vbWFuOC9ycG0tcGx1Z2luLWF1ZGl0LjgqCi0jIHdp dGggcGx1Z2lucwotCi0lZmlsZXMgcGx1Z2luLWRidXMtYW5ub3VuY2UKLSV7X2xpYmRpcn0vcnBt LXBsdWdpbnMvZGJ1c19hbm5vdW5jZS5zbwotJXtfbWFuZGlyfS9tYW44L3JwbS1wbHVnaW4tZGJ1 cy1hbm5vdW5jZS44KgotJXtfZGF0YWRpcn0vZGJ1cy0xL3N5c3RlbS5kL29yZy5ycG0uY29uZgot JWVuZGlmCi0KLSVmaWxlcyBidWlsZC1saWJzCi0le19saWJkaXJ9L2xpYnJwbWJ1aWxkLnNvLiV7 c292ZXJ9Ci0le19saWJkaXJ9L2xpYnJwbWJ1aWxkLnNvLiV7c292ZXJ9LioKLQotJWZpbGVzIHNp Z24tbGlicwotJXtfbGliZGlyfS9saWJycG1zaWduLnNvLiV7c292ZXJ9Ci0le19saWJkaXJ9L2xp YnJwbXNpZ24uc28uJXtzb3Zlcn0uKgotCi0lZmlsZXMgYnVpbGQKLSV7X2JpbmRpcn0vcnBtYnVp bGQKLSV7X2JpbmRpcn0vZ2VuZGlmZgotJXtfYmluZGlyfS9ycG1zcGVjCi0le19iaW5kaXJ9L3Jw bWx1YQotCi0le19tYW5kaXJ9L21hbjEvZ2VuZGlmZi4xKgotJXtfbWFuZGlyfS9tYW44L3JwbWJ1 aWxkLjgqCi0le19tYW5kaXJ9L21hbjgvcnBtZGVwcy44KgotJXtfbWFuZGlyfS9tYW44L3JwbXNw ZWMuOCoKLSV7X21hbmRpcn0vbWFuOC9ycG1sdWEuOCoKLQotJXtycG1ob21lfS9icnAtKgotJXty cG1ob21lfS9jaGVjay0qCi0le3JwbWhvbWV9L2ZpbmQtbGFuZy5zaAotJXtycG1ob21lfS8qcHJv dmlkZXMqCi0le3JwbWhvbWV9LypyZXF1aXJlcyoKLSV7cnBtaG9tZX0vKmRlcHMqCi0le3JwbWhv bWV9LyoucHJvdgotJXtycG1ob21lfS8qLnJlcQotJXtycG1ob21lfS9maWxlYXR0cnMvKgotJXty cG1ob21lfS9maW5kLWRlYnVnaW5mby5zaAotJXtycG1ob21lfS9ycG11bmNvbXByZXNzCi0KLSVm aWxlcyBzaWduCi0le19iaW5kaXJ9L3JwbXNpZ24KLSV7X21hbmRpcn0vbWFuOC9ycG1zaWduLjgq Ci0lZG9jICV7X2RlZmF1bHRkb2NkaXJ9L3JwbS9tYWNyb3MucnBtc2lnbi1zZXF1b2lhCi0KLSVm aWxlcyAtbiBweXRob24zLSV7bmFtZX0KLSVkaXIgJXtweXRob24zX3NpdGVhcmNofS9ycG0KLSV7 cHl0aG9uM19zaXRlYXJjaH0vcnBtLSV7cnBtdmVyfSouZWdnLWluZm8KLSV7cHl0aG9uM19zaXRl YXJjaH0vcnBtL19faW5pdF9fLnB5Ci0le3B5dGhvbjNfc2l0ZWFyY2h9L3JwbS90cmFuc2FjdGlv bi5weQotJXtweXRob24zX3NpdGVhcmNofS9ycG0vX3JwbS5zbwotJWFydGlmYWN0ICV7cHl0aG9u M19zaXRlYXJjaH0vcnBtL19fcHljYWNoZV9fLwotCi0jIFB5dGhvbiBleGFtcGxlcwotJXtfZGVm YXVsdGRvY2Rpcn0vcnBtL2V4YW1wbGVzLyoucHkKLQotJWZpbGVzIGRldmVsCi0le19tYW5kaXJ9 L21hbjgvcnBtZ3JhcGguOCoKLSV7X2JpbmRpcn0vcnBtZ3JhcGgKLSV7X2xpYmRpcn0vbGlicnAq W2Etel0uc28KLSV7X2xpYmRpcn0vcGtnY29uZmlnL3JwbS5wYwotJXtfbGliZGlyfS9jbWFrZS9y cG0vCi0le19pbmNsdWRlZGlyfS9ycG0vCi0KLSVmaWxlcyBjcm9uCi0le19zeXNjb25mZGlyfS9j cm9uLmRhaWx5L3JwbQotJWNvbmZpZyhub3JlcGxhY2UpICV7X3N5c2NvbmZkaXJ9L2xvZ3JvdGF0 ZS5kL3JwbQotCi0lZmlsZXMgYXBpZG9jcwotJWxpY2Vuc2UgQ09QWUlORwotJWRvYyAle19kZWZh dWx0ZG9jZGlyfS9ycG0vQVBJLwotCi0lY2hhbmdlbG9nCi0qIEZyaSBKdW4gMTkgMjAyNiBNaWNo YWwgRG9tb25rb3MgPG1kb21vbmtvQHJlZGhhdC5jb20+IC0gNC4xOS4xLjEtMjUKLS0gQXBwbHkg Zm9yZ290dGVuIHBhdGNoIGZvciBSSEVMLTE2OTc1NQotCi0qIFRodSBKdW4gMTggMjAyNiBNaWNo YWwgRG9tb25rb3MgPG1kb21vbmtvQHJlZGhhdC5jb20+IC0gNC4xOS4xLjEtMjQKLS0gQWRkIHN1 cHBvcnQgZm9yICUlYXV0b3NldHVwIC1DIChSSEVMLTE0MTI2OSkKLS0gQWRkIHN1cHBvcnQgZm9y IGRhdGFiYXNlIHBhcmtpbmcgKFJIRUwtMTI2NDA1KQotLSBNYWtlIHN5c2xvZyBwbHVnaW4gYWN0 dWFsbHkgdXNlZnVsIGFuZCBhbHNvIHJlcXVpcmVkIChSSEVMLTE1NTI3MikKLS0gUmVxdWlyZSBy cG0tcGx1Z2luLWF1ZGl0IGluc3RlYWQgb2YganVzdCByZWNvbW1lbmRpbmcgKFJIRUwtMTM5MDcx KQotLSBGaXggYnVmZmVyIG92ZXJydW5zIHdpdGggbG9uZyBsYW5ndWFnZSBzdHJpbmdzIChSSEVM LTE2OTc1NSkKLQotKiBUaHUgRmViIDA1IDIwMjYgTWljaGFsIERvbW9ua29zIDxtZG9tb25rb0By ZWRoYXQuY29tPiAtIDQuMTkuMS4xLTIzCi0tIEZpeCBrZXkgaW1wb3J0IEFQSSB0byByZXR1cm4g Tk9UVFJVU1RFRCBmb3IgZGlzYWJsZWQgYWxnb3JpdGhtcyAoUkhFTC0xMTIzOTQpCi0KLSogVHVl IEphbiAyNyAyMDI2IE1pY2hhbCBEb21vbmtvcyA8bWRvbW9ua29AcmVkaGF0LmNvbT4gLSA0LjE5 LjEuMS0yMgotLSBJZ25vcmUgc2lnbmF0dXJlcyBtYWRlIGJ5IHVua25vd24gb3IgZGlzYWJsZWQg YWxnb3JpdGhtcyAoUkhFTC0xMTIzOTQpCi0tIEVuYWJsZSBOU1MtYmFzZWQgdXNlciBhbmQgZ3Jv dXAgbG9va3VwcyBhZ2FpbiAoUkhFTC0xMTgzNjUpCi0tIEZpeCBpZ25vcmVkIHBhc3N3b3JkIGZp ZWxkIGlmIGVtcHR5IGluIHBhc3N3ZC9ncm91cCBmaWxlIChSSEVMLTExODM2NSkKLQotKiBUaHUg Tm92IDI3IDIwMjUgTWljaGFsIERvbW9ua29zIDxtZG9tb25rb0ByZWRoYXQuY29tPiAtIDQuMTku MS4xLTIxCi0tIEZpeCBwcmUvcG9zdC9tZXRhL2V0Yy4gcXVhbGlmaWVycyBmb3Igd2VhayBkZXBl bmRlbmNpZXMgKFJIRUwtMTAxOTM2KQotLSBGaXggcmVkdW5kYW50IHJwbWRiLW1pZ3JhdGUuc2Vy dmljZSBydW5zIChSSEVMLTk2NTEwKQotCi0qIFR1ZSBBdWcgMjYgMjAyNSBNaWNoYWwgRG9tb25r b3MgPG1kb21vbmtvQHJlZGhhdC5jb20+IC0gNC4xOS4xLjEtMjAKLS0gRml4IHJwbXNpZ24oOCkg bWFuIHBhZ2UgKFJIRUwtMTA5MjIxKQotCi0qIE1vbiBBdWcgMjUgMjAyNSBNaWNoYWwgRG9tb25r b3MgPG1kb21vbmtvQHJlZGhhdC5jb20+IC0gNC4xOS4xLjEtMTkKLS0gQWRkaXRpb25hbCBQUUMt cmVsYXRlZCBmaXhlcyAoUkhFTC0xMDkyMjEpCi0KLSogVGh1IEp1bCAyNCAyMDI1IE1pY2hhbCBE b21vbmtvcyA8bWRvbW9ua29AcmVkaGF0LmNvbT4gLSA0LjE5LjEuMS0xOAotLSBBZGQgc3VwcG9y dCBmb3IgbXVsdGlwbGUgT3BlblBHUCBzaWduYXR1cmVzIHBlciBwYWNrYWdlIChSSEVMLTEwMDU3 MSkKLS0gQWRkIHN1cHBvcnQgZm9yIE9wZW5QR1AgdjYgc2lnbmF0dXJlIHByZS1zYWx0aW5nIChS SEVMLTEwMDU3MSkKLS0gQWRkIHN1cHBvcnQgZm9yIFBRQyBhbGdvcml0aG1zIGZyb20gUkZDLTk1 ODAgKFJIRUwtMTAwNTcxKQotLSBBZGQgLS1saXN0IGFuZCAtLWVyYXNlIGNvbW1hbmRzIHRvIHJw bWtleXMoOCkgKFJIRUwtMTA1NDIxKQotLSBGaXggcmVncmVzc2lvbiBvbiBkeW5hbWljIHN1YnBh Y2thZ2UgUlBNVEFHX1NPVVJDRVJQTSBtaXNzaW5nIChSSEVMLTEwMjAyMykKLQotKiBXZWQgSnVu IDExIDIwMjUgTWljaGFsIERvbW9ua29zIDxtZG9tb25rb0ByZWRoYXQuY29tPiAtIDQuMTkuMS4x LTE3Ci0tIEJ1bXAgcmVsZWFzZSBmb3IgYW5vdGhlciByZWJ1aWxkCi0KLSogV2VkIEp1biAxMSAy MDI1IE1pY2hhbCBEb21vbmtvcyA8bWRvbW9ua29AcmVkaGF0LmNvbT4gLSA0LjE5LjEuMS0xNgot LSBGaXggcmVncmVzc2lvbiBvbiBzdWJwYWNrYWdlIGRlYnVnaW5mbyBSUE1UQUdfU09VUkNFUlBN IG1pc3NpbmcgKFJIRUwtODczODMpCi0KLSogVGh1IE1heSAyOSAyMDI1IE1pY2hhbCBEb21vbmtv cyA8bWRvbW9ua29AcmVkaGF0LmNvbT4gLSA0LjE5LjEuMS0xNQotLSBBZGQgc3VwcG9ydCBmb3Ig c3BlYyBsb2NhbCBmaWxlIGF0dHJpYnV0ZXMgYW5kIGdlbmVyYXRvcnMgKFJIRUwtODQwNTcpCi0t IEVuc3VyZSBiaW5hcnkgYW5kIHNvdXJjZSBoZWFkZXJzIGFyZSBpZGVudGlmaWVkIGFzIHN1Y2gg KFJIRUwtODczODMpCi0KLSogVGh1IEFwciAyNCAyMDI1IE1pY2hhbCBEb21vbmtvcyA8bWRvbW9u a29AcmVkaGF0LmNvbT4gLSA0LjE5LjEuMS0xNAotLSBTdG9yZSBjb25maWd1cmFibGUgZGlnZXN0 KHMpIG9uIHBhY2thZ2VzIGluIHJwbWRiIChSSEVMLTg0MDYyKQotLSBGaXggY29tbWFuZCByZWZl cmVuY2VzIGluIHJwbXNpZ24oOCkgbWFuIHBhZ2UsIHRha2UgSUkgKFJIRUwtNzMxNzMpCi0KLSog VHVlIEFwciAyMiAyMDI1IE1pY2hhbCBEb21vbmtvcyA8bWRvbW9ua29AcmVkaGF0LmNvbT4gLSA0 LjE5LjEuMS0xMwotLSBNYWtlICUlX3Bhc3N3ZF9wYXRoIGFuZCAlJV9ncm91cF9wYXRoIGludG8g bGlzdHMgKFJIRUwtNzg2OTMpCi0tIEZpeCBtZW1vcnkgbGVhayBpbiBycG1zcGVjIC0tc2hlbGwg KFJIRUwtNTUyODQpCi0tIEZpeCBtZW1vcnkgbGVhayBpbiBycG1zaWduIChSSEVMLTgyMjg0KQot LSBGaXggY29tbWFuZCByZWZlcmVuY2VzIGluIHJwbXNpZ24oOCkgbWFuIHBhZ2UgKFJIRUwtNzMx NzMpCi0tIEZpeCBleGl0IGNvZGUgcmVncmVzc2lvbiBvbiB1cGRhdGUgZmFpbHVyZSAoUkhFTC04 NzM4NCkKLQotKiBGcmkgRmViIDA3IDIwMjUgTWljaGFsIERvbW9ua29zIDxtZG9tb25rb0ByZWRo YXQuY29tPiAtIDQuMTkuMS4xLTEyCi0tIFJlYnVpbGQgZm9yIGltYS1ldm0tdXRpbHMgMS42IHNv bmFtZSBidW1wIChSSEVMLTY1Mzc4KQotCi0qIEZyaSBKYW4gMjQgMjAyNSBNaWNoYWwgRG9tb25r b3MgPG1kb21vbmtvQHJlZGhhdC5jb20+IC0gNC4xOS4xLjEtMTEKLS0gRml4IHBvc3NpYmxlIHBh Y2thZ2UgY29ycnVwdGlvbiBvbiAtLWRlbHNpZ24vcmVzaWduL2FkZHNpZ24gKFJIRUwtNjk1MTgp Ci0tIEZpeCByZWdyZXNzaW9uIG9uIGJ1aWxkLWlkIGdlbmVyYXRpb24gZnJvbSBjb21wcmVzc2Vk IEVMRiAoUkhFTC01NDAwMCkKLS0gRml4IHJvb3QgcmVsb2NhdGlvbiByZWdyZXNzaW9uIChSSEVM LTU2NjEzKQotLSBVcGRhdGUgc2VxdW9pYSBtYWNyb3MgZm9yIHNxIDEuMCAoUkhFTC01NjM2MykK LQotKiBNb24gSmFuIDEzIDIwMjUgTWljaGFsIERvbW9ua29zIDxtZG9tb25rb0ByZWRoYXQuY29t PiAtIDQuMTkuMS4xLTEwCi0tIFJlcG9ydCB1bnNhZmUgc3ltbGlua3MgZHVyaW5nIGluc3RhbGxh dGlvbiBhcyBhIHNwZWNpZmljIGNhc2UgKFJIRUwtNzMxODYpCi0tIEZpeCBGQV9UT1VDSCdlZCBm aWxlcyBnZXR0aW5nIHJlbW92ZWQgb24gZmFpbGVkIHVwZGF0ZSAoUkhFTC01NDM4NikKLS0gUmVi dWlsZCBmb3IgaW1hLWV2bS11dGlscyAxLjYgc29uYW1lIGJ1bXAgKFJIRUwtNjUzNzgpCi0KLSog V2VkIERlYyAwNCAyMDI0IFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0 LjE5LjEuMS05Ci0tIFJldmVydCB0aGUgZ251cGcvc2VxdW9pYSBzdWItcGFja2FnZXMsIHRvbyBt dWNoIGhlYWRhY2hlCi0tIFNoaXAgc2VxdW9pYS1zaWduaW5nIGVuYWJsZW1lbnQgbWFjcm9zIGFz IGRvY3VtZW50YXRpb24gaW5zdGVhZAotLSBHZW5lcmF0ZSBiaW5hcnkgc2lnbmF0dXJlcyB3aXRo IFNlcXVvaWEgdG9vCi0KLSogVHVlIE5vdiAxMiAyMDI0IE1pY2hhbCBEb21vbmtvcyA8bWRvbW9u a29AcmVkaGF0LmNvbT4gLSA0LjE5LjEuMS04Ci0tIEFkZCBTZXF1b2lhIHNpZ25pbmcgc3VwcG9y dCBiYWNrCi0KLSogVHVlIE9jdCAyOSAyMDI0IFRyb3kgRGF3c29uIDx0ZGF3c29uQHJlZGhhdC5j b20+IC0gNC4xOS4xLjEtNwotLSBCdW1wIHJlbGVhc2UgZm9yIE9jdG9iZXIgMjAyNCBtYXNzIHJl YnVpbGQ6Ci0gIFJlc29sdmVzOiBSSEVMLTY0MDE4Ci0KLSogRnJpIE9jdCAyNSAyMDI0IE1pY2hh bCBEb21vbmtvcyA8bWRvbW9ua29AcmVkaGF0LmNvbT4gLSA0LjE5LjEuMS02Ci0tIFJldmVydCBT ZXF1b2lhIHNpZ25pbmcgc3VwcG9ydCBmb3Igbm93LCBicmVha3MgQ0kKLQotKiBGcmkgT2N0IDI1 IDIwMjQgTWljaGFsIERvbW9ua29zIDxtZG9tb25rb0ByZWRoYXQuY29tPiAtIDQuMTkuMS4xLTUK LS0gRml4IENvbmZsaWN0cyBpbiBuZXcgcnBtLXNpZ24gYmFja2VuZHMKLQotKiBNb24gT2N0IDE0 IDIwMjQgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTkuMS4xLTQK LS0gUmVtb3ZlIGhhcmRjb2RlZCBHUEcgcmVmZXJlbmNlcyBmcm9tIHNpZ25pbmcgZXJyb3IgbWVz c2FnZXMKLS0gU3VwcG9ydCBzd2l0Y2hpbmcgYmV0d2VlbiBHbnVQRyBhbmQgU2VxdW9pYSBmb3Ig cGFja2FnZSBzaWduaW5nIChSSEVMLTU2MzYzKQotCi0qIFR1ZSBBdWcgMTMgMjAyNCBNaWNoYWwg RG9tb25rb3MgPG1kb21vbmtvQHJlZGhhdC5jb20+IC0gNC4xOS4xLjEtMwotLSBGaXggcG90ZW50 aWFsIHVzZSBvZiB1bmluaXRpYWxpemVkIHBpcGUgYXJyYXkgKFJIRUwtNTQwMTIpCi0tIEZpeCBw b3RlbnRpYWwgdXNlIG9mIHVuaW5pdGlhbGl6ZWQgcGdwIHN0cnVjdCAoUkhFTC01NDAxMykKLS0g Rml4IG1lbW9yeSBsZWFrIGluIHJwbXNpZ24oOCkgKFJIRUwtMzc1NjQpCi0KLSogTW9uIEp1biAy NCAyMDI0IFRyb3kgRGF3c29uIDx0ZGF3c29uQHJlZGhhdC5jb20+IC0gNC4xOS4xLjEtMgotLSBC dW1wIHJlbGVhc2UgZm9yIEp1bmUgMjAyNCBtYXNzIHJlYnVpbGQKLQotKiBXZWQgRmViIDA3IDIw MjQgTWljaGFsIERvbW9ua29zIDxtZG9tb25rb0ByZWRoYXQuY29tPiAtIDQuMTkuMS4xLTEKLS0g VXBkYXRlIHRvIDQuMTkuMS4xIChodHRwczovL3JwbS5vcmcvd2lraS9SZWxlYXNlcy80LjE5LjEu MSkKLQotKiBGcmkgSmFuIDI2IDIwMjQgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVu Z0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSA0LjE5LjEtNAotLSBSZWJ1aWx0IGZvciBodHRwczovL2Zl ZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzQwX01hc3NfUmVidWlsZAotCi0qIE1vbiBKYW4g MjIgMjAyNCBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsZW5nQGZlZG9yYXByb2plY3Qu b3JnPiAtIDQuMTkuMS0zCi0tIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcv d2lraS9GZWRvcmFfNDBfTWFzc19SZWJ1aWxkCi0KLSogRnJpIERlYyAxNSAyMDIzIFBhbnUgTWF0 aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE5LjEtMgotLSBGaXggYm9ndXMgd2Fy bmluZ3MgYWJvdXQgcnVuYXdheSBMdWEgc2NyaXB0cyAoIzIyNTQ0NjMpCi0KLSogVHVlIERlYyAx MiAyMDIzIE1pY2hhbCBEb21vbmtvcyA8bWRvbW9ua29AcmVkaGF0LmNvbT4gLSA0LjE5LjEtMQot LSBVcGRhdGUgdG8gNC4xOS4xIChodHRwczovL3JwbS5vcmcvd2lraS9SZWxlYXNlcy80LjE5LjEp Ci0KLSogVGh1IE5vdiAzMCAyMDIzIFN0ZXBoZW4gR2FsbGFnaGVyIDxzZ2FsbGFnaEByZWRoYXQu Y29tPiAtIDQuMTkuMC0zCi0tIEZpeCBpc3N1ZXMgd2l0aCAlJWdldG5jcHVzIHNvbWV0aW1lcyBy ZXR1cm5pbmcgMCBvbiBpNjg2IHN5c3RlbXMKLQotKiBNb24gTm92IDEzIDIwMjMgUGFudSBNYXRp bGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTkuMC0yCi0tIEVuc3VyZSBjZW50cmFs IHBhY2thZ2Ugb3BzIGxvZyB2aWEgcnBtLXBsdWdpbi1hdWRpdCByZWNvbW1lbmRzICgjMTQ3Njky NikKLS0gT3duIG91ciBQeXRob24gbW9kdWxlIGRpcmVjdG9yeSAoIzIyNDg1NTUpCi0tIEZpeCBz eXN1c2Vycy5kIGdlbmVyYXRvciBiYXJmaW5nIG9uIGxlZ2l0IGNvbnRlbnQgKCMyMjQ2MjM2KQot Ci0qIFR1ZSBTZXAgMTkgMjAyMyBNaWNoYWwgRG9tb25rb3MgPG1kb21vbmtvQHJlZGhhdC5jb20+ IC0gNC4xOS4wLTEKLS0gVXBkYXRlIHRvIDQuMTkuMAotCi0qIE1vbiBTZXAgMDQgMjAyMyBNaWNo YWwgRG9tb25rb3MgPG1kb21vbmtvQHJlZGhhdC5jb20+IC0gNC4xOC45OS0xCi0tIFVwZGF0ZSB0 byA0LjE5IHJjMQotCi0qIFR1ZSBBdWcgMjIgMjAyMyBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFp QHJlZGhhdC5jb20+IC0gNC4xOC45Mi0zCi0tIEZpeCByZWdyZXNzaW9uIG9uIHVuY29tcHJlc3Np bmcgN3ppcCBjb21wcmVzc2VkIHNvdXJjZXMgKCMyMjI5OTg0KQotLSBGaXggYSBjb25mbGljdCB3 aXRoIHByZS1leGlzdGluZyBzY2wtdXRpbHMgJV9yb290X3ByZWZpeCBtYWNybyAoIzIyMzM0NTQp Ci0KLSogTW9uIEF1ZyAyMSAyMDIzIFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNv bT4gLSA0LjE4LjkyLTIKLS0gQmVoYXZlIG1vcmUgY29uc2lzdGVudGx5IHdoZW4gdGFyZ2V0ICUl b3B0ZmxhZ3MgYXJlIG5vdCBkZWZpbmVkICgjMjIzMTcyNykKLQotKiBXZWQgQXVnIDAyIDIwMjMg TWljaGFsIERvbW9ua29zIDxtZG9tb25rb0ByZWRoYXQuY29tPiAtIDQuMTguOTItMQotLSBVcGRh dGUgdG8gNC4xOSBiZXRhCi0KLSogVHVlIEp1bCAyNSAyMDIzIFlhYWtvdiBTZWxrb3dpdHogPHlz ZWxrb3dpQHJlZGhhdC5jb20+IC0gNC4xOC45MS05Ci0tIERyb3AgZnN2ZXJpdHkgcGx1Z2luIGZy b20gUkhFTCBidWlsZHMKLQotKiBGcmkgSnVsIDIxIDIwMjMgRmVkb3JhIFJlbGVhc2UgRW5naW5l ZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSA0LjE4LjkxLTgKLS0gUmVidWlsdCBm b3IgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV8zOV9NYXNzX1JlYnVpbGQK LQotKiBXZWQgSnVuIDI4IDIwMjMgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29t PiAtIDQuMTguOTEtNwotLSBSZWJ1aWx0IGZvciBQeXRob24gMy4xMgotCi0qIFdlZCBKdW4gMjgg MjAyMyBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xOC45MS02Ci0t IEZpeCBhIHNwZWMgcGFyc2luZyBlcnJvciBoYW5kbGluZyByZWdyZXNzaW9uCi0tIEZpeCBhIHBl ci1maWxlIHBsdWdpbiBob29rIHJlZ3Jlc3Npb24KLQotKiBUdWUgSnVuIDI3IDIwMjMgUGFudSBN YXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTguOTEtNQotLSBGaXggcG90ZW50 aWFsIGNyYXNoIHdpdGggbXVsdGlwbGUgaW4tcHJvY2VzcyBzcWxpdGUgdXNlcwotCi0qIE1vbiBK dW4gMjYgMjAyMyBQeXRob24gTWFpbnQgPHB5dGhvbi1tYWludEByZWRoYXQuY29tPiAtIDQuMTgu OTEtNAotLSBSZWJ1aWx0IGZvciBQeXRob24gMy4xMgotCi0qIFdlZCBKdW4gMjEgMjAyMyBQYW51 IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xOC45MS0zCi0tIEVuYWJsZSB1 c2VyL2dyb3VwIHByb3ZpZGUgZ2VuZXJhdGlvbgotLSBBZGQgYSBjb25mbGljdCBmb3Igc3lzdGVt ZCB2ZXJzaW9ucyBjYXJyeWluZyB0aGVpciBvd24KLQotKiBUdWUgSnVuIDEzIDIwMjMgUHl0aG9u IE1haW50IDxweXRob24tbWFpbnRAcmVkaGF0LmNvbT4gLSA0LjE4LjkxLTIKLS0gUmVidWlsdCBm b3IgUHl0aG9uIDMuMTIKLQotKiBGcmkgSnVuIDA5IDIwMjMgTWljaGFsIERvbW9ua29zIDxtZG9t b25rb0ByZWRoYXQuY29tPiAtIDQuMTguOTEtMQotLSBVcGRhdGUgdG8gNC4xOSBhbHBoYTIKLQot KiBUaHUgSnVuIDA4IDIwMjMgUGV0ZXIgUm9iaW5zb24gPHBicm9iaW5zb25AZmVkb3JhcHJvamVj dC5vcmc+IC0gNC4xOC45MC0xMAotLSBSZWJ1aWxkIGZvciBpbWEtZXZtLXV0aWxzIDEuNSBzb25h bWUgYnVtcAotCi0qIE1vbiBNYXkgMjkgMjAyMyBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJl ZGhhdC5jb20+IC0gNC4xOC45MC05Ci0tIFJldmVydCAlJV9zbXBfYnVpbGRfbmNwdXMgbWFjcm8g Y2hhbmdpbmcgdG8gcGFyYW1ldHJpYyAoIzIyMTAzNDcpCi0KLSogVGh1IE1heSAyNSAyMDIzIEZs b3JpYW4gRmVzdGkgPGZmZXN0aUByZWRoYXQuY29tPiAtIDQuMTguOTAtOAotLSBTZXQgJV9zaGFy ZWRzdGF0ZWRpciB0byAvdmFyL2xpYiAoIzIyMDk5ODkpCi0KLSogVGh1IE1heSAyNSAyMDIzIEZs b3JpYW4gRmVzdGkgPGZmZXN0aUByZWRoYXQuY29tPiAtIDQuMTguOTAtNwotLSBSZW1vdmUgY29t cGF0IGxpbmtzIGZvciBvbGQgc28gbmFtZSBvZiB0aGUgbGlicmFyaWVzCi0tIFJlbW92ZSBjb21w YXQgZm9yd2FyZCBwb3J0cyBmb3IgbGliZG5mCi0KLSogTW9uIE1heSAyMiAyMDIzIEZsb3JpYW4g RmVzdGkgPGZmZXN0aUByZWRoYXQuY29tPiAtIDQuMTguOTAtNgotLSBGaXggdW5kZWZpbmVkIHN5 bWJvbHMgZnJvbSBwbHVnaW5zCi0KLSogV2VkIE1heSAxNyAyMDIzIEZsb3JpYW4gRmVzdGkgPGZm ZXN0aUByZWRoYXQuY29tPiAtIDQuMTguOTAtNQotLSBVc2UgbWtkaXIgLXAgZm9yIGNyZWF0aW5n IFNQRUNQQVJUUyBkaXIKLQotKiBXZWQgTWF5IDE3IDIwMjMgRmxvcmlhbiBGZXN0aSA8ZmZlc3Rp QHJlZGhhdC5jb20+IC0gNC4xOC45MC00Ci0tIEVuYWJsZSBsYXJnZSBmaWxlIHN1cHBvcnQgb24g MzItYml0IHN5c3RlbXMgYWdhaW4KLQotKiBNb24gTWF5IDE1IDIwMjMgRmxvcmlhbiBGZXN0aSA8 ZmZlc3RpQHJlZGhhdC5jb20+IC0gNC4xOC45MC0zCi0tIEZpeCBsaWJiemlwMiBkZXRlY3Rpb24K LQotKiBUaHUgTWF5IDExIDIwMjMgRmxvcmlhbiBGZXN0aSA8ZmZlc3RpQHJlZGhhdC5jb20+IC0g NC4xOC45MC0yCi0tIEFkZCBjb21wYXQgbGlua3MgZm9yIGJ1aWxkaW5nIGRuZiBhbmQgZnJpZW5k cwotCi0qIFRodSBNYXkgMDQgMjAyMyBGbG9yaWFuIEZlc3RpIDxmZmVzdGlAcmVkaGF0LmNvbT4g LSA0LjE4LjkwLTEKLS0gVXBkYXRlIHRvIDQuMTkgYWxwaGEKLQotKiBUdWUgQXByIDI1IDIwMjMg TWlybyBIcm9uxI1vayA8bWhyb25jb2tAcmVkaGF0LmNvbT4gLSA0LjE4LjEtMwotLSBFeHBsaWNp dGx5IHJlcXVpcmUgcnBtLXNlcXVvaWEgPj0gMS40LjAgb24gcnVudGltZSB0byBhdm9pZAotICBy cG06IHN5bWJvbCBsb29rdXAgZXJyb3I6IC9saWI2NC9saWJycG1pby5zby45OiB1bmRlZmluZWQg c3ltYm9sOiBfcGdwVmVyaWZ5U2lnbmF0dXJlMgotCi0qIFRodSBBcHIgMjAgMjAyMyBQYW51IE1h dGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xOC4xLTIKLS0gQmFja3BvcnQgaW1w cm92ZWQgY3J5cHRvIGVycm9yIG1lc3NhZ2VzIGZyb20gdXBzdHJlYW0KLQotKiBXZWQgTWFyIDE1 IDIwMjMgTWljaGFsIERvbW9ua29zIDxtZG9tb25rb0ByZWRoYXQuY29tPiAtIDQuMTguMS0xCi0t IFJlYmFzZSB0byBycG0gNC4xOC4xIChodHRwczovL3JwbS5vcmcvd2lraS9SZWxlYXNlcy80LjE4 LjEpCi0KLSogVGh1IEZlYiAxNiAyMDIzIFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0 LmNvbT4gLSA0LjE4LjAtMTEKLS0gRGlzYWJsZSBkZWJ1Z2luZm9kIGxvb2t1cHMgaW4gcnBtYnVp bGQgc2NyaXB0cwotLSBFeGNsdWRlIGtlcm5lbCBtb2R1bGVzIGZyb20gRUxGIGRlcGVuZGVuY3kg Z2VuZXJhdGlvbgotCi0qIEZyaSBKYW4gMjAgMjAyMyBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmlu ZyA8cmVsZW5nQGZlZG9yYXByb2plY3Qub3JnPiAtIDQuMTguMC0xMAotLSBSZWJ1aWx0IGZvciBo dHRwczovL2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzM4X01hc3NfUmVidWlsZAotCi0q IE1vbiBKYW4gMDkgMjAyMyBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0g NC4xOC4wLTkKLS0gR2VuZXJhdGUgUHl0aG9uIGVnZy1pbmZvIGZyb20gYXV0b21ha2UgKCMyMTM1 NTYxKQotLSBEcm9wIHNldHVwLnB5LWJhc2VkIFB5dGhvbiBidWlsZCAoIzIxMzU3MTkpCi0KLSog V2VkIERlYyAwNyAyMDIyIFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0 LjE4LjAtOAotLSBGaXggaGFuZy11cCBvbiBmYWlsZWQga2V5IGltcG9ydCAocmVsYXRlZCB0byAj MjE0OTc2MikKLQotKiBUaHUgTm92IDI0IDIwMjIgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUBy ZWRoYXQuY29tPiAtIDQuMTguMC03Ci0tIFJlcXVpcmUgcnBtLXNlcXVvaWEgPj0gMS4yLjAgZm9y IFYzIHNpZ25hdHVyZSBzdXBwb3J0LCByZS1lbmFibGUgKCMyMTQxNjg2KQotCi0qIFRodSBOb3Yg MTAgMjAyMiBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xOC4wLTYK LS0gUmV2ZXJ0IGJhY2sgdG8gaW50ZXJuYWwgT3BlblBHUCBwYXJzZXIgZm9yIFYzIHNpZ25hdHVy ZSBzdXBwb3J0ICgjMjE0MTY4NikKLQotKiBUdWUgTm92IDAxIDIwMjIgUGFudSBNYXRpbGFpbmVu IDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTguMC01Ci0tIFN3aXRjaCB0byBTZXF1b2lhIGNy eXB0byAoaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0NoYW5nZXMvUnBtU2VxdW9pYSkK LQotKiBGcmkgT2N0IDE0IDIwMjIgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29t PiAtIDQuMTguMC00Ci0tIEFkZCBhbiBvcHRpb24gZm9yIGJ1aWxkaW5nIHdpdGggU2VxdW9pYSBj cnlwdG8KLQotKiBXZWQgT2N0IDA1IDIwMjIgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRo YXQuY29tPiAtIDQuMTguMC0zCi0tIEJyZWFrIGFuY2llbnQgcnBtIDwtPiBycG0tbGlicyBvcmRl cmluZyBsb29wCi0KLSogTW9uIE9jdCAwMyAyMDIyIFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlA cmVkaGF0LmNvbT4gLSA0LjE4LjAtMgotLSBEcm9wIHRoZSB0ZW1wb3JhcnkgYnVpbGQtZGVwZW5k ZW5jeSBvbiBwYW5kb2MgYmVmb3JlIGl0IGdyb3dzIGEgYmVhcmQKLS0gU3RhcnQgdXRpbGl6aW5n ICUlcGF0Y2hsaXN0LCBmaW5hbGx5Ci0KLSogV2VkIFNlcCAyMSAyMDIyIFBhbnUgTWF0aWxhaW5l biA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE4LjAtMQotLSBSZWJhc2UgdG8gcnBtIDQuMTgu MCAoaHR0cHM6Ly9ycG0ub3JnL3dpa2kvUmVsZWFzZXMvNC4xOC4wKQotCi0qIFdlZCBTZXAgMTQg MjAyMiBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xOC4wLTAucmMx LjQKLS0gRml4IGEgbGFyZ2lzaCBkaXJlY3Rvcnkgd2FsayByZWxhdGVkIG1lbW9yeSBsZWFrIGlu IHRyYW5zYWN0aW9ucwotCi0qIFdlZCBTZXAgMDcgMjAyMiBQYW51IE1hdGlsYWluZW4gPHBtYXRp bGFpQHJlZGhhdC5jb20+IC0gNC4xOC4wLTAucmMxLjMKLS0gRml4IGJ1ZmZlciBvdmVycnVuIG9u IHJwbWRiIHF1ZXJpZXMgaW52b2x2aW5nIF4gaW4gdmVyc2lvbgotCi0qIFdlZCBTZXAgMDcgMjAy MiBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xOC4wLTAucmMxLjIK LS0gQnJlYWsgc2VsaW51eC1wb2xpY3kgPC0+IHJwbS1wbHVnaW4tc2VsaW51eCBvcmRlcmluZyBs b29wICgjMTg1MTI2NikKLQotKiBGcmkgU2VwIDAyIDIwMjIgUGFudSBNYXRpbGFpbmVuIDxwbWF0 aWxhaUByZWRoYXQuY29tPiAtIDQuMTguMC0wLnJjMS4xCi0tIFJlYmFzZSB0byA0LjE4LjAtcmMx IChodHRwczovL3JwbS5vcmcvd2lraS9SZWxlYXNlcy80LjE4LjApCi0KLSogVHVlIEF1ZyAwMiAy MDIyIE1pY2hhbCBEb21vbmtvcyA8bWRvbW9ua29AcmVkaGF0LmNvbT4gLSA0LjE4LjAtMC5iZXRh MS40Ci0tIFJldmVydCAlJWF1dG9zZXR1cCAtUyBnaXQgcGF0Y2ggZHVlIHRvIGFub3RoZXIgcmVn cmVzc2lvbgotCi0qIFNhdCBKdWwgMjMgMjAyMiBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8 cmVsZW5nQGZlZG9yYXByb2plY3Qub3JnPiAtIDQuMTguMC0wLmJldGExLjMKLS0gUmVidWlsdCBm b3IgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV8zN19NYXNzX1JlYnVpbGQK LQotKiBNb24gSnVsIDExIDIwMjIgTWljaGFsIERvbW9ua29zIDxtZG9tb25rb0ByZWRoYXQuY29t PiAtIDQuMTguMC0wLmJldGExLjIKLS0gRml4IGNoZWNrLWJ1aWxkcm9vdCByZWdyZXNzaW9uIHdy dCBidW5kbGVkIFNSUE0gKCMyMTA0MTUwKQotLSBGaXggJSVhdXRvc2V0dXAgLVMgZ2l0IHJlZ3Jl c3Npb24gd3J0IGRlZmF1bHQgZ2l0IGJyYW5jaAotCi0qIFR1ZSBKdW4gMjggMjAyMiBQYW51IE1h dGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xOC4wLTAuYmV0YTEuMQotLSBSZWJh c2UgdG8gNC4xOC4wLWJldGExIChodHRwczovL3JwbS5vcmcvd2lraS9SZWxlYXNlcy80LjE4LjAp Ci0KLSogTW9uIEp1biAxMyAyMDIyIFB5dGhvbiBNYWludCA8cHl0aG9uLW1haW50QHJlZGhhdC5j b20+IC0gNC4xOC4wLTAuYWxwaGEyLjIKLS0gUmVidWlsdCBmb3IgUHl0aG9uIDMuMTEKLQotKiBN b24gTWF5IDIzIDIwMjIgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQu MTguMC0wLmFscGhhMi4xCi0tIFJlYmFzZSB0byA0LjE4LjAtMC5hbHBoYTIKLS0gUHJldmVudCB1 bmNvbnRyb2xsZWQgc3FsaXRlIFdBTCBncm93dGggZHVyaW5nIGxhcmdlIHRyYW5zYWN0aW9ucwot Ci0qIFRodSBBcHIgMjggMjAyMiBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+ IC0gNC4xOC4wLTAuYWxwaGExLjYKLS0gRml4IHJ1YnlnZW0gdW5wYWNrIHJlZ3Jlc3Npb24sIGNh dXNpbmcgcnVieWdlbSBidWlsZHMgdG8gZmFpbAotCi0qIFdlZCBBcHIgMjcgMjAyMiBQYW51IE1h dGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xOC4wLTAuYWxwaGExLjUKLS0gRml4 IHZlcmJvc2Ugc291cmNlIHVuY29tcHJlc3MgcmVncmVzc2lvbiAoIzIwNzkxMjcpCi0KLSogVHVl IEFwciAyNiAyMDIyIFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE4 LjAtMC5hbHBoYTEuNAotLSBGdXJ0aGVyIGR5bmFtaWMgYnVpbGRyZXF1aXJlcyBjbGkgc3dpdGNo IHJlZ3Jlc3Npb24gZml4ZXMgKCMyMDc4NzQ0KQotCi0qIFR1ZSBBcHIgMjYgMjAyMiBQYW51IE1h dGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xOC4wLTAuYWxwaGExLjMKLS0gRml4 IHJwbWJ1aWxkIC1iYSAtLW5vZGVwcyByZWdyZXNzaW9uIHdydCBkeW5hbWljIGJ1aWxkcmVxdWly ZXMgKCMyMDc4NzQ0KQotCi0qIFR1ZSBBcHIgMjYgMjAyMiBQYW51IE1hdGlsYWluZW4gPHBtYXRp bGFpQHJlZGhhdC5jb20+IC0gNC4xOC4wLTAuYWxwaGExLjIKLS0gRml4IHJwbWJ1aWxkIC1iciBu b3QgcHJvZHVjaW5nIGEgc3JjLnJwbSByZWdyZXNzaW9uICgjMjA3ODc0NCkKLQotKiBNb24gQXBy IDI1IDIwMjIgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTguMC0w LmFscGhhMS4xCi0tIFJlYmFzZSB0byA0LjE4LjAgYWxwaGEgKGh0dHBzOi8vZmVkb3JhcHJvamVj dC5vcmcvd2lraS9DaGFuZ2VzL1JQTS00LjE4KQotLSBBZGQgcGF0Y2hlcyBmb3IgdHdvIGxhdGUg ZGlzY292ZXJlZCByZWdyZXNzaW9ucwotCi0qIE1vbiBNYXIgMjEgMjAyMiBOZWFsIEdvbXBhIDxu Z29tcGFAZmVkb3JhcHJvamVjdC5vcmc+IC0gNC4xNy4wLTEwCi0tIENyZWF0ZSBycG1kYiBkaXJl Y3Rvcnkgc3ltbGluayBpbiBwb3N0dHJhbnMgYnkgZGVmYXVsdCAoIzIwNjY0MjcpCi0KLSogV2Vk IEZlYiAxNiAyMDIyIE5lYWwgR29tcGEgPG5nb21wYUBmZWRvcmFwcm9qZWN0Lm9yZz4gLSA0LjE3 LjAtOQotLSBBZGQgZGVwZW5kZW5jaWVzIGZvciB0aGUgcnBtZGIgbWlncmF0aW9uIHNjcmlwdGxl dCAoIzIwNTUwMzMpCi0KLSogV2VkIEZlYiAwMiAyMDIyIFBhbnUgTWF0aWxhaW5lbiA8cG1hdGls YWlAcmVkaGF0LmNvbT4gLSA0LjE3LjAtOAotLSBSZWFsbHkgZml4IHNwdXJpb3VzICUldHJhbnNm aWxldHJpZ2dlcnBvc3R1biBleGVjdXRpb24gKCMyMDIzMzExLCAjMjA0ODE2OCkKLQotKiBXZWQg SmFuIDI2IDIwMjIgTmVhbCBHb21wYSA8bmdvbXBhQGZlZG9yYXByb2plY3Qub3JnPiAtIDQuMTcu MC03Ci0tIE1pZ3JhdGUgcnBtZGIgdG8gL3Vzci9saWIvc3lzaW1hZ2UvcnBtICgjMjA0MjA5OSkK LSAgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0NoYW5nZXMvUmVsb2NhdGVSUE1Ub1Vz cgotCi0qIEZyaSBKYW4gMjEgMjAyMiBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsZW5n QGZlZG9yYXByb2plY3Qub3JnPiAtIDQuMTcuMC02Ci0tIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVk b3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfMzZfTWFzc19SZWJ1aWxkCi0KLSogVGh1IEphbiAy MCAyMDIyIEJqw7ZybiBFc3NlciA8YmVzc2VyODJAZmVkb3JhcHJvamVjdC5vcmc+IC0gNC4xNy4w LTUKLS0gUmVidWlsZCAoaW1hLWV2bS11dGlscykKLS0gVXNlIGJhc2VyZWxlYXNlIGZvciBycG0g cmVsZWFzZSB0YWcgdG8gbWFrZSBycG1kZXYtYnVtcHNwZWMgd29yawotCi0qIEZyaSBKYW4gMTQg MjAyMiBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNy4wLTQKLS0g Rml4IHNwdXJpb3VzICUldHJhbnNmaWxldHJpZ2dlcnBvc3R1biBleGVjdXRpb24gKCMyMDIzMzEx KQotCi0qIEZyaSBKYW4gMTQgMjAyMiBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5j b20+IC0gNC4xNy4wLTMKLS0gRml4IGZhcG9saWN5ZCBwbHVnaW4gZGVwZW5kZW5jaWVzIHRvIHJl cGxhY2UgZmFwb2xpY3lkLWRuZi1wbHVnaW4gKCMyMDA3NjM5KQotCi0qIE1vbiBOb3YgMDggMjAy MSBQZXRlciBSb2JpbnNvbiA8cGJyb2JpbnNvbkBmZWRvcmFwcm9qZWN0Lm9yZz4gLSA0LjE3LjAt MgotLSBSZWJ1aWxzIGZvciBpbWEtZXZtLXV0aWxzIDEuNCBzb25hbWUgYnVtcAotCi0qIFR1ZSBT ZXAgMTQgMjAyMSBTYWhhbmEgUHJhc2FkIDxzYWhhbmFAcmVkaGF0LmNvbT4gLSA0LjE3LjAtMS4x Ci0tIFJlYnVpbHQgd2l0aCBPcGVuU1NMIDMuMC4wCi0KLSogRnJpIFNlcCAwMyAyMDIxIFBhbnUg TWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE3LjAtMQotLSBSZWJhc2UgdG8g NC4xNy4wIGZpbmFsIChodHRwczovL3JwbS5vcmcvd2lraS9SZWxlYXNlcy80LjE3LjApCi0KLSog VGh1IEF1ZyAxOSAyMDIxIFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0 LjE3LjAtMC5yYzEuMQotLSBSZWJhc2UgdG8gNC4xNy4wIHJjMQotCi0qIEZyaSBKdWwgMjMgMjAy MSBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsZW5nQGZlZG9yYXByb2plY3Qub3JnPiAt IDQuMTcuMC0wLmJldGExLjAuMgotLSBSZWJ1aWx0IGZvciBodHRwczovL2ZlZG9yYXByb2plY3Qu b3JnL3dpa2kvRmVkb3JhXzM1X01hc3NfUmVidWlsZAotCi0qIFR1ZSBKdW4gMjIgMjAyMSBQYW51 IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNy4wLTAuYmV0YTEuMQotLSBS ZWJhc2UgdG8gNC4xNy4wIGJldGExCi0tIEFkZCBiYWNrIC91c3IvbGliL3JwbS9maW5kLWRlYnVn aW5mby5zaCBhcyBhIGNvbXBhdCBzeW1saW5rCi0tIEFkZCB0ZW1wb3JhcnkgYnVpbGRyZXF1aXJl IG9uIHBhbmRvYyBkdWUgdG8gbWFrZWZpbGUgYnVncyBpbiBiZXRhMQotCi0qIFdlZCBKdW4gMDIg MjAyMSBQeXRob24gTWFpbnQgPHB5dGhvbi1tYWludEByZWRoYXQuY29tPiAtIDQuMTYuOTAtMC5n aXQxNTM5NS44LjEKLS0gUmVidWlsdCBmb3IgUHl0aG9uIDMuMTAKLQotKiBNb24gTWF5IDE3IDIw MjEgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTYuOTAtMC5naXQx NTM5NS44Ci0tIFN3aXRjaCB0byBleHRlcm5hbCBkZWJ1Z2VkaXQKLQotKiBNb24gTWF5IDE3IDIw MjEgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTYuOTAtMC5naXQx NTM5NS43Ci0tIEhhbmRsZSBkaWZmZXJlbnQgZmluZC1kZWJ1Z2luZm8uc2ggbG9jYXRpb24gd2l0 aCBleHRlcm5hbCBkZWJ1Z2VkaXQKLQotKiBGcmkgTWF5IDA3IDIwMjEgUGFudSBNYXRpbGFpbmVu IDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTYuOTAtMC5naXQxNTM5NS42Ci0tIEZpeCByZWdy ZXNzaW9uIGNhdXNpbmcgYSBjcmFzaCBvbiBMdWEgc3RhdGUgcmVzZXQgKCMxOTU4MDk1KQotCi0q IFRodSBBcHIgMjkgMjAyMSBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0g NC4xNi45MC0wLmdpdDE1Mzk1LjUKLS0gUHJvcGVyIGZpeCBmb3IgY29tbWVudHMgYWZmZWN0aW5n IG1hY3JvIGZpbGUgcGFyc2luZyAoIzE5NTM5MTApCi0KLSogVHVlIEFwciAyNyAyMDIxIFBhbnUg TWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE2LjkwLTAuZ2l0MTUzOTUuNAot LSBFbmFibGUgZmFwb2xpY3lkIHBsdWdpbiBidWlsZAotCi0qIFR1ZSBBcHIgMjcgMjAyMSBQYW51 IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNi45MC0wLmdpdDE1Mzk1LjMK LS0gVGVtcG9yYXJpbHkgcmV2ZXJ0IG1hY3JvIGZpbGUgbG9hZGluZyBmaXggZHVlIHRvIHJlZ3Jl c3Npb24gIzE5NTM5MTAKLQotKiBNb24gQXByIDI2IDIwMjEgUGFudSBNYXRpbGFpbmVuIDxwbWF0 aWxhaUByZWRoYXQuY29tPiAtIDQuMTYuOTAtMC5naXQxNTM5NS4yCi0tIEFkZCBhIGJjb25kIHRv IGJ1aWxkIHdpdGggZXh0ZXJuYWwgZGVidWdlZGl0Ci0KLSogTW9uIEFwciAyNiAyMDIxIFBhbnUg TWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE2LjkwLTAuZ2l0MTUzOTUuMQot LSBSZWJhc2UgdG8gcnBtIDQuMTcuMCBhbHBoYSAoaHR0cHM6Ly9ycG0ub3JnL3dpa2kvUmVsZWFz ZXMvNC4xNy4wKQotLSBEcm9wIGEgbG9jYWwgaGFjayBmb3IgYSBjb3NtZXRpYyBGZWRvcmEgMjIg ZXJhIHJwbTJjcGlvIGlzc3VlCi0tIERyb3AgQkRCIHN1cHBvcnQgbGVmdG92ZXJzIGZyb20gdGhl IHNwZWMKLS0gQWRkIGJ1aWxkIGNvbmRpdGlvbmFsIGZvciBmc3Zlcml0eSBwbHVnaW4KLQotKiBN b24gTWFyIDIyIDIwMjEgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQu MTYuMS4zLTEKLS0gUmViYXNlIHRvIHJwbSA0LjE2LjEuMyAoaHR0cHM6Ly9ycG0ub3JnL3dpa2kv UmVsZWFzZXMvNC4xNi4xLjMpCi0KLSogV2VkIEZlYiAwMyAyMDIxIFBhbnUgTWF0aWxhaW5lbiA8 cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE2LjEuMi02Ci0tIERyb3Agc3VwcG9ydCBmb3IgcmVh ZC13cml0ZSBCZXJrZWxleSBEQiBmb3JtYXQgKCMxNzg3MzExKQotCi0qIFdlZCBGZWIgMDMgMjAy MSBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNi4xLjItNQotLSBN YWtlIHdpdGgvd2l0aG91dCBiZGIgYnVpbGQgb3B0aW9uIGFjdHVhbGx5IHdvcmsKLS0gQ2xlYW4g dXAgdW5wYWNrYWdlZCAvdmFyL3RtcCBmcm9tIHRoZSBidWlsZCByb290Ci0KLSogV2VkIEphbiAy NyAyMDIxIEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWxlbmdAZmVkb3JhcHJvamVjdC5v cmc+IC0gNC4xNi4xLjItNC4xCi0tIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5v cmcvd2lraS9GZWRvcmFfMzRfTWFzc19SZWJ1aWxkCi0KLSogRnJpIEphbiAyMiAyMDIxIE1hcmsg V2llbGFhcmQgPG1qd0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSA0LjE2LjEuMi00Ci0tIEZpeCBlZGl0 X2F0dHJpYnV0ZXNfc3RyX2NvbXBfZGlyIGluIFBhdGNoOTE2ICgjMTkxOTEwNykKLQotKiBUdWUg SmFuIDE5IDIwMjEgSmVmZiBMYXcgPGxhd0ByZWRoYXQuY29tPiAtIDQuMTYuMS4yLTMKLS0gRml4 IHR5cG8gaW4gdGVzdCBmb3IgRjMzIG9yIG5ld2VyCi0KLSogVHVlIEphbiAxOSAyMDIxIE1hcmsg V2llbGFhcmQgPG1qd0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSA0LjE2LjEuMi0yCi0tIEFkZCBkZWJ1 Z2VkaXQgRFdBUkY1IHN1cHBvcnQKLQotKiBXZWQgRGVjIDE2IDIwMjAgUGFudSBNYXRpbGFpbmVu IDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTYuMS4yLTEKLS0gUmViYXNlIHRvIHJwbSA0LjE2 LjEuMiAoaHR0cDovL3JwbS5vcmcvd2lraS9SZWxlYXNlcy80LjE2LjEuMikKLS0gQWRkIGEgc3Bl YyBzYWZlZ3VhcmQgZm9yIGFjY2lkZW50YWwgc29uYW1lIGJ1bXBzCi0KLSogV2VkIERlYyAxNiAy MDIwIFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE2LjEuMS0xCi0t IFJlYmFzZSB0byBycG0gNC4xNi4xLjEgKGh0dHA6Ly9ycG0ub3JnL3dpa2kvUmVsZWFzZXMvNC4x Ni4xLjEpCi0KLSogVGh1IERlYyAxMCAyMDIwIFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVk aGF0LmNvbT4gLSA0LjE2LjEtMQotLSBSZWJhc2UgdG8gcnBtIDQuMTYuMSAoaHR0cDovL3JwbS5v cmcvd2lraS9SZWxlYXNlcy80LjE2LjEpCi0KLSogTW9uIE5vdiAzMCAyMDIwIFBhbnUgTWF0aWxh aW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE2LjAtNQotLSBPbmx5IGRpc2FibGUgdGVz dC1zdWl0ZSB3aGVyZSBpdCdzIGFjdHVhbGx5IGJyb2tlbgotCi0qIE1vbiBOb3YgMzAgMjAyMCBQ YW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNi4wLTQKLS0gRml4IEJE QiBjcmFzaGluZyBvbiBmYWlsZWQgb3BlbiBhdHRlbXB0cyAoIzE5MDIzOTUsICMxODk4Mjk5LCAj MTkwMDQwNykKLS0gRml4IHVubmVjZXNzYXJ5IGRvdWJsZSBmYWlsdXJlIG9uIGxhenkga2V5cmlu ZyBvcGVuCi0KLSogV2VkIE9jdCAyOCAyMDIwIFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVk aGF0LmNvbT4gLSA0LjE2LjAtMwotLSBJc3N1ZSBkZXByZWNhdGlvbiB3YXJuaW5nIHdoZW4gY3Jl YXRpbmcgQkRCIGRhdGFiYXNlcyAoIzE3ODczMTEpCi0tIFRlbXBvcmFyaWx5IGRpc2FibGUgdGVz dC1zdWl0ZSBkdWUgdG8gbWFzc2l2ZSBmYWtlY2hyb290IGJyZWFrYWdlCi0KLSogTW9uIE9jdCAw NSAyMDIwIFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE2LjAtMgot LSBDbGVhbiB1cCBhZnRlciB0ZXN0LXN1aXRlIHdoaWNoIGxlYXZlcyBhIHJlYWQtb25seSB0cmVl IGJlaGluZAotCi0qIFdlZCBTZXAgMzAgMjAyMCBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJl ZGhhdC5jb20+IC0gNC4xNi4wLTEKLS0gUmViYXNlIHRvIDQuMTYuMCBmaW5hbCAoaHR0cHM6Ly9y cG0ub3JnL3dpa2kvUmVsZWFzZXMvNC4xNi4wKQotCi0qIE1vbiBBdWcgMzEgMjAyMCBQYW51IE1h dGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNi4wLTAucmMxLjEKLS0gUmViYXNl IHRvIDQuMTYuMC1yYzEKLS0gUnVuIHRlc3Qtc3VpdGUgaW4gcGFyYWxsZWwKLQotKiBTYXQgQXVn IDAxIDIwMjAgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0 Lm9yZz4gLSA0LjE2LjAtMC5iZXRhMy4yLjMKLS0gU2Vjb25kIGF0dGVtcHQgLSBSZWJ1aWx0IGZv cgotICBodHRwczovL2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzMzX01hc3NfUmVidWls ZAotCi0qIFdlZCBKdWwgMjkgMjAyMCBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsZW5n QGZlZG9yYXByb2plY3Qub3JnPiAtIDQuMTYuMC0wLmJldGEzLjIuMgotLSBSZWJ1aWx0IGZvciBo dHRwczovL2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzMzX01hc3NfUmVidWlsZAotCi0q IFN1biBKdWwgMjYgMjAyMCBQZXRlciBSb2JpbnNvbiA8cGJyb2JpbnNvbkBmZWRvcmFwcm9qZWN0 Lm9yZz4gLSA0LjE2LjAtMC5iZXRhMy4yLjEKLS0gcmVidWlsZCBmb3IgaW1hLWV2bS11dGlscyAx LjMKLQotKiBNb24gSnVuIDI5IDIwMjAgVG9tIENhbGxhd2F5IDxzcG90QGZlZG9yYXByb2plY3Qu b3JnPiAtIDQuMTYuMC0wLmJldGEzLjIKLS0gcmVidWlsZCBmb3IgbHVhIDUuNAotCi0qIFdlZCBK dW4gMjQgMjAyMCBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNi4w LTAuYmV0YTMuMQotLSBSZWJhc2UgdG8gYmV0YTMKLQotKiBXZWQgSnVuIDEwIDIwMjAgUGFudSBN YXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTYuMC0wLmJldGExLjQKLS0gRml4 IHByZWZpeCBzZWFyY2ggb24gc3FsaXRlIGJhY2tlbmQgKG1hbnkgZmlsZSB0cmlnZ2VycyBub3Qg cnVubmluZykKLQotKiBNb24gSnVuIDggMjAyMCBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJl ZGhhdC5jb20+IC0gNC4xNi4wLTAuYmV0YTEuMwotLSBVbmJyZWFrIG1ldGFpbmZvKCkgcHJvdmlk ZSBnZW5lcmF0aW9uCi0KLSogV2VkIEp1biAzIDIwMjAgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxh aUByZWRoYXQuY29tPiAtIDQuMTYuMC0wLmJldGExLjIKLS0gRG9uJ3QgYXV0by1lbmFibGUgX2Zs dXNoX2lvIG9uIG5vbi1yb3RhdGlvbmFsIG1lZGlhLCBpdCdzIHRvbyBjb3N0bHkKLQotKiBNb24g SnVuIDEgMjAyMCBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNi4w LTAuYmV0YTEuMQotLSBSZWJhc2UgdG8gcnBtIDQuMTYuMC1iZXRhMQotCi0qIEZyaSBNYXkgMjIg MjAyMCBNaXJvIEhyb27EjW9rIDxtaHJvbmNva0ByZWRoYXQuY29tPiAtIDQuMTUuOTAtMC5naXQx NDk3MS4xMi4xCi0tIFJlYnVpbHQgZm9yIFB5dGhvbiAzLjkKLQotKiBUdWUgTWF5IDEyIDIwMjAg UGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTUuOTAtMC5naXQxNDk3 MS4xMgotLSBGaXggc2VnZmF1bHQgd2hlbiB0cnlpbmcgdG8gdXNlIHVua25vd24gZGF0YWJhc2Ug YmFja2VuZAotCi0qIFRodSBNYXkgNyAyMDIwIFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVk aGF0LmNvbT4gLSA0LjE1LjkwLTAuZ2l0MTQ5NzEuMTEKLS0gRmxhZyBCREIgZGF0YWJhc2VzIGZv ciByZWJ1aWxkIG9uIG5leHQgcmVib290IHdoZW5ldmVyIHJwbSBpcyB1cGRhdGVkCi0tIFN3aXRj aCBkZWZhdWx0IGRhdGFiYXNlIHRvIHNxbGl0ZSAoIzE4MTg5MTApCi0KLSogTW9uIE1heSA0IDIw MjAgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTUuOTAtMC5naXQx NDk3MS4xMAotLSBIYW5kbGUgcnBtZGItcmVidWlsZCBzZXJ2aWNlIGVuYWJsZW1lbnQgZm9yIHVw Z3JhZGVzCi0KLSogVGh1IEFwciAyMyAyMDIwIFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVk aGF0LmNvbT4gLSA0LjE1LjkwLTAuZ2l0MTQ5NzEuOQotLSBGaXggcXVlc3Rpb25hYmxlIHVzZXMg b2YgJSV7bmFtZX0gYW5kICUle3ZlcnNpb259IGluIHRoZSBzcGVjCi0KLSogV2VkIEFwciAyMiAy MDIwIFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE1LjkwLTAuZ2l0 MTQ5NzEuOAotLSBGaXggcmVncmVzc2lvbihzKSBvbiBidWlsZCBkZXBlbmRlbmN5IHJlc29sdXRp b24KLQotKiBXZWQgQXByIDIyIDIwMjAgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQu Y29tPiAtIDQuMTUuOTAtMC5naXQxNDk3MS43Ci0tIEFkZCBycG1kYi1yZWJ1aWxkIHN5c3RlbWQg c2VydmljZQotCi0qIEZyaSBBcHIgMTcgMjAyMCBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJl ZGhhdC5jb20+IC0gNC4xNS45MC0wLmdpdDE0OTcxLjYKLS0gV2FybiBvbiB1bmRlZmluZWQgbWFj cm9zIGluIGJ1aWxkdHJlZSBzZXR1cCBtYWNyb3MgKCMxODIwMzQ5KQotCi0qIFRodSBBcHIgMDkg MjAyMCBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNS45MC0wLmdp dDE0OTcxLjUKLS0gRml4IHJlZ3Jlc3Npb24gY2F1c2luZyBhbGwgRUxGIGZpbGVzIGNsYXNzaWZp ZWQgYXMgT0NhbWwKLQotKiBNb24gQXByIDA2IDIwMjAgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxh aUByZWRoYXQuY29tPiAtIDQuMTUuOTAtMC5naXQxNDk3MS40Ci0tIEZpeCBpbnZhbGlkIHBhdGgg cGFzc2VkIHRvIHBhcmFtZXRyaWMgbWFjcm8gZ2VuZXJhdG9ycwotCi0qIFRodSBBcHIgMDIgMjAy MCBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNS45MC0wLmdpdDE0 OTcxLjMKLS0gRml4IGRiIGxvY2sgZmlsZXMgbm90IGdldHRpbmcgcGFja2FnZWQKLQotKiBUdWUg TWFyIDMxIDIwMjAgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTUu OTAtMC5naXQxNDk3MS4yCi0tIE1vdmUgYmRiIHNwZWNpZmljIHN5c3RlbWQtdG1wZmlsZXMgY2xl YW51cCBjcnV0Y2ggYmVoaW5kIHRoZSBiZGIgYmNvbmQKLQotKiBUdWUgTWFyIDMxIDIwMjAgUGFu dSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTUuOTAtMC5naXQxNDk3MS4x Ci0tIFJlYmFzZSB0byBycG0gNC4xNiBhbHBoYSAoaHR0cHM6Ly9ycG0ub3JnL3dpa2kvUmVsZWFz ZXMvNC4xNi4wKQotLSBBZGQgYmNvbmRzIGZvciBhbmQgZW5hYmxlIHNxbGl0ZSwgbmRiIGFuZCBi ZGJfcm8gZGF0YWJhc2UgYmFja2VuZHMKLS0gQWRkIGJjb25kIGZvciBkaXNhYmxpbmcgYmRiIGJh Y2tlbmQKLS0gRHJvcCBsbWRiIGJjb25kLCB0aGUgYmFja2VuZCB3YXMgcmVtb3ZlZCB1cHN0cmVh bQotLSBFbnN1cmUgYWxsIGRhdGFiYXNlIGJhY2tlbmQgZmlsZXMgYXJlIG93bmVkCi0tIEZpeCBl eHRlcm5hbCBlbnZpcm9ubWVudCBjYXVzaW5nIHRlc3Qtc3VpdGUgZmFpbHVyZXMgaW4gc3BlYyBi dWlsZAotLSBSZS1lbmFibGUgaGFyZCB0ZXN0LXN1aXRlIGZhaWx1cmVzIGFnYWluCi0KLSogVGh1 IEphbiAzMCAyMDIwIEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWxlbmdAZmVkb3JhcHJv amVjdC5vcmc+IC0gNC4xNS4xLTIuMQotLSBSZWJ1aWx0IGZvciBodHRwczovL2ZlZG9yYXByb2pl Y3Qub3JnL3dpa2kvRmVkb3JhXzMyX01hc3NfUmVidWlsZAotCi0qIFRodSBKYW4gOSAyMDIwIFBh bnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE1LjEtMgotLSBPYnNvbGV0 ZSBweXRob24yLXJwbSB0byBmaXggdXBncmFkZSBwYXRoICgjMTc3NTExMykKLQotKiBNb24gTm92 IDE4IDIwMTkgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTUuMS0x Ci0tIFJlYmFzZSB0byA0LjE1LjEgKGh0dHBzOi8vcnBtLm9yZy93aWtpL1JlbGVhc2VzLzQuMTUu MSkKLQotKiBUaHUgTm92IDE0IDIwMTkgQWRhbSBXaWxsaWFtc29uIDxhd2lsbGlhbUByZWRoYXQu Y29tPiAtIDQuMTUuMC03Ci0tIFJlYWxseSByZXZlcnQgYXJtdjggZGV0ZWN0aW9uIGltcHJvdmVt ZW50cyAocGF0Y2ggd2FzIG5vdCBhcHBsaWVkIGluIC02KQotCi0qIFdlZCBPY3QgMjMgMjAxOSBQ ZXRlciBSb2JpbnNvbiA8cGJyb2JpbnNvbkBmZWRvcmFwcm9qZWN0Lm9yZz4gNC4xNS4wLTYKLS0g UmV2ZXJ0IGFybXY4IGRldGVjdGlvbiBpbXByb3ZlbWVudHMKLQotKiBNb24gT2N0IDIxIDIwMTkg U3RlcGhlbiBHYWxsYWdoZXIgPHNnYWxsYWdoQHJlZGhhdC5jb20+IC0gNC4xNS4wLTUKLS0gUmV2 ZXJ0IGFsaWFzaW5nIGFybTY0IHRvIGFhcmNoNjQKLS0gUmVzb2x2ZXM6IHJoYnojMTc2MzgzMQot Ci0qIEZyaSBPY3QgMTggMjAxOSBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+ IC0gNC4xNS4wLTQKLS0gUmV2ZXJ0IHByb2JsZW1hdGljIHN1Yi12YXJpYW50cyBvZiBhcm12OCAo IzE2OTE0MzApCi0KLSogVGh1IE9jdCAxNyAyMDE5IFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlA cmVkaGF0LmNvbT4gLSA0LjE1LjAtMwotLSBEcm9wIHB5dGhvbjIgYmluZGluZ3MgZm9yIGdvb2Qg KCMxNzYxMjExKQotCi0qIFR1ZSBPY3QgMTUgMjAxOSBBZGFtIFdpbGxpYW1zb24gPGF3aWxsaWFt QHJlZGhhdC5jb20+IC0gNC4xNS4wLTIKLS0gUmV2ZXJ0IHN5c3RlbWQgaW5oaWJpdCBwbHVnaW4n cyBjYWxsaW5nIG9mIGRidXNfc2h1dGRvd24gKCMxNzUwNTc1KQotCi0qIFRodSBTZXAgMjYgMjAx OSBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNS4wLTEKLS0gVXBk YXRlIHRvIDQuMTUuMCBmaW5hbCAoaHR0cHM6Ly9ycG0ub3JnL3dpa2kvUmVsZWFzZXMvNC4xNS4w KQotCi0qIFdlZCBBdWcgMjggMjAxOSBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5j b20+IC0gNC4xNS4wLTAucmMxLjEKLS0gVXBkYXRlIHRvIDQuMTUuMC1yYzEKLQotKiBUdWUgQXVn IDI3IDIwMTkgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTUuMC0w LmJldGEuNgotLSBGaXggc29tZSBpc3N1ZXMgaW4gdGhlIHRocmVhZCBjYXAgbG9naWMKLQotKiBN b24gQXVnIDI2IDIwMTkgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQu MTUuMC0wLmJldGEuNQotLSBSZS1lbmFibGUgdGVzdC1zdWl0ZSwgdGVtcG9yYXJpbHkgZGlzYWJs ZWQgZHVyaW5nIGFscGhhIHRyb3VibGVzaG9vdGluZwotCi0qIEZyaSBBdWcgMjMgMjAxOSBQYW51 IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNS4wLTAuYmV0YS40Ci0tIENh cCBudW1iZXIgb2YgdGhyZWFkcyBvbiAzMmJpdCBwbGF0Zm9ybXMgKCMxNzI5MzgyKQotLSBEcm9w ICUlX2x0b19jZmxhZ3MgbWFjcm8gKHJldmVydGVkIHVwc3RyZWFtKQotCi0qIEZyaSBBdWcgMjMg MjAxOSBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNS4wLTAuYmV0 YS4zCi0tIFJlc3RvcmUgc3RyaWN0IG9yZGVyIG9mIGJ1aWxkIHNjcmlwdGxldCBzdGRvdXQvc3Rk ZXJyIG91dHB1dAotCi0qIFRodSBBdWcgMTUgMjAxOSBNaXJvIEhyb27EjW9rIDxtaHJvbmNva0By ZWRoYXQuY29tPiAtIDQuMTUuMC0wLmJldGEuMi4zCi0tIFJlYnVpbHQgZm9yIFB5dGhvbiAzLjgK LQotKiBXZWQgSnVsIDMxIDIwMTkgTWlybyBIcm9uxI1vayA8bWhyb25jb2tAcmVkaGF0LmNvbT4g LSA0LjE1LjAtMC5iZXRhLjIuMgotLSBSZWJ1aWx0IGZvciBsaWJpbWFldm0uc28uMQotCi0qIEZy aSBKdWwgMjYgMjAxOSBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsZW5nQGZlZG9yYXBy b2plY3Qub3JnPiAtIDQuMTUuMC0wLmJldGEuMi4xCi0tIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVk b3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfMzFfTWFzc19SZWJ1aWxkCi0KLSogU2F0IEp1bCAy MCAxODozMDoxMCBDRVNUIDIwMTkgSWdvciBHbmF0ZW5rbyA8aWduYXRlbmtvYnJhaW5AZmVkb3Jh cHJvamVjdC5vcmc+IC0gNC4xNS4wLTAuYmV0YS4yCi0tIEJhY2twb3J0IHBhdGNoIHRvIG5vdCBz ZXQgUlBNVEFHX0JVSUxEVElNRSB0byBTT1VSQ0VfREFURV9FUE9DSAotCi0qIFRodSBKdW4gMjcg MjAxOSBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNS4wLTAuYmV0 YS4xCi0tIFJlYmFzZSB0byA0LjE1LjAgYmV0YQotCi0qIFRodSBKdW4gMjAgMjAxOSBQYW51IE1h dGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNC45MC0wLmdpdDE0NjUzLjE4Ci0t IEZpeCBleGNlc3NpdmUgVExTIHVzZSwgcGFydCBJSSAoIzE3MjIxODEpCi0KLSogVGh1IEp1biAy MCAyMDE5IFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE0LjkwLTAu Z2l0MTQ2NTMuMTcKLS0gRml4IGV4Y2Vzc2l2ZSBUTFMgdXNlICgjMTcyMjE4MSkKLQotKiBXZWQg SnVuIDE5IDIwMTkgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTQu OTAtMC5naXQxNDY1My4xNgotLSBEcm9wIGJ1aWxkYXJjaCBhZ2FpbiBub3cgdGhhdCBweXRob25f cHJvdmlkZSBubyBsb25nZXIgbmVlZHMgaXQgKCMxNzIwMTM5KQotCi0qIEZyaSBKdW4gMTQgMjAx OSBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNC45MC0wLmdpdDE0 NjUzLjE1Ci0tIFRlbXBvcmFyaWx5IHJlLWVuYWJsZSBidWlsZGFyY2ggbWFjcm8gZm9yIHB5dGhv bl9wcm92aWRlIG1hY3JvIHVzZSAoIzE3MjAxMzkpCi0KLSogVGh1IEp1biAxMyAyMDE5IFBhbnUg TWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE0LjkwLTAuZ2l0MTQ2NTMuMTQK LS0gRG9uJ3QgZmFpbCBidWlsZCB0cnlpbmcgdG8ga2lsbCBhIG5vbi1leGlzdGVudCBwcm9jZXNz ICgjMTcyMDE0MykKLQotKiBUdWUgSnVuIDExIDE0OjU5OjE2IENFU1QgMjAxOSBJZ29yIEduYXRl bmtvIDxpZ25hdGVua29icmFpbkBmZWRvcmFwcm9qZWN0Lm9yZz4gLSA0LjE0LjkwLTAuZ2l0MTQ2 NTMuMTMKLS0gRml4IGJ1aWxkIG9mIGJpbmFyeSBwYWNrYWdlcyBpbiBwYXJhbGxlbAotCi0qIFR1 ZSBKdW4gMTEgMDA6MDg6NTAgQ0VTVCAyMDE5IElnb3IgR25hdGVua28gPGlnbmF0ZW5rb2JyYWlu QGZlZG9yYXByb2plY3Qub3JnPiAtIDQuMTQuOTAtMC5naXQxNDY1My4xMAotLSBSZXZlcnQgZ2Vu ZXJhdGlvbiBvZiBiaW5hcnkgcGFja2FnZXMgaW4gcGFyYWxsZWwKLQotKiBNb24gSnVuIDEwIDIw MTkgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTQuOTAtMC5naXQx NDY1My4xCi0tIFVwZGF0ZSB0byA0LjE1LjAgYWxwaGEKLQotKiBNb24gSnVuIDEwIDIwMTkgUGFu dSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTQuMi4xLTE0Ci0tIERyb3Ag c3VwcG9ydCBmb3Igc2FuaXRpemVyIGJ1aWxkLCBpdCBuZXZlciByZWFsbHkgd29ya2VkIGFueXdh eQotLSBEcm9wIGxlZnRvdmVyIGJ1aWxkLWRlcGVuZGVuY3kgb24gYmludXRpbHMtZGV2ZWwKLS0g VHJ1bmNhdGUgY2hhbmdlbG9nIHRvIHJwbSA0LjE0LnggKGxhc3QgdHdvIHllYXJzKQotCi0qIE1v biBKdW4gMTAgMjAxOSBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4x NC4yLjEtMTMKLS0gRHJvcCBzdXBwb3J0IGZvciBGZWRvcmEgPCAyOCBidWlsZHMKLS0gRHJvcCBs ZWZ0b3ZlciBCREItcmVsYXRlZCBjb21waWxlciBmbGFnIGZvbwotCi0qIEZyaSBKdW4gMDcgMjAx OSBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNC4yLjEtMTIKLS0g VXNlIHByZS1kZXRlcm1pbmVkIGJ1aWxkaG9zdCBpbiB0ZXN0LXN1aXRlIHRvIGF2b2lkIEROUyB1 c2FnZQotLSBEcm9wIG9ic29sZXRlIHNwZWNzcG8gYW5kIGdwZzIgcmVsYXRlZCBwYXRjaGVzCi0K LSogRnJpIEp1biAwNyAyMDE5IElnb3IgR25hdGVua28gPGlnbmF0ZW5rb2JyYWluQGZlZG9yYXBy b2plY3Qub3JnPiAtIDQuMTQuMi4xLTExCi0tIFVzZSBweTIvMyBtYWNyb3MgZm9yIGJ1aWxkaW5n IGFuZCBpbnN0YWxsaW5nIHRoZSBiaW5kaW5ncwotCi0qIFR1ZSBNYXkgMjEgMjAxOSBQYW51IE1h dGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNC4yLjEtMTAKLS0gU3VwcG9ydCBi dWlsZC1pZCBnZW5lcmF0aW9uIGZyb20gY29tcHJlc3NlZCBFTEYgZmlsZXMgKCMxNjUwMDcyKQot Ci0qIEZyaSBNYXkgMDMgMjAxOSBJZ29yIEduYXRlbmtvIDxpZ25hdGVua29icmFpbkBmZWRvcmFw cm9qZWN0Lm9yZz4gLSA0LjE0LjIuMS05Ci0tIFN1Z2dlc3QgZ2RiLW1pbmltYWwKLQotKiBUaHUg QXByIDI1IDIwMTkgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTQu Mi4xLTgKLS0gUmVwbGFjZSBkZXByZWNhdGVkIF9fZ2xvYmFsX2xkZmxhZ3MgdXNlcyB3aXRoIGJ1 aWxkX2xkZmxhZ3MgbWFjcm8KLQotKiBUaHUgQXByIDExIDIwMTkgUGFudSBNYXRpbGFpbmVuIDxw bWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTQuMi4xLTcKLS0gRml4IGV4Y2Vzc2l2ZSByZWZlcmVu Y2UgY291bnRpbmcgb24gZmFrZWQgc3RyaW5nIC5kZWNvZGUoKQotCi0qIFdlZCBBcHIgMTAgMjAx OSBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNC4yLjEtNgotLSBV bmJyZWFrIFB5dGhvbiAzIEFQSSBieSByZXR1cm5pbmcgc3RyaW5nIGRhdGEgYXMgc3Vycm9nYXRl LWVzY2FwZWQgdXRmLTgKLSAgc3RyaW5nIG9iamVjdHMgaW5zdGVhZCBvZiBieXRlcyAoIzE2OTM3 NTEpCi0tIEFzIGEgdGVtcG9yYXJ5IGNydXRjaCwgIG1vbmtleS1wYXRjaCBhIC5kZWNvZGUoKSBt ZXRob2QgdG8gcmV0dXJuZWQgc3RyaW5ncwotICB0byBnaXZlIHVzZXJzIHRpbWUgdG8gbWlncmF0 ZSBmcm9tIHRoZSBsb25nLXN0YW5kaW5nIGJyb2tlbiBiZWhhdmlvcgotCi0qIFdlZCBBcHIgMTAg MjAxOSBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNC4yLjEtNQot LSBHZW5lcmF0ZSBtaW5pZGVidWcgZm9yIFBJRSBleGVjdXRhYmxlcyBvbiBmaWxlID49IDUuMzMg dG9vCi0tIEJhY2twb3J0IGZpbmQtZGVidWdpbmZvIC0tZy1saWJzIG9wdGlvbiBmb3IgZ2xpYmMn cyBiZW5lZml0ICgjMTY2MTUxMikKLQotKiBTYXQgRmViIDAyIDIwMTkgRmVkb3JhIFJlbGVhc2Ug RW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSA0LjE0LjIuMS00LjEKLS0g UmVidWlsdCBmb3IgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV8zMF9NYXNz X1JlYnVpbGQKLQotKiBXZWQgRGVjIDE5IDIwMTggUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUBy ZWRoYXQuY29tPiAtIDQuMTQuMi4xLTQKLS0gQmFja3BvcnQgdGhlIG5ldyBtb2R1bGFyaXR5IGxh YmVsIHRhZyAoIzE2NTAyODYpCi0KLSogTW9uIE5vdiAxOSAyMDE4IFBhbnUgTWF0aWxhaW5lbiA8 cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE0LjIuMS0zCi0tIFRha2UgcHJlZml4IGludG8gYWNj b3VudCB3aGVuIGNvbXByZXNzaW5nIG1hbiBwYWdlcyBldGMgZm9yIEZsYXRwYWsgYnVpbGRzCi0K LSogV2VkIE9jdCAyNCAyMDE4IFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4g LSA0LjE0LjIuMS0yCi0tIFNlbGludXggcGx1Z2luIHJlcXVpcmVzIGEgYmFzZSBwb2xpY3kgdG8g d29yayAoIzE2NDE2MzEpCi0KLSogTW9uIE9jdCAyMiAyMDE4IFBhbnUgTWF0aWxhaW5lbiA8cG1h dGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE0LjIuMS0xCi0tIFJlYmFzZSB0byBycG0gNC4xNC4yLjEg KGh0dHA6Ly9ycG0ub3JnL3dpa2kvUmVsZWFzZXMvNC4xNC4yLjEpCi0KLSogV2VkIE9jdCAxNyAy MDE4IElnb3IgR25hdGVua28gPGlnbmF0ZW5rb2JyYWluQGZlZG9yYXByb2plY3Qub3JnPiAtIDQu MTQuMi05Ci0tIFB1c2ggbmFtZS9lcG9jaC92ZXJzaW9uL3JlbGVhc2UgbWFjcm8gYmVmb3JlIGlu dm9raW5nIGRlcGdlbnMKLQotKiBUdWUgT2N0IDE2IDIwMTggSWdvciBHbmF0ZW5rbyA8aWduYXRl bmtvYnJhaW5AZmVkb3JhcHJvamVjdC5vcmc+IC0gNC4xNC4yLTgKLS0gUmVzdXJyZWN0IGxvbmcg c2luY2UgYnJva2VuIEx1YSBsaWJyYXJ5IHBhdGgKLQotKiBGcmkgT2N0IDEyIDIwMTggUGFudSBN YXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTQuMi03Ci0tIEFjdHVhbGx5IGZh aWwgYnVpbGQgb24gdGVzdC1zdWl0ZSBmYWlsdXJlcyBhZ2FpbgotLSBJbnZva2UgcHl0aG9uMiBl eHBsaWNpdGx5IGZyb20gdGVzdC1zdWl0ZSB0byB1bmJyZWFrIGJ1aWxkLCBwYXJ0IElJCi0KLSog VGh1IE9jdCAxMSAyMDE4IFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0 LjE0LjItNgotLSBEcm9wIGR1cGxpY2F0ZSBCREIgYnVpbGRyZXF1aXJlCi0tIERyb3Agbm93YWRh eXMgdW5uZWNlc3NhcnkgQkRCIG1hY3JvIGZvbwotLSBEcm9wIG5vd2FkYXlzIHVubmVjZXNzYXJ5 IG1hbnVhbCBsaWJjYXAgZGVwZW5kZW5jeQotCi0qIFRodSBPY3QgMTEgMjAxOCBQYW51IE1hdGls YWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNC4yLTUKLS0gT3duIGFsbCBycG1kYiBm aWxlcyBhbmQgZW5zdXJlIHRoZSBsaXN0IHJlbWFpbnMgdXAgdG8gZGF0ZQotLSBEcm9wIHJlZHVu ZGFudCB2ZXJpZnkgZXhjbHVzaW9ucyBvbiBycG1kYiBnaG9zdHMKLS0gRml4IGJ1aWxkIHdoZW4g c3lzdGVtZCBpcyBub3QgaW5zdGFsbGVkIChkdWgpCi0KLSogVGh1IE9jdCAxMSAyMDE4IFBhbnUg TWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE0LjItNAotLSBFcm0sIHJlYWxs eSB1c2UgdGhlIG1hY3JvIGZvciB0bXBmaWxlcy5kIHBhdGgKLS0gRXJtLCBkb24ndCBudWtlIGJ1 aWxkcm9vdCBhdCBiZWdpbm5pbmcgb2YgJSVpbnN0YWxsCi0tIFVzZSBtb2Rlcm4gYnVpbGQvaW5z dGFsbCBoZWxwZXIgbWFjcm9zCi0KLSogVGh1IE9jdCAxMSAyMDE4IFBhbnUgTWF0aWxhaW5lbiA8 cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE0LjItMwotLSBFaCwgc2VsaW51eCBwbHVnaW4gZGVw ZW5kZW5jeSBjb25kaXRpb24gd2FzIHVwc2lkZSBkb3duICgjMTQ5MzI2NykKLS0gRHJvcCBubyBs b25nZXIgbmVjZXNzYXJ5IGNvbmRpdGlvbiBvdmVyIGltYWV2bSBuYW1lCi0tIERyb3Agbm8gbG9u Z2VyIG5lY2Vzc2FyeSBvYnNvbGV0ZSBvbiBjb21wYXQtbGlicnBtMwotCi0qIFRodSBPY3QgMTEg MjAxOCBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNC4yLTIKLS0g Rml4IGFuY2llbnQgUHl0aG9uIEdJTCBsb2NraW5nIGJ1ZyAoIzE2MzI0ODgpCi0tIFVzZSB0aGUg YXBwcm9wcmlhdGUgbWFjcm8gZm9yIHRtcGZpbGVzLmQgbm93IHRoYXQgb25lIGV4aXN0cwotCi0q IFR1ZSBBdWcgMjEgMjAxOCBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0g NC4xNC4yLTEKLS0gVXBkYXRlIHRvIHJwbSA0LjE0LjIgZmluYWwgKGh0dHA6Ly9ycG0ub3JnL3dp a2kvUmVsZWFzZXMvNC4xNC4yKQotCi0qIE1vbiBBdWcgMTMgMjAxOCBQYW51IE1hdGlsYWluZW4g PHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNC4yLTAucmMyLjIKLS0gTW92ZSBweXRob24tbWFj cm8taGVscGVyIHRvIG1haW4gcGFja2FnZSB3aGVyZSB0aGUgbWFjcm9zIGFyZSAoIzE1Nzc4NjAp Ci0KLSogV2VkIEF1ZyAwOCAyMDE4IFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNv bT4gLSA0LjE0LjItMC5yYzIuMQotLSBVcGRhdGUgdG8gcnBtIDQuMTQuMi1yYzIKLQotKiBTYXQg SnVsIDIxIDIwMTggSWdvciBHbmF0ZW5rbyA8aWduYXRlbmtvYnJhaW5AZmVkb3JhcHJvamVjdC5v cmc+IC0gNC4xNC4yLTAucmMxLjIKLS0gRGVjb21wcmVzcyBEV0FSRiBjb21wcmVzc2VkIEVMRiBz ZWN0aW9ucwotCi0qIFNhdCBKdWwgMTQgMjAxOCBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8 cmVsZW5nQGZlZG9yYXByb2plY3Qub3JnPiAtIDQuMTQuMi0wLnJjMS4xLjIKLS0gUmVidWlsdCBm b3IgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV8yOV9NYXNzX1JlYnVpbGQK LQotKiBNb24gSnVsIDAyIDIwMTggTWlybyBIcm9uxI1vayA8bWhyb25jb2tAcmVkaGF0LmNvbT4g LSA0LjE0LjItMC5yYzEuMS4xCi0tIFJlYnVpbHQgZm9yIFB5dGhvbiAzLjcKLQotKiBGcmkgSnVu IDI5IDIwMTggUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTQuMi0w LnJjMS4xCi0tIFVwZGF0ZSB0byBycG0gNC4xNC4yLXJjMQotLSBQYXRjaGluZyB0ZXN0LXN1aXRl IGZvciBweXRob24yIHRvbyBwYWluZnVsLCBqdXN0IHNlZCBpdCBpbnN0ZWFkCi0tIEZpeCBwcmVt YXR1cmUgdmVyc2lvbiBpbmNyZW1lbnQgZnJvbSBwcmV2aW91cyBjaGFuZ2Vsb2cgZW50cmllcywg b29wcwotCi0qIEZyaSBKdW4gMjkgMjAxOCBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhh dC5jb20+IC0gNC4xNC4xLTEzCi0tIEVobSwgbmVlZCB0byBwYXRjaCB0aGUgYXV0b2dlbmVyYXRl ZCBycG10ZXN0cyBzY3JpcHQgdG9vIGZvciBweXRob24yCi0tIEVobSwgaXQncyBsZGNvbmZpZ19z Y3JpcHRsZXRzIG5vdCBzY3JpcHRzCi0tIERyb3AgdGhlIG5vbi13b3JraW5nIHB5dGhvbiBlbnZ2 YXIgbWFnaWMgZnJvbSBvYnNvbGV0ZWQgY2hhbmdlCi0KLSogRnJpIEp1biAyOSAyMDE4IFBhbnUg TWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE0LjEtMTIKLS0gSW52b2tlIHB5 dGhvbjIgZXhwbGljaXRseSBmcm9tIHRlc3Qtc3VpdGUgdG8gdW5icmVhayBidWlsZAotCi0qIEZy aSBKdW4gMjkgMjAxOCBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4x NC4xLTExCi0tIFJlbW92ZSBkaXJlY3QgbGRjb25maWcgY2FsbHMsIHVzZSBjb21wYXQgbWFjcm9z IGluc3RlYWQKLQotKiBGcmkgSnVuIDE1IDIwMTggTWlybyBIcm9uxI1vayA8bWhyb25jb2tAcmVk aGF0LmNvbT4gLSA0LjE0LjEtMTAuMQotLSBSZWJ1aWx0IGZvciBQeXRob24gMy43Ci0KLSogTW9u IE1heSAyOCAyMDE4IE1pcm8gSHJvbsSNb2sgPG1ocm9uY29rQHJlZGhhdC5jb20+IC0gNC4xNC4x LTEwCi0tIEJhY2twb3J0IHVwc3RyZWFtIHNvbHV0aW9uIHRvIG1ha2UgYnJwLXB5dGhvbi1ieXRl Y29tcGlsZSBhdXRvbWFnaWMgcGFydCBvcHQtb3V0YWJsZQotICBodHRwczovL2ZlZG9yYXByb2pl Y3Qub3JnL3dpa2kvQ2hhbmdlcy9Ob19tb3JlX2F1dG9tYWdpY19QeXRob25fYnl0ZWNvbXBpbGF0 aW9uCi0KLSogVHVlIE1heSAyMiAyMDE4IE1hcmsgV2llbGFhcmQgPG1qd0BmZWRvcmFwcm9qZWN0 Lm9yZz4gLSA0LjE0LjEtOQotLSBmaW5kLWRlYnVnaW5mby5zaDogSGFuZGxlIGFwcGxpY2F0aW9u L3gtcGllLWV4ZWN1dGFibGUgKCMxNTgxMjI0KQotCi0qIFR1ZSBGZWIgMjAgMjAxOCBJZ29yIEdu YXRlbmtvIDxpZ25hdGVua29icmFpbkBmZWRvcmFwcm9qZWN0Lm9yZz4gLSA0LjE0LjEtOAotLSBT cGxpdCBycG0tYnVpbGQtbGlicyB0byBvbmUgbW9yZSBzdWJwYWNrYWdlIHJwbS1zaWduLWxpYnMK LQotKiBNb24gRmViIDE5IDIwMTggUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29t PiAtIDQuMTQuMS03Ci0tIEV4cGxpY2l0bHkgQnVpbGRSZXF1aXJlIGdjYyBhbmQgbWFrZQotCi0q IEZyaSBGZWIgMDkgMjAxOCBJZ29yIEduYXRlbmtvIDxpZ25hdGVua29icmFpbkBmZWRvcmFwcm9q ZWN0Lm9yZz4gLSA0LjE0LjEtNi4xCi0tIEVzY2FwZSBtYWNyb3MgaW4gJSVjaGFuZ2Vsb2cKLQot KiBXZWQgSmFuIDMxIDIwMTggUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAt IDQuMTQuMS02Ci0tIEF2b2lkIHVubmVjZXNzYXJ5IG1hY3JvIGhlbHBlciBkZXBlbmRlbmN5IG9u IC91c3IvYmluL3B5dGhvbiAoIzE1Mzg2NTcpCi0tIEZpeCByZWxlYXNlIG9mIHByZXZpb3VzIGNo YW5nZWxvZyBlbnRyeQotCi0qIFR1ZSBKYW4gMzAgMjAxOCBUb21hcyBPcnNhdmEgPHRvcnNhdmFA cmVkaGF0LmNvbT4gLSA0LjE0LjEtNQotLSBBZGQgZW52dmFyIHRoYXQgd2lsbCBiZSBwcmVzZW50 IGR1cmluZyBSUE0gYnVpbGQsCi0gIFBhcnQgb2YgYSBGZWRvcmEgQ2hhbmdlIGZvciBGMjg6ICJB dm9pZCAvdXNyL2Jpbi9weXRob24gaW4gUlBNIGJ1aWxkIgotICBodHRwczovL2ZlZG9yYXByb2pl Y3Qub3JnL3dpa2kvQ2hhbmdlcy9Bdm9pZF91c3JfYmluX3B5dGhvbl9pbl9SUE1fQnVpbGQKLQot KiBUdWUgSmFuIDMwIDIwMTggUGV0ciBWaWt0b3JpbiA8cHZpa3RvcmlAcmVkaGF0LmNvbT4gLSA0 LjE0LjEtNAotLSBTa2lwIGF1dG9tYXRpYyBQeXRob24gYnl0ZS1jb21waWxhdGlvbiBpZiAqLnB5 IGZpbGVzIGFyZSBub3QgcHJlc2VudAotCi0qIFRodSBKYW4gMjUgMjAxOCBGbG9yaWFuIFdlaW1l ciA8ZndlaW1lckByZWRoYXQuY29tPiAtIDQuMTQuMS0zCi0tIFJlYnVpbGQgdG8gd29yayBhcm91 bmQgZ2NjIGJ1ZyBsZWFkaW5nIHRvIGxpYnJwbSBtaXNjb21waWxhdGlvbiAoIzE1Mzg2NDgpCi0K LSogVGh1IEphbiAxOCAyMDE4IFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4g LSA0LjE0LjEtMgotLSBBdm9pZCBudWtpbmcgdGhlIG5ldyBweXRob24tbWFjcm8taGVscGVyIGFs b25nIHdpdGggZGVwIGdlbmVyYXRvcnMgKCMxNTM1NjkyKQotCi0qIFR1ZSBKYW4gMTYgMjAxOCBQ YW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNC4xLTEKLS0gUmViYXNl IHRvIHJwbSA0LjE0LjEgKGh0dHA6Ly9ycG0ub3JnL3dpa2kvUmVsZWFzZXMvNC4xNC4xKQotCi0q IFR1ZSBOb3YgMDcgMjAxNyBJZ29yIEduYXRlbmtvIDxpZ25hdGVua29icmFpbkBmZWRvcmFwcm9q ZWN0Lm9yZz4gLSA0LjE0LjAtNQotLSBGaXggdHlwbyBpbiBPYnNvbGV0ZXMKLQotKiBNb24gTm92 IDA2IDIwMTcgSWdvciBHbmF0ZW5rbyA8aWduYXRlbmtvYnJhaW5AZmVkb3JhcHJvamVjdC5vcmc+ IC0gNC4xNC4wLTQKLS0gUmVtb3ZlIHBsYXRmb3JtLXB5dGhvbiBiaXRzCi0KLSogVGh1IE9jdCAy NiAyMDE3IFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE0LjAtMwot LSBNb3ZlIHNlbGludXggcGx1Z2luIGRlcGVuZGVuY3kgdG8gc2VsaW51eC1wb2xpY3kgaW4gRmVk b3JhID49IDI4ICgjMTQ5MzI2NykKLQotKiBUaHUgT2N0IDEyIDIwMTcgUGFudSBNYXRpbGFpbmVu IDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTQuMC0yCi0tIER1bXAgb3V0IHRlc3Qtc3VpdGUg bG9nIGluIGNhc2Ugb2YgZmFpbHVyZXMgYWdhaW4KLS0gRG9uJ3QgYXNzdW1lIHBlci11c2VyIGdy b3VwcyBpbiB0ZXN0LXN1aXRlCi0KLSogVGh1IE9jdCAxMiAyMDE3IFBhbnUgTWF0aWxhaW5lbiA8 cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE0LjAtMQotLSBSZWJhc2UgdG8gcnBtIDQuMTQuMCBm aW5hbCAoaHR0cDovL3JwbS5vcmcvd2lraS9SZWxlYXNlcy80LjE0LjApCi0KLSogVHVlIE9jdCAx MCAyMDE3IFRyb3kgRGF3c29uIDx0ZGF3c29uQHJlZGhhdC5jb20+IC0gNC4xNC4wLTAucmMyLjYK LS0gQ2xlYW51cCBzcGVjIGZpbGUgY29uZGl0aW9uYWxzCi0KLSogVHVlIE9jdCAwMyAyMDE3IFBh bnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjE0LjAtMC5yYzIuNQotLSBB ZGQgYnVpbGQgY29uZGl0aW9uYWxzIGZvciB6c3RkIGFuZCBsbWRiIHN1cHBvcnQKLS0gRW5hYmxl IHpzdGQgc3VwcG9ydAotCi0qIFR1ZSBPY3QgMDMgMjAxNyBQYW51IE1hdGlsYWluZW4gPHBtYXRp bGFpQHJlZGhhdC5jb20+IC0gNC4xNC4wLTAucmMyLjQKLS0gU3BlYyBjbGVhbnVwcwotCi0qIEZy aSBTZXAgMjkgMjAxNyBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0gNC4x NC4wLTAucmMyLjMKLS0gQnVpbGRSZXF1aXJlIGdudXBnMiBmb3IgdGhlIHRlc3RzdWl0ZQotCi0q IEZyaSBTZXAgMjkgMjAxNyBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJlZGhhdC5jb20+IC0g NC4xNC4wLTAucmMyLjIKLS0gaW1hLWV2bS11dGlscyBvbmx5IGhhcyBhIC1kZXZlbCBwYWNrYWdl IGluIGZlZG9yYSA+PSAyOAotCi0qIFRodSBTZXAgMjggMjAxNyBQYW51IE1hdGlsYWluZW4gPHBt YXRpbGFpQHJlZGhhdC5jb20+IC0gNC4xNC4wLTAucmMyLjEKLS0gUmViYXNlIHRvIHJwbSA0LjE0 LjAtcmMyIChodHRwOi8vcnBtLm9yZy93aWtpL1JlbGVhc2VzLzQuMTQuMCkKLQotKiBNb24gU2Vw IDE4IDIwMTcgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTQuMC0w LnJjMS4zCi0tIEZpeCBGdGVsbCgpIHBhc3QgMkdCIG9uIDMyYml0IGFyY2hpdGVjdHVyZXMgKCMx NDkyNTg3KQotCi0qIFRodSBTZXAgMDcgMjAxNyBQYW51IE1hdGlsYWluZW4gPHBtYXRpbGFpQHJl ZGhhdC5jb20+IC0gNC4xNC4wLTAucmMxLjIKLS0gQWN0dWFsbHkgaG9ub3Igd2l0aC93aXRob3V0 IGxpYmltYWV2bSBvcHRpb24KLS0gaW1hLWV2bS11dGlscy1kZXZlbCA+PSAxLjAgaXMgcmVxdWly ZWQgZm9yIHJwbSA+PSA0LjE0LjAKLQotKiBXZWQgU2VwIDA2IDIwMTcgUGFudSBNYXRpbGFpbmVu IDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTQuMC0wLnJjMS4xCi0tIFJlYmFzZSB0byBycG0g NC4xNC4wLXJjMSAoaHR0cDovL3JwbS5vcmcvd2lraS9SZWxlYXNlcy80LjE0LjApCi0tIFJlLWVu YWJsZSBTSEEyNTYgaGVhZGVyIGRpZ2VzdCBnZW5lcmF0aW9uIChzZWUgIzE0ODA0MDcpCi0KLSog TW9uIEF1ZyAyOCAyMDE3IFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0 LjEzLjkwLTAuZ2l0MTQwMDAuOAotLSBCYW5kLWFpZCBmb3IgREJfVkVSU0lPTl9NSVNNQVRDSCBl cnJvcnMgb24gZ2xpYmMgdXBkYXRlcyAoIzE0NjU4MDkpCi0KLSogVGh1IEF1ZyAyNCAyMDE3IFBh bnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjEzLjkwLTAuZ2l0MTQwMDAu NwotLSBSZW1vdmUgdWdseSBrbHVkZ2VzIGZyb20gcG9zdHRyYW5zIHNjcmlwdCwgQkRCIGhhbmRs ZXMgdGhpcyBub3cKLQotKiBGcmkgQXVnIDE4IDIwMTcgUGFudSBNYXRpbGFpbmVuIDxwbWF0aWxh aUByZWRoYXQuY29tPiAtIDQuMTMuOTAtMC5naXQxNDAwMC42Ci0tIFNpbGVuY2UgaGFybWxlc3Mg YnV0IGJvZ3VzIGVycm9yIG1lc3NhZ2Ugb24gbm9hcmNoIHBhY2thZ2VzICgjMTQ4MjE0NCkKLQot KiBUaHUgQXVnIDE3IDIwMTcgTWlybyBIcm9uxI1vayA8bWhyb25jb2tAcmVkaGF0LmNvbT4gLSA0 LjEzLjkwLTAuZ2l0MTQwMDIuNQotLSBCdWlsZCB3aXRoIHBsYXRmb3JtX3B5dGhvbgotCi0qIE1v biBBdWcgMTQgMjAxNyBNaXJvIEhyb27EjW9rIDxtaHJvbmNva0ByZWRoYXQuY29tPiAtIDQuMTMu OTAtMC5naXQxNDAwMC40Ci0tIEFkZCBwbGF0Zm9ybS1weXRob24gYnl0ZWNvbXBpbGF0aW9uIHBh dGNoOiBwbGF0Zm9ybS1weXRob24tYnl0ZWNvbXBpbGUucGF0Y2gKLS0gQWRkIHBsYXRmb3JtIHB5 dGhvbiBkZXBzIGdlbmVyYXRvciBwYXRjaDogcGxhdGZvcm0tcHl0aG9uLWFiaS5wYXRjaAotLSBB ZGQgYSBwbGF0Zm9ybS1weXRob24gc3VicGFja2FnZSBhbmQgcmVtb3ZlIHN5c3RlbSBweXRob24g cmVsYXRlZCBkZWNsYXJhdGlvbnMKLS0gQnVpbGQgcnBtIHdpdGhvdXQgcGxhdGZvcm1fcHl0aG9u IGZvciBieXRlY29tcGlsYXRpb24KLSAgKGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9D aGFuZ2VzL1BsYXRmb3JtX1B5dGhvbl9TdGFjaykKLQotKiBNb24gQXVnIDE0IDIwMTcgUGFudSBN YXRpbGFpbmVuIDxwbWF0aWxhaUByZWRoYXQuY29tPiAtIDQuMTMuOTAtMC5naXQxNDAwMC4zCi0t IERpc2FibGUgbWFjcm8gYXJndW1lbnQgcXVvdGluZyBhcyBhIGJhbmQtYWlkIHRvICMxNDgxMDI1 Ci0KLSogRnJpIEF1ZyAxMSAyMDE3IFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNv bT4gLSA0LjEzLjkwLTAuZ2l0MTQwMDAuMgotLSBEaXNhYmxlIFNIQTI1NiBoZWFkZXItb25seSBk aWdlc3QgZ2VuZXJhdGlvbiB0ZW1wb3JhcmlseSAoIzE0ODA0MDcpCi0KLSogVGh1IEF1ZyAxMCAy MDE3IFBhbnUgTWF0aWxhaW5lbiA8cG1hdGlsYWlAcmVkaGF0LmNvbT4gLSA0LjEzLjkwLTAuZ2l0 MTQwMDAuMQotLSBSZWJhc2UgdG8gcnBtIDQuMTMuOTAgYWthIDQuMTQuMC1hbHBoYSAoIzE0NzQ4 MzYpCi0K