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: Jakub Jelinek To: git-commits@fedoraproject.org Subject: [rpms/gcc] rhel-f41-base: 4.4.0-0.3 Date: Mon, 29 Jun 2026 12:23:59 GMT Message-ID: <178273583901.1.8445215389207279544.rpms-gcc-7c0747109312@fedoraproject.org> List-ID: X-Git-Repo: rpms/gcc X-Git-Branch: rhel-f41-base X-Git-Rev: 7c074710931251a56f6fb71bebcee17f114e781d QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2NjCkJyYW5jaCA6 IHJoZWwtZjQxLWJhc2UKQ29tbWl0IDogN2MwNzQ3MTA5MzEyNTFhNTZmNmZiNzFiZWJjZWUxN2Yx MTRlNzgxZApBdXRob3IgOiBKYWt1YiBKZWxpbmVrIDxqYWt1YkBmZWRvcmFwcm9qZWN0Lm9yZz4K RGF0ZSAgIDogMjAwOS0wMS0xNlQxODozNDozOCswMDowMApTdGF0cyAgOiArMzA5NC8tNzI0NyBp biA1MyBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMv Z2NjL2MvN2MwNzQ3MTA5MzEyNTFhNTZmNmZiNzFiZWJjZWUxN2YxMTRlNzgxZD9icmFuY2g9cmhl bC1mNDEtYmFzZQoKTG9nOgo0LjQuMC0wLjMKCi0tLQpkaWZmIC0tZ2l0IGEvLmN2c2lnbm9yZSBi Ly5jdnNpZ25vcmUKaW5kZXggZTE3ZGU3Yi4uMTZmMjYzOSAxMDA2NDQKLS0tIGEvLmN2c2lnbm9y ZQorKysgYi8uY3ZzaWdub3JlCkBAIC0xLDIgKzEsMiBAQAotZ2NjLTQuMy4yLTIwMDgxMTA1LnRh ci5iejIKLWZhc3RqYXItMC45NS50YXIuZ3oKK2Zhc3RqYXItMC45Ny50YXIuZ3oKK2djYy00LjQu MC0yMDA5MDExNS50YXIuYnoyCgpkaWZmIC0tZ2l0IGEvZmFzdGphci0wLjk3LXNlZ2ZhdWx0LnBh dGNoIGIvZmFzdGphci0wLjk3LXNlZ2ZhdWx0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmFiNjI2MjQKLS0tIC9kZXYvbnVsbAorKysgYi9mYXN0amFyLTAuOTctc2Vn ZmF1bHQucGF0Y2gKQEAgLTAsMCArMSwyOSBAQAorMjAwOS0wMS0xNCAgSmFrdWIgSmVsaW5layAg PGpha3ViQHJlZGhhdC5jb20+CisKKwkqIGphcnRvb2wuYyAobWFrZV9tYW5pZmVzdCk6IEluaXRp YWxpemUgY3VycmVudF90aW1lIGJlZm9yZQorCWNhbGxpbmcgdW5peDJkb3N0aW1lIG9uIGl0Lgor CistLS0gZmFzdGphci0wLjk3L2phcnRvb2wuYy5qagkyMDA4LTEwLTE1IDE4OjM1OjM3LjAwMDAw MDAwMCArMDIwMAorKysrIGZhc3RqYXItMC45Ny9qYXJ0b29sLmMJMjAwOS0wMS0xNCAxNTo0MDo1 MC4wMDAwMDAwMDAgKzAxMDAKK0BAIC04MjAsNiArODIwLDEwIEBAIGludCBtYWtlX21hbmlmZXN0 KGludCBqZmQsIGNvbnN0IGNoYXIgKm0KKyAgIGludCBtb2RfdGltZTsgLyogZmlsZSBtb2RpZmlj YXRpb24gdGltZSAqLworICAgc3RydWN0IHppcGVudHJ5ICp6ZTsKKyAKKysgIGN1cnJlbnRfdGlt ZSA9IHRpbWUoTlVMTCk7CisrICBpZihjdXJyZW50X3RpbWUgPT0gKHRpbWVfdCktMSkKKysgICAg ZXhpdF9vbl9lcnJvcigidGltZSIpOworKworICAgbW9kX3RpbWUgPSB1bml4MmRvc3RpbWUoJmN1 cnJlbnRfdGltZSk7ICAKKyAgIAorICAgLyogSWYgd2UgYXJlIGNyZWF0aW5nIGEgbmV3IG1hbmlm ZXN0LCBjcmVhdGUgYSBNRVRBLUlORiBkaXJlY3RvcnkgZW50cnkgKi8KK0BAIC04MjgsMTAgKzgz Miw2IEBAIGludCBtYWtlX21hbmlmZXN0KGludCBqZmQsIGNvbnN0IGNoYXIgKm0KKyAKKyAgICAg bWVtc2V0KChmaWxlX2hlYWRlciArIDEyKSwgJ1wwJywgMTYpOyAvKmNsZWFyIG1vZCB0aW1lLCBj cmMsIHNpemUgZmllbGRzKi8KKyAgIAorLSAgICBjdXJyZW50X3RpbWUgPSB0aW1lKE5VTEwpOwor LSAgICBpZihjdXJyZW50X3RpbWUgPT0gKHRpbWVfdCktMSkKKy0gICAgICBleGl0X29uX2Vycm9y KCJ0aW1lIik7CistCisgICAgIFBBQ0tfVUIyKGZpbGVfaGVhZGVyLCBMT0NfRVhUUkEsIDApOwor ICAgICBQQUNLX1VCMihmaWxlX2hlYWRlciwgTE9DX0NPTVAsIDApOworICAgICBQQUNLX1VCMihm aWxlX2hlYWRlciwgTE9DX0ZOTEVOLCBubGVuKTsKCmRpZmYgLS1naXQgYS9nY2Muc3BlYyBiL2dj Yy5zcGVjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZkNjk0NjcKLS0tIC9k ZXYvbnVsbAorKysgYi9nY2Muc3BlYwpAQCAtMCwwICsxLDE3MTMgQEAKKyVkZWZpbmUgREFURSAy MDA5MDExNQorJWRlZmluZSBTVk5SRVYgMTQxNjAxCislZGVmaW5lIGdjY192ZXJzaW9uIDQuNC4w CisjIE5vdGUsIGdjY19yZWxlYXNlIG11c3QgYmUgaW50ZWdlciwgaWYgeW91IHdhbnQgdG8gYWRk IHN1ZmZpeGVzIHRvCisjICV7cmVsZWFzZX0sIGFwcGVuZCB0aGVtIGFmdGVyICV7Z2NjX3JlbGVh c2V9IG9uIFJlbGVhc2U6IGxpbmUuCislZGVmaW5lIGdjY19yZWxlYXNlIDAuMworJWRlZmluZSBf dW5wYWNrYWdlZF9maWxlc190ZXJtaW5hdGVfYnVpbGQgMAorJWRlZmluZSBtdWx0aWxpYl82NF9h cmNocyBzcGFyYzY0IHBwYzY0IHMzOTB4IHg4Nl82NAorJWRlZmluZSBpbmNsdWRlX2dhcHBsZXR2 aWV3ZXIgMQorJWlmYXJjaCAle2l4ODZ9IHg4Nl82NCBpYTY0IHBwYyBhbHBoYQorJWRlZmluZSBi dWlsZF9hZGEgMQorJWVsc2UKKyVkZWZpbmUgYnVpbGRfYWRhIDAKKyVlbmRpZgorJWRlZmluZSBi dWlsZF9qYXZhIDEKKyMgSWYgeW91IGRvbid0IGhhdmUgYWxyZWFkeSBhIHVzYWJsZSBnY2MtamF2 YSBhbmQgbGliZ2NqIGZvciB5b3VyIGFyY2gsCisjIGRvIG9uIHNvbWUgYXJjaCB3aGljaCBoYXMg aXQgcnBtYnVpbGQgLWJjIC0td2l0aCBqYXZhX3RhciBnY2M0MS5zcGVjCisjIHdoaWNoIGNyZWF0 ZXMgbGliamF2YS1jbGFzc2VzLSV7dmVyc2lvbn0tJXtyZWxlYXNlfS50YXIuYnoyCisjIFdpdGgg dGhpcyB0aGVuIG9uIHRoZSBuZXcgYXJjaCBkbyBycG1idWlsZCAtYmEgLXYgLS13aXRoIGphdmFf Ym9vdHN0cmFwIGdjYzQxLnNwZWMKKyVkZWZpbmUgYm9vdHN0cmFwX2phdmEgJXs/X3dpdGhfamF2 YV9ib290c3RyYXA6JXtidWlsZF9qYXZhfX0leyE/X3dpdGhfamF2YV9ib290c3RyYXA6MH0KKyVk ZWZpbmUgYnVpbGRfamF2YV90YXIgJXs/X3dpdGhfamF2YV90YXI6JXtidWlsZF9qYXZhfX0leyE/ X3dpdGhfamF2YV90YXI6MH0KKyVpZmFyY2ggczM5MHgKKyVkZWZpbmUgbXVsdGlsaWJfMzJfYXJj aCBzMzkwCislZW5kaWYKKyVpZmFyY2ggc3BhcmM2NAorJWRlZmluZSBtdWx0aWxpYl8zMl9hcmNo IHNwYXJjdjkKKyVlbmRpZgorJWlmYXJjaCBwcGM2NAorJWRlZmluZSBtdWx0aWxpYl8zMl9hcmNo IHBwYworJWVuZGlmCislaWZhcmNoIHg4Nl82NAorJWRlZmluZSBtdWx0aWxpYl8zMl9hcmNoIGkz ODYKKyVlbmRpZgorU3VtbWFyeTogVmFyaW91cyBjb21waWxlcnMgKEMsIEMrKywgT2JqZWN0aXZl LUMsIEphdmEsIC4uLikKK05hbWU6IGdjYworVmVyc2lvbjogJXtnY2NfdmVyc2lvbn0KK1JlbGVh c2U6ICV7Z2NjX3JlbGVhc2V9CisjIGxpYmdjYywgbGliZ2ZvcnRyYW4sIGxpYm11ZGZsYXAgYW5k IGNydHN0dWZmIGhhdmUgYW4gZXhjZXB0aW9uIHdoaWNoIGFsbG93cworIyBsaW5raW5nIGl0IGlu dG8gYW55IGtpbmQgb2YgcHJvZ3JhbXMgb3Igc2hhcmVkIGxpYnJhcmllcyB3aXRob3V0CisjIHJl c3RyaWN0aW9ucy4KK0xpY2Vuc2U6IEdQTHYzKyBhbmQgR1BMdjIrIHdpdGggZXhjZXB0aW9ucwor R3JvdXA6IERldmVsb3BtZW50L0xhbmd1YWdlcworIyBUaGUgc291cmNlIGZvciB0aGlzIHBhY2th Z2Ugd2FzIHB1bGxlZCBmcm9tIHVwc3RyZWFtJ3MgdmNzLiAgVXNlIHRoZQorIyBmb2xsb3dpbmcg Y29tbWFuZHMgdG8gZ2VuZXJhdGUgdGhlIHRhcmJhbGw6CisjIHN2biBleHBvcnQgc3ZuOi8vZ2Nj LmdudS5vcmcvc3ZuL2djYy9icmFuY2hlcy9yZWRoYXQvZ2NjLTRfMy1icmFuY2hAJXtTVk5SRVZ9 IGdjYy0le3ZlcnNpb259LSV7REFURX0KKyMgdGFyIGNmIC0gZ2NjLSV7dmVyc2lvbn0tJXtEQVRF fSB8IGJ6aXAyIC05ID4gZ2NjLSV7dmVyc2lvbn0tJXtEQVRFfS50YXIuYnoyCitTb3VyY2UwOiBn Y2MtJXt2ZXJzaW9ufS0le0RBVEV9LnRhci5iejIKK1NvdXJjZTE6IGxpYmdjY19wb3N0X3VwZ3Jh ZGUuYworU291cmNlMjogUkVBRE1FLmxpYmdjandlYnBsdWdpbi5zbworU291cmNlMzogcHJvdG9p emUuMQorJWRlZmluZSBmYXN0amFyX3ZlciAwLjk3CitTb3VyY2U0OiBodHRwOi8vZG93bmxvYWQu c2F2YW5uYWgubm9uZ251Lm9yZy9yZWxlYXNlcy9mYXN0amFyL2Zhc3RqYXItJXtmYXN0amFyX3Zl cn0udGFyLmd6CitVUkw6IGh0dHA6Ly9nY2MuZ251Lm9yZworQnVpbGRSb290OiAle190bXBwYXRo fS8le25hbWV9LSV7dmVyc2lvbn0tJXtyZWxlYXNlfS1yb290LSUoJXtfX2lkX3V9IC1uKQorIyBO ZWVkIGJpbnV0aWxzIHdpdGggLXBpZSBzdXBwb3J0ID49IDIuMTQuOTAuMC40LTQKKyMgTmVlZCBi aW51dGlscyB3aGljaCBjYW4gb21pdCBkb3Qgc3ltYm9scyBhbmQgb3ZlcmxhcCAub3BkIG9uIHBw YzY0ID49IDIuMTUuOTEuMC4yLTQKKyMgTmVlZCBiaW51dGlscyB3aGljaCBoYW5kbGUgLW1zZWN1 cmUtcGx0IG9uIHBwYyA+PSAyLjE2LjkxLjAuMi0yCisjIE5lZWQgYmludXRpbHMgd2hpY2ggc3Vw cG9ydCAud2Vha3JlZiA+PSAyLjE2LjkxLjAuMy0xCisjIE5lZWQgYmludXRpbHMgd2hpY2ggc3Vw cG9ydCAtLWhhc2gtc3R5bGU9Z251ID49IDIuMTcuNTAuMC4yLTcKKyMgTmVlZCBiaW51dGlscyB3 aGljaCBzdXBwb3J0IG1mZmdwciBhbmQgbWZ0Z3ByID49IDIuMTcuNTAuMC4yLTgKKyMgTmVlZCBi aW51dGlscyB3aGljaCBzdXBwb3J0IC0tYnVpbGQtaWQgPj0gMi4xNy41MC4wLjE3LTMKK0J1aWxk UmVxdWlyZXM6IGJpbnV0aWxzID49IDIuMTcuNTAuMC4xNy0zCitCdWlsZFJlcXVpcmVzOiB6bGli LWRldmVsLCBnZXR0ZXh0LCBkZWphZ251LCBiaXNvbiwgZmxleCwgdGV4aW5mbywgc2hhcnV0aWxz CislaWYgJXtidWlsZF9qYXZhfQorQnVpbGRSZXF1aXJlczogL3Vzci9zaGFyZS9qYXZhL2VjbGlw c2UtZWNqLmphciwgemlwLCB1bnppcAorJWlmICV7Ym9vdHN0cmFwX2phdmF9CitTb3VyY2UxMDog bGliamF2YS1jbGFzc2VzLSV7dmVyc2lvbn0tJXtyZWxlYXNlfS50YXIuYnoyCislZWxzZQorQnVp bGRSZXF1aXJlczogZ2NjLWphdmEsIGxpYmdjagorJWVuZGlmCislZW5kaWYKKyMgTWFrZSBzdXJl IHB0aHJlYWQuaCBkb2Vzbid0IGNvbnRhaW4gX190aHJlYWQgdG9rZW5zCisjIE1ha2Ugc3VyZSBn bGliYyBzdXBwb3J0cyBzdGFjayBwcm90ZWN0b3IKKyMgTWFrZSBzdXJlIGdsaWJjIHN1cHBvcnRz IERUX0dOVV9IQVNICitCdWlsZFJlcXVpcmVzOiBnbGliYy1kZXZlbCA+PSAyLjQuOTAtMTMKK0J1 aWxkUmVxdWlyZXM6IGVsZnV0aWxzLWRldmVsID49IDAuNzIKKyVpZmFyY2ggcHBjIHBwYzY0IHMz OTAgczM5MHggc3BhcmMgc3BhcmN2OSBhbHBoYQorIyBNYWtlIHN1cmUgZ2xpYmMgc3VwcG9ydHMg VEZtb2RlIGxvbmcgZG91YmxlCitCdWlsZFJlcXVpcmVzOiBnbGliYyA+PSAyLjMuOTAtMzUKKyVl bmRpZgorJWlmYXJjaCAle211bHRpbGliXzY0X2FyY2hzfSBzcGFyY3Y5IHBwYworIyBFbnN1cmUg Z2xpYmN7LC1kZXZlbH0gaXMgaW5zdGFsbGVkIGZvciBib3RoIG11bHRpbGliIGFyY2hlcworQnVp bGRSZXF1aXJlczogL2xpYi9saWJjLnNvLjYgL3Vzci9saWIvbGliYy5zbyAvbGliNjQvbGliYy5z by42IC91c3IvbGliNjQvbGliYy5zbworJWVuZGlmCislaWYgJXtidWlsZF9hZGF9CisjIEFkYSBy ZXF1aXJlcyBBZGEgdG8gYnVpbGQKK0J1aWxkUmVxdWlyZXM6IGdjYy1nbmF0ID49IDMuMSwgbGli Z25hdCA+PSAzLjEKKyVlbmRpZgorJWlmYXJjaCBpYTY0CitCdWlsZFJlcXVpcmVzOiBsaWJ1bndp bmQgPj0gMC45OAorJWVuZGlmCitSZXF1aXJlczogY3BwID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9 CisjIE5lZWQgLmVoX2ZyYW1lIGxkIG9wdGltaXphdGlvbnMKKyMgTmVlZCBwcm9wZXIgdmlzaWJp bGl0eSBzdXBwb3J0CisjIE5lZWQgLXBpZSBzdXBwb3J0CisjIE5lZWQgLS1hcy1uZWVkZWQvLS1u by1hcy1uZWVkZWQgc3VwcG9ydAorIyBPbiBwcGM2NCwgbmVlZCBvbWl0IGRvdCBzeW1ib2xzIHN1 cHBvcnQgYW5kIC0tbm9uLW92ZXJsYXBwaW5nLW9wZAorIyBOZWVkIGJpbnV0aWxzIHRoYXQgb3du cyAvdXNyL2Jpbi9jKytmaWx0CisjIE5lZWQgYmludXRpbHMgdGhhdCBzdXBwb3J0IC53ZWFrcmVm CisjIE5lZWQgYmludXRpbHMgdGhhdCBzdXBwb3J0cyAtLWhhc2gtc3R5bGU9Z251CisjIE5lZWQg YmludXRpbHMgdGhhdCBzdXBwb3J0IG1mZmdwci9tZnRncHIKKyMgTmVlZCBiaW51dGlscyB0aGF0 IHN1cHBvcnQgLS1idWlsZC1pZAorUmVxdWlyZXM6IGJpbnV0aWxzID49IDIuMTcuNTAuMC4xNy0z CisjIE1ha2Ugc3VyZSBnZGIgd2lsbCB1bmRlcnN0YW5kIERXX0ZPUk1fc3RycAorQ29uZmxpY3Rz OiBnZGIgPCA1LjEtMgorUmVxdWlyZXM6IGdsaWJjLWRldmVsID49IDIuMi45MC0xMgorJWlmYXJj aCBwcGMgcHBjNjQgczM5MCBzMzkweCBzcGFyYyBzcGFyY3Y5IGFscGhhCisjIE1ha2Ugc3VyZSBn bGliYyBzdXBwb3J0cyBURm1vZGUgbG9uZyBkb3VibGUKK1JlcXVpcmVzOiBnbGliYyA+PSAyLjMu OTAtMzUKKyVlbmRpZgorUmVxdWlyZXM6IGxpYmdjYyA+PSAle3ZlcnNpb259LSV7cmVsZWFzZX0K K1JlcXVpcmVzOiBsaWJnb21wID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9CislaWYgISV7YnVpbGRf YWRhfQorT2Jzb2xldGVzOiBnY2MtZ25hdCA8ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQorT2Jzb2xl dGVzOiBsaWJnbmF0IDwgJXt2ZXJzaW9ufS0le3JlbGVhc2V9CislZW5kaWYKK1ByZXJlcTogL3Ni aW4vaW5zdGFsbC1pbmZvCitBdXRvUmVxOiB0cnVlCisKK1BhdGNoMDogZ2NjNDQtaGFjay5wYXRj aAorUGF0Y2gxOiBnY2M0NC1idWlsZC1pZC5wYXRjaAorUGF0Y2gyOiBnY2M0NC1jKystYnVpbHRp bi1yZWRlY2wucGF0Y2gKK1BhdGNoMzogZ2NjNDQtaWE2NC1saWJ1bndpbmQucGF0Y2gKK1BhdGNo NDogZ2NjNDQtamF2YS1ub211bHRpLnBhdGNoCitQYXRjaDU6IGdjYzQ0LXBwYzMyLXJldGFkZHIu cGF0Y2gKK1BhdGNoNzogZ2NjNDQtcHIyNzg5OC5wYXRjaAorUGF0Y2g4OiBnY2M0NC1wcjMyMTM5 LnBhdGNoCitQYXRjaDk6IGdjYzQ0LXByMzM3NjMucGF0Y2gKK1BhdGNoMTA6IGdjYzQ0LXJoMzMw NzcxLnBhdGNoCitQYXRjaDExOiBnY2M0NC1yaDM0MTIyMS5wYXRjaAorUGF0Y2gxMjogZ2NjNDQt amF2YS1kZWJ1Zy1pZmFjZS10eXBlLnBhdGNoCitQYXRjaDEzOiBnY2M0NC1pMzg2LWxpYmdvbXAu cGF0Y2gKK1BhdGNoMTU6IGdjYzQ0LXNwYXJjLWNvbmZpZy1kZXRlY3Rpb24ucGF0Y2gKK1BhdGNo MTY6IGdjYzQ0LWxpYmdvbXAtb21wX2gtbXVsdGlsaWIucGF0Y2gKK1BhdGNoMjA6IGdjYzQ0LWxp YnRvb2wtbm8tcnBhdGgucGF0Y2gKKworUGF0Y2gxMDAwOiBmYXN0amFyLTAuOTctc2VnZmF1bHQu cGF0Y2gKKworIyBPbiBBUk0gRUFCSSBzeXN0ZW1zLCB3ZSBkbyB3YW50IC1nbnVlYWJpIHRvIGJl IHBhcnQgb2YgdGhlCisjIHRhcmdldCB0cmlwbGUuCislaWZuYXJjaCAle2FybX0KKyVkZWZpbmUg X2dudSAle25pbH0KKyVlbmRpZgorJWlmYXJjaCBzcGFyY3Y5CislZGVmaW5lIGdjY190YXJnZXRf cGxhdGZvcm0gc3BhcmM2NC0le192ZW5kb3J9LSV7X3RhcmdldF9vc30KKyVlbmRpZgorJWlmYXJj aCBwcGMKKyVkZWZpbmUgZ2NjX3RhcmdldF9wbGF0Zm9ybSBwcGM2NC0le192ZW5kb3J9LSV7X3Rh cmdldF9vc30KKyVlbmRpZgorJWlmbmFyY2ggc3BhcmN2OSBwcGMKKyVkZWZpbmUgZ2NjX3Rhcmdl dF9wbGF0Zm9ybSAle190YXJnZXRfcGxhdGZvcm19CislZW5kaWYKKworJWRlc2NyaXB0aW9uCitU aGUgZ2NjIHBhY2thZ2UgY29udGFpbnMgdGhlIEdOVSBDb21waWxlciBDb2xsZWN0aW9uIHZlcnNp b24gNC40LgorWW91J2xsIG5lZWQgdGhpcyBwYWNrYWdlIGluIG9yZGVyIHRvIGNvbXBpbGUgQyBj b2RlLgorCislcGFja2FnZSAtbiBsaWJnY2MKK1N1bW1hcnk6IEdDQyB2ZXJzaW9uIDQuNCBzaGFy ZWQgc3VwcG9ydCBsaWJyYXJ5CitHcm91cDogU3lzdGVtIEVudmlyb25tZW50L0xpYnJhcmllcwor QXV0b3JlcTogZmFsc2UKKworJWRlc2NyaXB0aW9uIC1uIGxpYmdjYworVGhpcyBwYWNrYWdlIGNv bnRhaW5zIEdDQyBzaGFyZWQgc3VwcG9ydCBsaWJyYXJ5IHdoaWNoIGlzIG5lZWRlZAorZS5nLiBm b3IgZXhjZXB0aW9uIGhhbmRsaW5nIHN1cHBvcnQuCisKKyVwYWNrYWdlIGMrKworU3VtbWFyeTog QysrIHN1cHBvcnQgZm9yIEdDQworR3JvdXA6IERldmVsb3BtZW50L0xhbmd1YWdlcworUmVxdWly ZXM6IGdjYyA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQorUmVxdWlyZXM6IGxpYnN0ZGMrKyA9ICV7 dmVyc2lvbn0tJXtyZWxlYXNlfQorUmVxdWlyZXM6IGxpYnN0ZGMrKy1kZXZlbCA9ICV7dmVyc2lv bn0tJXtyZWxlYXNlfQorQXV0b3JlcTogdHJ1ZQorCislZGVzY3JpcHRpb24gYysrCitUaGlzIHBh Y2thZ2UgYWRkcyBDKysgc3VwcG9ydCB0byB0aGUgR05VIENvbXBpbGVyIENvbGxlY3Rpb24uCitJ dCBpbmNsdWRlcyBzdXBwb3J0IGZvciBtb3N0IG9mIHRoZSBjdXJyZW50IEMrKyBzcGVjaWZpY2F0 aW9uLAoraW5jbHVkaW5nIHRlbXBsYXRlcyBhbmQgZXhjZXB0aW9uIGhhbmRsaW5nLgorCislcGFj a2FnZSAtbiBsaWJzdGRjKysKK1N1bW1hcnk6IEdOVSBTdGFuZGFyZCBDKysgTGlicmFyeQorR3Jv dXA6IFN5c3RlbSBFbnZpcm9ubWVudC9MaWJyYXJpZXMKK0F1dG9yZXE6IHRydWUKKworJWRlc2Ny aXB0aW9uIC1uIGxpYnN0ZGMrKworVGhlIGxpYnN0ZGMrKyBwYWNrYWdlIGNvbnRhaW5zIGEgcmV3 cml0dGVuIHN0YW5kYXJkIGNvbXBsaWFudCBHQ0MgU3RhbmRhcmQKK0MrKyBMaWJyYXJ5LgorCisl cGFja2FnZSAtbiBsaWJzdGRjKystZGV2ZWwKK1N1bW1hcnk6IEhlYWRlciBmaWxlcyBhbmQgbGli cmFyaWVzIGZvciBDKysgZGV2ZWxvcG1lbnQKK0dyb3VwOiBEZXZlbG9wbWVudC9MaWJyYXJpZXMK K1JlcXVpcmVzOiBsaWJzdGRjKysgPSAle3ZlcnNpb259LSV7cmVsZWFzZX0sICV7X3ByZWZpeH0v JXtfbGlifS9saWJzdGRjKysuc28uNgorQXV0b3JlcTogdHJ1ZQorCislZGVzY3JpcHRpb24gLW4g bGlic3RkYysrLWRldmVsCitUaGlzIGlzIHRoZSBHTlUgaW1wbGVtZW50YXRpb24gb2YgdGhlIHN0 YW5kYXJkIEMrKyBsaWJyYXJpZXMuICBUaGlzCitwYWNrYWdlIGluY2x1ZGVzIHRoZSBoZWFkZXIg ZmlsZXMgYW5kIGxpYnJhcmllcyBuZWVkZWQgZm9yIEMrKworZGV2ZWxvcG1lbnQuIFRoaXMgaW5j bHVkZXMgcmV3cml0dGVuIGltcGxlbWVudGF0aW9uIG9mIFNUTC4KKworJXBhY2thZ2Ugb2JqYwor U3VtbWFyeTogT2JqZWN0aXZlLUMgc3VwcG9ydCBmb3IgR0NDCitHcm91cDogRGV2ZWxvcG1lbnQv TGFuZ3VhZ2VzCitSZXF1aXJlczogZ2NjID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9CitSZXF1aXJl czogbGlib2JqYyA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQorQXV0b3JlcTogdHJ1ZQorCislZGVz Y3JpcHRpb24gb2JqYworZ2NjLW9iamMgcHJvdmlkZXMgT2JqZWN0aXZlLUMgc3VwcG9ydCBmb3Ig dGhlIEdDQy4KK01haW5seSB1c2VkIG9uIHN5c3RlbXMgcnVubmluZyBOZVhUU1RFUCwgT2JqZWN0 aXZlLUMgaXMgYW4KK29iamVjdC1vcmllbnRlZCBkZXJpdmF0aXZlIG9mIHRoZSBDIGxhbmd1YWdl LgorCislcGFja2FnZSBvYmpjKysKK1N1bW1hcnk6IE9iamVjdGl2ZS1DKysgc3VwcG9ydCBmb3Ig R0NDCitHcm91cDogRGV2ZWxvcG1lbnQvTGFuZ3VhZ2VzCitSZXF1aXJlczogZ2NjLWMrKyA9ICV7 dmVyc2lvbn0tJXtyZWxlYXNlfSwgZ2NjLW9iamMgPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KK0F1 dG9yZXE6IHRydWUKKworJWRlc2NyaXB0aW9uIG9iamMrKworZ2NjLW9iamMrKyBwYWNrYWdlIHBy b3ZpZGVzIE9iamVjdGl2ZS1DKysgc3VwcG9ydCBmb3IgdGhlIEdDQy4KKworJXBhY2thZ2UgLW4g bGlib2JqYworU3VtbWFyeTogT2JqZWN0aXZlLUMgcnVudGltZQorR3JvdXA6IFN5c3RlbSBFbnZp cm9ubWVudC9MaWJyYXJpZXMKK0F1dG9yZXE6IHRydWUKKworJWRlc2NyaXB0aW9uIC1uIGxpYm9i amMKK1RoaXMgcGFja2FnZSBjb250YWlucyBPYmplY3RpdmUtQyBzaGFyZWQgbGlicmFyeSB3aGlj aCBpcyBuZWVkZWQgdG8gcnVuCitPYmplY3RpdmUtQyBkeW5hbWljYWxseSBsaW5rZWQgcHJvZ3Jh bXMuCisKKyVwYWNrYWdlIGdmb3J0cmFuCitTdW1tYXJ5OiBGb3J0cmFuIHN1cHBvcnQKK0dyb3Vw OiBEZXZlbG9wbWVudC9MYW5ndWFnZXMKK1JlcXVpcmVzOiBnY2MgPSAle3ZlcnNpb259LSV7cmVs ZWFzZX0KK1JlcXVpcmVzOiBsaWJnZm9ydHJhbiA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQorQnVp bGRSZXF1aXJlczogZ21wLWRldmVsID49IDQuMS4yLTgsIG1wZnItZGV2ZWwgPj0gMi4yLjEKK1By ZXJlcTogL3NiaW4vaW5zdGFsbC1pbmZvCitBdXRvcmVxOiB0cnVlCisKKyVkZXNjcmlwdGlvbiBn Zm9ydHJhbgorVGhlIGdjYy1nZm9ydHJhbiBwYWNrYWdlIHByb3ZpZGVzIHN1cHBvcnQgZm9yIGNv bXBpbGluZyBGb3J0cmFuCitwcm9ncmFtcyB3aXRoIHRoZSBHTlUgQ29tcGlsZXIgQ29sbGVjdGlv bi4KKworJXBhY2thZ2UgLW4gbGliZ2ZvcnRyYW4KK1N1bW1hcnk6IEZvcnRyYW4gcnVudGltZQor R3JvdXA6IFN5c3RlbSBFbnZpcm9ubWVudC9MaWJyYXJpZXMKK0F1dG9yZXE6IHRydWUKKworJWRl c2NyaXB0aW9uIC1uIGxpYmdmb3J0cmFuCitUaGlzIHBhY2thZ2UgY29udGFpbnMgRm9ydHJhbiBz aGFyZWQgbGlicmFyeSB3aGljaCBpcyBuZWVkZWQgdG8gcnVuCitGb3J0cmFuIGR5bmFtaWNhbGx5 IGxpbmtlZCBwcm9ncmFtcy4KKworJXBhY2thZ2UgLW4gbGliZ29tcAorU3VtbWFyeTogR0NDIE9w ZW5NUCB2My4wIHNoYXJlZCBzdXBwb3J0IGxpYnJhcnkKK0dyb3VwOiBTeXN0ZW0gRW52aXJvbm1l bnQvTGlicmFyaWVzCitQcmVyZXE6IC9zYmluL2luc3RhbGwtaW5mbworCislZGVzY3JpcHRpb24g LW4gbGliZ29tcAorVGhpcyBwYWNrYWdlIGNvbnRhaW5zIEdDQyBzaGFyZWQgc3VwcG9ydCBsaWJy YXJ5IHdoaWNoIGlzIG5lZWRlZAorZm9yIE9wZW5NUCB2My4wIHN1cHBvcnQuCisKKyVwYWNrYWdl IC1uIGxpYm11ZGZsYXAKK1N1bW1hcnk6IEdDQyBtdWRmbGFwIHNoYXJlZCBzdXBwb3J0IGxpYnJh cnkKK0dyb3VwOiBTeXN0ZW0gRW52aXJvbm1lbnQvTGlicmFyaWVzCisKKyVkZXNjcmlwdGlvbiAt biBsaWJtdWRmbGFwCitUaGlzIHBhY2thZ2UgY29udGFpbnMgR0NDIHNoYXJlZCBzdXBwb3J0IGxp YnJhcnkgd2hpY2ggaXMgbmVlZGVkCitmb3IgbXVkZmxhcCBzdXBwb3J0LgorCislcGFja2FnZSAt biBsaWJtdWRmbGFwLWRldmVsCitTdW1tYXJ5OiBHQ0MgbXVkZmxhcCBzdXBwb3J0CitHcm91cDog RGV2ZWxvcG1lbnQvTGlicmFyaWVzCitSZXF1aXJlczogbGlibXVkZmxhcCA9ICV7dmVyc2lvbn0t JXtyZWxlYXNlfQorUmVxdWlyZXM6IGdjYyA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQorCislZGVz Y3JpcHRpb24gLW4gbGlibXVkZmxhcC1kZXZlbAorVGhpcyBwYWNrYWdlIGNvbnRhaW5zIGhlYWRl cnMgYW5kIHN0YXRpYyBsaWJyYXJpZXMgZm9yIGJ1aWxkaW5nCittdWRmbGFwLWluc3RydW1lbnRl ZCBwcm9ncmFtcy4KKworVG8gaW5zdHJ1bWVudCBhIG5vbi10aHJlYWRlZCBwcm9ncmFtLCBhZGQg LWZtdWRmbGFwCitvcHRpb24gdG8gR0NDIGFuZCB3aGVuIGxpbmtpbmcgYWRkIC1sbXVkZmxhcCwg Zm9yIHRocmVhZGVkIHByb2dyYW1zCithbHNvIGFkZCAtZm11ZGZsYXB0aCBhbmQgLWxtdWRmbGFw dGguCisKKyVwYWNrYWdlIGphdmEKK1N1bW1hcnk6IEphdmEgc3VwcG9ydCBmb3IgR0NDCitHcm91 cDogRGV2ZWxvcG1lbnQvTGFuZ3VhZ2VzCitSZXF1aXJlczogZ2NjID0gJXt2ZXJzaW9ufS0le3Jl bGVhc2V9CitSZXF1aXJlczogbGliZ2NqID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9CitSZXF1aXJl czogbGliZ2NqLWRldmVsID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9CitSZXF1aXJlczogL3Vzci9z aGFyZS9qYXZhL2VjbGlwc2UtZWNqLmphcgorUHJlcmVxOiAvc2Jpbi9pbnN0YWxsLWluZm8KK0F1 dG9yZXE6IHRydWUKKworJWRlc2NyaXB0aW9uIGphdmEKK1RoaXMgcGFja2FnZSBhZGRzIHN1cHBv cnQgZm9yIGNvbXBpbGluZyBKYXZhKHRtKSBwcm9ncmFtcyBhbmQKK2J5dGVjb2RlIGludG8gbmF0 aXZlIGNvZGUuCisKKyVwYWNrYWdlIC1uIGxpYmdjagorU3VtbWFyeTogSmF2YSBydW50aW1lIGxp YnJhcnkgZm9yIGdjYworR3JvdXA6IFN5c3RlbSBFbnZpcm9ubWVudC9MaWJyYXJpZXMKK1ByZXJl cTogL3NiaW4vaW5zdGFsbC1pbmZvCitSZXF1aXJlczogemlwID49IDIuMQorUmVxdWlyZXM6IGd0 azIgPj0gMi40LjAKK1JlcXVpcmVzOiBnbGliMiA+PSAyLjQuMAorUmVxdWlyZXM6IGxpYmFydF9s Z3BsID49IDIuMS4wCislaWYgJXtidWlsZF9qYXZhfQorQnVpbGRSZXF1aXJlczogZ3RrMi1kZXZl bCA+PSAyLjQuMAorQnVpbGRSZXF1aXJlczogZ2xpYjItZGV2ZWwgPj0gMi40LjAKK0J1aWxkUmVx dWlyZXM6IHh1bHJ1bm5lci1kZXZlbAorQnVpbGRSZXF1aXJlczogbGliYXJ0X2xncGwtZGV2ZWwg Pj0gMi4xLjAKK0J1aWxkUmVxdWlyZXM6IGFsc2EtbGliLWRldmVsCitCdWlsZFJlcXVpcmVzOiBs aWJYdHN0LWRldmVsCitCdWlsZFJlcXVpcmVzOiBsaWJYdC1kZXZlbAorJWVuZGlmCitBdXRvcmVx OiB0cnVlCisKKyVkZXNjcmlwdGlvbiAtbiBsaWJnY2oKK1RoZSBKYXZhKHRtKSBydW50aW1lIGxp YnJhcnkuIFlvdSB3aWxsIG5lZWQgdGhpcyBwYWNrYWdlIHRvIHJ1biB5b3VyIEphdmEKK3Byb2dy YW1zIGNvbXBpbGVkIHVzaW5nIHRoZSBKYXZhIGNvbXBpbGVyIGZyb20gR05VIENvbXBpbGVyIENv bGxlY3Rpb24gKGdjaikuCisKKyVwYWNrYWdlIC1uIGxpYmdjai1kZXZlbAorU3VtbWFyeTogTGli cmFyaWVzIGZvciBKYXZhIGRldmVsb3BtZW50IHVzaW5nIEdDQworR3JvdXA6IERldmVsb3BtZW50 L0xhbmd1YWdlcworUmVxdWlyZXM6IGxpYmdjaiA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfSwgJXtf cHJlZml4fS8le19saWJ9L2xpYmdjai5zby4xMAorUmVxdWlyZXM6IHpsaWItZGV2ZWwsICV7X3By ZWZpeH0vJXtfbGlifS9saWJ6LnNvCitSZXF1aXJlczogL2Jpbi9hd2sKK0F1dG9yZXE6IGZhbHNl CitBdXRvcHJvdjogZmFsc2UKKworJWRlc2NyaXB0aW9uIC1uIGxpYmdjai1kZXZlbAorVGhlIEph dmEodG0pIHN0YXRpYyBsaWJyYXJpZXMgYW5kIEMgaGVhZGVyIGZpbGVzLiBZb3Ugd2lsbCBuZWVk IHRoaXMKK3BhY2thZ2UgdG8gY29tcGlsZSB5b3VyIEphdmEgcHJvZ3JhbXMgdXNpbmcgdGhlIEdD QyBKYXZhIGNvbXBpbGVyIChnY2opLgorCislcGFja2FnZSAtbiBsaWJnY2otc3JjCitTdW1tYXJ5 OiBKYXZhIGxpYnJhcnkgc291cmNlcyBmcm9tIEdDQzQgcHJldmlldworR3JvdXA6IFN5c3RlbSBF bnZpcm9ubWVudC9MaWJyYXJpZXMKK1JlcXVpcmVzOiBsaWJnY2ogPSAle3ZlcnNpb259LSV7cmVs ZWFzZX0KK0F1dG9yZXE6IHRydWUKKworJWRlc2NyaXB0aW9uIC1uIGxpYmdjai1zcmMKK1RoZSBK YXZhKHRtKSBydW50aW1lIGxpYnJhcnkgc291cmNlcyBmb3IgdXNlIGluIEVjbGlwc2UuCisKKyVw YWNrYWdlIC1uIGNwcAorU3VtbWFyeTogVGhlIEMgUHJlcHJvY2Vzc29yCitHcm91cDogRGV2ZWxv cG1lbnQvTGFuZ3VhZ2VzCitQcmVyZXE6IC9zYmluL2luc3RhbGwtaW5mbworQXV0b3JlcTogdHJ1 ZQorCislZGVzY3JpcHRpb24gLW4gY3BwCitDcHAgaXMgdGhlIEdOVSBDLUNvbXBhdGlibGUgQ29t cGlsZXIgUHJlcHJvY2Vzc29yLgorQ3BwIGlzIGEgbWFjcm8gcHJvY2Vzc29yIHdoaWNoIGlzIHVz ZWQgYXV0b21hdGljYWxseQorYnkgdGhlIEMgY29tcGlsZXIgdG8gdHJhbnNmb3JtIHlvdXIgcHJv Z3JhbSBiZWZvcmUgYWN0dWFsCitjb21waWxhdGlvbi4gSXQgaXMgY2FsbGVkIGEgbWFjcm8gcHJv Y2Vzc29yIGJlY2F1c2UgaXQgYWxsb3dzCit5b3UgdG8gZGVmaW5lIG1hY3JvcywgYWJicmV2aWF0 aW9ucyBmb3IgbG9uZ2VyCitjb25zdHJ1Y3RzLgorCitUaGUgQyBwcmVwcm9jZXNzb3IgcHJvdmlk ZXMgZm91ciBzZXBhcmF0ZSBmdW5jdGlvbmFsaXRpZXM6IHRoZQoraW5jbHVzaW9uIG9mIGhlYWRl ciBmaWxlcyAoZmlsZXMgb2YgZGVjbGFyYXRpb25zIHRoYXQgY2FuIGJlCitzdWJzdGl0dXRlZCBp bnRvIHlvdXIgcHJvZ3JhbSk7IG1hY3JvIGV4cGFuc2lvbiAoeW91IGNhbiBkZWZpbmUgbWFjcm9z LAorYW5kIHRoZSBDIHByZXByb2Nlc3NvciB3aWxsIHJlcGxhY2UgdGhlIG1hY3JvcyB3aXRoIHRo ZWlyIGRlZmluaXRpb25zCit0aHJvdWdob3V0IHRoZSBwcm9ncmFtKTsgY29uZGl0aW9uYWwgY29t cGlsYXRpb24gKHVzaW5nIHNwZWNpYWwKK3ByZXByb2Nlc3NpbmcgZGlyZWN0aXZlcywgeW91IGNh biBpbmNsdWRlIG9yIGV4Y2x1ZGUgcGFydHMgb2YgdGhlCitwcm9ncmFtIGFjY29yZGluZyB0byB2 YXJpb3VzIGNvbmRpdGlvbnMpOyBhbmQgbGluZSBjb250cm9sIChpZiB5b3UgdXNlCithIHByb2dy YW0gdG8gY29tYmluZSBvciByZWFycmFuZ2Ugc291cmNlIGZpbGVzIGludG8gYW4gaW50ZXJtZWRp YXRlCitmaWxlIHdoaWNoIGlzIHRoZW4gY29tcGlsZWQsIHlvdSBjYW4gdXNlIGxpbmUgY29udHJv bCB0byBpbmZvcm0gdGhlCitjb21waWxlciBhYm91dCB3aGVyZSBlYWNoIHNvdXJjZSBsaW5lIG9y aWdpbmF0ZWQpLgorCitZb3Ugc2hvdWxkIGluc3RhbGwgdGhpcyBwYWNrYWdlIGlmIHlvdSBhcmUg YSBDIHByb2dyYW1tZXIgYW5kIHlvdSB1c2UKK21hY3Jvcy4KKworJXBhY2thZ2UgZ25hdAorU3Vt bWFyeTogQWRhIDk1IHN1cHBvcnQgZm9yIEdDQworR3JvdXA6IERldmVsb3BtZW50L0xhbmd1YWdl cworUmVxdWlyZXM6IGdjYyA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQorUmVxdWlyZXM6IGxpYmdu YXQgPSAle3ZlcnNpb259LSV7cmVsZWFzZX0sIGxpYmduYXQtZGV2ZWwgPSAle3ZlcnNpb259LSV7 cmVsZWFzZX0KK1ByZXJlcTogL3NiaW4vaW5zdGFsbC1pbmZvCitBdXRvcmVxOiB0cnVlCisKKyVk ZXNjcmlwdGlvbiBnbmF0CitHTkFUIGlzIGEgR05VIEFkYSA5NSBmcm9udC1lbmQgdG8gR0NDLiBU aGlzIHBhY2thZ2UgaW5jbHVkZXMgZGV2ZWxvcG1lbnQgdG9vbHMsCit0aGUgZG9jdW1lbnRzIGFu ZCBBZGEgOTUgY29tcGlsZXIuCisKKyVwYWNrYWdlIC1uIGxpYmduYXQKK1N1bW1hcnk6IEdOVSBB ZGEgOTUgcnVudGltZSBzaGFyZWQgbGlicmFyaWVzCitHcm91cDogU3lzdGVtIEVudmlyb25tZW50 L0xpYnJhcmllcworQXV0b3JlcTogdHJ1ZQorCislZGVzY3JpcHRpb24gLW4gbGliZ25hdAorR05B VCBpcyBhIEdOVSBBZGEgOTUgZnJvbnQtZW5kIHRvIEdDQy4gVGhpcyBwYWNrYWdlIGluY2x1ZGVz IHNoYXJlZCBsaWJyYXJpZXMsCit3aGljaCBhcmUgcmVxdWlyZWQgdG8gcnVuIHByb2dyYW1zIGNv bXBpbGVkIHdpdGggdGhlIEdOQVQuCisKKyVwYWNrYWdlIC1uIGxpYmduYXQtZGV2ZWwKK1N1bW1h cnk6IEdOVSBBZGEgOTUgbGlicmFyaWVzCitHcm91cDogU3lzdGVtIEVudmlyb25tZW50L0xpYnJh cmllcworQXV0b3JlcTogdHJ1ZQorCislZGVzY3JpcHRpb24gLW4gbGliZ25hdC1kZXZlbAorR05B VCBpcyBhIEdOVSBBZGEgOTUgZnJvbnQtZW5kIHRvIEdDQy4gVGhpcyBwYWNrYWdlIGluY2x1ZGVz IGxpYnJhcmllcywKK3doaWNoIGFyZSByZXF1aXJlZCB0byBjb21waWxlIHdpdGggdGhlIEdOQVQu CisKKyVwcmVwCislc2V0dXAgLXEgLW4gZ2NjLSV7dmVyc2lvbn0tJXtEQVRFfQorJXBhdGNoMCAt cDAgLWIgLmhhY2t+CislcGF0Y2gxIC1wMCAtYiAuYnVpbGQtaWR+CislcGF0Y2gyIC1wMCAtYiAu YysrLWJ1aWx0aW4tcmVkZWNsfgorJXBhdGNoMyAtcDAgLWIgLmlhNjQtbGlidW53aW5kfgorJXBh dGNoNCAtcDAgLWIgLmphdmEtbm9tdWx0aX4KKyVwYXRjaDUgLXAwIC1iIC5wcGMzMi1yZXRhZGRy fgorJXBhdGNoNyAtcDAgLWIgLnByMjc4OTh+CislcGF0Y2g4IC1wMCAtYiAucHIzMjEzOX4KKyVw YXRjaDkgLXAwIC1iIC5wcjMzNzYzfgorJXBhdGNoMTAgLXAwIC1iIC5yaDMzMDc3MX4KKyVwYXRj aDExIC1wMCAtYiAucmgzNDEyMjF+CislcGF0Y2gxMiAtcDAgLWIgLmphdmEtZGVidWctaWZhY2Ut dHlwZX4KKyVwYXRjaDEzIC1wMCAtYiAuaTM4Ni1saWJnb21wfgorJXBhdGNoMTUgLXAwIC1iIC5z cGFyYy1jb25maWctZGV0ZWN0aW9ufgorJXBhdGNoMTYgLXAwIC1iIC5saWJnb21wLW9tcF9oLW11 bHRpbGlifgorJXBhdGNoMjAgLXAwIC1iIC5saWJ0b29sLW5vLXJwYXRofgorCisjIFRoaXMgdGVz dGNhc2UgZG9lc24ndCBjb21waWxlLgorcm0gbGliamF2YS90ZXN0c3VpdGUvbGliamF2YS5sYW5n L1BSMzUwMjAqCisKK3RhciB4emYgJXtTT1VSQ0U0fQorCislcGF0Y2gxMDAwIC1wMCAtYiAuZmFz dGphci0wLjk3LXNlZ2ZhdWx0fgorCislaWYgJXtib290c3RyYXBfamF2YX0KK3RhciB4amYgJXtT T1VSQ0UxMH0KKyVlbmRpZgorCitzZWQgLWkgLWUgJ3MvNFwuNFwuMS80LjQuMC8nIGdjYy9CQVNF LVZFUgorZWNobyAnUmVkIEhhdCAle3ZlcnNpb259LSV7Z2NjX3JlbGVhc2V9JyA+IGdjYy9ERVYt UEhBU0UKKworY3AgLWEgbGlic3RkYysrLXYzL2NvbmZpZy9jcHUvaXs0LDN9ODYvYXRvbWljaXR5 LmgKKworIyBIYWNrIHRvIGF2b2lkIGJ1aWxkaW5nIG11bHRpbGliIGxpYmphdmEKK3BlcmwgLXBp IC1lICdzL15hbGw6IGFsbC1yZWRpcmVjdC9pZmVxIChcJChNVUxUSVNVQkRJUiksKVxuYWxsOiBh bGwtcmVkaXJlY3RcbmVsc2VcbmFsbDpcblx0ZWNobyBNdWx0aWxpYiBsaWJqYXZhIGJ1aWxkIGRp c2FibGVkXG5lbmRpZi8nIGxpYmphdmEvTWFrZWZpbGUuaW4KK3BlcmwgLXBpIC1lICdzL15pbnN0 YWxsOiBpbnN0YWxsLXJlZGlyZWN0L2lmZXEgKFwkKE1VTFRJU1VCRElSKSwpXG5pbnN0YWxsOiBp bnN0YWxsLXJlZGlyZWN0XG5lbHNlXG5pbnN0YWxsOlxuXHRlY2hvIE11bHRpbGliIGxpYmphdmEg aW5zdGFsbCBkaXNhYmxlZFxuZW5kaWYvJyBsaWJqYXZhL01ha2VmaWxlLmluCitwZXJsIC1waSAt ZSAncy9eY2hlY2s6IGNoZWNrLXJlZGlyZWN0L2lmZXEgKFwkKE1VTFRJU1VCRElSKSwpXG5jaGVj azogY2hlY2stcmVkaXJlY3RcbmVsc2VcbmNoZWNrOlxuXHRlY2hvIE11bHRpbGliIGxpYmphdmEg Y2hlY2sgZGlzYWJsZWRcbmVuZGlmLycgbGliamF2YS9NYWtlZmlsZS5pbgorcGVybCAtcGkgLWUg J3MvXmFsbDogYWxsLXJlY3Vyc2l2ZS9pZmVxIChcJChNVUxUSVNVQkRJUiksKVxuYWxsOiBhbGwt cmVjdXJzaXZlXG5lbHNlXG5hbGw6XG5cdGVjaG8gTXVsdGlsaWIgbGliamF2YSBidWlsZCBkaXNh YmxlZFxuZW5kaWYvJyBsaWJqYXZhL01ha2VmaWxlLmluCitwZXJsIC1waSAtZSAncy9eaW5zdGFs bDogaW5zdGFsbC1yZWN1cnNpdmUvaWZlcSAoXCQoTVVMVElTVUJESVIpLClcbmluc3RhbGw6IGlu c3RhbGwtcmVjdXJzaXZlXG5lbHNlXG5pbnN0YWxsOlxuXHRlY2hvIE11bHRpbGliIGxpYmphdmEg aW5zdGFsbCBkaXNhYmxlZFxuZW5kaWYvJyBsaWJqYXZhL01ha2VmaWxlLmluCitwZXJsIC1waSAt ZSAncy9eY2hlY2s6IGNoZWNrLXJlY3Vyc2l2ZS9pZmVxIChcJChNVUxUSVNVQkRJUiksKVxuY2hl Y2s6IGNoZWNrLXJlY3Vyc2l2ZVxuZWxzZVxuY2hlY2s6XG5cdGVjaG8gTXVsdGlsaWIgbGliamF2 YSBjaGVjayBkaXNhYmxlZFxuZW5kaWYvJyBsaWJqYXZhL01ha2VmaWxlLmluCisKKy4vY29udHJp Yi9nY2NfdXBkYXRlIC0tdG91Y2gKKworTENfQUxMPUMgc2VkIC1pIC1lICdzL1x4YTAvIC8nIGdj Yy9kb2Mvb3B0aW9ucy50ZXhpCisKKyVpZmFyY2ggcHBjCitpZiBbIC1kIGxpYnN0ZGMrKy12My9j b25maWcvYWJpL3Bvc3QvcG93ZXJwYzY0LWxpbnV4LWdudSBdOyB0aGVuCisgIG1rZGlyIC1wIGxp YnN0ZGMrKy12My9jb25maWcvYWJpL3Bvc3QvcG93ZXJwYzY0LWxpbnV4LWdudS82NAorICBtdiBs aWJzdGRjKystdjMvY29uZmlnL2FiaS9wb3N0L3Bvd2VycGM2NC1saW51eC1nbnUveyw2NC99YmFz ZWxpbmVfc3ltYm9scy50eHQKKyAgbXYgbGlic3RkYysrLXYzL2NvbmZpZy9hYmkvcG9zdC9wb3dl cnBjNjQtbGludXgtZ251L3szMi8sfWJhc2VsaW5lX3N5bWJvbHMudHh0CisgIHJtIC1yZiBsaWJz dGRjKystdjMvY29uZmlnL2FiaS9wb3N0L3Bvd2VycGM2NC1saW51eC1nbnUvMzIKK2ZpCislZW5k aWYKKyVpZmFyY2ggc3BhcmMKK2lmIFsgLWQgbGlic3RkYysrLXYzL2NvbmZpZy9hYmkvcG9zdC9z cGFyYzY0LWxpbnV4LWdudSBdOyB0aGVuCisgIG1rZGlyIC1wIGxpYnN0ZGMrKy12My9jb25maWcv YWJpL3Bvc3Qvc3BhcmM2NC1saW51eC1nbnUvNjQKKyAgbXYgbGlic3RkYysrLXYzL2NvbmZpZy9h YmkvcG9zdC9zcGFyYzY0LWxpbnV4LWdudS97LDY0L31iYXNlbGluZV9zeW1ib2xzLnR4dAorICBt diBsaWJzdGRjKystdjMvY29uZmlnL2FiaS9wb3N0L3NwYXJjNjQtbGludXgtZ251L3szMi8sfWJh c2VsaW5lX3N5bWJvbHMudHh0CisgIHJtIC1yZiBsaWJzdGRjKystdjMvY29uZmlnL2FiaS9wb3N0 L3NwYXJjNjQtbGludXgtZ251LzMyCitmaQorJWVuZGlmCisKKyVidWlsZAorCislaWYgJXtidWls ZF9qYXZhfQorIyBnamFyIGlzbid0IHVzYWJsZSwgc28gZXZlbiB3aGVuIEdDQyBzb3VyY2UgdHJl ZSBubyBsb25nZXIgaW5jbHVkZXMKKyMgZmFzdGphciwgYnVpbGQgaXQgYW55d2F5LgorbWtkaXIg ZmFzdGphci0le2Zhc3RqYXJfdmVyfS9vYmotJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfQorY2QgZmFz dGphci0le2Zhc3RqYXJfdmVyfS9vYmotJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfQorLi4vY29uZmln dXJlIENGTEFHUz0iJFJQTV9PUFRfRkxBR1MiIC0tcHJlZml4PSV7X3ByZWZpeH0gLS1tYW5kaXI9 JXtfbWFuZGlyfSAtLWluZm9kaXI9JXtfaW5mb2Rpcn0KK21ha2UgJXs/X3NtcF9tZmxhZ3N9Citl eHBvcnQgUEFUSD1gcHdkYCR7UEFUSDorOiRQQVRIfQorY2QgLi4vLi4vCislZW5kaWYKKworcm0g LWZyIG9iai0le2djY190YXJnZXRfcGxhdGZvcm19Citta2RpciBvYmotJXtnY2NfdGFyZ2V0X3Bs YXRmb3JtfQorY2Qgb2JqLSV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0KKworJWlmICV7YnVpbGRfamF2 YX0KKyVpZiAhJXtib290c3RyYXBfamF2YX0KKyMgSWYgd2UgZG9uJ3QgaGF2ZSBnamF2YWggaW4g JFBBVEgsIHRyeSB0byBidWlsZCBpdCB3aXRoIHRoZSBvbGQgZ2lqCitta2RpciBqYXZhX2hhY2tz CitjZCBqYXZhX2hhY2tzCitjcCAtYSAuLi8uLi9saWJqYXZhL2NsYXNzcGF0aC90b29scy9leHRl cm5hbCBleHRlcm5hbAorbWtkaXIgLXAgZ251L2NsYXNzcGF0aC90b29scworY3AgLWEgLi4vLi4v bGliamF2YS9jbGFzc3BhdGgvdG9vbHMvZ251L2NsYXNzcGF0aC90b29scy97Y29tbW9uLGphdmFo LGdldG9wdH0gZ251L2NsYXNzcGF0aC90b29scy8KK2NwIC1hIC4uLy4uL2xpYmphdmEvY2xhc3Nw YXRoL3Rvb2xzL3Jlc291cmNlL2dudS9jbGFzc3BhdGgvdG9vbHMvY29tbW9uL01lc3NhZ2VzLnBy b3BlcnRpZXMgZ251L2NsYXNzcGF0aC90b29scy9jb21tb24KK2NwIC1hIC4uLy4uL2xpYmphdmEv Y2xhc3NwYXRoL3Rvb2xzL3Jlc291cmNlL2dudS9jbGFzc3BhdGgvdG9vbHMvZ2V0b3B0L01lc3Nh Z2VzLnByb3BlcnRpZXMgZ251L2NsYXNzcGF0aC90b29scy9nZXRvcHQKK2NkIGV4dGVybmFsL2Fz bTsgZm9yIGkgaW4gYGZpbmQgLiAtbmFtZSBcKi5qYXZhYDsgZG8gZ2NqIC0tZW5jb2RpbmcgSVNP LTg4NTktMSAtQyAkaSAtSS47IGRvbmU7IGNkIC4uLy4uCitmb3IgaSBpbiBgZmluZCBnbnUgLW5h bWUgXCouamF2YWA7IGRvIGdjaiAtQyAkaSAtSS4gLUlleHRlcm5hbC9hc20vOyBkb25lCitnY2og LWZpbmRpcmVjdC1kaXNwYXRjaCAtTzIgLWZtYWluPWdudS5jbGFzc3BhdGgudG9vbHMuamF2YWgu TWFpbiAtSS4gLUlleHRlcm5hbC9hc20vIGBmaW5kIC4gLW5hbWUgXCouY2xhc3NgIC1vIGdqYXZh aC5yZWFsCitjYXQgPiBnamF2YWggPDxFT0YKKyMhL2Jpbi9zaAorZXhwb3J0IENMQVNTUEFUSD1g cHdkYCR7Q0xBU1NQQVRIOis6JENMQVNTUEFUSH0KK2V4ZWMgYHB3ZGAvZ2phdmFoLnJlYWwgIlwk QCIKK0VPRgorY2htb2QgK3ggYHB3ZGAvZ2phdmFoCitjYXQgPiBlY2oxIDw8RU9GCisjIS9iaW4v c2gKK2V4ZWMgZ2lqIC1jcCAvdXNyL3NoYXJlL2phdmEvZWNsaXBzZS1lY2ouamFyIG9yZy5lY2xp cHNlLmpkdC5pbnRlcm5hbC5jb21waWxlci5iYXRjaC5HQ0NNYWluICJcJEAiCitFT0YKK2NobW9k ICt4IGBwd2RgL2VjajEKK2V4cG9ydCBQQVRIPWBwd2RgJHtQQVRIOis6JFBBVEh9CitjZCAuLgor JWVuZGlmCislZW5kaWYKKworQ0M9Z2NjCitPUFRfRkxBR1M9YGVjaG8gJFJQTV9PUFRfRkxBR1N8 c2VkIC1lICdzL1woLVdwLFwpXD8tRF9GT1JUSUZZX1NPVVJDRT1bMTJdLy9nJ2AKK09QVF9GTEFH Uz1gZWNobyAkT1BUX0ZMQUdTfHNlZCAtZSAncy8tbTY0Ly9nO3MvLW0zMi8vZztzLy1tMzEvL2cn YAorJWlmYXJjaCBzcGFyYworT1BUX0ZMQUdTPWBlY2hvICRPUFRfRkxBR1N8c2VkIC1lICdzLy1t Y3B1PXVsdHJhc3BhcmMvLW10dW5lPXVsdHJhc3BhcmMvZztzLy1tY3B1PXZbNzhdLy9nJ2AKKyVl bmRpZgorJWlmYXJjaCAle2l4ODZ9CitPUFRfRkxBR1M9YGVjaG8gJE9QVF9GTEFHU3xzZWQgLWUg J3MvLW1hcmNoPWkzODYvL2cnYAorJWVuZGlmCislaWZhcmNoIHNwYXJjNjQKK2NhdCA+IGdjYzY0 IDw8IkVPRiIKKyMhL2Jpbi9zaAorZXhlYyAvdXNyL2Jpbi9nY2MgLW02NCAiJEAiCitFT0YKK2No bW9kICt4IGdjYzY0CitDQz1gcHdkYC9nY2M2NAorJWVuZGlmCislaWZhcmNoIHBwYzY0CitpZiBn Y2MgLW02NCAteGMgLVMgL2Rldi9udWxsIC1vIC0gPiAvZGV2L251bGwgMj4mMTsgdGhlbgorICBj YXQgPiBnY2M2NCA8PCJFT0YiCisjIS9iaW4vc2gKK2V4ZWMgL3Vzci9iaW4vZ2NjIC1tNjQgIiRA IgorRU9GCisgIGNobW9kICt4IGdjYzY0CisgIENDPWBwd2RgL2djYzY0CitmaQorJWVuZGlmCitP UFRfRkxBR1M9YGVjaG8gIiRPUFRfRkxBR1MiIHwgc2VkIC1lICdzL1tbOmJsYW5rOl1dXCsvIC9n J2AKK2Nhc2UgIiRPUFRfRkxBR1MiIGluCisgICotZmFzeW5jaHJvbm91cy11bndpbmQtdGFibGVz KikKKyAgICBzZWQgLWkgLWUgJ3MvLWZuby1leGNlcHRpb25zIC8tZm5vLWV4Y2VwdGlvbnMgLWZu by1hc3luY2hyb25vdXMtdW53aW5kLXRhYmxlcy8nIFwKKyAgICAgIC4uL2djYy9NYWtlZmlsZS5p bgorICAgIDs7Citlc2FjCitDQz0iJENDIiBDRkxBR1M9IiRPUFRfRkxBR1MiIENYWEZMQUdTPSJg ZWNobyAkT1BUX0ZMQUdTIHwgc2VkICdzLyAtV2FsbCAvIC9nJ2AiIFhDRkxBR1M9IiRPUFRfRkxB R1MiIFRDRkxBR1M9IiRPUFRfRkxBR1MiIFwKKwlHQ0pGTEFHUz0iJE9QVF9GTEFHUyIgXAorCS4u L2NvbmZpZ3VyZSAtLXByZWZpeD0le19wcmVmaXh9IC0tbWFuZGlyPSV7X21hbmRpcn0gLS1pbmZv ZGlyPSV7X2luZm9kaXJ9IFwKKwktLXdpdGgtYnVndXJsPWh0dHA6Ly9idWd6aWxsYS5yZWRoYXQu Y29tL2J1Z3ppbGxhIC0tZW5hYmxlLWJvb3RzdHJhcCBcCisJLS1lbmFibGUtc2hhcmVkIC0tZW5h YmxlLXRocmVhZHM9cG9zaXggLS1lbmFibGUtY2hlY2tpbmc9cmVsZWFzZSBcCisJLS13aXRoLXN5 c3RlbS16bGliIC0tZW5hYmxlLV9fY3hhX2F0ZXhpdCAtLWRpc2FibGUtbGlidW53aW5kLWV4Y2Vw dGlvbnMgXAorJWlmICEle2J1aWxkX2FkYX0KKwktLWVuYWJsZS1sYW5ndWFnZXM9YyxjKyssb2Jq YyxvYmotYysrLGphdmEsZm9ydHJhbiBcCislZWxzZQorCS0tZW5hYmxlLWxhbmd1YWdlcz1jLGMr KyxvYmpjLG9iai1jKyssamF2YSxmb3J0cmFuLGFkYSBcCislZW5kaWYKKyVpZiAhJXtidWlsZF9q YXZhfQorCS0tZGlzYWJsZS1saWJnY2ogXAorJWVsc2UKKwktLWVuYWJsZS1qYXZhLWF3dD1ndGsg LS1kaXNhYmxlLWRzc2kgLS1lbmFibGUtcGx1Z2luIFwKKwktLXdpdGgtamF2YS1ob21lPSV7X3By ZWZpeH0vbGliL2p2bS9qYXZhLTEuNS4wLWdjai0xLjUuMC4wL2pyZSBcCisJLS1lbmFibGUtbGli Z2NqLW11bHRpZmlsZSBcCislaWYgISV7Ym9vdHN0cmFwX2phdmF9CisJLS1lbmFibGUtamF2YS1t YWludGFpbmVyLW1vZGUgXAorJWVuZGlmCisJLS13aXRoLWVjai1qYXI9L3Vzci9zaGFyZS9qYXZh L2VjbGlwc2UtZWNqLmphciBcCisJLS1kaXNhYmxlLWxpYmphdmEtbXVsdGlsaWIgXAorJWVuZGlm CislaWZhcmNoICV7YXJtfQorCS0tZGlzYWJsZS1zamxqLWV4Y2VwdGlvbnMgXAorJWVuZGlmCisl aWZhcmNoIHBwYyBwcGM2NAorCS0tZW5hYmxlLXNlY3VyZXBsdCBcCislZW5kaWYKKyVpZmFyY2gg c3BhcmMgc3BhcmN2OSBzcGFyYzY0IHBwYyBwcGM2NCBzMzkwIHMzOTB4IGFscGhhCisJLS13aXRo LWxvbmctZG91YmxlLTEyOCBcCislZW5kaWYKKyVpZmFyY2ggc3BhcmMKKwktLWRpc2FibGUtbGlu dXgtZnV0ZXggXAorJWVuZGlmCislaWZhcmNoIHNwYXJjNjQKKwktLXdpdGgtY3B1PXVsdHJhc3Bh cmMgXAorJWVuZGlmCislaWZhcmNoIHNwYXJjIHNwYXJjdjkKKwktLWhvc3Q9JXtnY2NfdGFyZ2V0 X3BsYXRmb3JtfSAtLWJ1aWxkPSV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0gLS10YXJnZXQ9JXtnY2Nf dGFyZ2V0X3BsYXRmb3JtfSAtLXdpdGgtY3B1PXY3CislZW5kaWYKKyVpZmFyY2ggcHBjCisJLS1i dWlsZD0le2djY190YXJnZXRfcGxhdGZvcm19IC0tdGFyZ2V0PSV7Z2NjX3RhcmdldF9wbGF0Zm9y bX0gLS13aXRoLWNwdT1kZWZhdWx0MzIKKyVlbmRpZgorJWlmYXJjaCAle2l4ODZ9IHg4Nl82NAor CS0td2l0aC1jcHU9Z2VuZXJpYyBcCislZW5kaWYKKyVpZmFyY2ggczM5MCBzMzkweAorCS0td2l0 aC10dW5lPXo5LTEwOSBcCislZW5kaWYKKyVpZm5hcmNoIHNwYXJjIHNwYXJjdjkgcHBjCisJLS1i dWlsZD0le2djY190YXJnZXRfcGxhdGZvcm19CislZW5kaWYKKworI0dDSkZMQUdTPSIkT1BUX0ZM QUdTIiBtYWtlICV7P19zbXBfbWZsYWdzfSBCT09UX0NGTEFHUz0iJE9QVF9GTEFHUyIgYm9vdHN0 cmFwCitHQ0pGTEFHUz0iJE9QVF9GTEFHUyIgbWFrZSAlez9fc21wX21mbGFnc30gQk9PVF9DRkxB R1M9IiRPUFRfRkxBR1MiIHByb2ZpbGVkYm9vdHN0cmFwCisKKyMgcnVuIHRoZSB0ZXN0cy4KK21h a2UgJXs/X3NtcF9tZmxhZ3N9IC1rIGNoZWNrIEFMVF9DQ19VTkRFUl9URVNUPWdjYyBBTFRfQ1hY X1VOREVSX1RFU1Q9ZysrIFJVTlRFU1RGTEFHUz0iLS10YXJnZXRfYm9hcmQ9dW5peC8neywtZnN0 YWNrLXByb3RlY3Rvci8tLXBhcmFtPXNzcC1idWZmZXItc2l6ZT00fSciIHx8IDoKK2VjaG8gPT09 PT09PT09PT09PT09PT09PT1URVNUSU5HPT09PT09PT09PT09PT09PT09PT09PT09PQorKCAuLi9j b250cmliL3Rlc3Rfc3VtbWFyeSB8fCA6ICkgMj4mMSB8IHNlZCAtbiAnL15jYXQuKkVPRi8sL15F T0Yvey9eY2F0LipFT0YvZDsvXkVPRi9kOy9eTEFTVF9VUERBVEVEOi9kO3A7fScKK2VjaG8gPT09 PT09PT09PT09PT09PT09PT1URVNUSU5HIEVORD09PT09PT09PT09PT09PT09PT09PQorbWtkaXIg dGVzdGxvZ3MtJXtfdGFyZ2V0X3BsYXRmb3JtfS0le3ZlcnNpb259LSV7cmVsZWFzZX0KK2ZvciBp IGluIGBmaW5kIC4gLW5hbWUgXCoubG9nIHwgZ3JlcCAtRiB0ZXN0c3VpdGUvIHwgZ3JlcCAtdiAn Y29uZmlnLmxvZ1x8YWNhdHNcfGFkYSdgOyBkbworICBsbiAkaSB0ZXN0bG9ncy0le190YXJnZXRf cGxhdGZvcm19LSV7dmVyc2lvbn0tJXtyZWxlYXNlfS8gfHwgOgorZG9uZQordGFyIGNmIC0gdGVz dGxvZ3MtJXtfdGFyZ2V0X3BsYXRmb3JtfS0le3ZlcnNpb259LSV7cmVsZWFzZX0gfCBiemlwMiAt OWMgXAorICB8IHV1ZW5jb2RlIHRlc3Rsb2dzLSV7X3RhcmdldF9wbGF0Zm9ybX0udGFyLmJ6MiB8 fCA6CitybSAtcmYgdGVzdGxvZ3MtJXtfdGFyZ2V0X3BsYXRmb3JtfS0le3ZlcnNpb259LSV7cmVs ZWFzZX0KKworIyBNYWtlIHByb3RvaXplCittYWtlIC1DIGdjYyBDQz0iLi94Z2NjIC1CIC4vIC1P MiIgcHJvdG8KKworIyBNYWtlIGdlbmVyYXRlZCBtYW4gcGFnZXMgZXZlbiBpZiBQb2Q6Ok1hbiBp cyBub3QgbmV3IGVub3VnaAorcGVybCAtcGkgLWUgJ3MvaGVhZDMvaGVhZDIvJyAuLi9jb250cmli L3RleGkycG9kLnBsCitmb3IgaSBpbiAuLi9nY2MvZG9jLyoudGV4aTsgZG8KKyAgY3AgLWEgJGkg JGkub3JpZzsgc2VkICdzL2Z0YWJsZS90YWJsZS8nICRpLm9yaWcgPiAkaQorZG9uZQorbWFrZSAt QyBnY2MgZ2VuZXJhdGVkLW1hbnBhZ2VzCitmb3IgaSBpbiAuLi9nY2MvZG9jLyoudGV4aTsgZG8g bXYgLWYgJGkub3JpZyAkaTsgZG9uZQorCisjIENvcHkgdmFyaW91cyBkb2MgZmlsZXMgaGVyZSBh bmQgdGhlcmUKK2NkIC4uCitta2RpciAtcCBycG0uZG9jL2dmb3J0cmFuIHJwbS5kb2Mvb2JqYwor bWtkaXIgLXAgcnBtLmRvYy9ib2VobS1nYyBycG0uZG9jL2Zhc3RqYXIgcnBtLmRvYy9saWJmZmkg cnBtLmRvYy9saWJqYXZhCitta2RpciAtcCBycG0uZG9jL2NoYW5nZWxvZ3Mve2djYy9jcCxnY2Mv amF2YSxnY2MvYWRhLGxpYnN0ZGMrKy12MyxsaWJvYmpjLGxpYm11ZGZsYXAsbGliZ29tcH0KK3Nl ZCAtZSAncyxAVkVSU0lPTkAsJXtnY2NfdmVyc2lvbn0sJyAle1NPVVJDRTJ9ID4gcnBtLmRvYy9S RUFETUUubGliZ2Nqd2VicGx1Z2luLnNvCisKK2ZvciBpIGluIHtnY2MsZ2NjL2NwLGdjYy9qYXZh LGdjYy9hZGEsbGlic3RkYysrLXYzLGxpYm9iamMsbGlibXVkZmxhcCxsaWJnb21wfS9DaGFuZ2VM b2cqOyBkbworCWNwIC1wICRpIHJwbS5kb2MvY2hhbmdlbG9ncy8kaQorZG9uZQorCisoY2QgZ2Nj L2ZvcnRyYW47IGZvciBpIGluIENoYW5nZUxvZyo7IGRvCisJY3AgLXAgJGkgLi4vLi4vcnBtLmRv Yy9nZm9ydHJhbi8kaQorZG9uZSkKKyhjZCBsaWJnZm9ydHJhbjsgZm9yIGkgaW4gQ2hhbmdlTG9n KjsgZG8KKwljcCAtcCAkaSAuLi9ycG0uZG9jL2dmb3J0cmFuLyRpLmxpYmdmb3J0cmFuCitkb25l KQorKGNkIGdjYy9vYmpjOyBmb3IgaSBpbiBSRUFETUUqOyBkbworCWNwIC1wICRpIC4uLy4uL3Jw bS5kb2Mvb2JqYy8kaS5vYmpjCitkb25lKQorKGNkIGxpYm9iamM7IGZvciBpIGluIFJFQURNRSo7 IGRvCisJY3AgLXAgJGkgLi4vcnBtLmRvYy9vYmpjLyRpLmxpYm9iamMKK2RvbmUpCisoY2QgYm9l aG0tZ2M7IGZvciBpIGluIENoYW5nZUxvZyo7IGRvCisJY3AgLXAgJGkgLi4vcnBtLmRvYy9ib2Vo bS1nYy8kaS5nYworZG9uZSkKKyhjZCBmYXN0amFyLSV7ZmFzdGphcl92ZXJ9OyBmb3IgaSBpbiBD aGFuZ2VMb2cqIFJFQURNRSo7IGRvCisJY3AgLXAgJGkgLi4vcnBtLmRvYy9mYXN0amFyLyRpLmZh c3RqYXIKK2RvbmUpCisoY2QgbGliZmZpOyBmb3IgaSBpbiBDaGFuZ2VMb2cqIFJFQURNRSogTElD RU5TRTsgZG8KKwljcCAtcCAkaSAuLi9ycG0uZG9jL2xpYmZmaS8kaS5saWJmZmkKK2RvbmUpCiso Y2QgbGliamF2YTsgZm9yIGkgaW4gQ2hhbmdlTG9nKiBSRUFETUUqOyBkbworCWNwIC1wICRpIC4u L3JwbS5kb2MvbGliamF2YS8kaS5saWJqYXZhCitkb25lKQorY3AgLXAgbGliamF2YS9MSUJHQ0pf TElDRU5TRSBycG0uZG9jL2xpYmphdmEvCisKK3JtIC1mIHJwbS5kb2MvY2hhbmdlbG9ncy9nY2Mv Q2hhbmdlTG9nLlsxLTldCitmaW5kIHJwbS5kb2MgLW5hbWUgXCpDaGFuZ2VMb2dcKiB8IHhhcmdz IGJ6aXAyIC05CisKKyVpZiAle2J1aWxkX2phdmFfdGFyfQorZmluZCBsaWJqYXZhIC1uYW1lIFwq LmggLXR5cGUgZiB8IHhhcmdzIGdyZXAgLWwgJy8vIERPIE5PVCBFRElUIFRISVMgRklMRSAtIGl0 IGlzIG1hY2hpbmUgZ2VuZXJhdGVkJyA+IGxpYmphdmEtY2xhc3Nlcy5saXN0CitmaW5kIGxpYmph dmEgLW5hbWUgXCouY2xhc3MgLXR5cGUgZiA+PiBsaWJqYXZhLWNsYXNzZXMubGlzdAorZmluZCBs aWJqYXZhL3Rlc3RzdWl0ZSAtbmFtZSBcKi5qYXIgLXR5cGUgZiA+PiBsaWJqYXZhLWNsYXNzZXMu bGlzdAordGFyIGNmIC0gLVQgbGliamF2YS1jbGFzc2VzLmxpc3QgfCBiemlwMiAtOSA+ICRSUE1f U09VUkNFX0RJUi9saWJqYXZhLWNsYXNzZXMtJXt2ZXJzaW9ufS0le3JlbGVhc2V9LnRhci5iejIK KyVlbmRpZgorCislaW5zdGFsbAorcm0gLWZyICRSUE1fQlVJTERfUk9PVAorCitwZXJsIC1waSAt ZSBcCisgICdzfmhyZWY9ImwoaWJzdGRjfGF0ZXN0KX5ocmVmPSJodHRwOi8vZ2NjLmdudS5vcmcv b25saW5lZG9jcy9saWJzdGRjKysvbFwxficgXAorICBsaWJzdGRjKystdjMvZG9jL2h0bWwvYXBp Lmh0bWwKKworY2Qgb2JqLSV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0KKworJWlmICV7YnVpbGRfamF2 YX0KK2V4cG9ydCBQQVRIPWBwd2RgLy4uL2Zhc3RqYXItJXtmYXN0amFyX3Zlcn0vb2JqLSV7Z2Nj X3RhcmdldF9wbGF0Zm9ybX0ke1BBVEg6KzokUEFUSH0KKyVpZiAhJXtib290c3RyYXBfamF2YX0K K2V4cG9ydCBQQVRIPWBwd2RgL2phdmFfaGFja3Mke1BBVEg6KzokUEFUSH0KKyVlbmRpZgorJWVu ZGlmCisKK1RBUkdFVF9QTEFURk9STT0le2djY190YXJnZXRfcGxhdGZvcm19CisKKyMgVGhlcmUg YXJlIHNvbWUgTVAgYnVncyBpbiBsaWJzdGRjKysgTWFrZWZpbGVzCittYWtlIC1DICV7Z2NjX3Rh cmdldF9wbGF0Zm9ybX0vbGlic3RkYysrLXYzCisKK21ha2UgcHJlZml4PSRSUE1fQlVJTERfUk9P VCV7X3ByZWZpeH0gbWFuZGlyPSRSUE1fQlVJTERfUk9PVCV7X21hbmRpcn0gXAorICBpbmZvZGly PSRSUE1fQlVJTERfUk9PVCV7X2luZm9kaXJ9IGluc3RhbGwKKyVpZiAle2J1aWxkX2phdmF9Citt YWtlIERFU1RESVI9JFJQTV9CVUlMRF9ST09UIC1DICV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vbGli amF2YSBpbnN0YWxsLXNyYy56aXAKKyVlbmRpZgorJWlmICV7YnVpbGRfYWRhfQorY2htb2QgNjQ0 ICRSUE1fQlVJTERfUk9PVCV7X2luZm9kaXJ9L2duYXQqCislZW5kaWYKKworRlVMTFBBVEg9JFJQ TV9CVUlMRF9ST09UJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtn Y2NfdmVyc2lvbn0KK0ZVTExFUEFUSD0kUlBNX0JVSUxEX1JPT1Qle19wcmVmaXh9L2xpYmV4ZWMv Z2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0KKworIyBmaXggc29tZSB0 aGluZ3MKK2xuIC1zZiBnY2MgJFJQTV9CVUlMRF9ST09UJXtfcHJlZml4fS9iaW4vY2MKK21rZGly IC1wICRSUE1fQlVJTERfUk9PVC9saWIKK2xuIC1zZiAuLiV7X3ByZWZpeH0vYmluL2NwcCAkUlBN X0JVSUxEX1JPT1QvbGliL2NwcAorbG4gLXNmIGdmb3J0cmFuICRSUE1fQlVJTERfUk9PVCV7X3By ZWZpeH0vYmluL2Y5NQorcm0gLWYgJFJQTV9CVUlMRF9ST09UJXtfaW5mb2Rpcn0vZGlyCitnemlw IC05ICRSUE1fQlVJTERfUk9PVCV7X2luZm9kaXJ9LyouaW5mbyoKK2xuIC1zZiBnY2MgJFJQTV9C VUlMRF9ST09UJXtfcHJlZml4fS9iaW4vZ25hdGdjYworCitjeHhjb25maWc9ImBmaW5kICV7Z2Nj X3RhcmdldF9wbGF0Zm9ybX0vbGlic3RkYysrLXYzL2luY2x1ZGUgLW5hbWUgYysrY29uZmlnLmhg IgorZm9yIGkgaW4gYGZpbmQgJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS9bMzZdKi9saWJzdGRjKyst djMvaW5jbHVkZSAtbmFtZSBjKytjb25maWcuaCAyPi9kZXYvbnVsbGA7IGRvCisgIGlmICEgZGlm ZiAtdXAgJGN4eGNvbmZpZyAkaTsgdGhlbgorICAgIGNhdCA+ICRSUE1fQlVJTERfUk9PVCV7X3By ZWZpeH0vaW5jbHVkZS9jKysvJXtnY2NfdmVyc2lvbn0vJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS9i aXRzL2MrK2NvbmZpZy5oIDw8RU9GCisjaWZuZGVmIF9DUFBfQ1BQQ09ORklHX1dSQVBQRVIKKyNk ZWZpbmUgX0NQUF9DUFBDT05GSUdfV1JBUFBFUiAxCisjaW5jbHVkZSA8Yml0cy93b3Jkc2l6ZS5o PgorI2lmIF9fV09SRFNJWkUgPT0gMzIKKyVpZmFyY2ggJXttdWx0aWxpYl82NF9hcmNoc30KK2Bj YXQgJChmaW5kICV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vMzIvbGlic3RkYysrLXYzL2luY2x1ZGUg LW5hbWUgYysrY29uZmlnLmgpYAorJWVsc2UKK2BjYXQgJChmaW5kICV7Z2NjX3RhcmdldF9wbGF0 Zm9ybX0vbGlic3RkYysrLXYzL2luY2x1ZGUgLW5hbWUgYysrY29uZmlnLmgpYAorJWVuZGlmCisj ZWxzZQorJWlmYXJjaCAle211bHRpbGliXzY0X2FyY2hzfQorYGNhdCAkKGZpbmQgJXtnY2NfdGFy Z2V0X3BsYXRmb3JtfS9saWJzdGRjKystdjMvaW5jbHVkZSAtbmFtZSBjKytjb25maWcuaClgCisl ZWxzZQorYGNhdCAkKGZpbmQgJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS82NC9saWJzdGRjKystdjMv aW5jbHVkZSAtbmFtZSBjKytjb25maWcuaClgCislZW5kaWYKKyNlbmRpZgorI2VuZGlmCitFT0YK KyAgICBicmVhaworICBmaQorZG9uZQorCisjIE51a2UgYml0cy9zdGRjKysuaC5nY2ggZGlycwor IyAxKSB0aGVyZSBpcyBubyBiaXRzL3N0ZGMrKy5oIGhlYWRlciBpbnN0YWxsZWQsIHNvIHdoZW4g Z2NoIGZpbGUgY2FuJ3QgYmUKKyMgICAgdXNlZCwgY29tcGlsYXRpb24gZmFpbHMKKyMgMikgc29t ZXRpbWVzIGl0IGlzIGhhcmQgdG8gbWF0Y2ggdGhlIGV4YWN0IG9wdGlvbnMgdXNlZCBmb3IgYnVp bGRpbmcKKyMgICAgbGlic3RkYysrLXYzIG9yIHRoZXkgYXJlbid0IGRlc2lyYWJsZQorIyAzKSB0 aGVyZSBhcmUgbXVsdGlsaWIgaXNzdWVzLCBjb25mbGljdHMgZXRjLiB3aXRoIHRoaXMKKyMgNCkg aXQgaXMgaHVnZQorIyBQZW9wbGUgY2FuIGFsd2F5cyBwcmVjb21waWxlIG9uIHRoZWlyIG93biB3 aGF0ZXZlciB0aGV5IHdhbnQsIGJ1dAorIyBzaGlwcGluZyB0aGlzIGZvciBldmVyeWJvZHkgaXMg dW5uZWNlc3NhcnkuCitybSAtcmYgJFJQTV9CVUlMRF9ST09UJXtfcHJlZml4fS9pbmNsdWRlL2Mr Ky8le2djY192ZXJzaW9ufS8le2djY190YXJnZXRfcGxhdGZvcm19L2JpdHMvc3RkYysrLmguZ2No CisKKyVpZmFyY2ggc3BhcmN2OSBzcGFyYzY0CitsbiAtZiAkUlBNX0JVSUxEX1JPT1Qle19wcmVm aXh9L2Jpbi8le2djY190YXJnZXRfcGxhdGZvcm19LWdjYyBcCisgICRSUE1fQlVJTERfUk9PVCV7 X3ByZWZpeH0vYmluL3NwYXJjLSV7X3ZlbmRvcn0tJXtfdGFyZ2V0X29zfS1nY2MKKyVlbmRpZgor JWlmYXJjaCBwcGMgcHBjNjQKK2xuIC1mICRSUE1fQlVJTERfUk9PVCV7X3ByZWZpeH0vYmluLyV7 Z2NjX3RhcmdldF9wbGF0Zm9ybX0tZ2NjIFwKKyAgJFJQTV9CVUlMRF9ST09UJXtfcHJlZml4fS9i aW4vcHBjLSV7X3ZlbmRvcn0tJXtfdGFyZ2V0X29zfS1nY2MKKyVlbmRpZgorCislaWZhcmNoIHNw YXJjdjkgcHBjCitGVUxMTFBBVEg9JEZVTExQQVRIL2xpYjMyCislZW5kaWYKKyVpZmFyY2ggc3Bh cmM2NCBwcGM2NAorRlVMTExQQVRIPSRGVUxMUEFUSC9saWI2NAorJWVuZGlmCitpZiBbIC1uICIk RlVMTExQQVRIIiBdOyB0aGVuCisgIG1rZGlyIC1wICRGVUxMTFBBVEgKK2Vsc2UKKyAgRlVMTExQ QVRIPSRGVUxMUEFUSAorZmkKKworZmluZCAkUlBNX0JVSUxEX1JPT1QgLW5hbWUgXCoubGEgfCB4 YXJncyBybSAtZgorJWlmICV7YnVpbGRfamF2YX0KKyMgZ2NqIC1zdGF0aWMgZG9lc24ndCB3b3Jr IHByb3Blcmx5IGFueXdheSwgdW5sZXNzIHVzaW5nIC0td2hvbGUtYXJjaGl2ZQorIyBhbmQgc2F2 aW5nIDM1TUIgaXMgbm90IGJhZC4KK2ZpbmQgJFJQTV9CVUlMRF9ST09UIC1uYW1lIGxpYmdjai5h IC1vIC1uYW1lIGxpYmd0a3BlZXIuYSBcCisJCSAgICAgLW8gLW5hbWUgbGliZ2pzbWFsc2EuYSAt byAtbmFtZSBsaWJnY2otdG9vbHMuYSAtbyAtbmFtZSBsaWJqdm0uYSBcCisJCSAgICAgLW8gLW5h bWUgbGliZ2lqLmEgLW8gLW5hbWUgbGliZ2NqX2JjLmEgLW8gLW5hbWUgbGliamF2YW1hdGguYSBc CisgIHwgeGFyZ3Mgcm0gLWYKKworbXYgJFJQTV9CVUlMRF9ST09UJXtfcHJlZml4fS9saWIvbGli Z2NqLnNwZWMgJEZVTExQQVRILworc2VkIC1pIC1lICdzL2xpYjogLyYlJXtzdGF0aWM6JSVlSmF2 YSBwcm9ncmFtcyBjYW5ub3QgYmUgbGlua2VkIHN0YXRpY2FsbHl9LycgXAorICAkRlVMTFBBVEgv bGliZ2NqLnNwZWMKKyVlbmRpZgorCitta2RpciAtcCAkUlBNX0JVSUxEX1JPT1QvJXtfbGlifQor bXYgLWYgJFJQTV9CVUlMRF9ST09UJXtfcHJlZml4fS8le19saWJ9L2xpYmdjY19zLnNvLjEgJFJQ TV9CVUlMRF9ST09ULyV7X2xpYn0vbGliZ2NjX3MtJXtnY2NfdmVyc2lvbn0tJXtEQVRFfS5zby4x CitjaG1vZCA3NTUgJFJQTV9CVUlMRF9ST09ULyV7X2xpYn0vbGliZ2NjX3MtJXtnY2NfdmVyc2lv bn0tJXtEQVRFfS5zby4xCitsbiAtc2YgbGliZ2NjX3MtJXtnY2NfdmVyc2lvbn0tJXtEQVRFfS5z by4xICRSUE1fQlVJTERfUk9PVC8le19saWJ9L2xpYmdjY19zLnNvLjEKK2xuIC1zZiAvJXtfbGli fS9saWJnY2Nfcy5zby4xICRGVUxMUEFUSC9saWJnY2Nfcy5zbworJWlmYXJjaCBzcGFyY3Y5IHBw YworbG4gLXNmIC9saWI2NC9saWJnY2Nfcy5zby4xICRGVUxMUEFUSC82NC9saWJnY2Nfcy5zbwor JWVuZGlmCislaWZhcmNoICV7bXVsdGlsaWJfNjRfYXJjaHN9CitsbiAtc2YgL2xpYi9saWJnY2Nf cy5zby4xICRGVUxMUEFUSC8zMi9saWJnY2Nfcy5zbworJWVuZGlmCisKK212IC1mICRSUE1fQlVJ TERfUk9PVCV7X3ByZWZpeH0vJXtfbGlifS9saWJnb21wLnNwZWMgJEZVTExQQVRILworCislaWYg JXtidWlsZF9hZGF9CittdiAtZiAkRlVMTFBBVEgvYWRhbGliL2xpYmduYXJsLSouc28gJFJQTV9C VUlMRF9ST09UJXtfcHJlZml4fS8le19saWJ9LworbXYgLWYgJEZVTExQQVRIL2FkYWxpYi9saWJn bmF0LSouc28gJFJQTV9CVUlMRF9ST09UJXtfcHJlZml4fS8le19saWJ9Lworcm0gLWYgJEZVTExQ QVRIL2FkYWxpYi9saWJnbmFybC5zbyogJEZVTExQQVRIL2FkYWxpYi9saWJnbmF0LnNvKgorJWVu ZGlmCisKK21rZGlyIC1wICRSUE1fQlVJTERfUk9PVCV7X3ByZWZpeH0vbGliZXhlYy9nZXRjb25m CitpZiBnY2MveGdjYyAtQiBnY2MvIC1FIC1kRCAteGMgL2Rldi9udWxsIHwgZ3JlcCBfX0xPTkdf TUFYX18uKjIxNDc0ODM2NDc7IHRoZW4KKyAgbG4gLXNmIFBPU0lYX1Y2X0lMUDMyX09GRjMyICRS UE1fQlVJTERfUk9PVCV7X3ByZWZpeH0vbGliZXhlYy9nZXRjb25mL2RlZmF1bHQKK2Vsc2UKKyAg bG4gLXNmIFBPU0lYX1Y2X0xQNjRfT0ZGNjQgJFJQTV9CVUlMRF9ST09UJXtfcHJlZml4fS9saWJl eGVjL2dldGNvbmYvZGVmYXVsdAorZmkKKworJWlmICV7YnVpbGRfamF2YX0KK3B1c2hkIC4uL2Zh c3RqYXItJXtmYXN0amFyX3Zlcn0vb2JqLSV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0KK21ha2UgaW5z dGFsbCBERVNURElSPSRSUE1fQlVJTERfUk9PVAorcG9wZAorCitpZiBbICIle19saWJ9IiAhPSAi bGliIiBdOyB0aGVuCisgIG1rZGlyIC1wICRSUE1fQlVJTERfUk9PVCV7X3ByZWZpeH0vJXtfbGli fS9wa2djb25maWcKKyAgc2VkICcvXmxpYmRpci9zL2xpYiQvJXtfbGlifS8nICRSUE1fQlVJTERf Uk9PVCV7X3ByZWZpeH0vbGliL3BrZ2NvbmZpZy9saWJnY2otKi5wYyBcCisgICAgPiAkUlBNX0JV SUxEX1JPT1Qle19wcmVmaXh9LyV7X2xpYn0vcGtnY29uZmlnL2BiYXNlbmFtZSAkUlBNX0JVSUxE X1JPT1Qle19wcmVmaXh9L2xpYi9wa2djb25maWcvbGliZ2NqLSoucGNgCitmaQorJWVuZGlmCisK K3B1c2hkICRGVUxMUEFUSAoraWYgWyAiJXtfbGlifSIgPSAibGliIiBdOyB0aGVuCitsbiAtc2Yg Li4vLi4vLi4vbGlib2JqYy5zby4yIGxpYm9iamMuc28KK2xuIC1zZiAuLi8uLi8uLi9saWJzdGRj Kysuc28uNi4qIGxpYnN0ZGMrKy5zbworbG4gLXNmIC4uLy4uLy4uL2xpYmdmb3J0cmFuLnNvLjMu KiBsaWJnZm9ydHJhbi5zbworbG4gLXNmIC4uLy4uLy4uL2xpYmdvbXAuc28uMS4qIGxpYmdvbXAu c28KK2xuIC1zZiAuLi8uLi8uLi9saWJtdWRmbGFwLnNvLjAuKiBsaWJtdWRmbGFwLnNvCitsbiAt c2YgLi4vLi4vLi4vbGlibXVkZmxhcHRoLnNvLjAuKiBsaWJtdWRmbGFwdGguc28KKyVpZiAle2J1 aWxkX2phdmF9CitsbiAtc2YgLi4vLi4vLi4vbGliZ2NqLnNvLjEwLiogbGliZ2NqLnNvCitsbiAt c2YgLi4vLi4vLi4vbGliZ2NqLXRvb2xzLnNvLjEwLiogbGliZ2NqLXRvb2xzLnNvCitsbiAtc2Yg Li4vLi4vLi4vbGliZ2lqLnNvLjEwLiogbGliZ2lqLnNvCislZW5kaWYKK2Vsc2UKK2xuIC1zZiAu Li8uLi8uLi8uLi8le19saWJ9L2xpYm9iamMuc28uMiBsaWJvYmpjLnNvCitsbiAtc2YgLi4vLi4v Li4vLi4vJXtfbGlifS9saWJzdGRjKysuc28uNi4qIGxpYnN0ZGMrKy5zbworbG4gLXNmIC4uLy4u Ly4uLy4uLyV7X2xpYn0vbGliZ2ZvcnRyYW4uc28uMy4qIGxpYmdmb3J0cmFuLnNvCitsbiAtc2Yg Li4vLi4vLi4vLi4vJXtfbGlifS9saWJnb21wLnNvLjEuKiBsaWJnb21wLnNvCitsbiAtc2YgLi4v Li4vLi4vLi4vJXtfbGlifS9saWJtdWRmbGFwLnNvLjAuKiBsaWJtdWRmbGFwLnNvCitsbiAtc2Yg Li4vLi4vLi4vLi4vJXtfbGlifS9saWJtdWRmbGFwdGguc28uMC4qIGxpYm11ZGZsYXB0aC5zbwor JWlmICV7YnVpbGRfamF2YX0KK2xuIC1zZiAuLi8uLi8uLi8uLi8le19saWJ9L2xpYmdjai5zby4x MC4qIGxpYmdjai5zbworbG4gLXNmIC4uLy4uLy4uLy4uLyV7X2xpYn0vbGliZ2NqLXRvb2xzLnNv LjEwLiogbGliZ2NqLXRvb2xzLnNvCitsbiAtc2YgLi4vLi4vLi4vLi4vJXtfbGlifS9saWJnaWou c28uMTAuKiBsaWJnaWouc28KKyVlbmRpZgorZmkKKyVpZiAle2J1aWxkX2phdmF9CittdiAtZiAk UlBNX0JVSUxEX1JPT1Qle19wcmVmaXh9LyV7X2xpYn0vbGliZ2NqX2JjLnNvICRGVUxMTFBBVEgv CislZW5kaWYKK212IC1mICRSUE1fQlVJTERfUk9PVCV7X3ByZWZpeH0vJXtfbGlifS9saWJzdGRj KysuKmEgJEZVTExMUEFUSC8KK212IC1mICRSUE1fQlVJTERfUk9PVCV7X3ByZWZpeH0vJXtfbGli fS9saWJzdXBjKysuKmEgLgorbXYgLWYgJFJQTV9CVUlMRF9ST09UJXtfcHJlZml4fS8le19saWJ9 L2xpYmdmb3J0cmFuLiphIC4KK212IC1mICRSUE1fQlVJTERfUk9PVCV7X3ByZWZpeH0vJXtfbGli fS9saWJvYmpjLiphIC4KK212IC1mICRSUE1fQlVJTERfUk9PVCV7X3ByZWZpeH0vJXtfbGlifS9s aWJnb21wLiphIC4KK212IC1mICRSUE1fQlVJTERfUk9PVCV7X3ByZWZpeH0vJXtfbGlifS9saWJt dWRmbGFweyx0aH0uKmEgJEZVTExMUEFUSC8KKworJWlmICV7YnVpbGRfYWRhfQorJWlmYXJjaCBz cGFyY3Y5IHBwYworcm0gLXJmICRGVUxMUEFUSC82NC9hZGF7aW5jbHVkZSxsaWJ9CislZW5kaWYK KyVpZmFyY2ggJXttdWx0aWxpYl82NF9hcmNoc30KK3JtIC1yZiAkRlVMTFBBVEgvMzIvYWRhe2lu Y2x1ZGUsbGlifQorJWVuZGlmCitpZiBbICIkRlVMTFBBVEgiICE9ICIkRlVMTExQQVRIIiBdOyB0 aGVuCittdiAtZiAkRlVMTFBBVEgvYWRhe2luY2x1ZGUsbGlifSAkRlVMTExQQVRILworcHVzaGQg JEZVTExMUEFUSC9hZGFsaWIKK2lmIFsgIiV7X2xpYn0iID0gImxpYiIgXTsgdGhlbgorbG4gLXNm IC4uLy4uLy4uLy4uLy4uL2xpYmduYXJsLSouc28gbGliZ25hcmwuc28KK2xuIC1zZiAuLi8uLi8u Li8uLi8uLi9saWJnbmFybC0qLnNvIGxpYmduYXJsLTQuNC5zbworbG4gLXNmIC4uLy4uLy4uLy4u Ly4uL2xpYmduYXQtKi5zbyBsaWJnbmF0LnNvCitsbiAtc2YgLi4vLi4vLi4vLi4vLi4vbGliZ25h dC0qLnNvIGxpYmduYXQtNC40LnNvCitlbHNlCitsbiAtc2YgLi4vLi4vLi4vLi4vLi4vLi4vJXtf bGlifS9saWJnbmFybC0qLnNvIGxpYmduYXJsLnNvCitsbiAtc2YgLi4vLi4vLi4vLi4vLi4vLi4v JXtfbGlifS9saWJnbmFybC0qLnNvIGxpYmduYXJsLTQuNC5zbworbG4gLXNmIC4uLy4uLy4uLy4u Ly4uLy4uLyV7X2xpYn0vbGliZ25hdC0qLnNvIGxpYmduYXQuc28KK2xuIC1zZiAuLi8uLi8uLi8u Li8uLi8uLi8le19saWJ9L2xpYmduYXQtKi5zbyBsaWJnbmF0LTQuNC5zbworZmkKK3BvcGQKK2Vs c2UKK3B1c2hkICRGVUxMUEFUSC9hZGFsaWIKK2lmIFsgIiV7X2xpYn0iID0gImxpYiIgXTsgdGhl bgorbG4gLXNmIC4uLy4uLy4uLy4uL2xpYmduYXJsLSouc28gbGliZ25hcmwuc28KK2xuIC1zZiAu Li8uLi8uLi8uLi9saWJnbmFybC0qLnNvIGxpYmduYXJsLTQuNC5zbworbG4gLXNmIC4uLy4uLy4u Ly4uL2xpYmduYXQtKi5zbyBsaWJnbmF0LnNvCitsbiAtc2YgLi4vLi4vLi4vLi4vbGliZ25hdC0q LnNvIGxpYmduYXQtNC40LnNvCitlbHNlCitsbiAtc2YgLi4vLi4vLi4vLi4vLi4vJXtfbGlifS9s aWJnbmFybC0qLnNvIGxpYmduYXJsLnNvCitsbiAtc2YgLi4vLi4vLi4vLi4vLi4vJXtfbGlifS9s aWJnbmFybC0qLnNvIGxpYmduYXJsLTQuNC5zbworbG4gLXNmIC4uLy4uLy4uLy4uLy4uLyV7X2xp Yn0vbGliZ25hdC0qLnNvIGxpYmduYXQuc28KK2xuIC1zZiAuLi8uLi8uLi8uLi8uLi8le19saWJ9 L2xpYmduYXQtKi5zbyBsaWJnbmF0LTQuNC5zbworZmkKK3BvcGQKK2ZpCislZW5kaWYKKworJWlm YXJjaCBzcGFyY3Y5IHBwYworbG4gLXNmIC4uLy4uLy4uLy4uLy4uL2xpYjY0L2xpYm9iamMuc28u MiA2NC9saWJvYmpjLnNvCitsbiAtc2YgLi4vYGVjaG8gLi4vLi4vLi4vLi4vbGliL2xpYnN0ZGMr Ky5zby42LiogfCBzZWQgc34vbGliL34vbGliNjQvfmAgNjQvbGlic3RkYysrLnNvCitsbiAtc2Yg Li4vYGVjaG8gLi4vLi4vLi4vLi4vbGliL2xpYmdmb3J0cmFuLnNvLjMuKiB8IHNlZCBzfi9saWIv fi9saWI2NC9+YCA2NC9saWJnZm9ydHJhbi5zbworbG4gLXNmIC4uL2BlY2hvIC4uLy4uLy4uLy4u L2xpYi9saWJnb21wLnNvLjEuKiB8IHNlZCBzfi9saWIvfi9saWI2NC9+YCA2NC9saWJnb21wLnNv CitybSAtZiBsaWJtdWRmbGFwLnNvIGxpYm11ZGZsYXB0aC5zbworZWNobyAnSU5QVVQgKCAle19w cmVmaXh9L2xpYi8nYGVjaG8gLi4vLi4vLi4vLi4vbGliL2xpYm11ZGZsYXAuc28uMC4qIHwgc2Vk ICdzLF4uKmxpYm0sbGlibSwnYCcgKScgPiBsaWJtdWRmbGFwLnNvCitlY2hvICdJTlBVVCAoICV7 X3ByZWZpeH0vbGliLydgZWNobyAuLi8uLi8uLi8uLi9saWIvbGlibXVkZmxhcHRoLnNvLjAuKiB8 IHNlZCAncyxeLipsaWJtLGxpYm0sJ2AnICknID4gbGlibXVkZmxhcHRoLnNvCitlY2hvICdJTlBV VCAoICV7X3ByZWZpeH0vbGliNjQvJ2BlY2hvIC4uLy4uLy4uLy4uL2xpYi9saWJtdWRmbGFwLnNv LjAuKiB8IHNlZCAncyxeLipsaWJtLGxpYm0sJ2AnICknID4gNjQvbGlibXVkZmxhcC5zbworZWNo byAnSU5QVVQgKCAle19wcmVmaXh9L2xpYjY0LydgZWNobyAuLi8uLi8uLi8uLi9saWIvbGlibXVk ZmxhcHRoLnNvLjAuKiB8IHNlZCAncyxeLipsaWJtLGxpYm0sJ2AnICknID4gNjQvbGlibXVkZmxh cHRoLnNvCislaWYgJXtidWlsZF9qYXZhfQorbG4gLXNmIC4uL2BlY2hvIC4uLy4uLy4uLy4uL2xp Yi9saWJnY2ouc28uMTAuKiB8IHNlZCBzfi9saWIvfi9saWI2NC9+YCA2NC9saWJnY2ouc28KK2xu IC1zZiAuLi9gZWNobyAuLi8uLi8uLi8uLi9saWIvbGliZ2NqLXRvb2xzLnNvLjEwLiogfCBzZWQg c34vbGliL34vbGliNjQvfmAgNjQvbGliZ2NqLXRvb2xzLnNvCitsbiAtc2YgLi4vYGVjaG8gLi4v Li4vLi4vLi4vbGliL2xpYmdpai5zby4xMC4qIHwgc2VkIHN+L2xpYi9+L2xpYjY0L35gIDY0L2xp Ymdpai5zbworbG4gLXNmIGxpYjMyL2xpYmdjal9iYy5zbyBsaWJnY2pfYmMuc28KK2xuIC1zZiAu Li9saWI2NC9saWJnY2pfYmMuc28gNjQvbGliZ2NqX2JjLnNvCislZW5kaWYKK212IC1mICRSUE1f QlVJTERfUk9PVCV7X3ByZWZpeH0vbGliNjQvbGlic3VwYysrLiphIDY0LworbXYgLWYgJFJQTV9C VUlMRF9ST09UJXtfcHJlZml4fS9saWI2NC9saWJnZm9ydHJhbi4qYSA2NC8KK212IC1mICRSUE1f QlVJTERfUk9PVCV7X3ByZWZpeH0vbGliNjQvbGlib2JqYy4qYSA2NC8KK212IC1mICRSUE1fQlVJ TERfUk9PVCV7X3ByZWZpeH0vbGliNjQvbGliZ29tcC4qYSA2NC8KK2xuIC1zZiBsaWIzMi9saWJz dGRjKysuYSBsaWJzdGRjKysuYQorbG4gLXNmIC4uL2xpYjY0L2xpYnN0ZGMrKy5hIDY0L2xpYnN0 ZGMrKy5hCitsbiAtc2YgbGliMzIvbGlibXVkZmxhcC5hIGxpYm11ZGZsYXAuYQorbG4gLXNmIC4u L2xpYjY0L2xpYm11ZGZsYXAuYSA2NC9saWJtdWRmbGFwLmEKK2xuIC1zZiBsaWIzMi9saWJtdWRm bGFwdGguYSBsaWJtdWRmbGFwdGguYQorbG4gLXNmIC4uL2xpYjY0L2xpYm11ZGZsYXB0aC5hIDY0 L2xpYm11ZGZsYXB0aC5hCislaWYgJXtidWlsZF9hZGF9CitsbiAtc2YgbGliMzIvYWRhaW5jbHVk ZSBhZGFpbmNsdWRlCitsbiAtc2YgLi4vbGliNjQvYWRhaW5jbHVkZSA2NC9hZGFpbmNsdWRlCits biAtc2YgbGliMzIvYWRhbGliIGFkYWxpYgorbG4gLXNmIC4uL2xpYjY0L2FkYWxpYiA2NC9hZGFs aWIKKyVlbmRpZgorJWVuZGlmCislaWZhcmNoICV7bXVsdGlsaWJfNjRfYXJjaHN9Citta2RpciAt cCAzMgorbG4gLXNmIC4uLy4uLy4uLy4uL2xpYm9iamMuc28uMiAzMi9saWJvYmpjLnNvCitsbiAt c2YgLi4vYGVjaG8gLi4vLi4vLi4vLi4vbGliNjQvbGlic3RkYysrLnNvLjYuKiB8IHNlZCBzfi8u Li9saWI2NC9+L35gIDMyL2xpYnN0ZGMrKy5zbworbG4gLXNmIC4uL2BlY2hvIC4uLy4uLy4uLy4u L2xpYjY0L2xpYmdmb3J0cmFuLnNvLjMuKiB8IHNlZCBzfi8uLi9saWI2NC9+L35gIDMyL2xpYmdm b3J0cmFuLnNvCitsbiAtc2YgLi4vYGVjaG8gLi4vLi4vLi4vLi4vbGliNjQvbGliZ29tcC5zby4x LiogfCBzZWQgc34vLi4vbGliNjQvfi9+YCAzMi9saWJnb21wLnNvCitybSAtZiBsaWJtdWRmbGFw LnNvIGxpYm11ZGZsYXB0aC5zbworZWNobyAnSU5QVVQgKCAle19wcmVmaXh9L2xpYjY0LydgZWNo byAuLi8uLi8uLi8uLi9saWI2NC9saWJtdWRmbGFwLnNvLjAuKiB8IHNlZCAncyxeLipsaWJtLGxp Ym0sJ2AnICknID4gbGlibXVkZmxhcC5zbworZWNobyAnSU5QVVQgKCAle19wcmVmaXh9L2xpYjY0 LydgZWNobyAuLi8uLi8uLi8uLi9saWI2NC9saWJtdWRmbGFwdGguc28uMC4qIHwgc2VkICdzLF4u KmxpYm0sbGlibSwnYCcgKScgPiBsaWJtdWRmbGFwdGguc28KK2VjaG8gJ0lOUFVUICggJXtfcHJl Zml4fS9saWIvJ2BlY2hvIC4uLy4uLy4uLy4uL2xpYjY0L2xpYm11ZGZsYXAuc28uMC4qIHwgc2Vk ICdzLF4uKmxpYm0sbGlibSwnYCcgKScgPiAzMi9saWJtdWRmbGFwLnNvCitlY2hvICdJTlBVVCAo ICV7X3ByZWZpeH0vbGliLydgZWNobyAuLi8uLi8uLi8uLi9saWI2NC9saWJtdWRmbGFwdGguc28u MC4qIHwgc2VkICdzLF4uKmxpYm0sbGlibSwnYCcgKScgPiAzMi9saWJtdWRmbGFwdGguc28KKyVp ZiAle2J1aWxkX2phdmF9CitsbiAtc2YgLi4vYGVjaG8gLi4vLi4vLi4vLi4vbGliNjQvbGliZ2Nq LnNvLjEwLiogfCBzZWQgc34vLi4vbGliNjQvfi9+YCAzMi9saWJnY2ouc28KK2xuIC1zZiAuLi9g ZWNobyAuLi8uLi8uLi8uLi9saWI2NC9saWJnY2otdG9vbHMuc28uMTAuKiB8IHNlZCBzfi8uLi9s aWI2NC9+L35gIDMyL2xpYmdjai10b29scy5zbworbG4gLXNmIC4uL2BlY2hvIC4uLy4uLy4uLy4u L2xpYjY0L2xpYmdpai5zby4xMC4qIHwgc2VkIHN+Ly4uL2xpYjY0L34vfmAgMzIvbGliZ2lqLnNv CislZW5kaWYKK212IC1mICRSUE1fQlVJTERfUk9PVCV7X3ByZWZpeH0vbGliL2xpYnN1cGMrKy4q YSAzMi8KK212IC1mICRSUE1fQlVJTERfUk9PVCV7X3ByZWZpeH0vbGliL2xpYmdmb3J0cmFuLiph IDMyLworbXYgLWYgJFJQTV9CVUlMRF9ST09UJXtfcHJlZml4fS9saWIvbGlib2JqYy4qYSAzMi8K K212IC1mICRSUE1fQlVJTERfUk9PVCV7X3ByZWZpeH0vbGliL2xpYmdvbXAuKmEgMzIvCislZW5k aWYKKyVpZmFyY2ggc3BhcmM2NCBwcGM2NAorbG4gLXNmIC4uL2xpYjMyL2xpYnN0ZGMrKy5hIDMy L2xpYnN0ZGMrKy5hCitsbiAtc2YgbGliNjQvbGlic3RkYysrLmEgbGlic3RkYysrLmEKK2xuIC1z ZiAuLi9saWIzMi9saWJtdWRmbGFwLmEgMzIvbGlibXVkZmxhcC5hCitsbiAtc2YgbGliNjQvbGli bXVkZmxhcC5hIGxpYm11ZGZsYXAuYQorbG4gLXNmIC4uL2xpYjMyL2xpYm11ZGZsYXB0aC5hIDMy L2xpYm11ZGZsYXB0aC5hCitsbiAtc2YgbGliNjQvbGlibXVkZmxhcHRoLmEgbGlibXVkZmxhcHRo LmEKKyVpZiAle2J1aWxkX2phdmF9CitsbiAtc2YgLi4vbGliMzIvbGliZ2NqX2JjLnNvIDMyL2xp Ymdjal9iYy5zbworbG4gLXNmIGxpYjY0L2xpYmdjal9iYy5zbyBsaWJnY2pfYmMuc28KKyVlbmRp ZgorJWlmICV7YnVpbGRfYWRhfQorbG4gLXNmIC4uL2xpYjMyL2FkYWluY2x1ZGUgMzIvYWRhaW5j bHVkZQorbG4gLXNmIGxpYjY0L2FkYWluY2x1ZGUgYWRhaW5jbHVkZQorbG4gLXNmIC4uL2xpYjMy L2FkYWxpYiAzMi9hZGFsaWIKK2xuIC1zZiBsaWI2NC9hZGFsaWIgYWRhbGliCislZW5kaWYKKyVl bHNlCislaWZhcmNoICV7bXVsdGlsaWJfNjRfYXJjaHN9CitsbiAtc2YgLi4vLi4vLi4vJXttdWx0 aWxpYl8zMl9hcmNofS0le192ZW5kb3J9LSV7X3RhcmdldF9vc30vJXtnY2NfdmVyc2lvbn0vbGli c3RkYysrLmEgMzIvbGlic3RkYysrLmEKK2xuIC1zZiAuLi8uLi8uLi8le211bHRpbGliXzMyX2Fy Y2h9LSV7X3ZlbmRvcn0tJXtfdGFyZ2V0X29zfS8le2djY192ZXJzaW9ufS9saWJtdWRmbGFwLmEg MzIvbGlibXVkZmxhcC5hCitsbiAtc2YgLi4vLi4vLi4vJXttdWx0aWxpYl8zMl9hcmNofS0le192 ZW5kb3J9LSV7X3RhcmdldF9vc30vJXtnY2NfdmVyc2lvbn0vbGlibXVkZmxhcHRoLmEgMzIvbGli bXVkZmxhcHRoLmEKKyVpZiAle2J1aWxkX2phdmF9CitsbiAtc2YgLi4vLi4vLi4vJXttdWx0aWxp Yl8zMl9hcmNofS0le192ZW5kb3J9LSV7X3RhcmdldF9vc30vJXtnY2NfdmVyc2lvbn0vbGliZ2Nq X2JjLnNvIDMyL2xpYmdjal9iYy5zbworJWVuZGlmCislaWYgJXtidWlsZF9hZGF9CitsbiAtc2Yg Li4vLi4vLi4vJXttdWx0aWxpYl8zMl9hcmNofS0le192ZW5kb3J9LSV7X3RhcmdldF9vc30vJXtn Y2NfdmVyc2lvbn0vYWRhaW5jbHVkZSAzMi9hZGFpbmNsdWRlCitsbiAtc2YgLi4vLi4vLi4vJXtt dWx0aWxpYl8zMl9hcmNofS0le192ZW5kb3J9LSV7X3RhcmdldF9vc30vJXtnY2NfdmVyc2lvbn0v YWRhbGliIDMyL2FkYWxpYgorJWVuZGlmCislZW5kaWYKKyVlbmRpZgorCisjIFN0cmlwIGRlYnVn IGluZm8gZnJvbSBGb3J0cmFuL09iakMvSmF2YSBzdGF0aWMgbGlicmFyaWVzCitzdHJpcCAtZyBg ZmluZCAuIFwoIC1uYW1lIGxpYmdmb3J0cmFuLmEgLW8gLW5hbWUgbGlib2JqYy5hIC1vIC1uYW1l IGxpYmdvbXAuYSBcCisJCSAgICAtbyAtbmFtZSBsaWJtdWRmbGFwLmEgLW8gLW5hbWUgbGlibXVk ZmxhcHRoLmEgXAorCQkgICAgLW8gLW5hbWUgbGliZ2NjLmEgLW8gLW5hbWUgbGliZ2Nvdi5hIFwp IC1hIC10eXBlIGZgCitwb3BkCitjaG1vZCA3NTUgJFJQTV9CVUlMRF9ST09UJXtfcHJlZml4fS8l e19saWJ9L2xpYmdmb3J0cmFuLnNvLjMuKgorY2htb2QgNzU1ICRSUE1fQlVJTERfUk9PVCV7X3By ZWZpeH0vJXtfbGlifS9saWJnb21wLnNvLjEuKgorY2htb2QgNzU1ICRSUE1fQlVJTERfUk9PVCV7 X3ByZWZpeH0vJXtfbGlifS9saWJtdWRmbGFweyx0aH0uc28uMC4qCitjaG1vZCA3NTUgJFJQTV9C VUlMRF9ST09UJXtfcHJlZml4fS8le19saWJ9L2xpYm9iamMuc28uMi4qCisKKyVpZiAle2J1aWxk X2FkYX0KK2NobW9kIDc1NSAkUlBNX0JVSUxEX1JPT1Qle19wcmVmaXh9LyV7X2xpYn0vbGliZ25h cmwqc28qCitjaG1vZCA3NTUgJFJQTV9CVUlMRF9ST09UJXtfcHJlZml4fS8le19saWJ9L2xpYmdu YXQqc28qCislZW5kaWYKKworbXYgJEZVTExQQVRIL2luY2x1ZGUtZml4ZWQvc3lzbGltaXRzLmgg JEZVTExQQVRIL2luY2x1ZGUvc3lzbGltaXRzLmgKK212ICRGVUxMUEFUSC9pbmNsdWRlLWZpeGVk L2xpbWl0cy5oICRGVUxMUEFUSC9pbmNsdWRlL2xpbWl0cy5oCitmb3IgaCBpbiBgZmluZCAkRlVM TFBBVEgvaW5jbHVkZSAtbmFtZSBcKi5oYDsgZG8KKyAgaWYgZ3JlcCAtcSAnSXQgaGFzIGJlZW4g YXV0by1lZGl0ZWQgYnkgZml4aW5jbHVkZXMgZnJvbScgJGg7IHRoZW4KKyAgICByaD1gZ3JlcCAt QTIgJ0l0IGhhcyBiZWVuIGF1dG8tZWRpdGVkIGJ5IGZpeGluY2x1ZGVzIGZyb20nICRoIHwgdGFp bCAtMSB8IHNlZCAnc3xeLioiXCguKlwpIi4qJHxcMXwnYAorICAgIGRpZmYgLXVwICRyaCAkaCB8 fCA6CisgICAgcm0gLWYgJGgKKyAgZmkKK2RvbmUKKworY2F0ID4gJFJQTV9CVUlMRF9ST09UJXtf cHJlZml4fS9iaW4vYzg5IDw8IkVPRiIKKyMhL2Jpbi9zaAorZmw9Ii1zdGQ9Yzg5IgorZm9yIG9w dDsgZG8KKyAgY2FzZSAiJG9wdCIgaW4KKyAgICAtYW5zaXwtc3RkPWM4OXwtc3RkPWlzbzk4OTk6 MTk5MCkgZmw9IiI7OworICAgIC1zdGQ9KikgZWNobyAiYGJhc2VuYW1lICQwYCBjYWxsZWQgd2l0 aCBub24gQU5TSS9JU08gQyBvcHRpb24gJG9wdCIgPiYyCisJICAgIGV4aXQgMTs7CisgIGVzYWMK K2RvbmUKK2V4ZWMgZ2NjICRmbCAkezErIiRAIn0KK0VPRgorY2F0ID4gJFJQTV9CVUlMRF9ST09U JXtfcHJlZml4fS9iaW4vYzk5IDw8IkVPRiIKKyMhL2Jpbi9zaAorZmw9Ii1zdGQ9Yzk5IgorZm9y IG9wdDsgZG8KKyAgY2FzZSAiJG9wdCIgaW4KKyAgICAtc3RkPWM5OXwtc3RkPWlzbzk4OTk6MTk5 OSkgZmw9IiI7OworICAgIC1zdGQ9KikgZWNobyAiYGJhc2VuYW1lICQwYCBjYWxsZWQgd2l0aCBu b24gSVNPIEM5OSBvcHRpb24gJG9wdCIgPiYyCisJICAgIGV4aXQgMTs7CisgIGVzYWMKK2RvbmUK K2V4ZWMgZ2NjICRmbCAkezErIiRAIn0KK0VPRgorY2htb2QgNzU1ICRSUE1fQlVJTERfUk9PVCV7 X3ByZWZpeH0vYmluL2M/OQorCitta2RpciAtcCAkUlBNX0JVSUxEX1JPT1Qle19wcmVmaXh9L3Ni aW4KK2djYyAtc3RhdGljIC1PcyAle1NPVVJDRTF9IC1vICRSUE1fQlVJTERfUk9PVCV7X3ByZWZp eH0vc2Jpbi9saWJnY2NfcG9zdF91cGdyYWRlCitzdHJpcCAkUlBNX0JVSUxEX1JPT1Qle19wcmVm aXh9L3NiaW4vbGliZ2NjX3Bvc3RfdXBncmFkZQorCitjZCAuLgorJWZpbmRfbGFuZyAle25hbWV9 CislZmluZF9sYW5nIGNwcGxpYgorCisjIFJlbW92ZSBiaW5hcmllcyB3ZSB3aWxsIG5vdCBiZSBp bmNsdWRpbmcsIHNvIHRoYXQgdGhleSBkb24ndCBlbmQgdXAgaW4KKyMgZ2NjLWRlYnVnaW5mbwor cm0gLWYgJFJQTV9CVUlMRF9ST09UJXtfcHJlZml4fS8le19saWJ9L3tsaWJmZmkqLGxpYmliZXJ0 eS5hfQorcm0gLWYgJEZVTExFUEFUSC9pbnN0YWxsLXRvb2xzL3tta2hlYWRlcnMsZml4aW5jbH0K K3JtIC1mICRSUE1fQlVJTERfUk9PVCV7X3ByZWZpeH0vbGliL3szMiw2NH0vbGliaWJlcnR5LmEK K3JtIC1mICRSUE1fQlVJTERfUk9PVCV7X3ByZWZpeH0vJXtfbGlifS9saWJzc3AqCitybSAtZiAk UlBNX0JVSUxEX1JPT1Qle19wcmVmaXh9L2Jpbi9nbmF0aXZlMmFzY2lpCisKKyVpZmFyY2ggJXtt dWx0aWxpYl82NF9hcmNoc30KKyMgUmVtb3ZlIGxpYnJhcmllcyBmb3IgdGhlIG90aGVyIGFyY2gg b24gbXVsdGlsaWIgYXJjaGVzCitybSAtZiAkUlBNX0JVSUxEX1JPT1Qle19wcmVmaXh9L2xpYi9s aWIqLnNvKgorcm0gLWYgJFJQTV9CVUlMRF9ST09UJXtfcHJlZml4fS9saWIvbGliKi5hCislZWxz ZQorJWlmYXJjaCBzcGFyY3Y5IHBwYworcm0gLWYgJFJQTV9CVUlMRF9ST09UJXtfcHJlZml4fS9s aWI2NC9saWIqLnNvKgorcm0gLWYgJFJQTV9CVUlMRF9ST09UJXtfcHJlZml4fS9saWI2NC9saWIq LmEKKyVlbmRpZgorJWVuZGlmCisKKyVpZiAle2J1aWxkX2phdmF9Citta2RpciAtcCAkUlBNX0JV SUxEX1JPT1Qle19wcmVmaXh9L3NoYXJlL2phdmEvZ2NqLWVuZG9yc2VkIFwKKwkgJFJQTV9CVUlM RF9ST09UJXtfcHJlZml4fS8le19saWJ9L2djai0le3ZlcnNpb259L2NsYXNzbWFwLmRiLmQKK2No bW9kIDc1NSAkUlBNX0JVSUxEX1JPT1Qle19wcmVmaXh9L3NoYXJlL2phdmEvZ2NqLWVuZG9yc2Vk IFwKKwkgICRSUE1fQlVJTERfUk9PVCV7X3ByZWZpeH0vJXtfbGlifS9nY2otJXt2ZXJzaW9ufSBc CisJICAkUlBNX0JVSUxEX1JPT1Qle19wcmVmaXh9LyV7X2xpYn0vZ2NqLSV7dmVyc2lvbn0vY2xh c3NtYXAuZGIuZAordG91Y2ggJFJQTV9CVUlMRF9ST09UJXtfcHJlZml4fS8le19saWJ9L2djai0l e3ZlcnNpb259L2NsYXNzbWFwLmRiCislZW5kaWYKKworaW5zdGFsbCAtbTY0NCAle1NPVVJDRTN9 ICRSUE1fQlVJTERfUk9PVCV7X21hbmRpcn0vbWFuMS9wcm90b2l6ZS4xCitlY2hvICcuc28gbWFu MS9wcm90b2l6ZS4xJyA+ICRSUE1fQlVJTERfUk9PVCV7X21hbmRpcn0vbWFuMS91bnByb3RvaXpl LjEKK2NobW9kIDY0NCAkUlBNX0JVSUxEX1JPT1Qle19tYW5kaXJ9L21hbjEvdW5wcm90b2l6ZS4x CisKKyVjbGVhbgorcm0gLXJmICRSUE1fQlVJTERfUk9PVAorCislcG9zdAorL3NiaW4vaW5zdGFs bC1pbmZvIFwKKyAgLS1pbmZvLWRpcj0le19pbmZvZGlyfSAle19pbmZvZGlyfS9nY2MuaW5mby5n eiB8fCA6CisKKyVwcmV1bgoraWYgWyAkMSA9IDAgXTsgdGhlbgorICAvc2Jpbi9pbnN0YWxsLWlu Zm8gLS1kZWxldGUgXAorICAgIC0taW5mby1kaXI9JXtfaW5mb2Rpcn0gJXtfaW5mb2Rpcn0vZ2Nj LmluZm8uZ3ogfHwgOgorZmkKKworJXBvc3QgLW4gY3BwCisvc2Jpbi9pbnN0YWxsLWluZm8gXAor ICAtLWluZm8tZGlyPSV7X2luZm9kaXJ9ICV7X2luZm9kaXJ9L2NwcC5pbmZvLmd6IHx8IDoKKwor JXByZXVuIC1uIGNwcAoraWYgWyAkMSA9IDAgXTsgdGhlbgorICAvc2Jpbi9pbnN0YWxsLWluZm8g LS1kZWxldGUgXAorICAgIC0taW5mby1kaXI9JXtfaW5mb2Rpcn0gJXtfaW5mb2Rpcn0vY3BwLmlu Zm8uZ3ogfHwgOgorZmkKKworJXBvc3QgZ2ZvcnRyYW4KKy9zYmluL2luc3RhbGwtaW5mbyBcCisg IC0taW5mby1kaXI9JXtfaW5mb2Rpcn0gJXtfaW5mb2Rpcn0vZ2ZvcnRyYW4uaW5mby5neiB8fCA6 CisKKyVwcmV1biBnZm9ydHJhbgoraWYgWyAkMSA9IDAgXTsgdGhlbgorICAvc2Jpbi9pbnN0YWxs LWluZm8gLS1kZWxldGUgXAorICAgIC0taW5mby1kaXI9JXtfaW5mb2Rpcn0gJXtfaW5mb2Rpcn0v Z2ZvcnRyYW4uaW5mby5neiB8fCA6CitmaQorCislcG9zdCBqYXZhCisvc2Jpbi9pbnN0YWxsLWlu Zm8gXAorICAtLWluZm8tZGlyPSV7X2luZm9kaXJ9ICV7X2luZm9kaXJ9L2djai5pbmZvLmd6IHx8 IDoKKworJXByZXVuIGphdmEKK2lmIFsgJDEgPSAwIF07IHRoZW4KKyAgL3NiaW4vaW5zdGFsbC1p bmZvIC0tZGVsZXRlIFwKKyAgICAtLWluZm8tZGlyPSV7X2luZm9kaXJ9ICV7X2luZm9kaXJ9L2dj ai5pbmZvLmd6IHx8IDoKK2ZpCisKKyVwb3N0IGduYXQKKy9zYmluL2luc3RhbGwtaW5mbyBcCisg IC0taW5mby1kaXI9JXtfaW5mb2Rpcn0gJXtfaW5mb2Rpcn0vZ25hdF9ybS5pbmZvLmd6IHx8IDoK Ky9zYmluL2luc3RhbGwtaW5mbyBcCisgIC0taW5mby1kaXI9JXtfaW5mb2Rpcn0gJXtfaW5mb2Rp cn0vZ25hdF91Z25fdW53LmluZm8uZ3ogfHwgOgorL3NiaW4vaW5zdGFsbC1pbmZvIFwKKyAgLS1p bmZvLWRpcj0le19pbmZvZGlyfSAle19pbmZvZGlyfS9nbmF0LXN0eWxlLmluZm8uZ3ogfHwgOgor CislcHJldW4gZ25hdAoraWYgWyAkMSA9IDAgXTsgdGhlbgorICAvc2Jpbi9pbnN0YWxsLWluZm8g LS1kZWxldGUgXAorICAgIC0taW5mby1kaXI9JXtfaW5mb2Rpcn0gJXtfaW5mb2Rpcn0vZ25hdF9y bS5pbmZvLmd6IHx8IDoKKyAgL3NiaW4vaW5zdGFsbC1pbmZvIC0tZGVsZXRlIFwKKyAgICAtLWlu Zm8tZGlyPSV7X2luZm9kaXJ9ICV7X2luZm9kaXJ9L2duYXRfdWduX3Vudy5pbmZvLmd6IHx8IDoK KyAgL3NiaW4vaW5zdGFsbC1pbmZvIC0tZGVsZXRlIFwKKyAgICAtLWluZm8tZGlyPSV7X2luZm9k aXJ9ICV7X2luZm9kaXJ9L2duYXQtc3R5bGUuaW5mby5neiB8fCA6CitmaQorCisjIEJlY2F1c2Ug Z2xpYmMgUHJlcmVxJ3MgbGliZ2NjIGFuZCAvc2Jpbi9sZGNvbmZpZworIyBjb21lcyBmcm9tIGds aWJjLCBpdCBtaWdodCBub3QgZXhpc3QgeWV0IHdoZW4KKyMgbGliZ2NjIGlzIGluc3RhbGxlZAor JXBvc3QgLW4gbGliZ2NjIC1wICV7X3ByZWZpeH0vc2Jpbi9saWJnY2NfcG9zdF91cGdyYWRlCisK KyVwb3N0IC1uIGxpYnN0ZGMrKyAtcCAvc2Jpbi9sZGNvbmZpZworCislcG9zdHVuIC1uIGxpYnN0 ZGMrKyAtcCAvc2Jpbi9sZGNvbmZpZworCislcG9zdCAtbiBsaWJvYmpjIC1wIC9zYmluL2xkY29u ZmlnCisKKyVwb3N0dW4gLW4gbGlib2JqYyAtcCAvc2Jpbi9sZGNvbmZpZworCislcG9zdCAtbiBs aWJnY2oKKy9zYmluL2xkY29uZmlnCisvc2Jpbi9pbnN0YWxsLWluZm8gXAorICAtLWluZm8tZGly PSV7X2luZm9kaXJ9ICV7X2luZm9kaXJ9L2NwLXRvb2xzLmluZm8uZ3ogfHwgOgorL3NiaW4vaW5z dGFsbC1pbmZvIFwKKyAgLS1pbmZvLWRpcj0le19pbmZvZGlyfSAle19pbmZvZGlyfS9mYXN0amFy LmluZm8uZ3ogfHwgOgorCislcHJldW4gLW4gbGliZ2NqCitpZiBbICQxID0gMCBdOyB0aGVuCisg IC9zYmluL2luc3RhbGwtaW5mbyAtLWRlbGV0ZSBcCisgICAgLS1pbmZvLWRpcj0le19pbmZvZGly fSAle19pbmZvZGlyfS9jcC10b29scy5pbmZvLmd6IHx8IDoKKyAgL3NiaW4vaW5zdGFsbC1pbmZv IC0tZGVsZXRlIFwKKyAgICAtLWluZm8tZGlyPSV7X2luZm9kaXJ9ICV7X2luZm9kaXJ9L2Zhc3Rq YXIuaW5mby5neiB8fCA6CitmaQorCislcG9zdHVuIC1uIGxpYmdjaiAtcCAvc2Jpbi9sZGNvbmZp ZworCislcG9zdCAtbiBsaWJnZm9ydHJhbiAtcCAvc2Jpbi9sZGNvbmZpZworCislcG9zdHVuIC1u IGxpYmdmb3J0cmFuIC1wIC9zYmluL2xkY29uZmlnCisKKyVwb3N0IC1uIGxpYmduYXQgLXAgL3Ni aW4vbGRjb25maWcKKworJXBvc3R1biAtbiBsaWJnbmF0IC1wIC9zYmluL2xkY29uZmlnCisKKyVw b3N0IC1uIGxpYmdvbXAKKy9zYmluL2xkY29uZmlnCisvc2Jpbi9pbnN0YWxsLWluZm8gXAorICAt LWluZm8tZGlyPSV7X2luZm9kaXJ9ICV7X2luZm9kaXJ9L2xpYmdvbXAuaW5mby5neiB8fCA6CisK KyVwcmV1biAtbiBsaWJnb21wCitpZiBbICQxID0gMCBdOyB0aGVuCisgIC9zYmluL2luc3RhbGwt aW5mbyAtLWRlbGV0ZSBcCisgICAgLS1pbmZvLWRpcj0le19pbmZvZGlyfSAle19pbmZvZGlyfS9s aWJnb21wLmluZm8uZ3ogfHwgOgorZmkKKworJXBvc3R1biAtbiBsaWJnb21wIC1wIC9zYmluL2xk Y29uZmlnCisKKyVwb3N0IC1uIGxpYm11ZGZsYXAgLXAgL3NiaW4vbGRjb25maWcKKworJXBvc3R1 biAtbiBsaWJtdWRmbGFwIC1wIC9zYmluL2xkY29uZmlnCisKKyVmaWxlcyAtZiAle25hbWV9Lmxh bmcKKyVkZWZhdHRyKC0scm9vdCxyb290KQorJXtfcHJlZml4fS9iaW4vY2MKKyV7X3ByZWZpeH0v YmluL2M4OQorJXtfcHJlZml4fS9iaW4vYzk5Cisle19wcmVmaXh9L2Jpbi9nY2MKKyV7X3ByZWZp eH0vYmluL2djb3YKKyV7X3ByZWZpeH0vYmluL3Byb3RvaXplCisle19wcmVmaXh9L2Jpbi91bnBy b3RvaXplCislaWZhcmNoIHBwYworJXtfcHJlZml4fS9iaW4vJXtfdGFyZ2V0X3BsYXRmb3JtfS1n Y2MKKyVlbmRpZgorJWlmYXJjaCBzcGFyYzY0IHNwYXJjdjkKKyV7X3ByZWZpeH0vYmluL3NwYXJj LSV7X3ZlbmRvcn0tJXtfdGFyZ2V0X29zfS1nY2MKKyVlbmRpZgorJWlmYXJjaCBwcGM2NAorJXtf cHJlZml4fS9iaW4vcHBjLSV7X3ZlbmRvcn0tJXtfdGFyZ2V0X29zfS1nY2MKKyVlbmRpZgorJXtf cHJlZml4fS9iaW4vJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS1nY2MKKyV7X21hbmRpcn0vbWFuMS9n Y2MuMSoKKyV7X21hbmRpcn0vbWFuMS9nY292LjEqCisle19tYW5kaXJ9L21hbjEvcHJvdG9pemUu MSoKKyV7X21hbmRpcn0vbWFuMS91bnByb3RvaXplLjEqCisle19pbmZvZGlyfS9nY2MqCislZGly ICV7X3ByZWZpeH0vbGliL2djYworJWRpciAle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0 X3BsYXRmb3JtfQorJWRpciAle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3Jt fS8le2djY192ZXJzaW9ufQorJWRpciAle19wcmVmaXh9L2xpYmV4ZWMvZ2NjCislZGlyICV7X3By ZWZpeH0vbGliZXhlYy9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfQorJWRpciAle19wcmVmaXh9 L2xpYmV4ZWMvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0KKyVkaXIg JXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0v aW5jbHVkZQorJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2Nf dmVyc2lvbn0vU1lTQ0FMTFMuYy5YCisle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3Bs YXRmb3JtfS8le2djY192ZXJzaW9ufS9pbmNsdWRlL3N0ZGRlZi5oCisle19wcmVmaXh9L2xpYi9n Y2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9pbmNsdWRlL3N0ZGFyZy5o Cisle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9u fS9pbmNsdWRlL3N0ZGZpeC5oCisle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRm b3JtfS8le2djY192ZXJzaW9ufS9pbmNsdWRlL3ZhcmFyZ3MuaAorJXtfcHJlZml4fS9saWIvZ2Nj LyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vaW5jbHVkZS9mbG9hdC5oCisl e19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9p bmNsdWRlL2xpbWl0cy5oCisle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3Jt fS8le2djY192ZXJzaW9ufS9pbmNsdWRlL3N0ZGJvb2wuaAorJXtfcHJlZml4fS9saWIvZ2NjLyV7 Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vaW5jbHVkZS9pc282NDYuaAorJXtf cHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vaW5j bHVkZS9zeXNsaW1pdHMuaAorJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9y bX0vJXtnY2NfdmVyc2lvbn0vaW5jbHVkZS91bndpbmQuaAorJXtfcHJlZml4fS9saWIvZ2NjLyV7 Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vaW5jbHVkZS9vbXAuaAorJWlmYXJj aCAle2l4ODZ9IHg4Nl82NAorJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9y bX0vJXtnY2NfdmVyc2lvbn0vaW5jbHVkZS9tbWludHJpbi5oCisle19wcmVmaXh9L2xpYi9nY2Mv JXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9pbmNsdWRlL3htbWludHJpbi5o Cisle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9u fS9pbmNsdWRlL2VtbWludHJpbi5oCisle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3Bs YXRmb3JtfS8le2djY192ZXJzaW9ufS9pbmNsdWRlL3BtbWludHJpbi5oCisle19wcmVmaXh9L2xp Yi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9pbmNsdWRlL3RtbWlu dHJpbi5oCisle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192 ZXJzaW9ufS9pbmNsdWRlL2FtbWludHJpbi5oCisle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFy Z2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9pbmNsdWRlL3NtbWludHJpbi5oCisle19wcmVm aXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9pbmNsdWRl L25tbWludHJpbi5oCisle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8l e2djY192ZXJzaW9ufS9pbmNsdWRlL2JtbWludHJpbi5oCisle19wcmVmaXh9L2xpYi9nY2MvJXtn Y2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9pbmNsdWRlL3dtbWludHJpbi5oCisl e19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9p bmNsdWRlL2ltbWludHJpbi5oCisle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRm b3JtfS8le2djY192ZXJzaW9ufS9pbmNsdWRlL2F2eGludHJpbi5oCisle19wcmVmaXh9L2xpYi9n Y2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9pbmNsdWRlL3g4NmludHJp bi5oCisle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJz aW9ufS9pbmNsdWRlL21taW50cmluLWNvbW1vbi5oCisle19wcmVmaXh9L2xpYi9nY2MvJXtnY2Nf dGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9pbmNsdWRlL21tX21hbGxvYy5oCisle19w cmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9pbmNs dWRlL21tM2Rub3cuaAorJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0v JXtnY2NfdmVyc2lvbn0vaW5jbHVkZS9jcHVpZC5oCisle19wcmVmaXh9L2xpYi9nY2MvJXtnY2Nf dGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9pbmNsdWRlL2Nyb3NzLXN0ZGFyZy5oCisl ZW5kaWYKKyVpZmFyY2ggaWE2NAorJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0 Zm9ybX0vJXtnY2NfdmVyc2lvbn0vaW5jbHVkZS9pYTY0aW50cmluLmgKKyVlbmRpZgorJWlmYXJj aCBwcGMgcHBjNjQKKyV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7 Z2NjX3ZlcnNpb259L2luY2x1ZGUvcHBjLWFzbS5oCisle19wcmVmaXh9L2xpYi9nY2MvJXtnY2Nf dGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9pbmNsdWRlL2FsdGl2ZWMuaAorJXtfcHJl Zml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vaW5jbHVk ZS9zcGUuaAorJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2Nf dmVyc2lvbn0vaW5jbHVkZS9wYWlyZWQuaAorJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3Rhcmdl dF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vaW5jbHVkZS9wcHVfaW50cmluc2ljcy5oCisle19w cmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9pbmNs dWRlL3NpMnZteC5oCisle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8l e2djY192ZXJzaW9ufS9pbmNsdWRlL3NwdTJ2bXguaAorJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2Nj X3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vaW5jbHVkZS92ZWNfdHlwZXMuaAorJWVu ZGlmCisle19wcmVmaXh9L2xpYmV4ZWMvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2Nf dmVyc2lvbn0vY29sbGVjdDIKKyV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZv cm19LyV7Z2NjX3ZlcnNpb259L2NydCoubworJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3Rhcmdl dF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vbGliZ2NjLmEKKyV7X3ByZWZpeH0vbGliL2djYy8l e2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2xpYmdjb3YuYQorJXtfcHJlZml4 fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vbGliZ2NjX2Vo LmEKKyV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNp b259L2xpYmdjY19zLnNvCisle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3Jt fS8le2djY192ZXJzaW9ufS9saWJnb21wLnNwZWMKKyV7X3ByZWZpeH0vbGliL2djYy8le2djY190 YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2xpYmdvbXAuYQorJXtfcHJlZml4fS9saWIv Z2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vbGliZ29tcC5zbworJWlm YXJjaCBzcGFyY3Y5IHBwYworJWRpciAle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3Bs YXRmb3JtfS8le2djY192ZXJzaW9ufS82NAorJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3Rhcmdl dF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vNjQvY3J0Ki5vCisle19wcmVmaXh9L2xpYi9nY2Mv JXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS82NC9saWJnY2MuYQorJXtfcHJl Zml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vNjQvbGli Z2Nvdi5hCisle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192 ZXJzaW9ufS82NC9saWJnY2NfZWguYQorJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9w bGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vNjQvbGliZ2NjX3Muc28KKyV7X3ByZWZpeH0vbGliL2dj Yy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259LzY0L2xpYmdvbXAuYQorJXtf cHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vNjQv bGliZ29tcC5zbworJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtn Y2NfdmVyc2lvbn0vNjQvbGlibXVkZmxhcC5hCisle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFy Z2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS82NC9saWJtdWRmbGFwdGguYQorJXtfcHJlZml4 fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vNjQvbGlibXVk ZmxhcC5zbworJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2Nf dmVyc2lvbn0vNjQvbGlibXVkZmxhcHRoLnNvCislZW5kaWYKKyVpZmFyY2ggJXttdWx0aWxpYl82 NF9hcmNoc30KKyVkaXIgJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0v JXtnY2NfdmVyc2lvbn0vMzIKKyV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZv cm19LyV7Z2NjX3ZlcnNpb259LzMyL2NydCoubworJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3Rh cmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vMzIvbGliZ2NjLmEKKyV7X3ByZWZpeH0vbGli L2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259LzMyL2xpYmdjb3YuYQor JXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0v MzIvbGliZ2NjX2VoLmEKKyV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19 LyV7Z2NjX3ZlcnNpb259LzMyL2xpYmdjY19zLnNvCisle19wcmVmaXh9L2xpYi9nY2MvJXtnY2Nf dGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS8zMi9saWJnb21wLmEKKyV7X3ByZWZpeH0v bGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259LzMyL2xpYmdvbXAu c28KKyV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNp b259LzMyL2xpYm11ZGZsYXAuYQorJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0 Zm9ybX0vJXtnY2NfdmVyc2lvbn0vMzIvbGlibXVkZmxhcHRoLmEKKyV7X3ByZWZpeH0vbGliL2dj Yy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259LzMyL2xpYm11ZGZsYXAuc28K KyV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259 LzMyL2xpYm11ZGZsYXB0aC5zbworJWVuZGlmCislaWZhcmNoIHNwYXJjdjkgc3BhcmM2NCBwcGMg cHBjNjQKKyV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3Zl cnNpb259L2xpYm11ZGZsYXAuYQorJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0 Zm9ybX0vJXtnY2NfdmVyc2lvbn0vbGlibXVkZmxhcHRoLmEKKyV7X3ByZWZpeH0vbGliL2djYy8l e2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2xpYm11ZGZsYXAuc28KKyV7X3By ZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2xpYm11 ZGZsYXB0aC5zbworJWVuZGlmCislZGlyICV7X3ByZWZpeH0vbGliZXhlYy9nZXRjb25mCisle19w cmVmaXh9L2xpYmV4ZWMvZ2V0Y29uZi9kZWZhdWx0CislZG9jIGdjYy9SRUFETUUqIHJwbS5kb2Mv Y2hhbmdlbG9ncy9nY2MvQ2hhbmdlTG9nKiBnY2MvQ09QWUlORyoKKworJWZpbGVzIC1uIGNwcCAt ZiBjcHBsaWIubGFuZworJWRlZmF0dHIoLSxyb290LHJvb3QpCisvbGliL2NwcAorJXtfcHJlZml4 fS9iaW4vY3BwCisle19tYW5kaXJ9L21hbjEvY3BwLjEqCisle19pbmZvZGlyfS9jcHAqCislZGly ICV7X3ByZWZpeH0vbGliZXhlYy9nY2MKKyVkaXIgJXtfcHJlZml4fS9saWJleGVjL2djYy8le2dj Y190YXJnZXRfcGxhdGZvcm19CislZGlyICV7X3ByZWZpeH0vbGliZXhlYy9nY2MvJXtnY2NfdGFy Z2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufQorJXtfcHJlZml4fS9saWJleGVjL2djYy8le2dj Y190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2NjMQorCislZmlsZXMgLW4gbGliZ2Nj CislZGVmYXR0cigtLHJvb3Qscm9vdCkKKy8le19saWJ9L2xpYmdjY19zLSV7Z2NjX3ZlcnNpb259 LSV7REFURX0uc28uMQorLyV7X2xpYn0vbGliZ2NjX3Muc28uMQorJXtfcHJlZml4fS9zYmluL2xp YmdjY19wb3N0X3VwZ3JhZGUKKyVkb2MgZ2NjL0NPUFlJTkcuTElCCisKKyVmaWxlcyBjKysKKyVk ZWZhdHRyKC0scm9vdCxyb290KQorJXtfcHJlZml4fS9iaW4vJXtnY2NfdGFyZ2V0X3BsYXRmb3Jt fS0qKysKKyV7X3ByZWZpeH0vYmluL2crKworJXtfcHJlZml4fS9iaW4vYysrCisle19tYW5kaXJ9 L21hbjEvZysrLjEqCislZGlyICV7X3ByZWZpeH0vbGliL2djYworJWRpciAle19wcmVmaXh9L2xp Yi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfQorJWRpciAle19wcmVmaXh9L2xpYi9nY2MvJXtn Y2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufQorJWRpciAle19wcmVmaXh9L2xpYmV4 ZWMvZ2NjCislZGlyICV7X3ByZWZpeH0vbGliZXhlYy9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3Jt fQorJWRpciAle19wcmVmaXh9L2xpYmV4ZWMvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtn Y2NfdmVyc2lvbn0KKyV7X3ByZWZpeH0vbGliZXhlYy9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3Jt fS8le2djY192ZXJzaW9ufS9jYzFwbHVzCislaWZhcmNoIHNwYXJjdjkgcHBjCislZGlyICV7X3By ZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259LzY0Cisl e19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS82 NC9saWJzdGRjKysuc28KKyV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19 LyV7Z2NjX3ZlcnNpb259LzY0L2xpYnN0ZGMrKy5hCisle19wcmVmaXh9L2xpYi9nY2MvJXtnY2Nf dGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS82NC9saWJzdXBjKysuYQorJWVuZGlmCisl aWZhcmNoICV7bXVsdGlsaWJfNjRfYXJjaHN9CislZGlyICV7X3ByZWZpeH0vbGliL2djYy8le2dj Y190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259LzMyCisle19wcmVmaXh9L2xpYi9nY2Mv JXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS8zMi9saWJzdGRjKysuc28KKyV7 X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259LzMy L2xpYnN0ZGMrKy5hCisle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8l e2djY192ZXJzaW9ufS8zMi9saWJzdXBjKysuYQorJWVuZGlmCislaWZhcmNoIHNwYXJjdjkgcHBj ICV7bXVsdGlsaWJfNjRfYXJjaHN9Cisle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3Bs YXRmb3JtfS8le2djY192ZXJzaW9ufS9saWJzdGRjKysuc28KKyV7X3ByZWZpeH0vbGliL2djYy8l e2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2xpYnN1cGMrKy5hCislZW5kaWYK KyVpZmFyY2ggc3BhcmN2OSBzcGFyYzY0IHBwYyBwcGM2NAorJXtfcHJlZml4fS9saWIvZ2NjLyV7 Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vbGlic3RkYysrLmEKKyVlbmRpZgor JWRvYyBycG0uZG9jL2NoYW5nZWxvZ3MvZ2NjL2NwL0NoYW5nZUxvZyoKKworJWZpbGVzIC1uIGxp YnN0ZGMrKworJWRlZmF0dHIoLSxyb290LHJvb3QpCisle19wcmVmaXh9LyV7X2xpYn0vbGlic3Rk YysrLnNvLjYqCisKKyVmaWxlcyAtbiBsaWJzdGRjKystZGV2ZWwKKyVkZWZhdHRyKC0scm9vdCxy b290KQorJWRpciAle19wcmVmaXh9L2luY2x1ZGUvYysrCislZGlyICV7X3ByZWZpeH0vaW5jbHVk ZS9jKysvJXtnY2NfdmVyc2lvbn0KKyV7X3ByZWZpeH0vaW5jbHVkZS9jKysvJXtnY2NfdmVyc2lv bn0vW15nam9zXSoKKyV7X3ByZWZpeH0vaW5jbHVkZS9jKysvJXtnY2NfdmVyc2lvbn0vb3MqCisl e19wcmVmaXh9L2luY2x1ZGUvYysrLyV7Z2NjX3ZlcnNpb259L3NbXnVdKgorJWRpciAle19wcmVm aXh9L2xpYi9nY2MKKyVkaXIgJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9y bX0KKyVkaXIgJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2Nf dmVyc2lvbn0KKyVpZmFyY2ggc3BhcmN2OSBwcGMKKyVkaXIgJXtfcHJlZml4fS9saWIvZ2NjLyV7 Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vbGliMzIKKyV7X3ByZWZpeH0vbGli L2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2xpYjMyL2xpYnN0ZGMr Ky5hCislZW5kaWYKKyVpZmFyY2ggc3BhcmM2NCBwcGM2NAorJWRpciAle19wcmVmaXh9L2xpYi9n Y2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9saWI2NAorJXtfcHJlZml4 fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vbGliNjQvbGli c3RkYysrLmEKKyVlbmRpZgorJWlmbmFyY2ggc3BhcmN2OSBzcGFyYzY0IHBwYyBwcGM2NAorJXtf cHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vbGli c3RkYysrLmEKKyVlbmRpZgorJWlmbmFyY2ggc3BhcmN2OSBwcGMgJXttdWx0aWxpYl82NF9hcmNo c30KKyV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNp b259L2xpYnN0ZGMrKy5zbworJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9y bX0vJXtnY2NfdmVyc2lvbn0vbGlic3VwYysrLmEKKyVlbmRpZgorJWRvYyBycG0uZG9jL2NoYW5n ZWxvZ3MvbGlic3RkYysrLXYzL0NoYW5nZUxvZyogbGlic3RkYysrLXYzL1JFQURNRSogbGlic3Rk YysrLXYzL2RvYy9odG1sLworCislZmlsZXMgb2JqYworJWRlZmF0dHIoLSxyb290LHJvb3QpCisl ZGlyICV7X3ByZWZpeH0vbGliL2djYworJWRpciAle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFy Z2V0X3BsYXRmb3JtfQorJWRpciAle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRm b3JtfS8le2djY192ZXJzaW9ufQorJWRpciAle19wcmVmaXh9L2xpYmV4ZWMvZ2NjCislZGlyICV7 X3ByZWZpeH0vbGliZXhlYy9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfQorJWRpciAle19wcmVm aXh9L2xpYmV4ZWMvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0KKyVk aXIgJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lv bn0vaW5jbHVkZQorJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtn Y2NfdmVyc2lvbn0vaW5jbHVkZS9vYmpjCisle19wcmVmaXh9L2xpYmV4ZWMvZ2NjLyV7Z2NjX3Rh cmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vY2Mxb2JqCisle19wcmVmaXh9L2xpYi9nY2Mv JXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9saWJvYmpjLmEKKyV7X3ByZWZp eH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2xpYm9iamMu c28KKyVpZmFyY2ggc3BhcmN2OSBwcGMKKyVkaXIgJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3Rh cmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vNjQKKyV7X3ByZWZpeH0vbGliL2djYy8le2dj Y190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259LzY0L2xpYm9iamMuYQorJXtfcHJlZml4 fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vNjQvbGlib2Jq Yy5zbworJWVuZGlmCislaWZhcmNoICV7bXVsdGlsaWJfNjRfYXJjaHN9CislZGlyICV7X3ByZWZp eH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259LzMyCisle19w cmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS8zMi9s aWJvYmpjLmEKKyV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2Nj X3ZlcnNpb259LzMyL2xpYm9iamMuc28KKyVlbmRpZgorJWRvYyBycG0uZG9jL29iamMvKgorJWRv YyBsaWJvYmpjL1RIUkVBRFMqIHJwbS5kb2MvY2hhbmdlbG9ncy9saWJvYmpjL0NoYW5nZUxvZyoK KworJWZpbGVzIG9iamMrKworJWRlZmF0dHIoLSxyb290LHJvb3QpCislZGlyICV7X3ByZWZpeH0v bGliZXhlYy9nY2MKKyVkaXIgJXtfcHJlZml4fS9saWJleGVjL2djYy8le2djY190YXJnZXRfcGxh dGZvcm19CislZGlyICV7X3ByZWZpeH0vbGliZXhlYy9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3Jt fS8le2djY192ZXJzaW9ufQorJXtfcHJlZml4fS9saWJleGVjL2djYy8le2djY190YXJnZXRfcGxh dGZvcm19LyV7Z2NjX3ZlcnNpb259L2NjMW9ianBsdXMKKworJWZpbGVzIC1uIGxpYm9iamMKKyVk ZWZhdHRyKC0scm9vdCxyb290KQorJXtfcHJlZml4fS8le19saWJ9L2xpYm9iamMuc28uMioKKwor JWZpbGVzIGdmb3J0cmFuCislZGVmYXR0cigtLHJvb3Qscm9vdCkKKyV7X3ByZWZpeH0vYmluL2dm b3J0cmFuCisle19wcmVmaXh9L2Jpbi9mOTUKKyV7X21hbmRpcn0vbWFuMS9nZm9ydHJhbi4xKgor JXtfaW5mb2Rpcn0vZ2ZvcnRyYW4qCislZGlyICV7X3ByZWZpeH0vbGliL2djYworJWRpciAle19w cmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfQorJWRpciAle19wcmVmaXh9L2xp Yi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufQorJWRpciAle19wcmVm aXh9L2xpYmV4ZWMvZ2NjCislZGlyICV7X3ByZWZpeH0vbGliZXhlYy9nY2MvJXtnY2NfdGFyZ2V0 X3BsYXRmb3JtfQorJWRpciAle19wcmVmaXh9L2xpYmV4ZWMvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0 Zm9ybX0vJXtnY2NfdmVyc2lvbn0KKyVkaXIgJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3Rhcmdl dF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vZmluY2x1ZGUKKyV7X3ByZWZpeH0vbGliL2djYy8l e2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2ZpbmNsdWRlL29tcF9saWIuaAor JXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0v ZmluY2x1ZGUvb21wX2xpYi5mOTAKKyV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxh dGZvcm19LyV7Z2NjX3ZlcnNpb259L2ZpbmNsdWRlL29tcF9saWIubW9kCisle19wcmVmaXh9L2xp Yi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9maW5jbHVkZS9vbXBf bGliX2tpbmRzLm1vZAorJXtfcHJlZml4fS9saWJleGVjL2djYy8le2djY190YXJnZXRfcGxhdGZv cm19LyV7Z2NjX3ZlcnNpb259L2Y5NTEKKyV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRf cGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2xpYmdmb3J0cmFuYmVnaW4uYQorJXtfcHJlZml4fS9s aWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vbGliZ2ZvcnRyYW4u YQorJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lv bn0vbGliZ2ZvcnRyYW4uc28KKyVpZmFyY2ggc3BhcmN2OSBwcGMKKyVkaXIgJXtfcHJlZml4fS9s aWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vNjQKKyV7X3ByZWZp eH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259LzY0L2xpYmdm b3J0cmFuYmVnaW4uYQorJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0v JXtnY2NfdmVyc2lvbn0vNjQvbGliZ2ZvcnRyYW4uYQorJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2Nj X3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vNjQvbGliZ2ZvcnRyYW4uc28KKyVlbmRp ZgorJWlmYXJjaCAle211bHRpbGliXzY0X2FyY2hzfQorJWRpciAle19wcmVmaXh9L2xpYi9nY2Mv JXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS8zMgorJXtfcHJlZml4fS9saWIv Z2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vMzIvbGliZ2ZvcnRyYW5i ZWdpbi5hCisle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192 ZXJzaW9ufS8zMi9saWJnZm9ydHJhbi5hCisle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0 X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS8zMi9saWJnZm9ydHJhbi5zbworJWVuZGlmCislZG9j IHJwbS5kb2MvZ2ZvcnRyYW4vKgorCislZmlsZXMgLW4gbGliZ2ZvcnRyYW4KKyVkZWZhdHRyKC0s cm9vdCxyb290KQorJXtfcHJlZml4fS8le19saWJ9L2xpYmdmb3J0cmFuLnNvLjMqCisKKyVpZiAl e2J1aWxkX2phdmF9CislZmlsZXMgamF2YQorJWRlZmF0dHIoLSxyb290LHJvb3QpCisle19wcmVm aXh9L2Jpbi9nY2oKKyV7X3ByZWZpeH0vYmluL2dqYXZhaAorJXtfcHJlZml4fS9iaW4vZ2NqaAor JXtfcHJlZml4fS9iaW4vamNmLWR1bXAKKyV7X21hbmRpcn0vbWFuMS9nY2ouMSoKKyV7X21hbmRp cn0vbWFuMS9qY2YtZHVtcC4xKgorJXtfbWFuZGlyfS9tYW4xL2dqYXZhaC4xKgorJXtfbWFuZGly fS9tYW4xL2djamguMSoKKyV7X2luZm9kaXJ9L2djaioKKyVkaXIgJXtfcHJlZml4fS9saWJleGVj L2djYworJWRpciAle19wcmVmaXh9L2xpYmV4ZWMvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0K KyVkaXIgJXtfcHJlZml4fS9saWJleGVjL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2Nj X3ZlcnNpb259CislZGlyICV7X3ByZWZpeH0vbGliL2djYworJWRpciAle19wcmVmaXh9L2xpYi9n Y2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfQorJWRpciAle19wcmVmaXh9L2xpYi9nY2MvJXtnY2Nf dGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufQorJXtfcHJlZml4fS9saWJleGVjL2djYy8l e2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2pjMQorJXtfcHJlZml4fS9saWJl eGVjL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2VjajEKKyV7X3By ZWZpeH0vbGliZXhlYy9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9q dmdlbm1haW4KKyV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2Nj X3ZlcnNpb259L2xpYmdjai5zbworJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0 Zm9ybX0vJXtnY2NfdmVyc2lvbn0vbGliZ2NqLXRvb2xzLnNvCislaWZhcmNoIHNwYXJjdjkgc3Bh cmM2NCBwcGMgcHBjNjQKKyV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19 LyV7Z2NjX3ZlcnNpb259L2xpYmdjal9iYy5zbworJWVuZGlmCisle19wcmVmaXh9L2xpYi9nY2Mv JXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9saWJnaWouc28KKyVpZmFyY2gg c3BhcmN2OSBwcGMKKyVkaXIgJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9y bX0vJXtnY2NfdmVyc2lvbn0vNjQKKyV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxh dGZvcm19LyV7Z2NjX3ZlcnNpb259LzY0L2xpYmdjai5zbworJXtfcHJlZml4fS9saWIvZ2NjLyV7 Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vNjQvbGliZ2NqLXRvb2xzLnNvCisl e19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS82 NC9saWJnY2pfYmMuc28KKyV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19 LyV7Z2NjX3ZlcnNpb259LzY0L2xpYmdpai5zbworJWVuZGlmCislaWZhcmNoICV7bXVsdGlsaWJf NjRfYXJjaHN9CislZGlyICV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19 LyV7Z2NjX3ZlcnNpb259LzMyCisle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRm b3JtfS8le2djY192ZXJzaW9ufS8zMi9saWJnY2ouc28KKyV7X3ByZWZpeH0vbGliL2djYy8le2dj Y190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259LzMyL2xpYmdjai10b29scy5zbworJXtf cHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vMzIv bGliZ2NqX2JjLnNvCisle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8l e2djY192ZXJzaW9ufS8zMi9saWJnaWouc28KKyVlbmRpZgorJWRvYyBycG0uZG9jL2NoYW5nZWxv Z3MvZ2NjL2phdmEvQ2hhbmdlTG9nKgorCislZmlsZXMgLW4gbGliZ2NqCislZGVmYXR0cigtLHJv b3Qscm9vdCkKKyV7X3ByZWZpeH0vYmluL2p2LWNvbnZlcnQKKyV7X3ByZWZpeH0vYmluL2dpagor JXtfcHJlZml4fS9iaW4vZ2phcgorJXtfcHJlZml4fS9iaW4vZmFzdGphcgorJXtfcHJlZml4fS9i aW4vZ3JlcGphcgorJXtfcHJlZml4fS9iaW4vZ3JtaWMKKyV7X3ByZWZpeH0vYmluL2dybWlkCisl e19wcmVmaXh9L2Jpbi9ncm1pcmVnaXN0cnkKKyV7X3ByZWZpeH0vYmluL2d0bmFtZXNlcnYKKyV7 X3ByZWZpeH0vYmluL2drZXl0b29sCisle19wcmVmaXh9L2Jpbi9nb3JiZAorJXtfcHJlZml4fS9i aW4vZ3NlcmlhbHZlcgorJXtfcHJlZml4fS9iaW4vZ2NqLWRidG9vbAorJWlmICV7aW5jbHVkZV9n YXBwbGV0dmlld2VyfQorJXtfcHJlZml4fS9iaW4vZ2FwcGxldHZpZXdlcgorJXtfbWFuZGlyfS9t YW4xL2dhcHBsZXR2aWV3ZXIuMSoKKyVlbmRpZgorJXtfcHJlZml4fS9iaW4vZ2phcnNpZ25lcgor JXtfbWFuZGlyfS9tYW4xL2Zhc3RqYXIuMSoKKyV7X21hbmRpcn0vbWFuMS9ncmVwamFyLjEqCisl e19tYW5kaXJ9L21hbjEvZ2phci4xKgorJXtfbWFuZGlyfS9tYW4xL2dqYXJzaWduZXIuMSoKKyV7 X21hbmRpcn0vbWFuMS9qdi1jb252ZXJ0LjEqCisle19tYW5kaXJ9L21hbjEvZ2lqLjEqCisle19t YW5kaXJ9L21hbjEvZ3JtaWMuMSoKKyV7X21hbmRpcn0vbWFuMS9ncm1pcmVnaXN0cnkuMSoKKyV7 X21hbmRpcn0vbWFuMS9nY2otZGJ0b29sLjEqCisle19tYW5kaXJ9L21hbjEvZ2tleXRvb2wuMSoK KyV7X21hbmRpcn0vbWFuMS9nb3JiZC4xKgorJXtfbWFuZGlyfS9tYW4xL2dybWlkLjEqCisle19t YW5kaXJ9L21hbjEvZ3NlcmlhbHZlci4xKgorJXtfbWFuZGlyfS9tYW4xL2d0bmFtZXNlcnYuMSoK KyV7X2luZm9kaXJ9L2Zhc3RqYXIuaW5mbyoKKyV7X2luZm9kaXJ9L2NwLXRvb2xzLmluZm8qCisl e19wcmVmaXh9LyV7X2xpYn0vbGliZ2NqLnNvLioKKyV7X3ByZWZpeH0vJXtfbGlifS9saWJnY2ot dG9vbHMuc28uKgorJXtfcHJlZml4fS8le19saWJ9L2xpYmdjal9iYy5zby4qCisle19wcmVmaXh9 LyV7X2xpYn0vbGliZ2lqLnNvLioKKyVkaXIgJXtfcHJlZml4fS8le19saWJ9L2djai0le3ZlcnNp b259Cisle19wcmVmaXh9LyV7X2xpYn0vZ2NqLSV7dmVyc2lvbn0vbGliZ3RrcGVlci5zbworJXtf cHJlZml4fS8le19saWJ9L2djai0le3ZlcnNpb259L2xpYmdqc21hbHNhLnNvCisle19wcmVmaXh9 LyV7X2xpYn0vZ2NqLSV7dmVyc2lvbn0vbGliamF3dC5zbworJWlmICV7aW5jbHVkZV9nYXBwbGV0 dmlld2VyfQorJXtfcHJlZml4fS8le19saWJ9L2djai0le3ZlcnNpb259L2xpYmdjandlYnBsdWdp bi5zbworJWVuZGlmCisle19wcmVmaXh9LyV7X2xpYn0vZ2NqLSV7dmVyc2lvbn0vbGlianZtLnNv Cisle19wcmVmaXh9LyV7X2xpYn0vZ2NqLSV7dmVyc2lvbn0vbGliamF2YW1hdGguc28KKyVkaXIg JXtfcHJlZml4fS9zaGFyZS9qYXZhCisle19wcmVmaXh9L3NoYXJlL2phdmEvW15zbF0qCisle19w cmVmaXh9L3NoYXJlL2phdmEvbGliZ2NqLSV7dmVyc2lvbn0uamFyCislZGlyICV7X3ByZWZpeH0v JXtfbGlifS9zZWN1cml0eQorJWNvbmZpZyhub3JlcGxhY2UpICV7X3ByZWZpeH0vJXtfbGlifS9z ZWN1cml0eS9jbGFzc3BhdGguc2VjdXJpdHkKKyV7X3ByZWZpeH0vJXtfbGlifS9sb2dnaW5nLnBy b3BlcnRpZXMKKyVkaXIgJXtfcHJlZml4fS8le19saWJ9L2djai0le3ZlcnNpb259L2NsYXNzbWFw LmRiLmQKKyVhdHRyKDA2NDQscm9vdCxyb290KSAldmVyaWZ5KG5vdCBtZDUgc2l6ZSBtdGltZSkg JWdob3N0ICVjb25maWcobWlzc2luZ29rLG5vcmVwbGFjZSkgJXtfcHJlZml4fS8le19saWJ9L2dj ai0le3ZlcnNpb259L2NsYXNzbWFwLmRiCislaWYgJXtpbmNsdWRlX2dhcHBsZXR2aWV3ZXJ9Cisl ZG9jIHJwbS5kb2MvUkVBRE1FLmxpYmdjandlYnBsdWdpbi5zbworJWVuZGlmCisKKyVmaWxlcyAt biBsaWJnY2otZGV2ZWwKKyVkZWZhdHRyKC0scm9vdCxyb290KQorJXtfcHJlZml4fS9iaW4vYWRk cjJuYW1lLmF3aworJWRpciAle19wcmVmaXh9L2xpYi9nY2MKKyVkaXIgJXtfcHJlZml4fS9saWIv Z2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0KKyVkaXIgJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2Nj X3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0KKyVkaXIgJXtfcHJlZml4fS9saWIvZ2Nj LyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vaW5jbHVkZQorJXtfcHJlZml4 fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vaW5jbHVkZS9n Y2oKKyV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNp b259L2luY2x1ZGUvamF3dC5oCisle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRm b3JtfS8le2djY192ZXJzaW9ufS9pbmNsdWRlL2phd3RfbWQuaAorJXtfcHJlZml4fS9saWIvZ2Nj LyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vaW5jbHVkZS9qbmkuaAorJXtf cHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vaW5j bHVkZS9qbmlfbWQuaAorJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0v JXtnY2NfdmVyc2lvbn0vaW5jbHVkZS9qdm1waS5oCisle19wcmVmaXh9L2xpYi9nY2MvJXtnY2Nf dGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9saWJnY2ouc3BlYworJWlmYXJjaCBzcGFy Y3Y5IHBwYworJWRpciAle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8l e2djY192ZXJzaW9ufS9saWIzMgorJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0 Zm9ybX0vJXtnY2NfdmVyc2lvbn0vbGliMzIvbGliZ2NqX2JjLnNvCislZW5kaWYKKyVpZmFyY2gg c3BhcmM2NCBwcGM2NAorJWRpciAle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRm b3JtfS8le2djY192ZXJzaW9ufS9saWI2NAorJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3Rhcmdl dF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vbGliNjQvbGliZ2NqX2JjLnNvCislZW5kaWYKKyVp Zm5hcmNoIHNwYXJjdjkgc3BhcmM2NCBwcGMgcHBjNjQKKyV7X3ByZWZpeH0vbGliL2djYy8le2dj Y190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2xpYmdjal9iYy5zbworJWVuZGlmCisl ZGlyICV7X3ByZWZpeH0vaW5jbHVkZS9jKysKKyVkaXIgJXtfcHJlZml4fS9pbmNsdWRlL2MrKy8l e2djY192ZXJzaW9ufQorJXtfcHJlZml4fS9pbmNsdWRlL2MrKy8le2djY192ZXJzaW9ufS9bZ2pd KgorJXtfcHJlZml4fS9pbmNsdWRlL2MrKy8le2djY192ZXJzaW9ufS9vcmcKKyV7X3ByZWZpeH0v aW5jbHVkZS9jKysvJXtnY2NfdmVyc2lvbn0vc3VuCisle19wcmVmaXh9LyV7X2xpYn0vcGtnY29u ZmlnL2xpYmdjai0qLnBjCislZG9jIHJwbS5kb2MvYm9laG0tZ2MvKiBycG0uZG9jL2Zhc3RqYXIv KiBycG0uZG9jL2xpYmZmaS8qCislZG9jIHJwbS5kb2MvbGliamF2YS8qCisKKyVmaWxlcyAtbiBs aWJnY2otc3JjCislZGVmYXR0cigtLHJvb3Qscm9vdCkKKyVkaXIgJXtfcHJlZml4fS9zaGFyZS9q YXZhCisle19wcmVmaXh9L3NoYXJlL2phdmEvc3JjKi56aXAKKyV7X3ByZWZpeH0vc2hhcmUvamF2 YS9saWJnY2otdG9vbHMtJXt2ZXJzaW9ufS5qYXIKKyVlbmRpZgorCislaWYgJXtidWlsZF9hZGF9 CislZmlsZXMgZ25hdAorJWRlZmF0dHIoLSxyb290LHJvb3QpCisle19wcmVmaXh9L2Jpbi9nbmF0 KgorJXtfaW5mb2Rpcn0vZ25hdCoKKyVkaXIgJXtfcHJlZml4fS9saWIvZ2NjCislZGlyICV7X3By ZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19CislZGlyICV7X3ByZWZpeH0vbGli L2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259CislZGlyICV7X3ByZWZp eH0vbGliZXhlYy9nY2MKKyVkaXIgJXtfcHJlZml4fS9saWJleGVjL2djYy8le2djY190YXJnZXRf cGxhdGZvcm19CislZGlyICV7X3ByZWZpeH0vbGliZXhlYy9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRm b3JtfS8le2djY192ZXJzaW9ufQorJWlmYXJjaCBzcGFyY3Y5IHBwYworJWRpciAle19wcmVmaXh9 L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS82NAorJXtfcHJl Zml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vNjQvYWRh aW5jbHVkZQorJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2Nf dmVyc2lvbn0vNjQvYWRhbGliCislZW5kaWYKKyVpZmFyY2ggJXttdWx0aWxpYl82NF9hcmNoc30K KyVkaXIgJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVy c2lvbn0vMzIKKyV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2Nj X3ZlcnNpb259LzMyL2FkYWluY2x1ZGUKKyV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRf cGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259LzMyL2FkYWxpYgorJWVuZGlmCislaWZhcmNoIHNwYXJj djkgc3BhcmM2NCBwcGMgcHBjNjQKKyV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxh dGZvcm19LyV7Z2NjX3ZlcnNpb259L2FkYWluY2x1ZGUKKyV7X3ByZWZpeH0vbGliL2djYy8le2dj Y190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2FkYWxpYgorJWVuZGlmCisle19wcmVm aXh9L2xpYmV4ZWMvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vZ25h dDEKKyVkb2MgcnBtLmRvYy9jaGFuZ2Vsb2dzL2djYy9hZGEvQ2hhbmdlTG9nKgorCislZmlsZXMg LW4gbGliZ25hdAorJWRlZmF0dHIoLSxyb290LHJvb3QpCisle19wcmVmaXh9LyV7X2xpYn0vbGli Z25hdC0qLnNvCisle19wcmVmaXh9LyV7X2xpYn0vbGliZ25hcmwtKi5zbworCislZmlsZXMgLW4g bGliZ25hdC1kZXZlbAorJWRlZmF0dHIoLSxyb290LHJvb3QpCislZGlyICV7X3ByZWZpeH0vbGli L2djYworJWRpciAle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfQorJWRp ciAle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9u fQorJWlmYXJjaCBzcGFyY3Y5IHBwYworJWRpciAle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFy Z2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9saWIzMgorJXtfcHJlZml4fS9saWIvZ2NjLyV7 Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vbGliMzIvYWRhaW5jbHVkZQorJXtf cHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vbGli MzIvYWRhbGliCislZW5kaWYKKyVpZmFyY2ggc3BhcmM2NCBwcGM2NAorJWRpciAle19wcmVmaXh9 L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9saWI2NAorJXtf cHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vbGli NjQvYWRhaW5jbHVkZQorJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0v JXtnY2NfdmVyc2lvbn0vbGliNjQvYWRhbGliCislZW5kaWYKKyVpZm5hcmNoIHNwYXJjdjkgc3Bh cmM2NCBwcGMgcHBjNjQKKyV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19 LyV7Z2NjX3ZlcnNpb259L2FkYWluY2x1ZGUKKyV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJn ZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2FkYWxpYgorJWVuZGlmCislZW5kaWYKKworJWZp bGVzIC1uIGxpYmdvbXAKKyVkZWZhdHRyKC0scm9vdCxyb290KQorJXtfcHJlZml4fS8le19saWJ9 L2xpYmdvbXAuc28uMSoKKyV7X2luZm9kaXJ9L2xpYmdvbXAuaW5mbyoKKyVkb2MgcnBtLmRvYy9j aGFuZ2Vsb2dzL2xpYmdvbXAvQ2hhbmdlTG9nKgorCislZmlsZXMgLW4gbGlibXVkZmxhcAorJWRl ZmF0dHIoLSxyb290LHJvb3QpCisle19wcmVmaXh9LyV7X2xpYn0vbGlibXVkZmxhcC5zby4wKgor JXtfcHJlZml4fS8le19saWJ9L2xpYm11ZGZsYXB0aC5zby4wKgorCislZmlsZXMgLW4gbGlibXVk ZmxhcC1kZXZlbAorJWRlZmF0dHIoLSxyb290LHJvb3QpCislZGlyICV7X3ByZWZpeH0vbGliL2dj YworJWRpciAle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfQorJWRpciAl e19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufQor JWRpciAle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJz aW9ufS9pbmNsdWRlCisle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8l e2djY192ZXJzaW9ufS9pbmNsdWRlL21mLXJ1bnRpbWUuaAorJWlmYXJjaCBzcGFyY3Y5IHBwYwor JWRpciAle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJz aW9ufS9saWIzMgorJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtn Y2NfdmVyc2lvbn0vbGliMzIvbGlibXVkZmxhcC5hCisle19wcmVmaXh9L2xpYi9nY2MvJXtnY2Nf dGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9saWIzMi9saWJtdWRmbGFwdGguYQorJWVu ZGlmCislaWZhcmNoIHNwYXJjNjQgcHBjNjQKKyVkaXIgJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2Nj X3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vbGliNjQKKyV7X3ByZWZpeH0vbGliL2dj Yy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2xpYjY0L2xpYm11ZGZsYXAu YQorJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lv bn0vbGliNjQvbGlibXVkZmxhcHRoLmEKKyVlbmRpZgorJWlmbmFyY2ggc3BhcmN2OSBzcGFyYzY0 IHBwYyBwcGM2NAorJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtn Y2NfdmVyc2lvbn0vbGlibXVkZmxhcC5hCisle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0 X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9saWJtdWRmbGFwdGguYQorJXtfcHJlZml4fS9saWIv Z2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vbGlibXVkZmxhcC5zbwor JXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0v bGlibXVkZmxhcHRoLnNvCislZW5kaWYKKyVkb2MgcnBtLmRvYy9jaGFuZ2Vsb2dzL2xpYm11ZGZs YXAvQ2hhbmdlTG9nKgorCislY2hhbmdlbG9nCisqIEZyaSBKYW4gMTYgMjAwOSBKYWt1YiBKZWxp bmVrIDxqYWt1YkByZWRoYXQuY29tPiA0LjQuMC0wLjMKKy0gaW5pdGlhbCA0LjQgcGFja2FnZSwg dXNpbmcgbmV3bHkgY3JlYXRlZCByZWRoYXQvZ2NjLTRfNC1icmFuY2gKCmRpZmYgLS1naXQgYS9n Y2M0My1hZXMucGF0Y2ggYi9nY2M0My1hZXMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDlhNDVkNDUuLjAwMDAwMDAKLS0tIGEvZ2NjNDMtYWVzLnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsMTM1MSArMCwwIEBACi0yMDA4LTA0LTA0ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBp bnRlbC5jb20+Ci0KLQkqIGNvbmZpZy5nY2MgKGV4dHJhX2hlYWRlcnMpOiBBZGQgd21taW50cmlu LmggZm9yIHg4NiBhbmQgeDg2LTY0LgotCi0JKiBjb25maWcvaTM4Ni9jcHVpZC5oIChiaXRfQUVT KTogTmV3LgotCShiaXRfUENMTVVMKTogTGlrZXdpc2UuCi0KLQkqIGNvbmZpZy9pMzg2L2kzODYu YyAocHRhX2ZsYWdzKTogQWRkIFBUQV9BRVMgYW5kIFBUQV9QQ0xNVUwuCi0JKG92ZXJyaWRlX29w dGlvbnMpOiBIYW5kbGUgUFRBX0FFUyBhbmQgUFRBX1BDTE1VTC4gIEVuYWJsZQotCVNTRTIgaWYg QUVTIG9yIFBDTE1VTCBpcyBlbmFibGVkLgotCShpeDg2X2J1aWx0aW5zKTogQWRkIElYODZfQlVJ TFRJTl9BRVNFTkMxMjgsCi0JSVg4Nl9CVUlMVElOX0FFU0VOQ0xBU1QxMjgsIElYODZfQlVJTFRJ Tl9BRVNERUMxMjgsCi0JSVg4Nl9CVUlMVElOX0FFU0RFQ0xBU1QxMjgsIElYODZfQlVJTFRJTl9B RVNJTUMxMjgsCi0JSVg4Nl9CVUlMVElOX0FFU0tFWUdFTkFTU0lTVDEyOCBhbmQgSVg4Nl9CVUlM VElOX1BDTE1VTFFEUTEyOC4KLQkoYmRlc2Nfc3NlXzNhcmcpOiBBZGQgSVg4Nl9CVUlMVElOX1BD TE1VTFFEUTEyOC4KLQkoYmRlc2NfMmFyZyk6IEFkZCBJWDg2X0JVSUxUSU5fQUVTRU5DMTI4LAot CUlYODZfQlVJTFRJTl9BRVNFTkNMQVNUMTI4LCBJWDg2X0JVSUxUSU5fQUVTREVDMTI4LAotCUlY ODZfQlVJTFRJTl9BRVNERUNMQVNUMTI4IGFuZCBJWDg2X0JVSUxUSU5fQUVTS0VZR0VOQVNTSVNU MTI4LgotCShiZGVzY18xYXJnKTogQWRkIElYODZfQlVJTFRJTl9BRVNJTUMxMjguCi0JKGl4ODZf aW5pdF9tbXhfc3NlX2J1aWx0aW5zKTogRGVmaW5lIF9fYnVpbHRpbl9pYTMyX2Flc2VuYzEyOCwK LQlfX2J1aWx0aW5faWEzMl9hZXNlbmNsYXN0MTI4LCBfX2J1aWx0aW5faWEzMl9hZXNkZWMxMjgs Ci0JX19idWlsdGluX2lhMzJfYWVzZGVjbGFzdDEyOCxfX2J1aWx0aW5faWEzMl9hZXNpbWMxMjgs Ci0JX19idWlsdGluX2lhMzJfYWVza2V5Z2VuYXNzaXN0MTI4IGFuZAotCV9fYnVpbHRpbl9pYTMy X3BjbG11bHFkcTEyOC4KLQkqIGNvbmZpZy9pMzg2L2kzODYuYyAoaXg4Nl9leHBhbmRfYmlub3Bf aW1tX2J1aWx0aW4pOiBOZXcuCi0JKGl4ODZfZXhwYW5kX2J1aWx0aW4pOiBVc2UgaXQgZm9yIElY ODZfQlVJTFRJTl9QU0xMRFFJMTI4IGFuZAotCUlYODZfQlVJTFRJTl9QU1JMRFFJMTI4LiAgSGFu ZGxlIElYODZfQlVJTFRJTl9BRVNLRVlHRU5BU1NJU1QxMjguCi0KLQkqIGNvbmZpZy9pMzg2L2kz ODYuaCAoVEFSR0VUX0FFUyk6IE5ldy4KLQkoVEFSR0VUX1BDTE1VTCk6IExpa2V3aXNlLgotCShU QVJHRVRfQ1BVX0NQUF9CVUlMVElOUyk6IEhhbmRsZSBUQVJHRVRfQUVTIGFuZCBUQVJHRVRfUENM TVVMLgotCi0JKiBjb25maWcvaTM4Ni9pMzg2Lm1kIChVTlNQRUNfQUVTRU5DKTogTmV3LgotCShV TlNQRUNfQUVTRU5DTEFTVCk6IExpa2V3aXNlLgotCShVTlNQRUNfQUVTREVDKTogTGlrZXdpc2Uu Ci0JKFVOU1BFQ19BRVNERUNMQVNUKTogTGlrZXdpc2UuCi0JKFVOU1BFQ19BRVNJTUMpOiBMaWtl d2lzZS4KLQkoVU5TUEVDX0FFU0tFWUdFTkFTU0lTVCk6IExpa2V3aXNlLgotCShVTlNQRUNfUENM TVVMUURRKTogTGlrZXdpc2UuCi0KLQkqIGNvbmZpZy9pMzg2L2kzODYub3B0IChtYWVzKTogTmV3 LgotCShtcGNsbXVsKTogTGlrZXdpc2UuCi0KLQkqIGNvbmZpZy9pMzg2L3NzZS5tZCAoYWVzZW5j KTogTmV3IHBhdHRlcm4uCi0JKGFlc2VuY2xhc3QpOiBMaWtld2lzZS4KLQkoYWVzZGVjKTogTGlr ZXdpc2UuCi0JKGFlc2RlY2xhc3QpOiBMaWtld2lzZS4KLQkoYWVzaW1jKTogTGlrZXdpc2UuCi0J KGFlc2tleWdlbmFzc2lzdCk6IExpa2V3aXNlLgotCShwY2xtdWxxZHEpOiBMaWtld2lzZS4KLQot CSogY29uZmlnL2kzODYvd21taW50cmluLmg6IE5ldy4KLQotCSogZG9jL2V4dGVuZC50ZXhpOiBE b2N1bWVudCBBRVMgYW5kIFBDTE1VTCBidWlsdC1pbiBmdW5jdGlvbi4KLQotCSogZG9jL2ludm9r ZS50ZXhpOiBEb2N1bWVudCAtbWFlcyBhbmQgLW1wY2xtdWwuCi0KLQkqIGcrKy5kZy9vdGhlci9p Mzg2LTIuQzogSW5jbHVkZSA8d21taW50cmluLmg+LgotCSogZysrLmRnL290aGVyL2kzODYtMy5D OiBMaWtld2lzZS4KLQkqIGdjYy50YXJnZXQvaTM4Ni9zc2UtMTMuYzogTGlrZXdpc2UuCi0JKiBn Y2MudGFyZ2V0L2kzODYvc3NlLTE0LmM6IExpa2V3aXNlLgotCi0JKiBnY2MudGFyZ2V0L2kzODYv YWVzLWNoZWNrLmg6IE5ldy4KLQkqIGdjYy50YXJnZXQvaTM4Ni9hZXNkZWMuYzogTGlrZXdpc2Uu Ci0JKiBnY2MudGFyZ2V0L2kzODYvYWVzZGVjbGFzdC5jOiBMaWtld2lzZS4KLQkqIGdjYy50YXJn ZXQvaTM4Ni9hZXNlbmMuYzogTGlrZXdpc2UuCi0JKiBnY2MudGFyZ2V0L2kzODYvYWVzZW5jbGFz dC5jOiBMaWtld2lzZS4KLQkqIGdjYy50YXJnZXQvaTM4Ni9hZXNpbWMuYzogTGlrZXdpc2UuCi0J KiBnY2MudGFyZ2V0L2kzODYvYWVza2V5Z2VuYXNzaXN0LmM6IExpa2V3aXNlLgotCSogZ2NjLnRh cmdldC9pMzg2L3BjbG11bHFkcS5jOiBMaWtld2lzZS4KLQkqIGdjYy50YXJnZXQvaTM4Ni9wY2xt dWwtY2hlY2suaDogTGlrZXdpc2UuCi0KLQkqIGdjYy50YXJnZXQvaTM4Ni9pMzg2LmV4cCAoY2hl Y2tfZWZmZWN0aXZlX3RhcmdldF9hZXMpOiBOZXcuCi0JKGNoZWNrX2VmZmVjdGl2ZV90YXJnZXRf cGNsbXVsKTogTGlrZXdpc2UuCi0KLS0tLSBnY2MvY29uZmlnLmdjYwkocmV2aXNpb24gMTMzOTAx KQotKysrIGdjYy9jb25maWcuZ2NjCShyZXZpc2lvbiAxMzM5MDIpCi1AQCAtMzA5LDEzICszMDks MTUgQEAgaVszNDU2N104Ni0qLSopCi0gCWNwdV90eXBlPWkzODYKLSAJZXh0cmFfaGVhZGVycz0i Y3B1aWQuaCBtbWludHJpbi5oIG1tM2Rub3cuaCB4bW1pbnRyaW4uaCBlbW1pbnRyaW4uaAotIAkJ ICAgICAgIHBtbWludHJpbi5oIHRtbWludHJpbi5oIGFtbWludHJpbi5oIHNtbWludHJpbi5oCi0t CQkgICAgICAgbm1taW50cmluLmggYm1taW50cmluLmggbW1pbnRyaW4tY29tbW9uLmgiCi0rCQkg ICAgICAgbm1taW50cmluLmggYm1taW50cmluLmggbW1pbnRyaW4tY29tbW9uLmgKLSsJCSAgICAg ICB3bW1pbnRyaW4uaCIKLSAJOzsKLSB4ODZfNjQtKi0qKQotIAljcHVfdHlwZT1pMzg2Ci0gCWV4 dHJhX2hlYWRlcnM9ImNwdWlkLmggbW1pbnRyaW4uaCBtbTNkbm93LmggeG1taW50cmluLmggZW1t aW50cmluLmgKLSAJCSAgICAgICBwbW1pbnRyaW4uaCB0bW1pbnRyaW4uaCBhbW1pbnRyaW4uaCBz bW1pbnRyaW4uaAotLQkJICAgICAgIG5tbWludHJpbi5oIGJtbWludHJpbi5oIG1taW50cmluLWNv bW1vbi5oIgotKwkJICAgICAgIG5tbWludHJpbi5oIGJtbWludHJpbi5oIG1taW50cmluLWNvbW1v bi5oCi0rCQkgICAgICAgd21taW50cmluLmgiCi0gCW5lZWRfNjRiaXRfaHdpbnQ9eWVzCi0gCTs7 Ci0gaWE2NC0qLSopCi0tLS0gZ2NjL2NvbmZpZy9pMzg2L2kzODYuaAkocmV2aXNpb24gMTMzOTAx KQotKysrIGdjYy9jb25maWcvaTM4Ni9pMzg2LmgJKHJldmlzaW9uIDEzMzkwMikKLUBAIC0zOTUs NiArMzk1LDggQEAgZXh0ZXJuIGludCB4ODZfcHJlZmV0Y2hfc3NlOwotICNkZWZpbmUgVEFSR0VU X1NBSEYJCXg4Nl9zYWhmCi0gI2RlZmluZSBUQVJHRVRfUkVDSVAJCXg4Nl9yZWNpcAotICNkZWZp bmUgVEFSR0VUX0ZVU0VEX01BREQJeDg2X2Z1c2VkX211bGFkZAotKyNkZWZpbmUgVEFSR0VUX0FF UwkJKFRBUkdFVF9TU0UyICYmIHg4Nl9hZXMpCi0rI2RlZmluZSBUQVJHRVRfUENMTVVMCQkoVEFS R0VUX1NTRTIgJiYgeDg2X3BjbG11bCkKLSAKLSAjZGVmaW5lIEFTU0VNQkxFUl9ESUFMRUNUCShp eDg2X2FzbV9kaWFsZWN0KQotIAotQEAgLTY4Myw2ICs2ODUsMTAgQEAgZXh0ZXJuIGNvbnN0IGNo YXIgKmhvc3RfZGV0ZWN0X2xvY2FsX2NwdQotIAlidWlsdGluX2RlZmluZSAoIl9fU1NFNF8xX18i KTsJCQkJXAotICAgICAgIGlmIChUQVJHRVRfU1NFNF8yKQkJCQkJXAotIAlidWlsdGluX2RlZmlu ZSAoIl9fU1NFNF8yX18iKTsJCQkJXAotKyAgICAgIGlmIChUQVJHRVRfQUVTKQkJCQkJCVwKLSsJ YnVpbHRpbl9kZWZpbmUgKCJfX0FFU19fIik7CQkJCVwKLSsgICAgICBpZiAoVEFSR0VUX1BDTE1V TCkJCQkJCVwKLSsJYnVpbHRpbl9kZWZpbmUgKCJfX1BDTE1VTF9fIik7CQkJCVwKLSAgICAgICBp ZiAoVEFSR0VUX1NTRTRBKQkJCQkJCVwKLSAgCWJ1aWx0aW5fZGVmaW5lICgiX19TU0U0QV9fIik7 CQkgICAgICAgICAgICAgICAgXAotICAgICAgIGlmIChUQVJHRVRfU1NFNSkJCQkJCQlcCi0tLS0g Z2NjL2NvbmZpZy9pMzg2L2kzODYubWQJKHJldmlzaW9uIDEzMzkwMSkKLSsrKyBnY2MvY29uZmln L2kzODYvaTM4Ni5tZAkocmV2aXNpb24gMTMzOTAyKQotQEAgLTE4Niw2ICsxODYsMTcgQEAgKGRl ZmluZV9jb25zdGFudHMKLSAgICAoVU5TUEVDX0ZSQ1oJCQkxNTYpCi0gICAgKFVOU1BFQ19DVlRQ SDJQUwkJMTU3KQotICAgIChVTlNQRUNfQ1ZUUFMyUEgJCTE1OCkKLSsKLSsgICA7IEZvciBBRVMg c3VwcG9ydAotKyAgIChVTlNQRUNfQUVTRU5DCQkxNTkpCi0rICAgKFVOU1BFQ19BRVNFTkNMQVNU CQkxNjApCi0rICAgKFVOU1BFQ19BRVNERUMJCTE2MSkKLSsgICAoVU5TUEVDX0FFU0RFQ0xBU1QJ CTE2MikKLSsgICAoVU5TUEVDX0FFU0lNQwkJMTYzKQotKyAgIChVTlNQRUNfQUVTS0VZR0VOQVNT SVNUCTE2NCkKLSsKLSsgICA7IEZvciBQQ0xNVUwgc3VwcG9ydAotKyAgIChVTlNQRUNfUENMTVVM CQkxNjUpCi0gICBdKQotIAotIChkZWZpbmVfY29uc3RhbnRzCi0tLS0gZ2NjL2NvbmZpZy9pMzg2 L3dtbWludHJpbi5oCShyZXZpc2lvbiAwKQotKysrIGdjYy9jb25maWcvaTM4Ni93bW1pbnRyaW4u aAkocmV2aXNpb24gMTMzOTAyKQotQEAgLTAsMCArMSwxMjMgQEAKLSsvKiBDb3B5cmlnaHQgKEMp IDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rCi0rICAgVGhpcyBmaWxlIGlz IHBhcnQgb2YgR0NDLgotKwotKyAgIEdDQyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsgICB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLCBvciAoYXQgeW91ciBvcHRpb24p Ci0rICAgYW55IGxhdGVyIHZlcnNpb24uCi0rCi0rICAgR0NDIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsgICBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rICAg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsKLSsgICBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZQotKyAgIGFsb25nIHdpdGggR0NDOyBzZWUgdGhlIGZpbGUgQ09QWUlORy4gIElmIG5vdCwg d3JpdGUgdG8KLSsgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCA1OSBUZW1wbGUgUGxh Y2UgLSBTdWl0ZSAzMzAsCi0rICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuICAqLwotKwot Ky8qIEFzIGEgc3BlY2lhbCBleGNlcHRpb24sIGlmIHlvdSBpbmNsdWRlIHRoaXMgaGVhZGVyIGZp bGUgaW50byBzb3VyY2UKLSsgICBmaWxlcyBjb21waWxlZCBieSBHQ0MsIHRoaXMgaGVhZGVyIGZp bGUgZG9lcyBub3QgYnkgaXRzZWxmIGNhdXNlCi0rICAgdGhlIHJlc3VsdGluZyBleGVjdXRhYmxl IHRvIGJlIGNvdmVyZWQgYnkgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYwotKyAgIExpY2Vuc2UuICBU aGlzIGV4Y2VwdGlvbiBkb2VzIG5vdCBob3dldmVyIGludmFsaWRhdGUgYW55IG90aGVyCi0rICAg cmVhc29ucyB3aHkgdGhlIGV4ZWN1dGFibGUgZmlsZSBtaWdodCBiZSBjb3ZlcmVkIGJ5IHRoZSBH TlUgR2VuZXJhbAotKyAgIFB1YmxpYyBMaWNlbnNlLiAgKi8KLSsKLSsvKiBJbXBsZW1lbnRlZCBm cm9tIHRoZSBzcGVjaWZpY2F0aW9uIGluY2x1ZGVkIGluIHRoZSBJbnRlbCBDKysgQ29tcGlsZXIK LSsgICBVc2VyIEd1aWRlIGFuZCBSZWZlcmVuY2UsIHZlcnNpb24gMTAuMS4gICovCi0rCi0rI2lm bmRlZiBfV01NSU5UUklOX0hfSU5DTFVERUQKLSsjZGVmaW5lIF9XTU1JTlRSSU5fSF9JTkNMVURF RAotKwotKy8qIFdlIG5lZWQgZGVmaW5pdGlvbnMgZnJvbSB0aGUgU1NFMiBoZWFkZXIgZmlsZS4g ICovCi0rI2luY2x1ZGUgPGVtbWludHJpbi5oPgotKwotKyNpZiAhZGVmaW5lZCAoX19BRVNfXykg JiYgIWRlZmluZWQgKF9fUENMTVVMX18pCi0rIyBlcnJvciAiQUVTL1BDTE1VTCBpbnN0cnVjdGlv bnMgbm90IGVuYWJsZWQiCi0rI2Vsc2UKLSsKLSsvKiBBRVMgKi8KLSsKLSsjaWZkZWYgX19BRVNf XwotKy8qIFBlcmZvcm1zIDEgcm91bmQgb2YgQUVTIGRlY3J5cHRpb24gb2YgdGhlIGZpcnN0IG0x MjhpIHVzaW5nIAotKyAgIHRoZSBzZWNvbmQgbTEyOGkgYXMgYSByb3VuZCBrZXkuICAqLwotK2V4 dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fs d2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQotK19tbV9hZXNkZWNfc2kxMjggKF9fbTEy OGkgX19YLCBfX20xMjhpIF9fWSkKLSt7Ci0rICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9p YTMyX2Flc2RlYzEyOCAoKF9fdjJkaSlfX1gsIChfX3YyZGkpX19ZKTsKLSt9Ci0rCi0rLyogUGVy Zm9ybXMgdGhlIGxhc3Qgcm91bmQgb2YgQUVTIGRlY3J5cHRpb24gb2YgdGhlIGZpcnN0IG0xMjhp IAotKyAgIHVzaW5nIHRoZSBzZWNvbmQgbTEyOGkgYXMgYSByb3VuZCBrZXkuICAqLwotK2V4dGVy biBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5 c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQotK19tbV9hZXNkZWNsYXN0X3NpMTI4IChfX20x MjhpIF9fWCwgX19tMTI4aSBfX1kpCi0rewotKyAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5f aWEzMl9hZXNkZWNsYXN0MTI4ICgoX192MmRpKV9fWCwKLSsJCQkJCQkgKF9fdjJkaSlfX1kpOwot K30KLSsKLSsvKiBQZXJmb3JtcyAxIHJvdW5kIG9mIEFFUyBlbmNyeXB0aW9uIG9mIHRoZSBmaXJz dCBtMTI4aSB1c2luZyAKLSsgICB0aGUgc2Vjb25kIG0xMjhpIGFzIGEgcm91bmQga2V5LiAgKi8K LStleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywg X19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKLStfbW1fYWVzZW5jX3NpMTI4IChf X20xMjhpIF9fWCwgX19tMTI4aSBfX1kpCi0rewotKyAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0 aW5faWEzMl9hZXNlbmMxMjggKChfX3YyZGkpX19YLCAoX192MmRpKV9fWSk7Ci0rfQotKwotKy8q IFBlcmZvcm1zIHRoZSBsYXN0IHJvdW5kIG9mIEFFUyBlbmNyeXB0aW9uIG9mIHRoZSBmaXJzdCBt MTI4aQotKyAgIHVzaW5nIHRoZSBzZWNvbmQgbTEyOGkgYXMgYSByb3VuZCBrZXkuICAqLwotK2V4 dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fs d2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQotK19tbV9hZXNlbmNsYXN0X3NpMTI4IChf X20xMjhpIF9fWCwgX19tMTI4aSBfX1kpCi0rewotKyAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0 aW5faWEzMl9hZXNlbmNsYXN0MTI4ICgoX192MmRpKV9fWCwgKF9fdjJkaSlfX1kpOwotK30KLSsK LSsvKiBQZXJmb3JtcyB0aGUgSW52ZXJzZU1peENvbHVtbiBvcGVyYXRpb24gb24gdGhlIHNvdXJj ZSBtMTI4aSAKLSsgICBhbmQgc3RvcmVzIHRoZSByZXN1bHQgaW50byBtMTI4aSBkZXN0aW5hdGlv bi4gICovCi0rZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5s aW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi0rX21tX2Flc2ltY19z aTEyOCAoX19tMTI4aSBfX1gpCi0rewotKyAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEz Ml9hZXNpbWMxMjggKChfX3YyZGkpX19YKTsKLSt9Ci0rCi0rLyogR2VuZXJhdGVzIGEgbTEyOGkg cm91bmQga2V5IGZvciB0aGUgaW5wdXQgbTEyOGkgQUVTIGNpcGhlciBrZXkgYW5kCi0rICAgYnl0 ZSByb3VuZCBjb25zdGFudC4gIFRoZSBzZWNvbmQgcGFyYW1ldGVyIG11c3QgYmUgYSBjb21waWxl IHRpbWUKLSsgICBjb25zdGFudC4gICovCi0rI2lmZGVmIF9fT1BUSU1JWkVfXwotK2V4dGVybiBf X2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19p bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQotK19tbV9hZXNrZXlnZW5hc3Npc3Rfc2kxMjggKF9f bTEyOGkgX19YLCBjb25zdCBpbnQgX19DKQotK3sKLSsgIHJldHVybiAoX19tMTI4aSkgX19idWls dGluX2lhMzJfYWVza2V5Z2VuYXNzaXN0MTI4ICgoX192MmRpKV9fWCwgX19DKTsKLSt9Ci0rI2Vs c2UKLSsjZGVmaW5lIF9tbV9hZXNrZXlnZW5hc3Npc3Rfc2kxMjgoWCwgQykJCQkJCVwKLSsgICgo X19tMTI4aSkgX19idWlsdGluX2lhMzJfYWVza2V5Z2VuYXNzaXN0MTI4ICgoX192MmRpKShfX20x MjhpKShYKSwJXAotKwkJCQkJCShpbnQpKEMpKSkKLSsjZW5kaWYKLSsjZW5kaWYgIC8qIF9fQUVT X18gKi8KLSsKLSsvKiBQQ0xNVUwgKi8KLSsKLSsjaWZkZWYgX19QQ0xNVUxfXwotKy8qIFBlcmZv cm1zIGNhcnJ5LWxlc3MgaW50ZWdlciBtdWx0aXBsaWNhdGlvbiBvZiA2NC1iaXQgaGFsdmVzIG9m Ci0rICAgMTI4LWJpdCBpbnB1dCBvcGVyYW5kcy4gIFRoZSB0aGlyZCBwYXJhbWV0ZXIgaW5kdWNh dGVzIHdoaWNoIDY0LWJpdAotKyAgIGhhdmVzIG9mIHRoZSBpbnB1dCBwYXJhbWV0ZXJzIHYxIGFu ZCB2MiBzaG91bGQgYmUgdXNlZC4gSXQgbXVzdCBiZQotKyAgIGEgY29tcGlsZSB0aW1lIGNvbnN0 YW50LiAgKi8KLSsjaWZkZWYgX19PUFRJTUlaRV9fCi0rZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkg X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlm aWNpYWxfXykpCi0rX21tX2NsbXVsZXBpNjRfc2kxMjggKF9fbTEyOGkgX19YLCBfX20xMjhpIF9f WSwgY29uc3QgaW50IF9fSSkKLSt7Ci0rICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMy X3BjbG11bHFkcTEyOCAoKF9fdjJkaSlfX1gsCi0rCQkJCQkJKF9fdjJkaSlfX1ksIF9fSSk7Ci0r fQotKyNlbHNlCi0rI2RlZmluZSBfbW1fY2xtdWxlcGk2NF9zaTEyOChYLCBZLCBJKQkJCQkJXAot KyAgKChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wY2xtdWxxZHExMjggKChfX3YyZGkpKF9fbTEy OGkpKFgpLAkJXAotKwkJCQkJICAoX192MmRpKShfX20xMjhpKShZKSwgKGludCkoSSkpKQotKyNl bmRpZgotKyNlbmRpZiAgLyogX19QQ0xNVUxfXyAgKi8KLSsKLSsjZW5kaWYgLyogX19BRVNfXy9f X1BDTE1VTF9fICovCi0rCi0rI2VuZGlmIC8qIF9XTU1JTlRSSU5fSF9JTkNMVURFRCAqLwotLS0t IGdjYy9jb25maWcvaTM4Ni9jcHVpZC5oCShyZXZpc2lvbiAxMzM5MDEpCi0rKysgZ2NjL2NvbmZp Zy9pMzg2L2NwdWlkLmgJKHJldmlzaW9uIDEzMzkwMikKLUBAIC0zMywxMSArMzMsMTMgQEAKLSAK LSAvKiAlZWN4ICovCi0gI2RlZmluZSBiaXRfU1NFMwkoMSA8PCAwKQotKyNkZWZpbmUgYml0X1BD TE1VTAkoMSA8PCAxKQotICNkZWZpbmUgYml0X1NTU0UzCSgxIDw8IDkpCi0gI2RlZmluZSBiaXRf Q01QWENIRzE2QgkoMSA8PCAxMykKLSAjZGVmaW5lIGJpdF9TU0U0XzEJKDEgPDwgMTkpCi0gI2Rl ZmluZSBiaXRfU1NFNF8yCSgxIDw8IDIwKQotICNkZWZpbmUgYml0X1BPUENOVAkoMSA8PCAyMykK LSsjZGVmaW5lIGJpdF9BRVMJCSgxIDw8IDI1KQotIAotIC8qICVlZHggKi8KLSAjZGVmaW5lIGJp dF9DTVBYQ0hHOEIJKDEgPDwgOCkKLS0tLSBnY2MvY29uZmlnL2kzODYvc3NlLm1kCShyZXZpc2lv biAxMzM5MDEpCi0rKysgZ2NjL2NvbmZpZy9pMzg2L3NzZS5tZAkocmV2aXNpb24gMTMzOTAyKQot QEAgLTc4OTcsMyArNzg5Nyw4MCBAQCAoZGVmaW5lX2luc24gInNzZTVfcGNvbV90Zjxtb2RlPjMi Ci0gfQotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWNtcCIpCi0gICAgKHNldF9hdHRyICJtb2Rl IiAiVEkiKV0pCi0rCi0rKGRlZmluZV9pbnNuICJhZXNlbmMiCi0rICBbKHNldCAobWF0Y2hfb3Bl cmFuZDpWMkRJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9eCIpCi0rCSh1bnNwZWM6VjJESSBbKG1h dGNoX29wZXJhbmQ6VjJESSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIpCi0rCQkgICAgICAgKG1h dGNoX29wZXJhbmQ6VjJESSAyICJub25pbW1lZGlhdGVfb3BlcmFuZCIgInhtIildCi0rCQkgICAg ICBVTlNQRUNfQUVTRU5DKSldCi0rICAiVEFSR0VUX0FFUyIKLSsgICJhZXNlbmNcdHslMiwgJTB8 JTAsICUyfSIKLSsgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vsb2cxIikKLSsgICAoc2V0X2F0dHIg InByZWZpeF9leHRyYSIgIjEiKQotKyAgIChzZXRfYXR0ciAibW9kZSIgIlRJIildKQotKwotKyhk ZWZpbmVfaW5zbiAiYWVzZW5jbGFzdCIKLSsgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlYyREkgMCAi cmVnaXN0ZXJfb3BlcmFuZCIgIj14IikKLSsJKHVuc3BlYzpWMkRJIFsobWF0Y2hfb3BlcmFuZDpW MkRJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIwIikKLSsJCSAgICAgICAobWF0Y2hfb3BlcmFuZDpW MkRJIDIgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAieG0iKV0KLSsJCSAgICAgIFVOU1BFQ19BRVNF TkNMQVNUKSldCi0rICAiVEFSR0VUX0FFUyIKLSsgICJhZXNlbmNsYXN0XHR7JTIsICUwfCUwLCAl Mn0iCi0rICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nMSIpCi0rICAgKHNldF9hdHRyICJwcmVm aXhfZXh0cmEiICIxIikKLSsgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKLSsKLSsoZGVmaW5l X2luc24gImFlc2RlYyIKLSsgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlYyREkgMCAicmVnaXN0ZXJf b3BlcmFuZCIgIj14IikKLSsJKHVuc3BlYzpWMkRJIFsobWF0Y2hfb3BlcmFuZDpWMkRJIDEgInJl Z2lzdGVyX29wZXJhbmQiICIwIikKLSsJCSAgICAgICAobWF0Y2hfb3BlcmFuZDpWMkRJIDIgIm5v bmltbWVkaWF0ZV9vcGVyYW5kIiAieG0iKV0KLSsJCSAgICAgIFVOU1BFQ19BRVNERUMpKV0KLSsg ICJUQVJHRVRfQUVTIgotKyAgImFlc2RlY1x0eyUyLCAlMHwlMCwgJTJ9IgotKyAgWyhzZXRfYXR0 ciAidHlwZSIgInNzZWxvZzEiKQotKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCi0r ICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCi0rCi0rKGRlZmluZV9pbnNuICJhZXNkZWNsYXN0 IgotKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjJESSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXgi KQotKwkodW5zcGVjOlYyREkgWyhtYXRjaF9vcGVyYW5kOlYyREkgMSAicmVnaXN0ZXJfb3BlcmFu ZCIgIjAiKQotKwkJICAgICAgIChtYXRjaF9vcGVyYW5kOlYyREkgMiAibm9uaW1tZWRpYXRlX29w ZXJhbmQiICJ4bSIpXQotKwkJICAgICAgVU5TUEVDX0FFU0RFQ0xBU1QpKV0KLSsgICJUQVJHRVRf QUVTIgotKyAgImFlc2RlY2xhc3RcdHslMiwgJTB8JTAsICUyfSIKLSsgIFsoc2V0X2F0dHIgInR5 cGUiICJzc2Vsb2cxIikKLSsgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQotKyAgIChz ZXRfYXR0ciAibW9kZSIgIlRJIildKQotKwotKyhkZWZpbmVfaW5zbiAiYWVzaW1jIgotKyAgWyhz ZXQgKG1hdGNoX29wZXJhbmQ6VjJESSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXgiKQotKwkodW5z cGVjOlYyREkgWyhtYXRjaF9vcGVyYW5kOlYyREkgMSAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4 bSIpXQotKwkJICAgICAgVU5TUEVDX0FFU0lNQykpXQotKyAgIlRBUkdFVF9BRVMiCi0rICAiYWVz aW1jXHR7JTEsICUwfCUwLCAlMX0iCi0rICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nMSIpCi0r ICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSsgICAoc2V0X2F0dHIgIm1vZGUiICJU SSIpXSkKLSsKLSsoZGVmaW5lX2luc24gImFlc2tleWdlbmFzc2lzdCIKLSsgIFsoc2V0IChtYXRj aF9vcGVyYW5kOlYyREkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj14IikKLSsJKHVuc3BlYzpWMkRJ IFsobWF0Y2hfb3BlcmFuZDpWMkRJIDEgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAieG0iKQotKwkJ ICAgICAgKG1hdGNoX29wZXJhbmQ6U0kgMiAiY29uc3RfMF90b18yNTVfb3BlcmFuZCIgIm4iKV0K LSsJCSAgICAgVU5TUEVDX0FFU0tFWUdFTkFTU0lTVCkpXQotKyAgIlRBUkdFVF9BRVMiCi0rICAi YWVza2V5Z2VuYXNzaXN0XHR7JTIsICUxLCAlMHwlMCwgJTEsICUyfSIKLSsgIFsoc2V0X2F0dHIg InR5cGUiICJzc2Vsb2cxIikKLSsgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQotKyAg IChzZXRfYXR0ciAibW9kZSIgIlRJIildKQotKwotKyhkZWZpbmVfaW5zbiAicGNsbXVscWRxIgot KyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjJESSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXgiKQot KwkodW5zcGVjOlYyREkgWyhtYXRjaF9vcGVyYW5kOlYyREkgMSAicmVnaXN0ZXJfb3BlcmFuZCIg IjAiKQotKwkJICAgICAgKG1hdGNoX29wZXJhbmQ6VjJESSAyICJub25pbW1lZGlhdGVfb3BlcmFu ZCIgInhtIikKLSsJCSAgICAgIChtYXRjaF9vcGVyYW5kOlNJIDMgImNvbnN0XzBfdG9fMjU1X29w ZXJhbmQiICJuIildCi0rCQkgICAgIFVOU1BFQ19QQ0xNVUwpKV0KLSsgICJUQVJHRVRfUENMTVVM IgotKyAgInBjbG11bHFkcVx0eyUzLCAlMiwgJTB8JTAsICUyLCAlM30iCi0rICBbKHNldF9hdHRy ICJ0eXBlIiAic3NlbG9nMSIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSsg ICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKLS0tLSBnY2MvY29uZmlnL2kzODYvaTM4Ni5vcHQJ KHJldmlzaW9uIDEzMzkwMSkKLSsrKyBnY2MvY29uZmlnL2kzODYvaTM4Ni5vcHQJKHJldmlzaW9u IDEzMzkwMikKLUBAIC0yNzUsMyArMjc1LDExIEBAIFRhcmdldCBSZXBvcnQgVmFyKHg4Nl9mdXNl ZF9tdWxhZGQpIEluaXQKLSBFbmFibGUgYXV0b21hdGljIGdlbmVyYXRpb24gb2YgZnVzZWQgZmxv YXRpbmcgcG9pbnQgbXVsdGlwbHktYWRkIGluc3RydWN0aW9ucwotIGlmIHRoZSBJU0Egc3VwcG9y dHMgc3VjaCBpbnN0cnVjdGlvbnMuICBUaGUgLW1mdXNlZC1tYWRkIG9wdGlvbiBpcyBvbiBieQot IGRlZmF1bHQuCi0rCi0rbWFlcwotK1RhcmdldCBSZXBvcnQgUmVqZWN0TmVnYXRpdmUgVmFyKHg4 Nl9hZXMpCi0rU3VwcG9ydCBBRVMgYnVpbHQtaW4gZnVuY3Rpb25zIGFuZCBjb2RlIGdlbmVyYXRp b24KLSsKLSttcGNsbXVsCi0rVGFyZ2V0IFJlcG9ydCBSZWplY3ROZWdhdGl2ZSBWYXIoeDg2X3Bj bG11bCkKLStTdXBwb3J0IFBDTE1VTCBidWlsdC1pbiBmdW5jdGlvbnMgYW5kIGNvZGUgZ2VuZXJh dGlvbgotLS0tIGdjYy9jb25maWcvaTM4Ni9pMzg2LmMJKHJldmlzaW9uIDEzMzkwMSkKLSsrKyBn Y2MvY29uZmlnL2kzODYvaTM4Ni5jCShyZXZpc2lvbiAxMzM5MDIpCi1AQCAtMjA3Nyw3ICsyMDc3 LDkgQEAgb3ZlcnJpZGVfb3B0aW9ucyAodm9pZCkKLSAgICAgICBQVEFfTk9fU0FIRiA9IDEgPDwg MTMsCi0gICAgICAgUFRBX1NTRTRfMSA9IDEgPDwgMTQsCi0gICAgICAgUFRBX1NTRTRfMiA9IDEg PDwgMTUsCi0tICAgICAgUFRBX1NTRTUgPSAxIDw8IDE2Ci0rICAgICAgUFRBX1NTRTUgPSAxIDw8 IDE2LAotKyAgICAgIFBUQV9BRVMgPSAxIDw8IDE3LAotKyAgICAgIFBUQV9QQ0xNVUwgPSAxIDw8 IDE4Ci0gICAgIH07Ci0gCi0gICBzdGF0aWMgc3RydWN0IHB0YQotQEAgLTIzODQsNiArMjM4Niwx MCBAQCBvdmVycmlkZV9vcHRpb25zICh2b2lkKQotIAkgIHg4Nl9wcmVmZXRjaF9zc2UgPSB0cnVl OwotIAlpZiAoIShUQVJHRVRfNjRCSVQgJiYgKHByb2Nlc3Nvcl9hbGlhc190YWJsZVtpXS5mbGFn cyAmIFBUQV9OT19TQUhGKSkpCi0gCSAgeDg2X3NhaGYgPSB0cnVlOwotKwlpZiAocHJvY2Vzc29y X2FsaWFzX3RhYmxlW2ldLmZsYWdzICYgUFRBX0FFUykKLSsJICB4ODZfYWVzID0gdHJ1ZTsKLSsJ aWYgKHByb2Nlc3Nvcl9hbGlhc190YWJsZVtpXS5mbGFncyAmIFBUQV9QQ0xNVUwpCi0rCSAgeDg2 X3BjbG11bCA9IHRydWU7Ci0gCi0gCWJyZWFrOwotICAgICAgIH0KLUBAIC0yNDI3LDYgKzI0MzMs MTQgQEAgb3ZlcnJpZGVfb3B0aW9ucyAodm9pZCkKLSAgIGlmIChpID09IHB0YV9zaXplKQotICAg ICBlcnJvciAoImJhZCB2YWx1ZSAoJXMpIGZvciAtbXR1bmU9IHN3aXRjaCIsIGl4ODZfdHVuZV9z dHJpbmcpOwotIAotKyAgLyogRW5hYmxlIFNTRTIgaWYgQUVTIG9yIFBDTE1VTCBpcyBlbmFibGVk LiAgKi8KLSsgIGlmICgoeDg2X2FlcyB8fCB4ODZfcGNsbXVsKQotKyAgICAgICYmICEoaXg4Nl9p c2FfZmxhZ3NfZXhwbGljaXQgJiBPUFRJT05fTUFTS19JU0FfU1NFMikpCi0rICAgIHsKLSsgICAg ICBpeDg2X2lzYV9mbGFncyB8PSBPUFRJT05fTUFTS19JU0FfU1NFMl9TRVQ7Ci0rICAgICAgaXg4 Nl9pc2FfZmxhZ3NfZXhwbGljaXQgfD0gT1BUSU9OX01BU0tfSVNBX1NTRTJfU0VUOwotKyAgICB9 Ci0rCi0gICBpeDg2X3R1bmVfbWFzayA9IDF1IDw8IGl4ODZfdHVuZTsKLSAgIGZvciAoaSA9IDA7 IGkgPCBYODZfVFVORV9MQVNUOyArK2kpCi0gICAgIGl4ODZfdHVuZV9mZWF0dXJlc1tpXSAmPSBp eDg2X3R1bmVfbWFzazsKLUBAIC0xNzU0NSw2ICsxNzU1OSwxNyBAQCBlbnVtIGl4ODZfYnVpbHRp bnMKLSAKLSAgIElYODZfQlVJTFRJTl9QQ01QR1RRLAotIAotKyAgLyogQUVTIGluc3RydWN0aW9u cyAqLwotKyAgSVg4Nl9CVUlMVElOX0FFU0VOQzEyOCwKLSsgIElYODZfQlVJTFRJTl9BRVNFTkNM QVNUMTI4LAotKyAgSVg4Nl9CVUlMVElOX0FFU0RFQzEyOCwKLSsgIElYODZfQlVJTFRJTl9BRVNE RUNMQVNUMTI4LAotKyAgSVg4Nl9CVUlMVElOX0FFU0lNQzEyOCwKLSsgIElYODZfQlVJTFRJTl9B RVNLRVlHRU5BU1NJU1QxMjgsCi0rCi0rICAvKiBQQ0xNVUwgaW5zdHJ1Y3Rpb24gKi8KLSsgIElY ODZfQlVJTFRJTl9QQ0xNVUxRRFExMjgsCi0rCi0gICAvKiBURm1vZGUgc3VwcG9ydCBidWlsdGlu cy4gICovCi0gICBJWDg2X0JVSUxUSU5fSU5GUSwKLSAgIElYODZfQlVJTFRJTl9GQUJTUSwKLUBA IC0xNzkwMCw2ICsxNzkyNSw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYnVpbHRpbl9kZXNjcmlw dGlvbiAKLSAgIHsgT1BUSU9OX01BU0tfSVNBX1NTRTRfMSwgQ09ERV9GT1Jfc3NlNF8xX3BibGVu ZHcsICJfX2J1aWx0aW5faWEzMl9wYmxlbmR3MTI4IiwgSVg4Nl9CVUlMVElOX1BCTEVORFcxMjgs IFVOS05PV04sIDAgfSwKLSAgIHsgT1BUSU9OX01BU0tfSVNBX1JPVU5ELCBDT0RFX0ZPUl9zc2U0 XzFfcm91bmRzZCwgMCwgSVg4Nl9CVUlMVElOX1JPVU5EU0QsIFVOS05PV04sIDAgfSwKLSAgIHsg T1BUSU9OX01BU0tfSVNBX1JPVU5ELCBDT0RFX0ZPUl9zc2U0XzFfcm91bmRzcywgMCwgSVg4Nl9C VUlMVElOX1JPVU5EU1MsIFVOS05PV04sIDAgfSwKLSsKLSsgIC8qIFBDTE1VTCAqLwotKyAgeyBP UFRJT05fTUFTS19JU0FfU1NFMiwgQ09ERV9GT1JfcGNsbXVscWRxLCAwLCBJWDg2X0JVSUxUSU5f UENMTVVMUURRMTI4LCBVTktOT1dOLCAwIH0sCi0gfTsKLSAKLSBzdGF0aWMgY29uc3Qgc3RydWN0 IGJ1aWx0aW5fZGVzY3JpcHRpb24gYmRlc2NfMmFyZ1tdID0KLUBAIC0xODIxMCw2ICsxODIzOCwx MyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGJ1aWx0aW5fZGVzY3JpcHRpb24gCi0gCi0gICAvKiBT U0U0LjIgKi8KLSAgIHsgT1BUSU9OX01BU0tfSVNBX1NTRTRfMiwgQ09ERV9GT1Jfc3NlNF8yX2d0 djJkaTMsICJfX2J1aWx0aW5faWEzMl9wY21wZ3RxIiwgSVg4Nl9CVUlMVElOX1BDTVBHVFEsIFVO S05PV04sIDAgfSwKLSsKLSsgIC8qIEFFUyAqLwotKyAgeyBPUFRJT05fTUFTS19JU0FfU1NFMiwg Q09ERV9GT1JfYWVzZW5jLCAwLCBJWDg2X0JVSUxUSU5fQUVTRU5DMTI4LCBVTktOT1dOLCAwIH0s Ci0rICB7IE9QVElPTl9NQVNLX0lTQV9TU0UyLCBDT0RFX0ZPUl9hZXNlbmNsYXN0LCAwLCBJWDg2 X0JVSUxUSU5fQUVTRU5DTEFTVDEyOCwgVU5LTk9XTiwgMCB9LAotKyAgeyBPUFRJT05fTUFTS19J U0FfU1NFMiwgQ09ERV9GT1JfYWVzZGVjLCAwLCBJWDg2X0JVSUxUSU5fQUVTREVDMTI4LCBVTktO T1dOLCAwIH0sCi0rICB7IE9QVElPTl9NQVNLX0lTQV9TU0UyLCBDT0RFX0ZPUl9hZXNkZWNsYXN0 LCAwLCBJWDg2X0JVSUxUSU5fQUVTREVDTEFTVDEyOCwgVU5LTk9XTiwgMCB9LAotKyAgeyBPUFRJ T05fTUFTS19JU0FfU1NFMiwgQ09ERV9GT1JfYWVza2V5Z2VuYXNzaXN0LCAwLCBJWDg2X0JVSUxU SU5fQUVTS0VZR0VOQVNTSVNUMTI4LCBVTktOT1dOLCAwIH0sCi0gfTsKLSAKLSBzdGF0aWMgY29u c3Qgc3RydWN0IGJ1aWx0aW5fZGVzY3JpcHRpb24gYmRlc2NfMWFyZ1tdID0KLUBAIC0xODI4NSw2 ICsxODMyMCw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYnVpbHRpbl9kZXNjcmlwdGlvbiAKLSAg IC8qIEZha2UgMSBhcmcgYnVpbHRpbnMgd2l0aCBhIGNvbnN0YW50IHNtYWxsZXIgdGhhbiA4IGJp dHMgYXMgdGhlIDJuZCBhcmcuICAqLwotICAgeyBPUFRJT05fTUFTS19JU0FfU1NFNF8xLCBDT0RF X0ZPUl9zc2U0XzFfcm91bmRwZCwgMCwgSVg4Nl9CVUlMVElOX1JPVU5EUEQsIFVOS05PV04sIDAg fSwKLSAgIHsgT1BUSU9OX01BU0tfSVNBX1NTRTRfMSwgQ09ERV9GT1Jfc3NlNF8xX3JvdW5kcHMs IDAsIElYODZfQlVJTFRJTl9ST1VORFBTLCBVTktOT1dOLCAwIH0sCi0rCi0rICAvKiBBRVMgKi8K LSsgIHsgT1BUSU9OX01BU0tfSVNBX1NTRTIsIENPREVfRk9SX2Flc2ltYywgMCwgSVg4Nl9CVUlM VElOX0FFU0lNQzEyOCwgVU5LTk9XTiwgMCB9LAotIH07Ci0gCi0gLyogU1NFNSAqLwotQEAgLTE5 NTE4LDYgKzE5NTU2LDI1IEBAIGl4ODZfaW5pdF9tbXhfc3NlX2J1aWx0aW5zICh2b2lkKQotIAkJ CQkgICAgTlVMTF9UUkVFKTsKLSAgIGRlZl9idWlsdGluX2NvbnN0IChPUFRJT05fTUFTS19JU0Ff U1NFNF8yIHwgT1BUSU9OX01BU0tfSVNBXzY0QklULCAiX19idWlsdGluX2lhMzJfY3JjMzJkaSIs IGZ0eXBlLCBJWDg2X0JVSUxUSU5fQ1JDMzJESSk7Ci0gCi0rICAvKiBBRVMgKi8KLSsgIGlmIChU QVJHRVRfQUVTKQotKyAgICB7Ci0rICAgICAgLyogRGVmaW5lIEFFUyBidWlsdC1pbiBmdW5jdGlv bnMgb25seSBpZiBBRVMgaXMgZW5hYmxlZC4gICovCi0rICAgICAgZGVmX2J1aWx0aW5fY29uc3Qg KE9QVElPTl9NQVNLX0lTQV9TU0UyLCAiX19idWlsdGluX2lhMzJfYWVzZW5jMTI4IiwgdjJkaV9m dHlwZV92MmRpX3YyZGksIElYODZfQlVJTFRJTl9BRVNFTkMxMjgpOwotKyAgICAgIGRlZl9idWls dGluX2NvbnN0IChPUFRJT05fTUFTS19JU0FfU1NFMiwgIl9fYnVpbHRpbl9pYTMyX2Flc2VuY2xh c3QxMjgiLCB2MmRpX2Z0eXBlX3YyZGlfdjJkaSwgSVg4Nl9CVUlMVElOX0FFU0VOQ0xBU1QxMjgp OwotKyAgICAgIGRlZl9idWlsdGluX2NvbnN0IChPUFRJT05fTUFTS19JU0FfU1NFMiwgIl9fYnVp bHRpbl9pYTMyX2Flc2RlYzEyOCIsIHYyZGlfZnR5cGVfdjJkaV92MmRpLCBJWDg2X0JVSUxUSU5f QUVTREVDMTI4KTsKLSsgICAgICBkZWZfYnVpbHRpbl9jb25zdCAoT1BUSU9OX01BU0tfSVNBX1NT RTIsICJfX2J1aWx0aW5faWEzMl9hZXNkZWNsYXN0MTI4IiwgdjJkaV9mdHlwZV92MmRpX3YyZGks IElYODZfQlVJTFRJTl9BRVNERUNMQVNUMTI4KTsKLSsgICAgICBkZWZfYnVpbHRpbl9jb25zdCAo T1BUSU9OX01BU0tfSVNBX1NTRTIsICJfX2J1aWx0aW5faWEzMl9hZXNpbWMxMjgiLCB2MmRpX2Z0 eXBlX3YyZGksIElYODZfQlVJTFRJTl9BRVNJTUMxMjgpOwotKyAgICAgIGRlZl9idWlsdGluX2Nv bnN0IChPUFRJT05fTUFTS19JU0FfU1NFMiwgIl9fYnVpbHRpbl9pYTMyX2Flc2tleWdlbmFzc2lz dDEyOCIsIHYyZGlfZnR5cGVfdjJkaV9pbnQsIElYODZfQlVJTFRJTl9BRVNLRVlHRU5BU1NJU1Qx MjgpOwotKyAgICB9Ci0rCi0rICAvKiBQQ0xNVUwgKi8KLSsgIGlmIChUQVJHRVRfUENMTVVMKQot KyAgICB7Ci0rICAgICAgLyogRGVmaW5lIFBDTE1VTCBidWlsdC1pbiBmdW5jdGlvbiBvbmx5IGlm IFBDTE1VTCBpcyBlbmFibGVkLiAgKi8KLSsgICAgICBkZWZfYnVpbHRpbl9jb25zdCAoT1BUSU9O X01BU0tfSVNBX1NTRTIsICJfX2J1aWx0aW5faWEzMl9wY2xtdWxxZHExMjgiLCB2MmRpX2Z0eXBl X3YyZGlfdjJkaV9pbnQsIElYODZfQlVJTFRJTl9QQ0xNVUxRRFExMjgpOwotKyAgICB9Ci0rCi0g ICAvKiBBTURGQU0xMCBTU0U0QSBOZXcgYnVpbHQtaW5zICAqLwotICAgZGVmX2J1aWx0aW4gKE9Q VElPTl9NQVNLX0lTQV9TU0U0QSwgIl9fYnVpbHRpbl9pYTMyX21vdm50c2QiLCB2b2lkX2Z0eXBl X3Bkb3VibGVfdjJkZiwgSVg4Nl9CVUlMVElOX01PVk5UU0QpOwotICAgZGVmX2J1aWx0aW4gKE9Q VElPTl9NQVNLX0lTQV9TU0U0QSwgIl9fYnVpbHRpbl9pYTMyX21vdm50c3MiLCB2b2lkX2Z0eXBl X3BmbG9hdF92NHNmLCBJWDg2X0JVSUxUSU5fTU9WTlRTUyk7Ci1AQCAtMTk3OTMsNiArMTk4NTAs NDQgQEAgaXg4Nl9leHBhbmRfY3JjMzIgKGVudW0gaW5zbl9jb2RlIGljb2RlLAotICAgcmV0dXJu IHRhcmdldDsKLSB9Ci0gCi0rLyogU3Vicm91dGluZSBvZiBpeDg2X2V4cGFuZF9idWlsdGluIHRv IHRha2UgY2FyZSBvZiBiaW5vcCBpbnNucwotKyAgIHdpdGggYW4gaW1tZWRpYXRlLiAgKi8KLSsK LStzdGF0aWMgcnR4Ci0raXg4Nl9leHBhbmRfYmlub3BfaW1tX2J1aWx0aW4gKGVudW0gaW5zbl9j b2RlIGljb2RlLCB0cmVlIGV4cCwKLSsJCQkJcnR4IHRhcmdldCkKLSt7Ci0rICBydHggcGF0Owot KyAgdHJlZSBhcmcwID0gQ0FMTF9FWFBSX0FSRyAoZXhwLCAwKTsKLSsgIHRyZWUgYXJnMSA9IENB TExfRVhQUl9BUkcgKGV4cCwgMSk7Ci0rICBydHggb3AwID0gZXhwYW5kX25vcm1hbCAoYXJnMCk7 Ci0rICBydHggb3AxID0gZXhwYW5kX25vcm1hbCAoYXJnMSk7Ci0rICBlbnVtIG1hY2hpbmVfbW9k ZSB0bW9kZSA9IGluc25fZGF0YVtpY29kZV0ub3BlcmFuZFswXS5tb2RlOwotKyAgZW51bSBtYWNo aW5lX21vZGUgbW9kZTAgPSBpbnNuX2RhdGFbaWNvZGVdLm9wZXJhbmRbMV0ubW9kZTsKLSsgIGVu dW0gbWFjaGluZV9tb2RlIG1vZGUxID0gaW5zbl9kYXRhW2ljb2RlXS5vcGVyYW5kWzJdLm1vZGU7 Ci0rCi0rICBpZiAoISAoKmluc25fZGF0YVtpY29kZV0ub3BlcmFuZFsxXS5wcmVkaWNhdGUpIChv cDAsIG1vZGUxKSkKLSsgICAgewotKyAgICAgIG9wMCA9IGNvcHlfdG9fcmVnIChvcDApOwotKyAg ICAgIG9wMCA9IHNpbXBsaWZ5X2dlbl9zdWJyZWcgKG1vZGUwLCBvcDAsIEdFVF9NT0RFIChvcDAp LCAwKTsKLSsgICAgfQotKwotKyAgaWYgKCEgKCppbnNuX2RhdGFbaWNvZGVdLm9wZXJhbmRbMl0u cHJlZGljYXRlKSAob3AxLCBtb2RlMSkpCi0rICAgIHsKLSsgICAgICBlcnJvciAoInRoZSBsYXN0 IG9wZXJhbmQgbXVzdCBiZSBhbiBpbW1lZGlhdGUiKTsKLSsgICAgICByZXR1cm4gY29uc3QwX3J0 eDsKLSsgICAgfQotKwotKyAgdGFyZ2V0ID0gZ2VuX3JlZ19ydHggKFYyREltb2RlKTsKLSsgIHBh dCA9IEdFTl9GQ04gKGljb2RlKSAoc2ltcGxpZnlfZ2VuX3N1YnJlZyAodG1vZGUsIHRhcmdldCwK LSsJCQkJCSAgICAgIFYyREltb2RlLCAwKSwKLSsJCQkgb3AwLCBvcDEpOwotKyAgaWYgKCEgcGF0 KQotKyAgICByZXR1cm4gMDsKLSsgIGVtaXRfaW5zbiAocGF0KTsKLSsgIHJldHVybiB0YXJnZXQ7 Ci0rfQotKwotIC8qIFN1YnJvdXRpbmUgb2YgaXg4Nl9leHBhbmRfYnVpbHRpbiB0byB0YWtlIGNh cmUgb2YgYmlub3AgaW5zbnMuICAqLwotIAotIHN0YXRpYyBydHgKLUBAIC0yMDg4OSwzNCArMjA5 ODQsMTggQEAgaXg4Nl9leHBhbmRfYnVpbHRpbiAodHJlZSBleHAsIHJ0eCB0YXJnZQotICAgICAg IHJldHVybiB0YXJnZXQ7Ci0gCi0gICAgIGNhc2UgSVg4Nl9CVUlMVElOX1BTTExEUUkxMjg6Ci0r ICAgICAgcmV0dXJuIGl4ODZfZXhwYW5kX2Jpbm9wX2ltbV9idWlsdGluIChDT0RFX0ZPUl9zc2Uy X2FzaGx0aTMsCi0rCQkJCQkgICAgIGV4cCwgdGFyZ2V0KTsKLSsgICAgICBicmVhazsKLSsKLSAg ICAgY2FzZSBJWDg2X0JVSUxUSU5fUFNSTERRSTEyODoKLS0gICAgICBpY29kZSA9IChmY29kZSA9 PSBJWDg2X0JVSUxUSU5fUFNMTERRSTEyOCA/IENPREVfRk9SX3NzZTJfYXNobHRpMwotLQkgICAg ICAgOiBDT0RFX0ZPUl9zc2UyX2xzaHJ0aTMpOwotLSAgICAgIGFyZzAgPSBDQUxMX0VYUFJfQVJH IChleHAsIDApOwotLSAgICAgIGFyZzEgPSBDQUxMX0VYUFJfQVJHIChleHAsIDEpOwotLSAgICAg IG9wMCA9IGV4cGFuZF9ub3JtYWwgKGFyZzApOwotLSAgICAgIG9wMSA9IGV4cGFuZF9ub3JtYWwg KGFyZzEpOwotLSAgICAgIHRtb2RlID0gaW5zbl9kYXRhW2ljb2RlXS5vcGVyYW5kWzBdLm1vZGU7 Ci0tICAgICAgbW9kZTEgPSBpbnNuX2RhdGFbaWNvZGVdLm9wZXJhbmRbMV0ubW9kZTsKLS0gICAg ICBtb2RlMiA9IGluc25fZGF0YVtpY29kZV0ub3BlcmFuZFsyXS5tb2RlOwotKyAgICAgIHJldHVy biBpeDg2X2V4cGFuZF9iaW5vcF9pbW1fYnVpbHRpbiAoQ09ERV9GT1Jfc3NlMl9sc2hydGkzLAot KwkJCQkJICAgICBleHAsIHRhcmdldCk7Ci0rICAgICAgYnJlYWs7Ci0gCi0tICAgICAgaWYgKCEg KCppbnNuX2RhdGFbaWNvZGVdLm9wZXJhbmRbMV0ucHJlZGljYXRlKSAob3AwLCBtb2RlMSkpCi0t CXsKLS0JICBvcDAgPSBjb3B5X3RvX3JlZyAob3AwKTsKLS0JICBvcDAgPSBzaW1wbGlmeV9nZW5f c3VicmVnIChtb2RlMSwgb3AwLCBHRVRfTU9ERSAob3AwKSwgMCk7Ci0tCX0KLS0gICAgICBpZiAo ISAoKmluc25fZGF0YVtpY29kZV0ub3BlcmFuZFsyXS5wcmVkaWNhdGUpIChvcDEsIG1vZGUyKSkK LS0JewotLQkgIGVycm9yICgic2hpZnQgbXVzdCBiZSBhbiBpbW1lZGlhdGUiKTsKLS0JICByZXR1 cm4gY29uc3QwX3J0eDsKLS0JfQotLSAgICAgIHRhcmdldCA9IGdlbl9yZWdfcnR4IChWMkRJbW9k ZSk7Ci0tICAgICAgcGF0ID0gR0VOX0ZDTiAoaWNvZGUpIChzaW1wbGlmeV9nZW5fc3VicmVnICh0 bW9kZSwgdGFyZ2V0LCBWMkRJbW9kZSwgMCksCi0tCQkJICAgICBvcDAsIG9wMSk7Ci0tICAgICAg aWYgKCEgcGF0KQotLQlyZXR1cm4gMDsKLS0gICAgICBlbWl0X2luc24gKHBhdCk7Ci0tICAgICAg cmV0dXJuIHRhcmdldDsKLSsgICAgY2FzZSBJWDg2X0JVSUxUSU5fQUVTS0VZR0VOQVNTSVNUMTI4 OgotKyAgICAgIHJldHVybiBpeDg2X2V4cGFuZF9iaW5vcF9pbW1fYnVpbHRpbiAoQ09ERV9GT1Jf YWVza2V5Z2VuYXNzaXN0LAotKwkJCQkJICAgICBleHAsIHRhcmdldCk7Ci0gCi0gICAgIGNhc2Ug SVg4Nl9CVUlMVElOX0ZFTU1TOgotICAgICAgIGVtaXRfaW5zbiAoZ2VuX21teF9mZW1tcyAoKSk7 Ci0tLS0gZ2NjL2RvYy9leHRlbmQudGV4aQkocmV2aXNpb24gMTMzOTAxKQotKysrIGdjYy9kb2Mv ZXh0ZW5kLnRleGkJKHJldmlzaW9uIDEzMzkwMikKLUBAIC04MDEzLDYgKzgwMTMsMjcgQEAgZGVw ZW5kaW5nIG9uIHRoZSBzaXplIG9mIEBjb2Rle3Vuc2lnbmVkIAotIEdlbmVyYXRlcyB0aGUgQGNv ZGV7cG9wY250cX0gbWFjaGluZSBpbnN0cnVjdGlvbi4KLSBAZW5kIHRhYmxlCi0gCi0rVGhlIGZv bGxvd2luZyBidWlsdC1pbiBmdW5jdGlvbnMgYXJlIGF2YWlsYWJsZSB3aGVuIEBvcHRpb257LW1h ZXN9IGlzCi0rdXNlZC4gIEFsbCBvZiB0aGVtIGdlbmVyYXRlIHRoZSBtYWNoaW5lIGluc3RydWN0 aW9uIHRoYXQgaXMgcGFydCBvZiB0aGUKLStuYW1lLgotKwotK0BzbWFsbGV4YW1wbGUKLSt2MmRp IF9fYnVpbHRpbl9pYTMyX2Flc2VuYzEyOCAodjJkaSwgdjJkaSkKLSt2MmRpIF9fYnVpbHRpbl9p YTMyX2Flc2VuY2xhc3QxMjggKHYyZGksIHYyZGkpCi0rdjJkaSBfX2J1aWx0aW5faWEzMl9hZXNk ZWMxMjggKHYyZGksIHYyZGkpCi0rdjJkaSBfX2J1aWx0aW5faWEzMl9hZXNkZWNsYXN0MTI4ICh2 MmRpLCB2MmRpKQotK3YyZGkgX19idWlsdGluX2lhMzJfYWVza2V5Z2VuYXNzaXN0MTI4ICh2MmRp LCBjb25zdCBpbnQpCi0rdjJkaSBfX2J1aWx0aW5faWEzMl9hZXNpbWMxMjggKHYyZGkpCi0rQGVu ZCBzbWFsbGV4YW1wbGUKLSsKLStUaGUgZm9sbG93aW5nIGJ1aWx0LWluIGZ1bmN0aW9uIGlzIGF2 YWlsYWJsZSB3aGVuIEBvcHRpb257LW1wY2xtdWx9IGlzCi0rdXNlZC4KLSsKLStAdGFibGUgQGNv ZGUKLStAaXRlbSB2MmRpIF9fYnVpbHRpbl9pYTMyX3BjbG11bHFkcTEyOCAodjJkaSwgdjJkaSwg Y29uc3QgaW50KQotK0dlbmVyYXRlcyB0aGUgQGNvZGV7cGNsbXVscWRxfSBtYWNoaW5lIGluc3Ry dWN0aW9uLgotK0BlbmQgdGFibGUKLSsKLSBUaGUgZm9sbG93aW5nIGJ1aWx0LWluIGZ1bmN0aW9u cyBhcmUgYXZhaWxhYmxlIHdoZW4gQG9wdGlvbnstbXNzZTRhfSBpcyB1c2VkLgotIEFsbCBvZiB0 aGVtIGdlbmVyYXRlIHRoZSBtYWNoaW5lIGluc3RydWN0aW9uIHRoYXQgaXMgcGFydCBvZiB0aGUg bmFtZS4KLSAKLS0tLSBnY2MvZG9jL2ludm9rZS50ZXhpCShyZXZpc2lvbiAxMzM5MDEpCi0rKysg Z2NjL2RvYy9pbnZva2UudGV4aQkocmV2aXNpb24gMTMzOTAyKQotQEAgLTU1MSw2ICs1NTEsNyBA QCBPYmplY3RpdmUtQyBhbmQgT2JqZWN0aXZlLUMrKyBEaWFsZWN0c30uCi0gLW1uby13aWRlLW11 bHRpcGx5ICAtbXJ0ZCAgLW1hbGlnbi1kb3VibGUgQGdvbAotIC1tcHJlZmVycmVkLXN0YWNrLWJv dW5kYXJ5PUB2YXJ7bnVtfSAtbWNsZCAtbWN4MTYgLW1zYWhmIC1tcmVjaXAgQGdvbAotIC1tbW14 ICAtbXNzZSAgLW1zc2UyIC1tc3NlMyAtbXNzc2UzIC1tc3NlNC4xIC1tc3NlNC4yIC1tc3NlNCBA Z29sCi0rLW1hZXMgLW1wY2xtdWwgQGdvbAotIC1tc3NlNGEgLW0zZG5vdyAtbXBvcGNudCAtbWFi bSAtbXNzZTUgQGdvbAotIC1tdGhyZWFkcyAgLW1uby1hbGlnbi1zdHJpbmdvcHMgIC1taW5saW5l LWFsbC1zdHJpbmdvcHMgQGdvbAotIC1tcHVzaC1hcmdzICAtbWFjY3VtdWxhdGUtb3V0Z29pbmct YXJncyAgLW0xMjhiaXQtbG9uZy1kb3VibGUgQGdvbAotQEAgLTEwNzMyLDYgKzEwNzMzLDEwIEBA IHByZWZlcnJlZCBhbGlnbm1lbnQgdG8gQG9wdGlvbnstbXByZWZlcnIKLSBAaXRlbXggLW1uby1z c2U0LjIKLSBAaXRlbSAtbXNzZTQKLSBAaXRlbXggLW1uby1zc2U0Ci0rQGl0ZW14IC1tYWVzCi0r QGl0ZW14IC1tbm8tYWVzCi0rQGl0ZW14IC1tcGNsbXVsCi0rQGl0ZW14IC1tbm8tcGNsbXVsCi0g QGl0ZW0gLW1zc2U0YQotIEBpdGVtIC1tbm8tc3NlNGEKLSBAaXRlbSAtbXNzZTUKLUBAIC0xMDc0 OSw4ICsxMDc1NCw4IEBAIHByZWZlcnJlZCBhbGlnbm1lbnQgdG8gQG9wdGlvbnstbXByZWZlcnIK LSBAb3BpbmRleCBtM2Rub3cKLSBAb3BpbmRleCBtbm8tM2Rub3cKLSBUaGVzZSBzd2l0Y2hlcyBl bmFibGUgb3IgZGlzYWJsZSB0aGUgdXNlIG9mIGluc3RydWN0aW9ucyBpbiB0aGUgTU1YLAotLVNT RSwgU1NFMiwgU1NFMywgU1NTRTMsIFNTRTQuMSwgU1NFNEEsIFNTRTUsIEFCTSBvciAzRE5vdyFA OiBleHRlbmRlZAotLWluc3RydWN0aW9uIHNldHMuCi0rU1NFLCBTU0UyLCBTU0UzLCBTU1NFMywg U1NFNC4xLCBBRVMsIFBDTE1VTCwgU1NFNEEsIFNTRTUsIEFCTSBvcgotKzNETm93IUA6IGV4dGVu ZGVkIGluc3RydWN0aW9uIHNldHMuCi0gVGhlc2UgZXh0ZW5zaW9ucyBhcmUgYWxzbyBhdmFpbGFi bGUgYXMgYnVpbHQtaW4gZnVuY3Rpb25zOiBzZWUKLSBAcmVme1g4NiBCdWlsdC1pbiBGdW5jdGlv bnN9LCBmb3IgZGV0YWlscyBvZiB0aGUgZnVuY3Rpb25zIGVuYWJsZWQgYW5kCi0gZGlzYWJsZWQg YnkgdGhlc2Ugc3dpdGNoZXMuCi0tLS0gZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvc3Nl LTE0LmMJKHJldmlzaW9uIDEzMzkwMSkKLSsrKyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4 Ni9zc2UtMTQuYwkocmV2aXNpb24gMTMzOTAyKQotQEAgLTEsMTQgKzEsMTUgQEAKLSAvKiB7IGRn LWRvIGNvbXBpbGUgfSAqLwotLS8qIHsgZGctb3B0aW9ucyAiLU8wIC1tYXJjaD1rOCAtbTNkbm93 IC1tc3NlNCAtbXNzZTUiIH0gKi8KLSsvKiB7IGRnLW9wdGlvbnMgIi1PMCAtbWFyY2g9azggLW0z ZG5vdyAtbXNzZTQgLW1zc2U1IC1tYWVzIC1tcGNsbXVsIiB9ICovCi0gCi0gLyogVGVzdCB0aGF0 IHRoZSBpbnRyaW5zaWNzIGNvbXBpbGUgd2l0aG91dCBvcHRpbWl6YXRpb24uICBBbGwgb2YgdGhl bSBhcmUKLS0gICBkZWZpbmVkIGFzIGlubGluZSBmdW5jdGlvbnMgaW4geyx4LGUscCx0LHMsYSxi fW1taW50cmluLmggIGFuZCBtbTNkbm93LmgKLSsgICBkZWZpbmVkIGFzIGlubGluZSBmdW5jdGlv bnMgaW4geyx4LGUscCx0LHMsdyxhLGJ9bW1pbnRyaW4uaCAgYW5kIG1tM2Rub3cuaAotICAgIHRo YXQgcmVmZXJlbmNlIHRoZSBwcm9wZXIgYnVpbHRpbiBmdW5jdGlvbnMuICBEZWZpbmluZyBhd2F5 ICJleHRlcm4iIGFuZAotICAgICJfX2lubGluZSIgcmVzdWx0cyBpbiBhbGwgb2YgdGhlbSBiZWlu ZyBjb21waWxlZCBhcyBwcm9wZXIgZnVuY3Rpb25zLiAgKi8KLSAKLSAjZGVmaW5lIGV4dGVybgot ICNkZWZpbmUgX19pbmxpbmUKLSAKLSsjaW5jbHVkZSA8d21taW50cmluLmg+Ci0gI2luY2x1ZGUg PGJtbWludHJpbi5oPgotICNpbmNsdWRlIDxzbW1pbnRyaW4uaD4KLSAjaW5jbHVkZSA8bW0zZG5v dy5oPgotQEAgLTQ0LDYgKzQ1LDEwIEBACi0gdGVzdF8xeCAoX21tX2V4dHJhY3RpX3NpNjQsIF9f bTEyOGksIF9fbTEyOGksIDEsIDEpCi0gdGVzdF8yeCAoX21tX2luc2VydGlfc2k2NCwgX19tMTI4 aSwgX19tMTI4aSwgX19tMTI4aSwgMSwgMSkKLSAKLSsvKiB3bW1pbnRyaW4uaCAqLwotK3Rlc3Rf MSAoX21tX2Flc2tleWdlbmFzc2lzdF9zaTEyOCwgX19tMTI4aSwgX19tMTI4aSwgMSkKLSt0ZXN0 XzIgKF9tbV9jbG11bGVwaTY0X3NpMTI4LCBfX20xMjhpLCBfX20xMjhpLCBfX20xMjhpLCAxKQot KwotIC8qIHNtbWludHJpbi5oICovCi0gdGVzdF8yIChfbW1fYmxlbmRfZXBpMTYsIF9fbTEyOGks IF9fbTEyOGksIF9fbTEyOGksIDEpCi0gdGVzdF8yIChfbW1fYmxlbmRfcHMsIF9fbTEyOCwgX19t MTI4LCBfX20xMjgsIDEpCi0tLS0gZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvaTM4Ni5l eHAJKHJldmlzaW9uIDEzMzkwMSkKLSsrKyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9p Mzg2LmV4cAkocmV2aXNpb24gMTMzOTAyKQotQEAgLTUxLDYgKzUxLDM0IEBAIHByb2MgY2hlY2tf ZWZmZWN0aXZlX3RhcmdldF9zc2U0IHsgfSB7Ci0gICAgIH0gIi1PMiAtbXNzZTQuMSIgXQotIH0K LSAKLSsjIFJldHVybiAxIGlmIGFlcyBpbnN0cnVjdGlvbnMgY2FuIGJlIGNvbXBpbGVkLgotK3By b2MgY2hlY2tfZWZmZWN0aXZlX3RhcmdldF9hZXMgeyB9IHsKLSsgICAgcmV0dXJuIFtjaGVja19u b19jb21waWxlcl9tZXNzYWdlcyBhZXMgb2JqZWN0IHsKLSsJdHlwZWRlZiBsb25nIGxvbmcgX19t MTI4aSBfX2F0dHJpYnV0ZV9fICgoX192ZWN0b3Jfc2l6ZV9fICgxNikpKTsKLSsJdHlwZWRlZiBs b25nIGxvbmcgX192MmRpIF9fYXR0cmlidXRlX18gKChfX3ZlY3Rvcl9zaXplX18gKDE2KSkpOwot KwotKwlfX20xMjhpIF9tbV9hZXNpbWNfc2kxMjggKF9fbTEyOGkgX19YKQotKwl7Ci0rCSAgICBy ZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2Flc2ltYzEyOCAoKF9fdjJkaSlfX1gpOwot Kwl9Ci0rICAgIH0gIi1PMiAtbWFlcyIgXQotK30KLSsKLSsjIFJldHVybiAxIGlmIHBjbG11bCBp bnN0cnVjdGlvbnMgY2FuIGJlIGNvbXBpbGVkLgotK3Byb2MgY2hlY2tfZWZmZWN0aXZlX3Rhcmdl dF9wY2xtdWwgeyB9IHsKLSsgICAgcmV0dXJuIFtjaGVja19ub19jb21waWxlcl9tZXNzYWdlcyBw Y2xtdWwgb2JqZWN0IHsKLSsJdHlwZWRlZiBsb25nIGxvbmcgX19tMTI4aSBfX2F0dHJpYnV0ZV9f ICgoX192ZWN0b3Jfc2l6ZV9fICgxNikpKTsKLSsJdHlwZWRlZiBsb25nIGxvbmcgX192MmRpIF9f YXR0cmlidXRlX18gKChfX3ZlY3Rvcl9zaXplX18gKDE2KSkpOwotKwotKwlfX20xMjhpIHBjbG11 bHFkcV90ZXN0IChfX20xMjhpIF9fWCwgX19tMTI4aSBfX1kpCi0rCXsKLSsJICAgIHJldHVybiAo X19tMTI4aSkgX19idWlsdGluX2lhMzJfcGNsbXVscWRxMTI4ICgoX192MmRpKV9fWCwKLSsJCQkJ CQkJICAoX192MmRpKV9fWSwKLSsJCQkJCQkJICAxKTsKLSsJfQotKyAgICB9ICItTzIgLW1wY2xt dWwiIF0KLSt9Ci0rCi0gIyBSZXR1cm4gMSBpZiBzc2U0YSBpbnN0cnVjdGlvbnMgY2FuIGJlIGNv bXBpbGVkLgotIHByb2MgY2hlY2tfZWZmZWN0aXZlX3RhcmdldF9zc2U0YSB7IH0gewotICAgICBy ZXR1cm4gW2NoZWNrX25vX2NvbXBpbGVyX21lc3NhZ2VzIHNzZTRhIG9iamVjdCB7Ci0tLS0gZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYWVzZGVjbGFzdC5jCShyZXZpc2lvbiAwKQotKysr IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2Flc2RlY2xhc3QuYwkocmV2aXNpb24gMTMz OTAyKQotQEAgLTAsMCArMSw2OSBAQAotKy8qIHsgZGctZG8gcnVuIH0gKi8KLSsvKiB7IGRnLXJl cXVpcmUtZWZmZWN0aXZlLXRhcmdldCBhZXMgfSAqLwotKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1t YWVzIiB9ICovCi0rCi0rI2luY2x1ZGUgPHdtbWludHJpbi5oPgotKyNpbmNsdWRlIDxzdHJpbmcu aD4KLSsKLSsjaW5jbHVkZSAiYWVzLWNoZWNrLmgiCi0rCi0rZXh0ZXJuIHZvaWQgYWJvcnQgKHZv aWQpOwotKwotKyNkZWZpbmUgTlVNIDEwMjQKLSsKLStzdGF0aWMgX19tMTI4aSBzcmMxW05VTV07 Ci0rc3RhdGljIF9fbTEyOGkgc3JjMltOVU1dOwotK3N0YXRpYyBfX20xMjhpIGVkc3RbTlVNXTsK LSsKLStzdGF0aWMgX19tMTI4aSByZXNkc3RbTlVNXTsKLSsKLSsvKiBJbml0aWFsaXplIGlucHV0 L291dHB1dCB2ZWN0b3JzLiAgKEN1cnJlbnRseSwgdGhlcmUgaXMgb25seSBvbmUgc2V0IG9mCi0r ICAgaW5wdXQvb3V0cHV0IHZlY3RvcnMpLiAgKi8KLSsKLStzdGF0aWMgdm9pZAotK2luaXRfZGF0 YSAoX19tMTI4aSAqczEsIF9fbTEyOGkgKnMyLCBfX20xMjhpICpkKQotK3sKLSsgIGludCBpOwot KwotKyAgZm9yIChpID0gMDsgaSA8IE5VTTsgaSsrKQotKyAgICB7Ci0rICAgICAgczFbaV0gPSBf bW1fc2V0cl9lcGkzMiAoMHg1ZDUzNDc1ZCwgMHg2Mzc0NmY3MiwKLSsJCQkgICAgICAweDczNzQ1 NjY1LCAweDdiNWI1NDY1KTsKLSsgICAgICBzMltpXSA9IF9tbV9zZXRyX2VwaTMyICgweDcyNmY2 ZTVkLCAweDViNDc3NTY1LAotKwkJCSAgICAgIDB4Njg2MTc5MjksIDB4NDg2OTI4NTMpOwotKyAg ICAgIGRbaV0gPSBfbW1fc2V0cl9lcGkzMiAoMHg3MmE1OTNkMCwgMHhkNDEwNjM3YiwKLSsJCQkg ICAgIDB4NmIzMTdmOTUsIDB4YzVhMzkxZWYpOwotKyAgICB9Ci0rfQotKwotK3N0YXRpYyB2b2lk Ci0rYWVzX3Rlc3QgKHZvaWQpCi0rewotKyAgaW50IGk7Ci0rCi0rICBpbml0X2RhdGEgKHNyYzEs IHNyYzIsIGVkc3QpOwotKwotKyAgZm9yIChpID0gMDsgaSA8IE5VTTsgaSArPSAxNikKLSsgICAg ewotKyAgICAgIHJlc2RzdFtpXSA9IF9tbV9hZXNkZWNsYXN0X3NpMTI4IChzcmMxW2ldLCBzcmMy W2ldKTsKLSsgICAgICByZXNkc3RbaSArIDFdID0gX21tX2Flc2RlY2xhc3Rfc2kxMjggKHNyYzFb aSArIDFdLCBzcmMyW2kgKyAxXSk7Ci0rICAgICAgcmVzZHN0W2kgKyAyXSA9IF9tbV9hZXNkZWNs YXN0X3NpMTI4IChzcmMxW2kgKyAyXSwgc3JjMltpICsgMl0pOwotKyAgICAgIHJlc2RzdFtpICsg M10gPSBfbW1fYWVzZGVjbGFzdF9zaTEyOCAoc3JjMVtpICsgM10sIHNyYzJbaSArIDNdKTsKLSsg ICAgICByZXNkc3RbaSArIDRdID0gX21tX2Flc2RlY2xhc3Rfc2kxMjggKHNyYzFbaSArIDRdLCBz cmMyW2kgKyA0XSk7Ci0rICAgICAgcmVzZHN0W2kgKyA1XSA9IF9tbV9hZXNkZWNsYXN0X3NpMTI4 IChzcmMxW2kgKyA1XSwgc3JjMltpICsgNV0pOwotKyAgICAgIHJlc2RzdFtpICsgNl0gPSBfbW1f YWVzZGVjbGFzdF9zaTEyOCAoc3JjMVtpICsgNl0sIHNyYzJbaSArIDZdKTsKLSsgICAgICByZXNk c3RbaSArIDddID0gX21tX2Flc2RlY2xhc3Rfc2kxMjggKHNyYzFbaSArIDddLCBzcmMyW2kgKyA3 XSk7Ci0rICAgICAgcmVzZHN0W2kgKyA4XSA9IF9tbV9hZXNkZWNsYXN0X3NpMTI4IChzcmMxW2kg KyA4XSwgc3JjMltpICsgOF0pOwotKyAgICAgIHJlc2RzdFtpICsgOV0gPSBfbW1fYWVzZGVjbGFz dF9zaTEyOCAoc3JjMVtpICsgOV0sIHNyYzJbaSArIDldKTsKLSsgICAgICByZXNkc3RbaSArIDEw XSA9IF9tbV9hZXNkZWNsYXN0X3NpMTI4IChzcmMxW2kgKyAxMF0sIHNyYzJbaSArIDEwXSk7Ci0r ICAgICAgcmVzZHN0W2kgKyAxMV0gPSBfbW1fYWVzZGVjbGFzdF9zaTEyOCAoc3JjMVtpICsgMTFd LCBzcmMyW2kgKyAxMV0pOwotKyAgICAgIHJlc2RzdFtpICsgMTJdID0gX21tX2Flc2RlY2xhc3Rf c2kxMjggKHNyYzFbaSArIDEyXSwgc3JjMltpICsgMTJdKTsKLSsgICAgICByZXNkc3RbaSArIDEz XSA9IF9tbV9hZXNkZWNsYXN0X3NpMTI4IChzcmMxW2kgKyAxM10sIHNyYzJbaSArIDEzXSk7Ci0r ICAgICAgcmVzZHN0W2kgKyAxNF0gPSBfbW1fYWVzZGVjbGFzdF9zaTEyOCAoc3JjMVtpICsgMTRd LCBzcmMyW2kgKyAxNF0pOwotKyAgICAgIHJlc2RzdFtpICsgMTVdID0gX21tX2Flc2RlY2xhc3Rf c2kxMjggKHNyYzFbaSArIDE1XSwgc3JjMltpICsgMTVdKTsKLSsgICAgfQotKwotKyAgZm9yIChp ID0gMDsgaSA8IE5VTTsgaSsrKQotKyAgICBpZiAobWVtY21wIChlZHN0ICsgaSwgcmVzZHN0ICsg aSwgc2l6ZW9mIChfX20xMjhpKSkpCi0rICAgICAgYWJvcnQgKCk7Ci0rfQotLS0tIGdjYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3BjbG11bHFkcS5jCShyZXZpc2lvbiAwKQotKysrIGdjYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3BjbG11bHFkcS5jCShyZXZpc2lvbiAxMzM5MDIpCi1A QCAtMCwwICsxLDg3IEBACi0rLyogeyBkZy1kbyBydW4gfSAqLwotKy8qIHsgZGctcmVxdWlyZS1l ZmZlY3RpdmUtdGFyZ2V0IHBjbG11bCB9ICovCi0rLyogeyBkZy1vcHRpb25zICItTzIgLW1wY2xt dWwiIH0gKi8KLSsKLSsjaW5jbHVkZSA8d21taW50cmluLmg+Ci0rI2luY2x1ZGUgPHN0cmluZy5o PgotKwotKyNpbmNsdWRlICJwY2xtdWwtY2hlY2suaCIKLSsKLStleHRlcm4gdm9pZCBhYm9ydCAo dm9pZCk7Ci0rCi0rI2RlZmluZSBOVU0gMTAyNAotKwotK3N0YXRpYyBfX20xMjhpIHMxW05VTV07 Ci0rc3RhdGljIF9fbTEyOGkgczJbTlVNXTsKLSsvKiBXZSBuZWVkIHRoaXMgYXJyYXkgdG8gZ2Vu ZXJhdGUgbWVtIGZvcm0gb2YgaW5zdCAqLwotK3N0YXRpYyBfX20xMjhpIHMybVtOVU1dOwotKwot K3N0YXRpYyBfX20xMjhpIGVfMDBbTlVNXTsKLStzdGF0aWMgX19tMTI4aSBlXzAxW05VTV07Ci0r c3RhdGljIF9fbTEyOGkgZV8xMFtOVU1dOwotK3N0YXRpYyBfX20xMjhpIGVfMTFbTlVNXTsKLSsK LStzdGF0aWMgX19tMTI4aSBkXzAwW05VTV07Ci0rc3RhdGljIF9fbTEyOGkgZF8wMVtOVU1dOwot K3N0YXRpYyBfX20xMjhpIGRfMTBbTlVNXTsKLStzdGF0aWMgX19tMTI4aSBkXzExW05VTV07Ci0r Ci0rLyogSW5pdGlhbGl6ZSBpbnB1dC9vdXRwdXQgdmVjdG9ycy4gIChDdXJyZW50bHksIHRoZXJl IGlzIG9ubHkgb25lIHNldAotKyAgIG9mIGlucHV0L291dHB1dCB2ZWN0b3JzKS4gICovCi0rc3Rh dGljIHZvaWQKLStpbml0X2RhdGEgKF9fbTEyOGkgKmxzMSwgICBfX20xMjhpICpsczIsIF9fbTEy OGkgKmxlXzAwLCBfX20xMjhpICpsZV8wMSwKLSsJICAgX19tMTI4aSAqbGVfMTAsIF9fbTEyOGkg KmxlXzExKQotK3sKLSsgIGludCBpOwotKwotKyAgZm9yIChpID0gMDsgaSA8IE5VTTsgaSsrKQot KyAgICB7Ci0rICAgICAgbHMxW2ldID0gX21tX3NldF9lcGkzMiAoMHg3QjVCNTQ2NSwgMHg3Mzc0 NTY2NSwKLSsJCQkgICAgICAweDYzNzQ2RjcyLCAweDVENTM0NzVEKTsKLSsgICAgICBsczJbaV0g PSBfbW1fc2V0X2VwaTMyICgweDQ4NjkyODUzLCAweDY4NjE3OTI5LAotKwkJCSAgICAgIDB4NUI0 Nzc1NjUsIDB4NzI2RjZFNUQpOwotKyAgICAgIHMybVtpXSA9IF9tbV9zZXRfZXBpMzIgKDB4NDg2 OTI4NTMsIDB4Njg2MTc5MjksCi0rCQkJICAgICAgMHg1QjQ3NzU2NSwgMHg3MjZGNkU1RCk7Ci0r ICAgICAgbGVfMDBbaV0gPSBfbW1fc2V0X2VwaTMyICgweDFENEQ4NEM4LCAweDVDMzQ0MEMwLAot KwkJCQkweDkyOTYzM0Q1LCAweEQzNkYwNDUxKTsKLSsgICAgICBsZV8wMVtpXSA9IF9tbV9zZXRf ZXBpMzIgKDB4MUEyQkY2REIsIDB4M0EzMDg2MkYsCi0rCQkJCTB4QkFCRjI2MkQsIDB4RjRCN0Q1 QzkpOwotKyAgICAgIGxlXzEwW2ldID0gX21tX3NldF9lcGkzMiAoMHgxQkQxN0M4RCwgMHg1NTZB QjVBMSwKLSsJCQkJMHg3RkE1NDBBQywgMHgyQTI4MTMxNSk7Ci0rICAgICAgbGVfMTFbaV0gPSBf bW1fc2V0X2VwaTMyICgweDFEMUUxRjJDLCAweDU5MkU3QzQ1LAotKwkJCQkweEQ2NkVFMDNFLCAw eDQxMEZENEVEKTsKLSsgICAgfQotK30KLSsKLStzdGF0aWMgdm9pZAotK3BjbG11bF90ZXN0ICh2 b2lkKQotK3sKLSsgIGludCBpOwotKwotKyAgaW5pdF9kYXRhIChzMSwgczIsIGVfMDAsIGVfMDEs IGVfMTAsIGVfMTEpOwotKwotKyAgZm9yIChpID0gMDsgaSA8IE5VTTsgaSArPSAyKQotKyAgICB7 Ci0rICAgICAgZF8wMFtpXSA9IF9tbV9jbG11bGVwaTY0X3NpMTI4IChzMVtpXSwgczJtW2ldLCAw eDAwKTsKLSsgICAgICBkXzAxW2ldID0gX21tX2NsbXVsZXBpNjRfc2kxMjggKHMxW2ldLCBzMltp XSwgMHgwMSk7Ci0rICAgICAgZF8xMFtpXSA9IF9tbV9jbG11bGVwaTY0X3NpMTI4IChzMVtpXSwg czJbaV0sIDB4MTApOwotKyAgICAgIGRfMTFbaV0gPSBfbW1fY2xtdWxlcGk2NF9zaTEyOCAoczFb aV0sIHMyW2ldLCAweDExKTsKLSsKLSsgICAgICBkXzExW2kgKyAxXSA9IF9tbV9jbG11bGVwaTY0 X3NpMTI4IChzMVtpICsgMV0sIHMyW2kgKyAxXSwgMHgxMSk7Ci0rICAgICAgZF8wMFtpICsgMV0g PSBfbW1fY2xtdWxlcGk2NF9zaTEyOCAoczFbaSArIDFdLCBzMltpICsgMV0sIDB4MDApOwotKyAg ICAgIGRfMTBbaSArIDFdID0gX21tX2NsbXVsZXBpNjRfc2kxMjggKHMxW2kgKyAxXSwgczJtW2kg KyAxXSwgMHgxMCk7Ci0rICAgICAgZF8wMVtpICsgMV0gPSBfbW1fY2xtdWxlcGk2NF9zaTEyOCAo czFbaSArIDFdLCBzMltpICsgMV0sIDB4MDEpOwotKyAgICB9Ci0rCi0rICBmb3IgKGkgPSAwOyBp IDwgTlVNOyBpKyspCi0rICAgIHsKLSsgICAgICBpZiAobWVtY21wIChkXzAwICsgaSwgZV8wMCAr IGksIHNpemVvZiAoX19tMTI4aSkpKQotKwlhYm9ydCAoKTsKLSsgICAgICBpZiAobWVtY21wIChk XzAxICsgaSwgZV8wMSArIGksIHNpemVvZiAoX19tMTI4aSkpKQotKwlhYm9ydCAoKTsKLSsgICAg ICBpZiAobWVtY21wIChkXzEwICsgaSwgZV8xMCArIGksIHNpemVvZiAoX19tMTI4aSkpKQotKwlh Ym9ydCAoKTsKLSsgICAgICBpZiAobWVtY21wKGRfMTEgKyBpLCBlXzExICsgaSwgc2l6ZW9mIChf X20xMjhpKSkpCi0rCWFib3J0ICgpOwotKyAgICB9Ci0rfQotLS0tIGdjYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9pMzg2L2Flcy1jaGVjay5oCShyZXZpc2lvbiAwKQotKysrIGdjYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9pMzg2L2Flcy1jaGVjay5oCShyZXZpc2lvbiAxMzM5MDIpCi1AQCAtMCwwICsx LDMwIEBACi0rI2luY2x1ZGUgPHN0ZGlvLmg+Ci0rI2luY2x1ZGUgPHN0ZGxpYi5oPgotKwotKyNp bmNsdWRlICJjcHVpZC5oIgotKwotK3N0YXRpYyB2b2lkIGFlc190ZXN0ICh2b2lkKTsKLSsKLStp bnQKLSttYWluICgpCi0rewotKyAgdW5zaWduZWQgaW50IGVheCwgZWJ4LCBlY3gsIGVkeDsKLSsg Ci0rICBpZiAoIV9fZ2V0X2NwdWlkICgxLCAmZWF4LCAmZWJ4LCAmZWN4LCAmZWR4KSkKLSsgICAg cmV0dXJuIDA7Ci0rCi0rICAvKiBSdW4gQUVTIHRlc3Qgb25seSBpZiBob3N0IGhhcyBBRVMgc3Vw cG9ydC4gICovCi0rICBpZiAoZWN4ICYgYml0X0FFUykKLSsgICAgewotKyAgICAgIGFlc190ZXN0 ICgpOwotKyNpZmRlZiBERUJVRwotKyAgICBwcmludGYgKCJQQVNTRURcbiIpOwotKyNlbmRpZgot KyAgICB9Ci0rI2lmZGVmIERFQlVHCi0rICBlbHNlCi0rICAgIHByaW50ZiAoIlNLSVBQRURcbiIp OwotKyNlbmRpZgotKwotKyAgcmV0dXJuIDA7Ci0rfQotLS0tIGdjYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9pMzg2L3BjbG11bC1jaGVjay5oCShyZXZpc2lvbiAwKQotKysrIGdjYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9pMzg2L3BjbG11bC1jaGVjay5oCShyZXZpc2lvbiAxMzM5MDIpCi1AQCAtMCww ICsxLDMwIEBACi0rI2luY2x1ZGUgPHN0ZGlvLmg+Ci0rI2luY2x1ZGUgPHN0ZGxpYi5oPgotKwot KyNpbmNsdWRlICJjcHVpZC5oIgotKwotK3N0YXRpYyB2b2lkIHBjbG11bF90ZXN0ICh2b2lkKTsK LSsKLStpbnQKLSttYWluICgpCi0rewotKyAgdW5zaWduZWQgaW50IGVheCwgZWJ4LCBlY3gsIGVk eDsKLSsgCi0rICBpZiAoIV9fZ2V0X2NwdWlkICgxLCAmZWF4LCAmZWJ4LCAmZWN4LCAmZWR4KSkK LSsgICAgcmV0dXJuIDA7Ci0rCi0rICAvKiBSdW4gUENMTVVMUURRIHRlc3Qgb25seSBpZiBob3N0 IGhhcyBQQ0xNVUxRRFEgc3VwcG9ydC4gICovCi0rICBpZiAoZWN4ICYgYml0X1BDTE1VTCkKLSsg ICAgewotKyAgICAgIHBjbG11bF90ZXN0ICgpOwotKyNpZmRlZiBERUJVRwotKyAgICAgIHByaW50 ZiAoIlBBU1NFRFxuIik7Ci0rI2VuZGlmCi0rICAgIH0KLSsjaWZkZWYgREVCVUcKLSsgIGVsc2UK LSsgICAgcHJpbnRmICgiU0tJUFBFRFxuIik7Ci0rI2VuZGlmCi0rCi0rICByZXR1cm4gMDsKLSt9 Ci0tLS0gZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYWVza2V5Z2VuYXNzaXN0LmMJKHJl dmlzaW9uIDApCi0rKysgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYWVza2V5Z2VuYXNz aXN0LmMJKHJldmlzaW9uIDEzMzkwMikKLUBAIC0wLDAgKzEsNjYgQEAKLSsvKiB7IGRnLWRvIHJ1 biB9ICovCi0rLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQgYWVzIH0gKi8KLSsvKiB7 IGRnLW9wdGlvbnMgIi1PMiAtbWFlcyIgfSAqLwotKwotKyNpbmNsdWRlIDx3bW1pbnRyaW4uaD4K LSsjaW5jbHVkZSA8c3RyaW5nLmg+Ci0rCi0rI2luY2x1ZGUgImFlcy1jaGVjay5oIgotKwotK2V4 dGVybiB2b2lkIGFib3J0ICh2b2lkKTsKLSsKLSsjZGVmaW5lIE5VTSAxMDI0Ci0rI2RlZmluZSBJ TU04IDEKLSsKLStzdGF0aWMgX19tMTI4aSBzcmMxW05VTV07Ci0rc3RhdGljIF9fbTEyOGkgZWRz dFtOVU1dOwotKwotK3N0YXRpYyBfX20xMjhpIHJlc2RzdFtOVU1dOwotKwotKy8qIEluaXRpYWxp emUgaW5wdXQvb3V0cHV0IHZlY3RvcnMuICAoQ3VycmVudGx5LCB0aGVyZSBpcyBvbmx5IG9uZSBz ZXQKLSsgICBvZiBpbnB1dC9vdXRwdXQgdmVjdG9ycykuICAqLwotKwotK3N0YXRpYyB2b2lkCi0r aW5pdF9kYXRhIChfX20xMjhpICpzMSwgX19tMTI4aSAqZCkKLSt7Ci0rICBpbnQgaTsKLSsgIGZv ciAoaSA9IDA7IGkgPCBOVU07IGkrKykKLSsgICAgewotKyAgICAgIHMxW2ldID0gX21tX3NldHJf ZXBpMzIgKDB4MTYxNTdlMmIsIDB4YTZkMmFlMjgsCi0rCQkJICAgICAgMHg4ODE1ZjdhYiwgMHgz YzRmY2YwOSk7Ci0rICAgICAgZFtpXSA9IF9tbV9zZXRyX2VwaTMyICgweDI0YjVlNDM0LCAweDM0 MjRiNWU1LAotKwkJCSAgICAgMHhlYjg0OGEwMSwgMHgwMWViODQ4Yik7Ci0rICAgIH0KLSt9Ci0r Ci0rc3RhdGljIHZvaWQKLSthZXNfdGVzdCAodm9pZCkKLSt7Ci0rICBpbnQgaTsKLSsKLSsgIGlu aXRfZGF0YSAoc3JjMSwgZWRzdCk7Ci0rCi0rICBmb3IgKGkgPSAwOyBpIDwgTlVNOyBpICs9IDE2 KQotKyAgICB7Ci0rICAgICAgcmVzZHN0W2ldICA9IF9tbV9hZXNrZXlnZW5hc3Npc3Rfc2kxMjgg KHNyYzFbaV0sIElNTTgpOwotKyAgICAgIHJlc2RzdFtpICsgMV0gPSBfbW1fYWVza2V5Z2VuYXNz aXN0X3NpMTI4IChzcmMxW2kgKyAxXSwgSU1NOCk7Ci0rICAgICAgcmVzZHN0W2kgKyAyXSA9IF9t bV9hZXNrZXlnZW5hc3Npc3Rfc2kxMjggKHNyYzFbaSArIDJdLCBJTU04KTsKLSsgICAgICByZXNk c3RbaSArIDNdID0gX21tX2Flc2tleWdlbmFzc2lzdF9zaTEyOCAoc3JjMVtpICsgM10sIElNTTgp OwotKyAgICAgIHJlc2RzdFtpICsgNF0gPSBfbW1fYWVza2V5Z2VuYXNzaXN0X3NpMTI4IChzcmMx W2kgKyA0XSwgSU1NOCk7Ci0rICAgICAgcmVzZHN0W2kgKyA1XSA9IF9tbV9hZXNrZXlnZW5hc3Np c3Rfc2kxMjggKHNyYzFbaSArIDVdLCBJTU04KTsKLSsgICAgICByZXNkc3RbaSArIDZdID0gX21t X2Flc2tleWdlbmFzc2lzdF9zaTEyOCAoc3JjMVtpICsgNl0sIElNTTgpOwotKyAgICAgIHJlc2Rz dFtpICsgN10gPSBfbW1fYWVza2V5Z2VuYXNzaXN0X3NpMTI4IChzcmMxW2kgKyA3XSwgSU1NOCk7 Ci0rICAgICAgcmVzZHN0W2kgKyA4XSA9IF9tbV9hZXNrZXlnZW5hc3Npc3Rfc2kxMjggKHNyYzFb aSArIDhdLCBJTU04KTsKLSsgICAgICByZXNkc3RbaSArIDldID0gX21tX2Flc2tleWdlbmFzc2lz dF9zaTEyOCAoc3JjMVtpICsgOV0sIElNTTgpOwotKyAgICAgIHJlc2RzdFtpICsgMTBdID0gX21t X2Flc2tleWdlbmFzc2lzdF9zaTEyOCAoc3JjMVtpICsgMTBdLCBJTU04KTsKLSsgICAgICByZXNk c3RbaSArIDExXSA9IF9tbV9hZXNrZXlnZW5hc3Npc3Rfc2kxMjggKHNyYzFbaSArIDExXSwgSU1N OCk7Ci0rICAgICAgcmVzZHN0W2kgKyAxMl0gPSBfbW1fYWVza2V5Z2VuYXNzaXN0X3NpMTI4IChz cmMxW2kgKyAxMl0sIElNTTgpOwotKyAgICAgIHJlc2RzdFtpICsgMTNdID0gX21tX2Flc2tleWdl bmFzc2lzdF9zaTEyOCAoc3JjMVtpICsgMTNdLCBJTU04KTsKLSsgICAgICByZXNkc3RbaSArIDE0 XSA9IF9tbV9hZXNrZXlnZW5hc3Npc3Rfc2kxMjggKHNyYzFbaSArIDE0XSwgSU1NOCk7Ci0rICAg ICAgcmVzZHN0W2kgKyAxNV0gPSBfbW1fYWVza2V5Z2VuYXNzaXN0X3NpMTI4IChzcmMxW2kgKyAx NV0sIElNTTgpOwotKyAgICB9Ci0rCi0rICBmb3IgKGkgPSAwOyBpIDwgTlVNOyBpKyspCi0rICAg IGlmIChtZW1jbXAoZWRzdCArIGksIHJlc2RzdCArIGksIHNpemVvZiAoX19tMTI4aSkpKQotKyAg ICAgIGFib3J0ICgpOwotK30KLS0tLSBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hZXNl bmNsYXN0LmMJKHJldmlzaW9uIDApCi0rKysgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYv YWVzZW5jbGFzdC5jCShyZXZpc2lvbiAxMzM5MDIpCi1AQCAtMCwwICsxLDY4IEBACi0rLyogeyBk Zy1kbyBydW4gfSAqLwotKy8qIHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IGFlcyB9ICov Ci0rLyogeyBkZy1vcHRpb25zICItTzIgLW1hZXMiIH0gKi8KLSsKLSsjaW5jbHVkZSA8d21taW50 cmluLmg+Ci0rI2luY2x1ZGUgPHN0cmluZy5oPgotKwotKyNpbmNsdWRlICJhZXMtY2hlY2suaCIK LSsKLStleHRlcm4gdm9pZCBhYm9ydCAodm9pZCk7Ci0rCi0rI2RlZmluZSBOVU0gMTAyNAotKwot K3N0YXRpYyBfX20xMjhpIHNyYzFbTlVNXTsKLStzdGF0aWMgX19tMTI4aSBzcmMyW05VTV07Ci0r c3RhdGljIF9fbTEyOGkgZWRzdFtOVU1dOwotKwotK3N0YXRpYyBfX20xMjhpIHJlc2RzdFtOVU1d OwotKwotKy8qIEluaXRpYWxpemUgaW5wdXQvb3V0cHV0IHZlY3RvcnMuICAoQ3VycmVudGx5LCB0 aGVyZSBpcyBvbmx5IG9uZQotKyAgIHNldCBvZiBpbnB1dC9vdXRwdXQgdmVjdG9ycykuICAqLwot KwotK3N0YXRpYyB2b2lkCi0raW5pdF9kYXRhIChfX20xMjhpICpzMSwgX19tMTI4aSAqczIsIF9f bTEyOGkgKmQpCi0rewotKyAgaW50IGk7Ci0rICBmb3IgKGkgPSAwOyBpIDwgTlVNOyBpKyspCi0r ICAgIHsKLSsgICAgICBzMVtpXSA9IF9tbV9zZXRyX2VwaTMyICgweDVkNTM0NzVkLCAweDYzNzQ2 ZjcyLAotKwkJCSAgICAgIDB4NzM3NDU2NjUsIDB4N2I1YjU0NjUpOwotKyAgICAgIHMyW2ldID0g X21tX3NldHJfZXBpMzIgKDB4NzI2ZjZlNWQsIDB4NWI0Nzc1NjUsCi0rCQkJICAgICAgMHg2ODYx NzkyOSwgMHg0ODY5Mjg1Myk7Ci0rICAgICAgZFtpXSA9IF9tbV9zZXRyX2VwaTMyICgweDUzZmRj NjExLCAweDE3N2VjNDI1LAotKwkJCSAgICAgMHg5MzhjNTk2NCwgMHhjN2ZiODgxZSk7Ci0rICAg IH0KLSt9Ci0rCi0rc3RhdGljIHZvaWQKLSthZXNfdGVzdCAodm9pZCkKLSt7Ci0rICBpbnQgaTsK LSsKLSsgIGluaXRfZGF0YSAoc3JjMSwgc3JjMiwgZWRzdCk7Ci0rCi0rICBmb3IgKGkgPSAwOyBp IDwgTlVNOyBpICs9IDE2KQotKyAgICB7Ci0rICAgICAgcmVzZHN0W2ldID0gX21tX2Flc2VuY2xh c3Rfc2kxMjggKHNyYzFbaV0sIHNyYzJbaV0pOwotKyAgICAgIHJlc2RzdFtpICsgMV0gPSBfbW1f YWVzZW5jbGFzdF9zaTEyOCAoc3JjMVtpICsgMV0sIHNyYzJbaSArIDFdKTsKLSsgICAgICByZXNk c3RbaSArIDJdID0gX21tX2Flc2VuY2xhc3Rfc2kxMjggKHNyYzFbaSArIDJdLCBzcmMyW2kgKyAy XSk7Ci0rICAgICAgcmVzZHN0W2kgKyAzXSA9IF9tbV9hZXNlbmNsYXN0X3NpMTI4IChzcmMxW2kg KyAzXSwgc3JjMltpICsgM10pOwotKyAgICAgIHJlc2RzdFtpICsgNF0gPSBfbW1fYWVzZW5jbGFz dF9zaTEyOCAoc3JjMVtpICsgNF0sIHNyYzJbaSArIDRdKTsKLSsgICAgICByZXNkc3RbaSArIDVd ID0gX21tX2Flc2VuY2xhc3Rfc2kxMjggKHNyYzFbaSArIDVdLCBzcmMyW2kgKyA1XSk7Ci0rICAg ICAgcmVzZHN0W2kgKyA2XSA9IF9tbV9hZXNlbmNsYXN0X3NpMTI4IChzcmMxW2kgKyA2XSwgc3Jj MltpICsgNl0pOwotKyAgICAgIHJlc2RzdFtpICsgN10gPSBfbW1fYWVzZW5jbGFzdF9zaTEyOCAo c3JjMVtpICsgN10sIHNyYzJbaSArIDddKTsKLSsgICAgICByZXNkc3RbaSArIDhdID0gX21tX2Fl c2VuY2xhc3Rfc2kxMjggKHNyYzFbaSArIDhdLCBzcmMyW2kgKyA4XSk7Ci0rICAgICAgcmVzZHN0 W2kgKyA5XSA9IF9tbV9hZXNlbmNsYXN0X3NpMTI4IChzcmMxW2kgKyA5XSwgc3JjMltpICsgOV0p OwotKyAgICAgIHJlc2RzdFtpICsgMTBdID0gX21tX2Flc2VuY2xhc3Rfc2kxMjggKHNyYzFbaSAr IDEwXSwgc3JjMltpICsgMTBdKTsKLSsgICAgICByZXNkc3RbaSArIDExXSA9IF9tbV9hZXNlbmNs YXN0X3NpMTI4IChzcmMxW2kgKyAxMV0sIHNyYzJbaSArIDExXSk7Ci0rICAgICAgcmVzZHN0W2kg KyAxMl0gPSBfbW1fYWVzZW5jbGFzdF9zaTEyOCAoc3JjMVtpICsgMTJdLCBzcmMyW2kgKyAxMl0p OwotKyAgICAgIHJlc2RzdFtpICsgMTNdID0gX21tX2Flc2VuY2xhc3Rfc2kxMjggKHNyYzFbaSAr IDEzXSwgc3JjMltpICsgMTNdKTsKLSsgICAgICByZXNkc3RbaSArIDE0XSA9IF9tbV9hZXNlbmNs YXN0X3NpMTI4IChzcmMxW2kgKyAxNF0sIHNyYzJbaSArIDE0XSk7Ci0rICAgICAgcmVzZHN0W2kg KyAxNV0gPSBfbW1fYWVzZW5jbGFzdF9zaTEyOCAoc3JjMVtpICsgMTVdLCBzcmMyW2kgKyAxNV0p OwotKyAgICB9Ci0rCi0rICBmb3IgKGkgPSAwOyBpIDwgTlVNOyBpKyspCi0rICAgIGlmIChtZW1j bXAoZWRzdCArIGksIHJlc2RzdCArIGksIHNpemVvZiAoX19tMTI4aSkpKQotKyAgICAgIGFib3J0 ICgpOwotK30KLS0tLSBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hZXNpbWMuYwkocmV2 aXNpb24gMCkKLSsrKyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hZXNpbWMuYwkocmV2 aXNpb24gMTMzOTAyKQotQEAgLTAsMCArMSw2NiBAQAotKy8qIHsgZGctZG8gcnVuIH0gKi8KLSsv KiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCBhZXMgfSAqLwotKy8qIHsgZGctb3B0aW9u cyAiLU8yIC1tYWVzIiB9ICovCi0rCi0rI2luY2x1ZGUgPHdtbWludHJpbi5oPgotKyNpbmNsdWRl IDxzdHJpbmcuaD4KLSsKLSsjaW5jbHVkZSAiYWVzLWNoZWNrLmgiCi0rCi0rZXh0ZXJuIHZvaWQg YWJvcnQgKHZvaWQpOwotKwotKyNkZWZpbmUgTlVNIDEwMjQKLSsKLStzdGF0aWMgX19tMTI4aSBz cmMxW05VTV07Ci0rc3RhdGljIF9fbTEyOGkgZWRzdFtOVU1dOwotKwotK3N0YXRpYyBfX20xMjhp IHJlc2RzdFtOVU1dOwotKwotKy8qIEluaXRpYWxpemUgaW5wdXQvb3V0cHV0IHZlY3RvcnMuICAo Q3VycmVudGx5LCB0aGVyZSBpcyBvbmx5IG9uZSBzZXQKLSsgICBvZiBpbnB1dC9vdXRwdXQgdmVj dG9ycykuICAgKi8KLSsKLStzdGF0aWMgdm9pZAotK2luaXRfZGF0YSAoX19tMTI4aSAqczEsIF9f bTEyOGkgKmQpCi0rewotKyAgaW50IGk7Ci0rCi0rICBmb3IgKGkgPSAwOyBpIDwgTlVNOyBpKysp Ci0rICAgIHsKLSsgICAgICBzMVtpXSA9IF9tbV9zZXRyX2VwaTMyICgweDVkNTM0NzVkLCAweDYz NzQ2ZjcyLAotKwkJCSAgICAgIDB4NzM3NDU2NjUsIDB4N2I1YjU0NjUpOwotKyAgICAgIGRbaV0g PSBfbW1fc2V0cl9lcGkzMiAoMHg4MWMzYjNlNSwgMHgyYjE4MzMwYSwKLSsJCQkgICAgIDB4NDRi MTA5YzgsIDB4NjI3YTZmNjYpOwotKyAgICB9Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rYWVzX3Rl c3QgKHZvaWQpCi0rewotKyAgaW50IGk7Ci0rCi0rICBpbml0X2RhdGEgKHNyYzEsIGVkc3QpOwot KwotKyAgZm9yIChpID0gMDsgaSA8IE5VTTsgaSArPSAxNikKLSsgICAgewotKyAgICAgIHJlc2Rz dFtpXSA9IF9tbV9hZXNpbWNfc2kxMjggKHNyYzFbaV0pOwotKyAgICAgIHJlc2RzdFtpICsgMV0g PSBfbW1fYWVzaW1jX3NpMTI4IChzcmMxW2kgKyAxXSk7Ci0rICAgICAgcmVzZHN0W2kgKyAyXSA9 IF9tbV9hZXNpbWNfc2kxMjggKHNyYzFbaSArIDJdKTsKLSsgICAgICByZXNkc3RbaSArIDNdID0g X21tX2Flc2ltY19zaTEyOCAoc3JjMVtpICsgM10pOwotKyAgICAgIHJlc2RzdFtpICsgNF0gPSBf bW1fYWVzaW1jX3NpMTI4IChzcmMxW2kgKyA0XSk7Ci0rICAgICAgcmVzZHN0W2kgKyA1XSA9IF9t bV9hZXNpbWNfc2kxMjggKHNyYzFbaSArIDVdKTsKLSsgICAgICByZXNkc3RbaSArIDZdID0gX21t X2Flc2ltY19zaTEyOCAoc3JjMVtpICsgNl0pOwotKyAgICAgIHJlc2RzdFtpICsgN10gPSBfbW1f YWVzaW1jX3NpMTI4IChzcmMxW2kgKyA3XSk7Ci0rICAgICAgcmVzZHN0W2kgKyA4XSA9IF9tbV9h ZXNpbWNfc2kxMjggKHNyYzFbaSArIDhdKTsKLSsgICAgICByZXNkc3RbaSArIDldID0gX21tX2Fl c2ltY19zaTEyOCAoc3JjMVtpICsgOV0pOwotKyAgICAgIHJlc2RzdFtpICsgMTBdID0gX21tX2Fl c2ltY19zaTEyOCAoc3JjMVtpICsgMTBdKTsKLSsgICAgICByZXNkc3RbaSArIDExXSA9IF9tbV9h ZXNpbWNfc2kxMjggKHNyYzFbaSArIDExXSk7Ci0rICAgICAgcmVzZHN0W2kgKyAxMl0gPSBfbW1f YWVzaW1jX3NpMTI4IChzcmMxW2kgKyAxMl0pOwotKyAgICAgIHJlc2RzdFtpICsgMTNdID0gX21t X2Flc2ltY19zaTEyOCAoc3JjMVtpICsgMTNdKTsKLSsgICAgICByZXNkc3RbaSArIDE0XSA9IF9t bV9hZXNpbWNfc2kxMjggKHNyYzFbaSArIDE0XSk7Ci0rICAgICAgcmVzZHN0W2kgKyAxNV0gPSBf bW1fYWVzaW1jX3NpMTI4IChzcmMxW2kgKyAxNV0pOwotKyAgICB9Ci0rCi0rICBmb3IgKGkgPSAw OyBpIDwgTlVNOyBpKyspCi0rICAgIGlmIChtZW1jbXAoZWRzdCArIGksIHJlc2RzdCArIGksIHNp emVvZiAoX19tMTI4aSkpKQotKyAgICAgIGFib3J0ICgpOwotK30KLS0tLSBnY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvaTM4Ni9hZXNlbmMuYwkocmV2aXNpb24gMCkKLSsrKyBnY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvaTM4Ni9hZXNlbmMuYwkocmV2aXNpb24gMTMzOTAyKQotQEAgLTAsMCArMSw2 OCBAQAotKy8qIHsgZGctZG8gcnVuIH0gKi8KLSsvKiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRh cmdldCBhZXMgfSAqLwotKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1tYWVzIiB9ICovCi0rCi0rI2lu Y2x1ZGUgPHdtbWludHJpbi5oPgotKyNpbmNsdWRlIDxzdHJpbmcuaD4KLSsKLSsjaW5jbHVkZSAi YWVzLWNoZWNrLmgiCi0rCi0rZXh0ZXJuIHZvaWQgYWJvcnQgKHZvaWQpOwotKwotKyNkZWZpbmUg TlVNIDEwMjQKLSsKLStzdGF0aWMgX19tMTI4aSBzcmMxW05VTV07Ci0rc3RhdGljIF9fbTEyOGkg c3JjMltOVU1dOwotK3N0YXRpYyBfX20xMjhpIGVkc3RbTlVNXTsKLSsKLStzdGF0aWMgX19tMTI4 aSByZXNkc3RbTlVNXTsKLSsKLSsvKiBJbml0aWFsaXplIGlucHV0L291dHB1dCB2ZWN0b3JzLiAg KEN1cnJlbnRseSwgdGhlcmUgaXMgb25seSBvbmUgc2V0Ci0rICAgb2YgaW5wdXQvb3V0cHV0IHZl Y3RvcnMpLiAgKi8KLSsKLStzdGF0aWMgdm9pZAotK2luaXRfZGF0YSAoX19tMTI4aSAqczEsIF9f bTEyOGkgKnMyLCBfX20xMjhpICpkKQotK3sKLSsgIGludCBpOwotKyAgZm9yIChpID0gMDsgaSA8 IE5VTTsgaSsrKQotKyAgICB7Ci0rICAgICAgczFbaV0gPSBfbW1fc2V0cl9lcGkzMiAoMHg1ZDUz NDc1ZCwgMHg2Mzc0NmY3MiwKLSsJCQkgICAgICAweDczNzQ1NjY1LCAweDdiNWI1NDY1KTsKLSsg ICAgICBzMltpXSA9IF9tbV9zZXRyX2VwaTMyICgweDcyNmY2ZTVkLCAweDViNDc3NTY1LAotKwkJ CSAgICAgIDB4Njg2MTc5MjksIDB4NDg2OTI4NTMpOwotKyAgICAgIGRbaV0gPSBfbW1fc2V0cl9l cGkzMiAoMHhkZWQ3ZTU5NSwgMHg4YjEwNGI1OCwKLSsJCQkgICAgIDB4OWZkYmEzYzUsIDB4YTgz MTFjMmYpOwotKyAgICB9Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rYWVzX3Rlc3QgKHZvaWQpCi0r ewotKyAgaW50IGk7Ci0rCi0rICBpbml0X2RhdGEgKHNyYzEsIHNyYzIsIGVkc3QpOwotKwotKyAg Zm9yIChpID0gMDsgaSA8IE5VTTsgaSArPSAxNikKLSsgICAgewotKyAgICAgIHJlc2RzdFtpXSA9 IF9tbV9hZXNlbmNfc2kxMjggKHNyYzFbaV0sIHNyYzJbaV0pOwotKyAgICAgIHJlc2RzdFtpICsg MV0gPSBfbW1fYWVzZW5jX3NpMTI4IChzcmMxW2kgKyAxXSwgc3JjMltpICsgMV0pOwotKyAgICAg IHJlc2RzdFtpICsgMl0gPSBfbW1fYWVzZW5jX3NpMTI4IChzcmMxW2kgKyAyXSwgc3JjMltpICsg Ml0pOwotKyAgICAgIHJlc2RzdFtpICsgM10gPSBfbW1fYWVzZW5jX3NpMTI4IChzcmMxW2kgKyAz XSwgc3JjMltpICsgM10pOwotKyAgICAgIHJlc2RzdFtpICsgNF0gPSBfbW1fYWVzZW5jX3NpMTI4 IChzcmMxW2kgKyA0XSwgc3JjMltpICsgNF0pOwotKyAgICAgIHJlc2RzdFtpICsgNV0gPSBfbW1f YWVzZW5jX3NpMTI4IChzcmMxW2kgKyA1XSwgc3JjMltpICsgNV0pOwotKyAgICAgIHJlc2RzdFtp ICsgNl0gPSBfbW1fYWVzZW5jX3NpMTI4IChzcmMxW2kgKyA2XSwgc3JjMltpICsgNl0pOwotKyAg ICAgIHJlc2RzdFtpICsgN10gPSBfbW1fYWVzZW5jX3NpMTI4IChzcmMxW2kgKyA3XSwgc3JjMltp ICsgN10pOwotKyAgICAgIHJlc2RzdFtpICsgOF0gPSBfbW1fYWVzZW5jX3NpMTI4IChzcmMxW2kg KyA4XSwgc3JjMltpICsgOF0pOwotKyAgICAgIHJlc2RzdFtpICsgOV0gPSBfbW1fYWVzZW5jX3Np MTI4IChzcmMxW2kgKyA5XSwgc3JjMltpICsgOV0pOwotKyAgICAgIHJlc2RzdFtpICsgMTBdID0g X21tX2Flc2VuY19zaTEyOCAoc3JjMVtpICsgMTBdLCBzcmMyW2kgKyAxMF0pOwotKyAgICAgIHJl c2RzdFtpICsgMTFdID0gX21tX2Flc2VuY19zaTEyOCAoc3JjMVtpICsgMTFdLCBzcmMyW2kgKyAx MV0pOwotKyAgICAgIHJlc2RzdFtpICsgMTJdID0gX21tX2Flc2VuY19zaTEyOCAoc3JjMVtpICsg MTJdLCBzcmMyW2kgKyAxMl0pOwotKyAgICAgIHJlc2RzdFtpICsgMTNdID0gX21tX2Flc2VuY19z aTEyOCAoc3JjMVtpICsgMTNdLCBzcmMyW2kgKyAxM10pOwotKyAgICAgIHJlc2RzdFtpICsgMTRd ID0gX21tX2Flc2VuY19zaTEyOCAoc3JjMVtpICsgMTRdLCBzcmMyW2kgKyAxNF0pOwotKyAgICAg IHJlc2RzdFtpICsgMTVdID0gX21tX2Flc2VuY19zaTEyOCAoc3JjMVtpICsgMTVdLCBzcmMyW2kg KyAxNV0pOwotKyAgICB9Ci0rCi0rICBmb3IgKGkgPSAwOyBpIDwgTlVNOyBpKyspCi0rICAgIGlm IChtZW1jbXAgKGVkc3QgKyBpLCByZXNkc3QgKyBpLCBzaXplb2YgKF9fbTEyOGkpKSkKLSsgICAg ICBhYm9ydCAoKTsKLSt9Ci0tLS0gZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvc3NlLTEz LmMJKHJldmlzaW9uIDEzMzkwMSkKLSsrKyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9z c2UtMTMuYwkocmV2aXNpb24gMTMzOTAyKQotQEAgLTEsOCArMSw4IEBACi0gLyogeyBkZy1kbyBj b21waWxlIH0gKi8KLS0vKiB7IGRnLW9wdGlvbnMgIi1PMiAtbWFyY2g9azggLW0zZG5vdyAtbXNz ZTQgLW1zc2U1IiB9ICovCi0rLyogeyBkZy1vcHRpb25zICItTzIgLW1hcmNoPWs4IC1tM2Rub3cg LW1zc2U0IC1tc3NlNSAtbWFlcyAtbXBjbG11bCIgfSAqLwotIAotIC8qIFRlc3QgdGhhdCB0aGUg aW50cmluc2ljcyBjb21waWxlIHdpdGggb3B0aW1pemF0aW9uLiAgQWxsIG9mIHRoZW0gYXJlCi0t ICAgZGVmaW5lZCBhcyBpbmxpbmUgZnVuY3Rpb25zIGluIHsseCxlLHAsdCxzLGEsYn1tbWludHJp bi5oIGFuZCBtbTNkbm93LmgKLSsgICBkZWZpbmVkIGFzIGlubGluZSBmdW5jdGlvbnMgaW4geyx4 LGUscCx0LHMsdyxhLGJ9bW1pbnRyaW4uaCBhbmQgbW0zZG5vdy5oCi0gICAgdGhhdCByZWZlcmVu Y2UgdGhlIHByb3BlciBidWlsdGluIGZ1bmN0aW9ucy4gIERlZmluaW5nIGF3YXkgImV4dGVybiIg YW5kCi0gICAgIl9faW5saW5lIiByZXN1bHRzIGluIGFsbCBvZiB0aGVtIGJlaW5nIGNvbXBpbGVk IGFzIHByb3BlciBmdW5jdGlvbnMuICAqLwotIAotQEAgLTE1LDYgKzE1LDEwIEBACi0gI2RlZmlu ZSBfX2J1aWx0aW5faWEzMl9leHRycWkoWCwgSSwgTCkgIF9fYnVpbHRpbl9pYTMyX2V4dHJxaShY LCAxLCAxKQotICNkZWZpbmUgX19idWlsdGluX2lhMzJfaW5zZXJ0cWkoWCwgWSwgSSwgTCkgX19i dWlsdGluX2lhMzJfaW5zZXJ0cWkoWCwgWSwgMSwgMSkKLSAKLSsvKiB3bW1pbnRyaW4uaCAqLwot KyNkZWZpbmUgX19idWlsdGluX2lhMzJfYWVza2V5Z2VuYXNzaXN0MTI4KFgsIEMpIF9fYnVpbHRp bl9pYTMyX2Flc2tleWdlbmFzc2lzdDEyOChYLCAxKQotKyNkZWZpbmUgX19idWlsdGluX2lhMzJf cGNsbXVscWRxMTI4KFgsIFksIEkpIF9fYnVpbHRpbl9pYTMyX3BjbG11bHFkcTEyOChYLCBZLCAx KQotKwotIC8qIHNtbWludHJpbi5oICovCi0gI2RlZmluZSBfX2J1aWx0aW5faWEzMl9wYmxlbmR3 MTI4KFgsIFksIE0pIF9fYnVpbHRpbl9pYTMyX3BibGVuZHcxMjggKFgsIFksIDEpCi0gI2RlZmlu ZSBfX2J1aWx0aW5faWEzMl9ibGVuZHBzKFgsIFksIE0pIF9fYnVpbHRpbl9pYTMyX2JsZW5kcHMo WCwgWSwgMSkKLUBAIC05Miw2ICs5Niw3IEBACi0gI2RlZmluZSBfX2J1aWx0aW5faWEzMl9wcm90 ZGkoQSwgQikgX19idWlsdGluX2lhMzJfcHJvdGRpKEEsMSkKLSAjZGVmaW5lIF9fYnVpbHRpbl9p YTMyX3Byb3RxaShBLCBCKSBfX2J1aWx0aW5faWEzMl9wcm90cWkoQSwxKQotIAotKyNpbmNsdWRl IDx3bW1pbnRyaW4uaD4KLSAjaW5jbHVkZSA8Ym1taW50cmluLmg+Ci0gI2luY2x1ZGUgPHNtbWlu dHJpbi5oPgotICNpbmNsdWRlIDxtbTNkbm93Lmg+Ci0tLS0gZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2kzODYvYWVzZGVjLmMJKHJldmlzaW9uIDApCi0rKysgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2kzODYvYWVzZGVjLmMJKHJldmlzaW9uIDEzMzkwMikKLUBAIC0wLDAgKzEsNjcgQEAKLSsv KiB7IGRnLWRvIHJ1biB9ICovCi0rLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQgYWVz IH0gKi8KLSsvKiB7IGRnLW9wdGlvbnMgIi1PMiAtbWFlcyIgfSAqLwotKwotKyNpbmNsdWRlIDx3 bW1pbnRyaW4uaD4KLSsjaW5jbHVkZSA8c3RyaW5nLmg+Ci0rCi0rI2luY2x1ZGUgImFlcy1jaGVj ay5oIgotKwotK2V4dGVybiB2b2lkIGFib3J0ICh2b2lkKTsKLSsKLSsjZGVmaW5lIE5VTSAxMDI0 Ci0rCi0rc3RhdGljIF9fbTEyOGkgc3JjMVtOVU1dOwotK3N0YXRpYyBfX20xMjhpIHNyYzJbTlVN XTsKLStzdGF0aWMgX19tMTI4aSBlZHN0W05VTV07Ci0rCi0rc3RhdGljIF9fbTEyOGkgcmVzZHN0 W05VTV07Ci0rCi0rLyogSW5pdGlhbGl6ZSBpbnB1dC9vdXRwdXQgdmVjdG9ycy4gIChDdXJyZW50 bHksIHRoZXJlIGlzIG9ubHkgb25lIHNldAotKyAgIG9mIGlucHV0L291dHB1dCB2ZWN0b3JzKS4g ICovCi0rc3RhdGljIHZvaWQKLStpbml0X2RhdGEgKF9fbTEyOGkgKnMxLCBfX20xMjhpICpzMiwg X19tMTI4aSAqZCkKLSt7Ci0rICBpbnQgaTsKLSsgIGZvciAoaSA9IDA7IGkgPCBOVU07IGkrKykK LSsgICAgewotKyAgICAgIHMxW2ldID0gX21tX3NldHJfZXBpMzIgKDB4NWQ1MzQ3NWQsIDB4NjM3 NDZmNzIsCi0rCQkJICAgICAgMHg3Mzc0NTY2NSwgMHg3YjViNTQ2NSk7Ci0rICAgICAgczJbaV0g PSBfbW1fc2V0cl9lcGkzMiAoMHg3MjZmNmU1ZCwgMHg1YjQ3NzU2NSwKLSsJCQkgICAgICAweDY4 NjE3OTI5LCAweDQ4NjkyODUzKTsKLSsgICAgICBkW2ldICA9IF9tbV9zZXRyX2VwaTMyICgweGI3 MzAzOTJhLCAweGI1OGViOTVlLAotKwkJCSAgICAgIDB4ZmFlYTI3ODcsIDB4MTM4YWMzNDIpOwot KyAgICB9Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rYWVzX3Rlc3QgKHZvaWQpCi0rewotKyAgaW50 IGk7Ci0rCi0rICBpbml0X2RhdGEgKHNyYzEsIHNyYzIsIGVkc3QpOwotKwotKyAgZm9yIChpID0g MDsgaSA8IE5VTTsgaSArPSAxNikKLSsgICAgewotKyAgICAgIHJlc2RzdFtpXSA9IF9tbV9hZXNk ZWNfc2kxMjggKHNyYzFbaV0sIHNyYzJbaV0pOwotKyAgICAgIHJlc2RzdFtpICsgMV0gPSBfbW1f YWVzZGVjX3NpMTI4IChzcmMxW2kgKyAxXSwgc3JjMltpICsgMV0pOwotKyAgICAgIHJlc2RzdFtp ICsgMl0gPSBfbW1fYWVzZGVjX3NpMTI4IChzcmMxW2kgKyAyXSwgc3JjMltpICsgMl0pOwotKyAg ICAgIHJlc2RzdFtpICsgM10gPSBfbW1fYWVzZGVjX3NpMTI4IChzcmMxW2kgKyAzXSwgc3JjMltp ICsgM10pOwotKyAgICAgIHJlc2RzdFtpICsgNF0gPSBfbW1fYWVzZGVjX3NpMTI4IChzcmMxW2kg KyA0XSwgc3JjMltpICsgNF0pOwotKyAgICAgIHJlc2RzdFtpICsgNV0gPSBfbW1fYWVzZGVjX3Np MTI4IChzcmMxW2kgKyA1XSwgc3JjMltpICsgNV0pOwotKyAgICAgIHJlc2RzdFtpICsgNl0gPSBf bW1fYWVzZGVjX3NpMTI4IChzcmMxW2kgKyA2XSwgc3JjMltpICsgNl0pOwotKyAgICAgIHJlc2Rz dFtpICsgN10gPSBfbW1fYWVzZGVjX3NpMTI4IChzcmMxW2kgKyA3XSwgc3JjMltpICsgN10pOwot KyAgICAgIHJlc2RzdFtpICsgOF0gPSBfbW1fYWVzZGVjX3NpMTI4IChzcmMxW2kgKyA4XSwgc3Jj MltpICsgOF0pOwotKyAgICAgIHJlc2RzdFtpICsgOV0gPSBfbW1fYWVzZGVjX3NpMTI4IChzcmMx W2kgKyA5XSwgc3JjMltpICsgOV0pOwotKyAgICAgIHJlc2RzdFtpICsgMTBdID0gX21tX2Flc2Rl Y19zaTEyOCAoc3JjMVtpICsgMTBdLCBzcmMyW2kgKyAxMF0pOwotKyAgICAgIHJlc2RzdFtpICsg MTFdID0gX21tX2Flc2RlY19zaTEyOCAoc3JjMVtpICsgMTFdLCBzcmMyW2kgKyAxMV0pOwotKyAg ICAgIHJlc2RzdFtpICsgMTJdID0gX21tX2Flc2RlY19zaTEyOCAoc3JjMVtpICsgMTJdLCBzcmMy W2kgKyAxMl0pOwotKyAgICAgIHJlc2RzdFtpICsgMTNdID0gX21tX2Flc2RlY19zaTEyOCAoc3Jj MVtpICsgMTNdLCBzcmMyW2kgKyAxM10pOwotKyAgICAgIHJlc2RzdFtpICsgMTRdID0gX21tX2Fl c2RlY19zaTEyOCAoc3JjMVtpICsgMTRdLCBzcmMyW2kgKyAxNF0pOwotKyAgICAgIHJlc2RzdFtp ICsgMTVdID0gX21tX2Flc2RlY19zaTEyOCAoc3JjMVtpICsgMTVdLCBzcmMyW2kgKyAxNV0pOwot KyAgICB9Ci0rCi0rICBmb3IgKGkgPSAwOyBpIDwgTlVNOyBpKyspCi0rICAgIGlmIChtZW1jbXAg KGVkc3QgKyBpLCByZXNkc3QgKyBpLCBzaXplb2YgKF9fbTEyOGkpKSkKLSsgICAgICBhYm9ydCAo KTsKLSt9Ci0tLS0gZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvb3RoZXIvaTM4Ni0yLkMJKHJldmlzaW9u IDEzMzkwMSkKLSsrKyBnY2MvdGVzdHN1aXRlL2crKy5kZy9vdGhlci9pMzg2LTIuQwkocmV2aXNp b24gMTMzOTAyKQotQEAgLTEsOCArMSw5IEBACi0tLyogVGVzdCB0aGF0IHsseCxlLHAsdCxzLGEs Yn1tbWludHJpbi5oLCBtbTNkbm93LmggYW5kIG1tX21hbGxvYy5oIGFyZQotKy8qIFRlc3QgdGhh dCB7LHgsZSxwLHQscyx3LGEsYn1tbWludHJpbi5oLCBtbTNkbm93LmggYW5kIG1tX21hbGxvYy5o IGFyZQotICAgIHVzYWJsZSB3aXRoIC1PIC1wZWRhbnRpYy1lcnJvcnMuICAqLwotIC8qIHsgZGct ZG8gY29tcGlsZSB7IHRhcmdldCBpPzg2LSotKiB4ODZfNjQtKi0qIH0gfSAqLwotLS8qIHsgZGct b3B0aW9ucyAiLU8gLXBlZGFudGljLWVycm9ycyAtbWFyY2g9azggLW0zZG5vdyAtbXNzZTQgLW1z c2U1IiB9ICovCi0rLyogeyBkZy1vcHRpb25zICItTyAtcGVkYW50aWMtZXJyb3JzIC1tYXJjaD1r OCAtbTNkbm93IC1tc3NlNCAtbXNzZTUgLW1hZXMgLW1wY2xtdWwiIH0gKi8KLSAKLSsjaW5jbHVk ZSA8d21taW50cmluLmg+Ci0gI2luY2x1ZGUgPGJtbWludHJpbi5oPgotICNpbmNsdWRlIDxzbW1p bnRyaW4uaD4KLSAjaW5jbHVkZSA8bW0zZG5vdy5oPgotLS0tIGdjYy90ZXN0c3VpdGUvZysrLmRn L290aGVyL2kzODYtMy5DCShyZXZpc2lvbiAxMzM5MDEpCi0rKysgZ2NjL3Rlc3RzdWl0ZS9nKysu ZGcvb3RoZXIvaTM4Ni0zLkMJKHJldmlzaW9uIDEzMzkwMikKLUBAIC0xLDggKzEsOSBAQAotLS8q IFRlc3QgdGhhdCB7LHgsZSxwLHQscyxhLGJ9bW1pbnRyaW4uaCwgbW0zZG5vdy5oIGFuZCBtbV9t YWxsb2MuaCBhcmUKLSsvKiBUZXN0IHRoYXQgeyx4LGUscCx0LHMsdyxhLGJ9bW1pbnRyaW4uaCwg bW0zZG5vdy5oIGFuZCBtbV9tYWxsb2MuaCBhcmUKLSAgICB1c2FibGUgd2l0aCAtTyAtZmtlZXAt aW5saW5lLWZ1bmN0aW9ucy4gICovCi0gLyogeyBkZy1kbyBjb21waWxlIHsgdGFyZ2V0IGk/ODYt Ki0qIHg4Nl82NC0qLSogfSB9ICovCi0tLyogeyBkZy1vcHRpb25zICItTyAtZmtlZXAtaW5saW5l LWZ1bmN0aW9ucyAtbWFyY2g9azggLW0zZG5vdyAtbXNzZTQgLW1zc2U1IiB9ICovCi0rLyogeyBk Zy1vcHRpb25zICItTyAtZmtlZXAtaW5saW5lLWZ1bmN0aW9ucyAtbWFyY2g9azggLW0zZG5vdyAt bWFlcyAtbXBjbG11bCAtbXNzZTQgLW1zc2U1IiB9ICovCi0gCi0rI2luY2x1ZGUgPHdtbWludHJp bi5oPgotICNpbmNsdWRlIDxibW1pbnRyaW4uaD4KLSAjaW5jbHVkZSA8c21taW50cmluLmg+Ci0g I2luY2x1ZGUgPG1tM2Rub3cuaD4KCmRpZmYgLS1naXQgYS9nY2M0My1hbHRpdmVjLXRlc3RzLnBh dGNoIGIvZ2NjNDMtYWx0aXZlYy10ZXN0cy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMGI3YTQ1Ni4uMDAwMDAwMAotLS0gYS9nY2M0My1hbHRpdmVjLXRlc3RzLnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotMjAwOC0wOC0yNiAgSmFuaXMgSm9obnNvbiAg PGphbmlzMTg3QHVzLmlibS5jb20+Ci0KLQkqIGcrKy5kZy9leHQvYWx0aXZlYy0zLkM6IE1vdmUg QWx0aVZlYyBjb2RlIG91dCBvZiBtYWluLgotCi0yMDA4LTA0LTA0ICBKYW5pcyBKb2huc29uICA8 amFuaXMxODdAdXMuaWJtLmNvbT4KLQotCSogZ2NjLmRnL3Zhci1leHBhbmQzLmM6IFNraXAgZm9y IHBvd2VycGMtbGludXggaWYgbm90IG9uIEFsdGlWZWMgSFcuCi0KLS0tLSBnY2MvdGVzdHN1aXRl L2crKy5kZy9leHQvYWx0aXZlYy0zLkMJKHJldmlzaW9uIDEzOTYwOSkKLSsrKyBnY2MvdGVzdHN1 aXRlL2crKy5kZy9leHQvYWx0aXZlYy0zLkMJKHJldmlzaW9uIDEzOTYxMCkKLUBAIC0xMjAsMTYg KzEyMCwxOSBAQCB2b2lkIGJhejIgKGludCBpLCAuLi4gKQotICAgICBDSEVDS19JTlZBUklBTlQg KHZlY19hbGxfZXEgKHZ4aS52LCB2eF9nLnYpKTsKLSB9Ci0gCi0taW50IG1haW4odm9pZCkKLSt2 b2lkIG1haW4xKHZvaWQpCi0gewotICAgICBDSEVDS19JTlZBUklBTlQgKHNpemVvZihzdHJ1Y3Qg Zm9vKSA9PSA4ICYmIHNpemVvZihzdHJ1Y3QgdmZvbykgPT0gNDgpOwotIAotLSAgICBhbHRpdmVj X2NoZWNrKCk7Ci0tCi0gICAgIGJhcihpXzEsIHhfZywgKHNob3J0KWlfMiwgKGZsb2F0KWRfMiwg bGRfMSwgKGNoYXIpaV8xLCBkXzMpOwotICAgICBiYXooaV8xLCB2X2csIGlfMSwgdnhfZywgaV8x LCB2Ml9nLCBpXzEsIHZ4Ml9nKTsgCi0gICAgIHF1dXgoaV8xLCB2X2csIHZfZyk7Ci0gICAgIGJh ejIoaV8xLCB2eF9nKTsKLS0gICAgCi0rfQotKwotK2ludCBtYWluKHZvaWQpCi0rewotKyAgICBh bHRpdmVjX2NoZWNrKCk7Ci0rICAgIG1haW4xKCk7Ci0gICAgIHJldHVybiAwOwotIH0KLS0tLSBn Y2MvdGVzdHN1aXRlL2djYy5kZy92YXItZXhwYW5kMy5jCShyZXZpc2lvbiAxMzM5MTApCi0rKysg Z2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdmFyLWV4cGFuZDMuYwkocmV2aXNpb24gMTMzOTExKQotQEAg LTEsNCArMSw0IEBACi0tLyogeyBkZy1kbyBydW4geyB0YXJnZXQgeyBwb3dlcnBjKi0qLSogJiYg cG93ZXJwY19hbHRpdmVjX29rIH0gfSB9fSAqLwotKy8qIHsgZGctZG8gcnVuIHsgdGFyZ2V0IHsg cG93ZXJwYyotKi0qICYmIHZteF9odyB9IH0gfX0gKi8KLSAvKiB7IGRnLW9wdGlvbnMgIi1PMiAt ZnVucm9sbC1sb29wcyAtZmZhc3QtbWF0aCAtZnZhcmlhYmxlLWV4cGFuc2lvbi1pbi11bnJvbGxl ciAtbWFsdGl2ZWMgLWRMIiB9ICovCi0gCi0gI2luY2x1ZGUgImFsdGl2ZWMuaCIKCmRpZmYgLS1n aXQgYS9nY2M0My1idWlsZC1pZC5wYXRjaCBiL2djYzQzLWJ1aWxkLWlkLnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZjlhNDE1Li4wMDAwMDAwCi0tLSBhL2djYzQzLWJ1aWxk LWlkLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNzQgKzAsMCBAQAotMjAwNy0wNy0yMiAgUm9s YW5kIE1jR3JhdGggIDxyb2xhbmRAcmVkaGF0LmNvbT4KLQotCSogY29uZmlnL3JzNjAwMC9zeXN2 NC5oIChMSU5LX0VIX1NQRUMpOiBBZGQgLS1idWlsZC1pZCBmb3IKLQlub24tcmVsb2NhdGFibGUg bGluay4KLQkqIGNvbmZpZy9saW51eC5oIChMSU5LX0VIX1NQRUMpOiBMaWtld2lzZS4KLQkqIGNv bmZpZy9zcGFyYy9saW51eC5oIChMSU5LX0VIX1NQRUMpOiBMaWtld2lzZS4KLQkqIGNvbmZpZy9z cGFyYy9saW51eDY0LmggKExJTktfRUhfU1BFQyk6IExpa2V3aXNlLgotCSogY29uZmlnL2FscGhh L2VsZi5oIChMSU5LX0VIX1NQRUMpOiBMaWtld2lzZS4KLQkqIGNvbmZpZy9pYTY0L2xpbnV4Lmgg KExJTktfRUhfU1BFQyk6IExpa2V3aXNlLgotCi0tLS0gZ2NjL2NvbmZpZy9yczYwMDAvc3lzdjQu aC5+MX4KLSsrKyBnY2MvY29uZmlnL3JzNjAwMC9zeXN2NC5oCi1AQCAtOTA2LDcgKzkwNiw3IEBA IGV4dGVybiBpbnQgZml4dXBsYWJlbG5vOwotICAgJXshZHluYW1pYy1saW5rZXI6LWR5bmFtaWMt bGlua2VyICIgTElOVVhfRFlOQU1JQ19MSU5LRVIgIn19fSIKLSAKLSAjaWYgZGVmaW5lZChIQVZF X0xEX0VIX0ZSQU1FX0hEUikKLS0jIGRlZmluZSBMSU5LX0VIX1NQRUMgIiV7IXN0YXRpYzotLWVo LWZyYW1lLWhkcn0gIgotKyMgZGVmaW5lIExJTktfRUhfU1BFQyAiJXshc3RhdGljOi0tZWgtZnJh bWUtaGRyfSAleyFyOi0tYnVpbGQtaWR9ICIKLSAjZW5kaWYKLSAKLSAjZGVmaW5lIENQUF9PU19M SU5VWF9TUEVDICItRF9fdW5peF9fIC1EX19nbnVfbGludXhfXyAtRF9fbGludXhfXyBcCi0tLS0g Z2NjL2NvbmZpZy9saW51eC5oLn4xfgotKysrIGdjYy9jb25maWcvbGludXguaAotQEAgLTg1LDcg Kzg1LDcgQEAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuICAqLwotICAgICB9IHdoaWxlICgw KQotIAotICNpZiBkZWZpbmVkKEhBVkVfTERfRUhfRlJBTUVfSERSKQotLSNkZWZpbmUgTElOS19F SF9TUEVDICIleyFzdGF0aWM6LS1laC1mcmFtZS1oZHJ9ICIKLSsjZGVmaW5lIExJTktfRUhfU1BF QyAiJXshc3RhdGljOi0tZWgtZnJhbWUtaGRyfSAleyFyOi0tYnVpbGQtaWR9ICIKLSAjZW5kaWYK LSAKLSAvKiBEZWZpbmUgdGhpcyBzbyB3ZSBjYW4gY29tcGlsZSBNUyBjb2RlIGZvciB1c2Ugd2l0 aCBXSU5FLiAgKi8KLS0tLSBnY2MvY29uZmlnL3NwYXJjL2xpbnV4NjQuaC5+MX4KLSsrKyBnY2Mv Y29uZmlnL3NwYXJjL2xpbnV4NjQuaAotQEAgLTMxNiw3ICszMTYsNyBAQCBkbyB7CQkJCQkJCQkJ XAotICNkZWZpbmUgRElURl9DT05WRVJTSU9OX0xJQkZVTkNTIDEKLSAKLSAjaWYgZGVmaW5lZChI QVZFX0xEX0VIX0ZSQU1FX0hEUikKLS0jZGVmaW5lIExJTktfRUhfU1BFQyAiJXshc3RhdGljOi0t ZWgtZnJhbWUtaGRyfSAiCi0rI2RlZmluZSBMSU5LX0VIX1NQRUMgIiV7IXN0YXRpYzotLWVoLWZy YW1lLWhkcn0gJXshcjotLWJ1aWxkLWlkfSAiCi0gI2VuZGlmCi0gDAotICNpZmRlZiBIQVZFX0FT X1RMUwotLS0tIGdjYy9jb25maWcvc3BhcmMvbGludXguaC5+MX4KLSsrKyBnY2MvY29uZmlnL3Nw YXJjL2xpbnV4LmgKLUBAIC0xODgsNyArMTg4LDcgQEAgZG8gewkJCQkJCQkJCVwKLSAjZGVmaW5l IERJVEZfQ09OVkVSU0lPTl9MSUJGVU5DUyAxCi0gCi0gI2lmIGRlZmluZWQoSEFWRV9MRF9FSF9G UkFNRV9IRFIpCi0tI2RlZmluZSBMSU5LX0VIX1NQRUMgIiV7IXN0YXRpYzotLWVoLWZyYW1lLWhk cn0gIgotKyNkZWZpbmUgTElOS19FSF9TUEVDICIleyFzdGF0aWM6LS1laC1mcmFtZS1oZHJ9ICV7 IXI6LS1idWlsZC1pZH0gIgotICNlbmRpZgotIAwKLSAjaWZkZWYgSEFWRV9BU19UTFMKLS0tLSBn Y2MvY29uZmlnL2FscGhhL2VsZi5oLn4xfgotKysrIGdjYy9jb25maWcvYWxwaGEvZWxmLmgKLUBA IC00NTMsNSArNDUzLDUgQEAgZXh0ZXJuIGludCBhbHBoYV90aGlzX2dwZGlzcF9zZXF1ZW5jZV9u dQotICAgIEkgaW1hZ2luZSB0aGF0IG90aGVyIHN5c3RlbXMgd2lsbCBjYXRjaCB1cC4gIEluIHRo ZSBtZWFudGltZSwgaXQKLSAgICBkb2Vzbid0IGhhcm0gdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGRh dGEgZXhpc3RzIHRvIGJlIHVzZWQgbGF0ZXIuICAqLwotICNpZiBkZWZpbmVkKEhBVkVfTERfRUhf RlJBTUVfSERSKQotLSNkZWZpbmUgTElOS19FSF9TUEVDICIleyFzdGF0aWM6LS1laC1mcmFtZS1o ZHJ9ICIKLSsjZGVmaW5lIExJTktfRUhfU1BFQyAiJXshc3RhdGljOi0tZWgtZnJhbWUtaGRyfSAl eyFyOi0tYnVpbGQtaWR9ICIKLSAjZW5kaWYKLS0tLSBnY2MvY29uZmlnL2lhNjQvbGludXguaC5+ MX4KLSsrKyBnY2MvY29uZmlnL2lhNjQvbGludXguaAotQEAgLTU2LDcgKzU2LDcgQEAgZG8gewkJ CQkJCVwKLSAgICBTaWduYWxpemUgdGhhdCBiZWNhdXNlIHdlIGhhdmUgZmRlLWdsaWJjLCB3ZSBk b24ndCBuZWVkIGFsbCBDIHNoYXJlZCBsaWJzCi0gICAgbGlua2VkIGFnYWluc3QgLWxnY2Nfcy4g ICovCi0gI3VuZGVmIExJTktfRUhfU1BFQwotLSNkZWZpbmUgTElOS19FSF9TUEVDICIiCi0rI2Rl ZmluZSBMSU5LX0VIX1NQRUMgIiV7IXI6LS1idWlsZC1pZH0gIgotIAotICNkZWZpbmUgTURfVU5X SU5EX1NVUFBPUlQgImNvbmZpZy9pYTY0L2xpbnV4LXVud2luZC5oIgotIAoKZGlmZiAtLWdpdCBh L2djYzQzLWMrKy1idWlsdGluLXJlZGVjbC5wYXRjaCBiL2djYzQzLWMrKy1idWlsdGluLXJlZGVj bC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzc2NTVhZC4uMDAwMDAwMAot LS0gYS9nY2M0My1jKystYnVpbHRpbi1yZWRlY2wucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwx MDIgKzAsMCBAQAotMjAwNy0xMC0wMiAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+ Ci0KLQkqIGRlY2wuYyAoZHVwbGljYXRlX2RlY2xzKTogV2hlbiByZWRlY2xhcmluZyBhIGJ1aWx0 aW4gZnVuY3Rpb24sCi0Ja2VlcCB0aGUgbWVyZ2VkIGRlY2wgYnVpbHRpbiB3aGVuZXZlciB0eXBl cyBtYXRjaCwgZXZlbiBpZiBuZXcKLQlkZWNsIGRlZmluZXMgYSBmdW5jdGlvbi4KLQotCSogZ2Nj LmRnL2J1aWx0aW5zLTY1LmM6IE5ldyB0ZXN0LgotCSogZysrLmRnL2V4dC9idWlsdGluMTAuQzog TmV3IHRlc3QuCi0KLS0tLSBnY2MvY3AvZGVjbC5jLmpqCTIwMDctMTAtMDEgMjI6MTE6MDkuMDAw MDAwMDAwICswMjAwCi0rKysgZ2NjL2NwL2RlY2wuYwkyMDA3LTEwLTAyIDExOjM5OjQ2LjAwMDAw MDAwMCArMDIwMAotQEAgLTE5ODgsMjMgKzE5ODgsMjEgQEAgZHVwbGljYXRlX2RlY2xzICh0cmVl IG5ld2RlY2wsIHRyZWUgb2xkZAotIAkgIERFQ0xfQVJHVU1FTlRTIChvbGRkZWNsKSA9IERFQ0xf QVJHVU1FTlRTIChuZXdkZWNsKTsKLSAJICBERUNMX1JFU1VMVCAob2xkZGVjbCkgPSBERUNMX1JF U1VMVCAobmV3ZGVjbCk7Ci0gCX0KLSsgICAgICAvKiBJZiByZWRlY2xhcmluZyBhIGJ1aWx0aW4g ZnVuY3Rpb24sIGl0IHN0YXlzIGJ1aWx0IGluLiAgKi8KLSsgICAgICBpZiAodHlwZXNfbWF0Y2gg JiYgREVDTF9CVUlMVF9JTiAob2xkZGVjbCkpCi0rCXsKLSsJICBERUNMX0JVSUxUX0lOX0NMQVNT IChuZXdkZWNsKSA9IERFQ0xfQlVJTFRfSU5fQ0xBU1MgKG9sZGRlY2wpOwotKwkgIERFQ0xfRlVO Q1RJT05fQ09ERSAobmV3ZGVjbCkgPSBERUNMX0ZVTkNUSU9OX0NPREUgKG9sZGRlY2wpOwotKwkg IC8qIElmIHdlJ3JlIGtlZXBpbmcgdGhlIGJ1aWx0LWluIGRlZmluaXRpb24sIGtlZXAgdGhlIHJ0 bCwKLSsJICAgICByZWdhcmRsZXNzIG9mIGRlY2xhcmF0aW9uIG1hdGNoZXMuICAqLwotKwkgIENP UFlfREVDTF9SVEwgKG9sZGRlY2wsIG5ld2RlY2wpOwotKwl9Ci0gICAgICAgaWYgKG5ld19kZWZp bmVzX2Z1bmN0aW9uKQotIAkvKiBJZiBkZWZpbmluZyBhIGZ1bmN0aW9uIGRlY2xhcmVkIHdpdGgg b3RoZXIgbGFuZ3VhZ2UKLSAJICAgbGlua2FnZSwgdXNlIHRoZSBwcmV2aW91c2x5IGRlY2xhcmVk IGxhbmd1YWdlIGxpbmthZ2UuICAqLwotIAlTRVRfREVDTF9MQU5HVUFHRSAobmV3ZGVjbCwgREVD TF9MQU5HVUFHRSAob2xkZGVjbCkpOwotICAgICAgIGVsc2UgaWYgKHR5cGVzX21hdGNoKQotIAl7 Ci0tCSAgLyogSWYgcmVkZWNsYXJpbmcgYSBidWlsdGluIGZ1bmN0aW9uLCBhbmQgbm90IGEgZGVm aW5pdGlvbiwKLS0JICAgICBpdCBzdGF5cyBidWlsdCBpbi4gICovCi0tCSAgaWYgKERFQ0xfQlVJ TFRfSU4gKG9sZGRlY2wpKQotLQkgICAgewotLQkgICAgICBERUNMX0JVSUxUX0lOX0NMQVNTIChu ZXdkZWNsKSA9IERFQ0xfQlVJTFRfSU5fQ0xBU1MgKG9sZGRlY2wpOwotLQkgICAgICBERUNMX0ZV TkNUSU9OX0NPREUgKG5ld2RlY2wpID0gREVDTF9GVU5DVElPTl9DT0RFIChvbGRkZWNsKTsKLS0J ICAgICAgLyogSWYgd2UncmUga2VlcGluZyB0aGUgYnVpbHQtaW4gZGVmaW5pdGlvbiwga2VlcCB0 aGUgcnRsLAotLQkJIHJlZ2FyZGxlc3Mgb2YgZGVjbGFyYXRpb24gbWF0Y2hlcy4gICovCi0tCSAg ICAgIENPUFlfREVDTF9SVEwgKG9sZGRlY2wsIG5ld2RlY2wpOwotLQkgICAgfQotLQotIAkgIERF Q0xfUkVTVUxUIChuZXdkZWNsKSA9IERFQ0xfUkVTVUxUIChvbGRkZWNsKTsKLSAJICAvKiBEb24n dCBjbGVhciBvdXQgdGhlIGFyZ3VtZW50cyBpZiB3ZSdyZSByZWRlZmluaW5nIGEgZnVuY3Rpb24u ICAqLwotIAkgIGlmIChERUNMX0FSR1VNRU5UUyAob2xkZGVjbCkpCi0tLS0gZ2NjL3Rlc3RzdWl0 ZS9nY2MuZGcvYnVpbHRpbnMtNjUuYy5qagkyMDA3LTEwLTAyIDExOjIzOjUxLjAwMDAwMDAwMCAr MDIwMAotKysrIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL2J1aWx0aW5zLTY1LmMJMjAwNy0xMC0wMiAx MToyNDoxMi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMjUgQEAKLSsvKiB7IGRnLWRvIGNv bXBpbGUgfSAqLwotKy8qIHsgZGctb3B0aW9ucyAiLU8yIiB9ICovCi0rCi0rdHlwZWRlZiBfX1NJ WkVfVFlQRV9fIHNpemVfdDsKLStleHRlcm4gdm9pZCBfX2Noa19mYWlsICh2b2lkKTsKLStleHRl cm4gaW50IHNucHJpbnRmIChjaGFyICosIHNpemVfdCwgY29uc3QgY2hhciAqLCAuLi4pOwotK2V4 dGVybiBpbmxpbmUgX19hdHRyaWJ1dGVfXygoZ251X2lubGluZSwgYWx3YXlzX2lubGluZSkpIGlu dCBzbnByaW50ZiAoY2hhciAqYSwgc2l6ZV90IGIsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQotK3sK LSsgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKGEsIDApICE9IC0xVUwgJiYgX19idWlsdGlu X29iamVjdF9zaXplIChhLCAwKSA8IGIpCi0rICAgIF9fY2hrX2ZhaWwgKCk7Ci0rICByZXR1cm4g X19idWlsdGluX3NucHJpbnRmIChhLCBiLCBmbXQsIF9fYnVpbHRpbl92YV9hcmdfcGFjayAoKSk7 Ci0rfQotK2V4dGVybiBpbnQgc25wcmludGYgKGNoYXIgKiwgc2l6ZV90LCBjb25zdCBjaGFyICos IC4uLikgX19hc20gKCJteXNucHJpbnRmIik7Ci0rCi0rY2hhciBidWZbMTBdOwotKwotK2ludAot K21haW4gKHZvaWQpCi0rewotKyAgc25wcmludGYgKGJ1ZiwgMTAsICIlZCVkXG4iLCAxMCwgMTAp OwotKyAgcmV0dXJuIDA7Ci0rfQotKwotKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAi bXlzbnByaW50ZiIgfSB9ICovCi0rLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCAi X19jaGtfZmFpbCIgfSB9ICovCi0tLS0gZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvZXh0L2J1aWx0aW4x MC5DLmpqCTIwMDctMTAtMDIgMTE6MTk6NDUuMDAwMDAwMDAwICswMjAwCi0rKysgZ2NjL3Rlc3Rz dWl0ZS9nKysuZGcvZXh0L2J1aWx0aW4xMC5DCTIwMDctMTAtMDIgMTE6MjM6MjYuMDAwMDAwMDAw ICswMjAwCi1AQCAtMCwwICsxLDI3IEBACi0rLy8geyBkZy1kbyBjb21waWxlIH0KLSsvLyB7IGRn LW9wdGlvbnMgIi1PMiIgfQotKwotK3R5cGVkZWYgX19TSVpFX1RZUEVfXyBzaXplX3Q7Ci0rZXh0 ZXJuICJDIiB7Ci0rZXh0ZXJuIHZvaWQgX19jaGtfZmFpbCAodm9pZCk7Ci0rZXh0ZXJuIGludCBz bnByaW50ZiAoY2hhciAqLCBzaXplX3QsIGNvbnN0IGNoYXIgKiwgLi4uKTsKLStleHRlcm4gaW5s aW5lIF9fYXR0cmlidXRlX18oKGdudV9pbmxpbmUsIGFsd2F5c19pbmxpbmUpKSBpbnQgc25wcmlu dGYgKGNoYXIgKmEsIHNpemVfdCBiLCBjb25zdCBjaGFyICpmbXQsIC4uLikKLSt7Ci0rICBpZiAo X19idWlsdGluX29iamVjdF9zaXplIChhLCAwKSAhPSAtMVVMICYmIF9fYnVpbHRpbl9vYmplY3Rf c2l6ZSAoYSwgMCkgPCBiKQotKyAgICBfX2Noa19mYWlsICgpOwotKyAgcmV0dXJuIF9fYnVpbHRp bl9zbnByaW50ZiAoYSwgYiwgZm10LCBfX2J1aWx0aW5fdmFfYXJnX3BhY2sgKCkpOwotK30KLStl eHRlcm4gaW50IHNucHJpbnRmIChjaGFyICosIHNpemVfdCwgY29uc3QgY2hhciAqLCAuLi4pIF9f YXNtICgibXlzbnByaW50ZiIpOwotK30KLSsKLStjaGFyIGJ1ZlsxMF07Ci0rCi0raW50Ci0rbWFp biAodm9pZCkKLSt7Ci0rICBzbnByaW50ZiAoYnVmLCAxMCwgIiVkJWRcbiIsIDEwLCAxMCk7Ci0r ICByZXR1cm4gMDsKLSt9Ci0rCi0rLy8geyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJteXNu cHJpbnRmIiB9IH0KLSsvLyB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90ICJfX2Noa19m YWlsIiB9IH0KCmRpZmYgLS1naXQgYS9nY2M0My1pMzg2LWxpYmdvbXAucGF0Y2ggYi9nY2M0My1p Mzg2LWxpYmdvbXAucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJhZDNiMjQu LjAwMDAwMDAKLS0tIGEvZ2NjNDMtaTM4Ni1saWJnb21wLnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsNjEgKzAsMCBAQAotQnVpbGQgaTM4Ni5ycG0gbGliZ29tcCBhbmQgbGlic3VwYysrLmEoZ3Vh cmQubykgYXMgaTQ4NissIHByZS1pNDg2Ci1oYXJkd2FyZSBpc24ndCBzdXBwb3J0ZWQgYmVjYXVz ZSBOUFRMIGRvZXNuJ3Qgc3VwcG9ydCBpdCBhbnl3YXkuCi0KLS0tLSBsaWJnb21wL2NvbmZpZ3Vy ZS50Z3QuamoJMjAwOC0wMS0xMCAyMDo1Mzo0OC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBsaWJnb21w L2NvbmZpZ3VyZS50Z3QJMjAwOC0wMy0yNyAxMjo0NDo1MS4wMDAwMDAwMDAgKzAxMDAKLUBAIC00 NCwxNCArNDQsMTQgQEAgaWYgdGVzdCAkZW5hYmxlX2xpbnV4X2Z1dGV4ID0geWVzOyB0aGVuCi0g CTs7Ci0gCi0gICAgICMgTm90ZSB0aGF0IGJhcmUgaTM4NiBpcyBub3QgaW5jbHVkZWQgaGVyZS4g IFdlIG5lZWQgY21weGNoZy4KLS0gICAgaVs0NTZdODYtKi1saW51eCopCi0rICAgIGlbMzQ1Nl04 Ni0qLWxpbnV4KikKLSAJY29uZmlnX3BhdGg9ImxpbnV4L3g4NiBsaW51eCBwb3NpeCIKLSAJY2Fz ZSAiICR7Q0N9ICR7Q0ZMQUdTfSAiIGluCi0gCSAgKiIgLW02NCAiKikKLSAJICAgIDs7Ci0gCSAg KikKLSAJICAgIGlmIHRlc3QgLXogIiR3aXRoX2FyY2giOyB0aGVuCi0tCSAgICAgIFhDRkxBR1M9 IiR7WENGTEFHU30gLW1hcmNoPWk0ODYgLW10dW5lPSR7dGFyZ2V0X2NwdX0iCi0rCSAgICAgIFhD RkxBR1M9IiR7WENGTEFHU30gLW1hcmNoPWk0ODYgLW10dW5lPWdlbmVyaWMiCi0gCSAgICBmaQot IAllc2FjCi0gCTs7Ci1AQCAtNjMsNyArNjMsNyBAQCBpZiB0ZXN0ICRlbmFibGVfbGludXhfZnV0 ZXggPSB5ZXM7IHRoZW4KLSAJY29uZmlnX3BhdGg9ImxpbnV4L3g4NiBsaW51eCBwb3NpeCIKLSAJ Y2FzZSAiICR7Q0N9ICR7Q0ZMQUdTfSAiIGluCi0gCSAgKiIgLW0zMiAiKikKLS0JICAgIFhDRkxB R1M9IiR7WENGTEFHU30gLW1hcmNoPWk0ODYgLW10dW5lPWk2ODYiCi0rCSAgICBYQ0ZMQUdTPSIk e1hDRkxBR1N9IC1tYXJjaD1pNDg2IC1tdHVuZT1nZW5lcmljIgotIAkgICAgOzsKLSAJZXNhYwot IAk7OwotLS0tIGxpYnN0ZGMrKy12My9saWJzdXBjKysvZ3VhcmQuY2MuamoJMjAwOC0wMy0wMSAw MDo1ODoyNC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBsaWJzdGRjKystdjMvbGlic3VwYysrL2d1YXJk LmNjCTIwMDgtMDMtMjcgMTQ6MDg6NDQuMDAwMDAwMDAwICswMTAwCi1AQCAtMzUsNiArMzUsMjcg QEAKLSAjaW5jbHVkZSA8bmV3PgotICNpbmNsdWRlIDxleHQvYXRvbWljaXR5Lmg+Ci0gI2luY2x1 ZGUgPGV4dC9jb25jdXJyZW5jZS5oPgotKyNpZiBkZWZpbmVkIF9faTM4Nl9fICYmICFkZWZpbmVk IF9HTElCQ1hYX0FUT01JQ19CVUlMVElOUwotKyMgZGVmaW5lIF9HTElCQ1hYX0FUT01JQ19CVUlM VElOUyAxCi0rIyBkZWZpbmUgX19zeW5jX3ZhbF9jb21wYXJlX2FuZF9zd2FwKGEsIGIsIGMpIFwK LSsgICh7CQkJCQkJCQlcCi0rICAgICB0eXBlZGVmIGNoYXIgc2x0YXN0W3NpemVvZiAoKmEpID09 IHNpemVvZiAoaW50KSA/IDEgOiAtMV07CVwKLSsgICAgIGludCBzbHRhczsJCQkJCQkJXAotKyAg ICAgX19hc20gX192b2xhdGlsZSAoImxvY2s7IGNtcHhjaGdsICUzLCAoJTEpIgkJXAotKwkJICAg ICAgIDogIj1hIiAoc2x0YXMpCQkJCVwKLSsJCSAgICAgICA6ICJyIiAoYSksICIwIiAoYiksICJy IiAoYykgOiAibWVtb3J5Iik7CVwKLSsgICAgIHNsdGFzOwkJCQkJCQlcCi0rICAgfSkKLSsjIGRl ZmluZSBfX3N5bmNfbG9ja190ZXN0X2FuZF9zZXQoYSwgYikgXAotKyAgKHsJCQkJCQkJCVwKLSsg ICAgIHR5cGVkZWYgY2hhciBzbHRhc3Rbc2l6ZW9mICgqYSkgPT0gc2l6ZW9mIChpbnQpID8gMSA6 IC0xXTsJXAotKyAgICAgaW50IHNsdGFzOwkJCQkJCQlcCi0rICAgICBfX2FzbSBfX3ZvbGF0aWxl ICgieGNoZ2wgKCUxKSwgJTAiCQkJCVwKLSsJCSAgICAgICA6ICI9ciIgKHNsdGFzKQkJCQlcCi0r CQkgICAgICAgOiAiciIgKGEpLCAiMCIgKGIpIDogIm1lbW9yeSIpOwkJXAotKyAgICAgc2x0YXM7 CQkJCQkJCVwKLSsgICB9KQotKyNlbmRpZgotICNpZiBkZWZpbmVkKF9fR1RIUkVBRFMpICYmIGRl ZmluZWQoX19HVEhSRUFEX0hBU19DT05EKSBcCi0gICAgICYmIGRlZmluZWQoX0dMSUJDWFhfQVRP TUlDX0JVSUxUSU5TKSAmJiBkZWZpbmVkKF9HTElCQ1hYX0hBVkVfTElOVVhfRlVURVgpCi0gIyBp bmNsdWRlIDxjbGltaXRzPgoKZGlmZiAtLWdpdCBhL2djYzQzLWlhNjQtbGlidW53aW5kLnBhdGNo IGIvZ2NjNDMtaWE2NC1saWJ1bndpbmQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDhlMTA5NzkuLjAwMDAwMDAKLS0tIGEvZ2NjNDMtaWE2NC1saWJ1bndpbmQucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSw1MzggKzAsMCBAQAotMjAwNC0xMS0yNyAgSmFrdWIgSmVsaW5layAg PGpha3ViQHJlZGhhdC5jb20+Ci0KLQkqIGNvbmZpZy5nY2MgKGlhNjQqLSotbGludXgqKTogSWYg bmF0aXZlIGFuZCBsaWJlbGYgaXMgaW5zdGFsbGVkLAotCXVzZSBpYTY0L3QtZ2xpYmMtbm8tbGli dW53aW5kIGluc3RlYWQgb2YgdGhlIG90aGVyIHQtKnVud2luZCoKLQlmcmFnbWVudHMuCi0JKiBj b25maWcvaWE2NC90LWdsaWJjLW5vLWxpYnVud2luZDogTmV3IGZpbGUuCi0JKiBjb25maWcvaWE2 NC9jaGFuZ2Utc3ltdmVyLmM6IE5ldyBmaWxlLgotCSogY29uZmlnL2lhNjQvdW53aW5kLWlhNjQu YzogSWYgVVNFX1NZTVZFUl9HTE9CQUwgYW5kIFNIQVJFRCwKLQlkZWZpbmUgX1Vud2luZF8qIHRv IF9fc3ltdmVyZ2xvYmFsX1Vud2luZF8qLgotCShhbGlhcyk6IFVuZGVmaW5lLgotCShzeW12ZXJn bG9iYWwpOiBEZWZpbmUuICBVc2UgaXQgb24gX1Vud2luZF8qLgotCSogY29uZmlnL2lhNjQvbWtt YXAtc3ltdmVyLW11bHRpLmF3azogTmV3IGZpbGUuCi0JKiBjb25maWcvaWE2NC9saWJnY2MtaWE2 NC1uby1saWJ1bndpbmQudmVyOiBOZXcgZmlsZS4KLQotLS0tIGdjYy9jb25maWcuZ2NjLmpqCTIw MDQtMTAtMDQgMDg6NTU6NDQuMDAwMDAwMDAwIC0wNDAwCi0rKysgZ2NjL2NvbmZpZy5nY2MJMjAw NC0xMS0xMyAwNToyMzo1MC4wMDAwMDAwMDAgLTA1MDAKLUBAIC0xMTg1LDkgKzExODUsMTYgQEAg aWE2NCotKi1mcmVlYnNkKikKLSAJOzsKLSBpYTY0Ki0qLWxpbnV4KikKLSAJdG1fZmlsZT0iJHt0 bV9maWxlfSBkYnhlbGYuaCBlbGZvcy5oIHN2cjQuaCBsaW51eC5oIGlhNjQvc3lzdjQuaCBpYTY0 L2xpbnV4LmgiCi0tCXRtYWtlX2ZpbGU9IiR7dG1ha2VfZmlsZX0gaWE2NC90LWlhNjQgdC1saWJ1 bndpbmQgaWE2NC90LWdsaWJjIgotLQlpZiB0ZXN0IHgkd2l0aF9zeXN0ZW1fbGlidW53aW5kICE9 IHh5ZXMgOyB0aGVuCi0tCQl0bWFrZV9maWxlPSIke3RtYWtlX2ZpbGV9IHQtbGlidW53aW5kLWVs ZiBpYTY0L3QtZ2xpYmMtbGlidW53aW5kIgotKwl0bWFrZV9maWxlPSIke3RtYWtlX2ZpbGV9IGlh NjQvdC1pYTY0IgotKwlpZiB0ZXN0IHgke3RhcmdldH0gPSB4JHtob3N0fSAmJiB0ZXN0IHgke3Rh cmdldH0gPSB4JHtidWlsZH0gXAotKwkgICAmJiBncmVwIGdlbGZfZ2V0dmVyZGVmIC91c3IvaW5j bHVkZS9nZWxmLmggPiAvZGV2L251bGwgMj4mMSBcCi0rCSAgICYmIHRlc3QgLWYgL3Vzci9saWIv bGliZWxmLnNvOyB0aGVuCi0rCQl0bWFrZV9maWxlPSIke3RtYWtlX2ZpbGV9IGlhNjQvdC1nbGli Yy1uby1saWJ1bndpbmQiCi0rCWVsc2UKLSsJCXRtYWtlX2ZpbGU9IiR7dG1ha2VfZmlsZX0gdC1s aWJ1bndpbmQgaWE2NC90LWdsaWJjIgotKwkJaWYgdGVzdCB4JHdpdGhfc3lzdGVtX2xpYnVud2lu ZCAhPSB4eWVzIDsgdGhlbgotKwkJCXRtYWtlX2ZpbGU9IiR7dG1ha2VfZmlsZX0gdC1saWJ1bndp bmQtZWxmIGlhNjQvdC1nbGliYy1saWJ1bndpbmQiCi0rCQlmaQotIAlmaQotIAl0YXJnZXRfY3B1 X2RlZmF1bHQ9Ik1BU0tfR05VX0FTfE1BU0tfR05VX0xEIgotIAlleHRyYV9wYXJ0cz0iY3J0YmVn aW4ubyBjcnRlbmQubyBjcnRiZWdpblMubyBjcnRlbmRTLm8gY3J0ZmFzdG1hdGgubyIKLS0tLSBn Y2MvY29uZmlnL2lhNjQvdC1nbGliYy1uby1saWJ1bndpbmQuamoJMjAwNC0wMi0xOCAxMDoyNzoz Ni4wMDAwMDAwMDAgLTA1MDAKLSsrKyBnY2MvY29uZmlnL2lhNjQvdC1nbGliYy1uby1saWJ1bndp bmQJMjAwNC0xMS0xNSAwOTo1NjozMy4wMDAwMDAwMDAgLTA1MDAKLUBAIC0wLDAgKzEsMzAgQEAK LSsjIERvbid0IHVzZSBzeXN0ZW0gbGlidW53aW5kIGxpYnJhcnkgb24gSUEtNjQgR0xJQkMgYmFz ZWQgc3lzdGVtLAotKyMgYnV0IG1ha2UgX1Vud2luZF8qIHN5bWJvbHMgdW52ZXJzaW9uZWQsIHNv IHRoYXQgY3JlYXRlZCBwcm9ncmFtcwotKyMgYXJlIHVzYWJsZSBldmVuIHdoZW4gbGliZ2NjX3Mg dXNlcyBsaWJ1bndpbmQuCi0rTElCMkFEREVIICs9ICQoc3JjZGlyKS9jb25maWcvaWE2NC9mZGUt Z2xpYmMuYwotK1NITElCX01BUEZJTEVTICs9ICQoc3JjZGlyKS9jb25maWcvaWE2NC9saWJnY2Mt aWE2NC1uby1saWJ1bndpbmQudmVyCi0rU0hMSUJfTUtNQVAgPSAkKHNyY2RpcikvY29uZmlnL2lh NjQvbWttYXAtc3ltdmVyLW11bHRpLmF3awotKwotK1NITElCX0xJTksgPSAkKEdDQ19GT1JfVEFS R0VUKSAkKExJQkdDQzJfQ0ZMQUdTKSAtc2hhcmVkIC1ub2RlZmF1bHRsaWJzIFwKLSsJLVdsLC0t c29uYW1lPSQoU0hMSUJfU09OQU1FKSBcCi0rCS1XbCwtLXZlcnNpb24tc2NyaXB0PSQoU0hMSUJf TUFQKSBcCi0rCS1vICQoU0hMSUJfRElSKS8kKFNITElCX1NPTkFNRSkudG1wIEBtdWx0aWxpYl9m bGFnc0AgJChTSExJQl9PQkpTKSAtbGMgJiYgXAotKwlybSAtZiAkKFNITElCX0RJUikvJChTSExJ Ql9TT0xJTkspICYmIFwKLSsJaWYgWyAtZiAkKFNITElCX0RJUikvJChTSExJQl9TT05BTUUpIF07 IHRoZW4gXAotKwkgIG12IC1mICQoU0hMSUJfRElSKS8kKFNITElCX1NPTkFNRSkgXAotKwkJJChT SExJQl9ESVIpLyQoU0hMSUJfU09OQU1FKS5iYWNrdXA7IFwKLSsJZWxzZSB0cnVlOyBmaSAmJiBc Ci0rCWdjYyAtTzIgLW8gJChTSExJQl9ESVIpLyQoU0hMSUJfU09OQU1FKS50d2VhayBcCi0rCSAg JCQoZ2NjX3NyY2RpcikvY29uZmlnL2lhNjQvY2hhbmdlLXN5bXZlci5jIC1sZWxmICYmIFwKLSsJ JChTSExJQl9ESVIpLyQoU0hMSUJfU09OQU1FKS50d2VhayAkKFNITElCX0RJUikvJChTSExJQl9T T05BTUUpLnRtcCBcCi0rCUdDQ18zLjQuMiBfR0xPQkFMXyBcCi0rCV9VbndpbmRfR2V0R1IgX1Vu d2luZF9SYWlzZUV4Y2VwdGlvbiBfVW53aW5kX0dldFJlZ2lvblN0YXJ0IF9VbndpbmRfU2V0SVAg XAotKwlfVW53aW5kX0dldElQIF9VbndpbmRfR2V0TGFuZ3VhZ2VTcGVjaWZpY0RhdGEgX1Vud2lu ZF9SZXN1bWUgXAotKwlfVW53aW5kX0RlbGV0ZUV4Y2VwdGlvbiBfVW53aW5kX1NldEdSIF9Vbndp bmRfRm9yY2VkVW53aW5kIFwKLSsJX1Vud2luZF9CYWNrdHJhY2UgX1Vud2luZF9GaW5kRW5jbG9z aW5nRnVuY3Rpb24gX1Vud2luZF9HZXRDRkEgXAotKwlfVW53aW5kX1Jlc3VtZV9vcl9SZXRocm93 IF9VbndpbmRfR2V0QlNQICYmIFwKLSsJcm0gLWYgJChTSExJQl9ESVIpLyQoU0hMSUJfU09OQU1F KS50d2VhayAmJiBcCi0rCW12ICQoU0hMSUJfRElSKS8kKFNITElCX1NPTkFNRSkudG1wICQoU0hM SUJfRElSKS8kKFNITElCX1NPTkFNRSkgJiYgXAotKwkkKExOX1MpICQoU0hMSUJfU09OQU1FKSAk KFNITElCX0RJUikvJChTSExJQl9TT0xJTkspCi0rCi0rVEFSR0VUX0xJQkdDQzJfQ0ZMQUdTICs9 IC1EVVNFX1NZTVZFUl9HTE9CQUwKLS0tLSBnY2MvY29uZmlnL2lhNjQvY2hhbmdlLXN5bXZlci5j LmpqCTIwMDQtMDItMTggMTA6Mjc6MzYuMDAwMDAwMDAwIC0wNTAwCi0rKysgZ2NjL2NvbmZpZy9p YTY0L2NoYW5nZS1zeW12ZXIuYwkyMDA0LTExLTEzIDA1OjIzOjUwLjAwMDAwMDAwMCAtMDUwMAot QEAgLTAsMCArMSwyMTEgQEAKLSsjZGVmaW5lIF9HTlVfU09VUkNFIDEKLSsjZGVmaW5lIF9GSUxF X09GRlNFVF9CSVRTIDY0Ci0rI2luY2x1ZGUgPGVuZGlhbi5oPgotKyNpbmNsdWRlIDxlcnJuby5o PgotKyNpbmNsdWRlIDxlcnJvci5oPgotKyNpbmNsdWRlIDxmY250bC5oPgotKyNpbmNsdWRlIDxm bm1hdGNoLmg+Ci0rI2luY2x1ZGUgPGdlbGYuaD4KLSsjaW5jbHVkZSA8c3RkbGliLmg+Ci0rI2lu Y2x1ZGUgPHN0cmluZy5oPgotKyNpbmNsdWRlIDx1bmlzdGQuaD4KLSsKLStpbnQKLStjb21wdXRl X3ZlcmlkeCAoY29uc3QgY2hhciAqbmFtZSwgRWxmICplbGYsIEVsZl9EYXRhICp2ZXJkLCBHRWxm X1NoZHIgKnZlcmRfc2hkcikKLSt7Ci0rICBpZiAoc3RyY21wIChuYW1lLCAiX0dMT0JBTF8iKSA9 PSAwKQotKyAgICByZXR1cm4gMTsKLSsKLSsgIGludCBjbnQ7Ci0rICBzaXplX3Qgb2Zmc2V0ID0g MDsKLSsgIGZvciAoY250ID0gdmVyZF9zaGRyLT5zaF9pbmZvOyAtLWNudCA+PSAwOyApCi0rICAg IHsKLSsgICAgICBHRWxmX1ZlcmRlZiBkZWZtZW07Ci0rICAgICAgR0VsZl9WZXJkZWYgKmRlZjsK LSsgICAgICBHRWxmX1ZlcmRhdXggYXV4bWVtOwotKyAgICAgIEdFbGZfVmVyZGF1eCAqYXV4Owot KyAgICAgIHVuc2lnbmVkIGludCBhdXhvZmZzZXQ7Ci0rCi0rICAgICAgLyogR2V0IHRoZSBkYXRh IGF0IHRoZSBuZXh0IG9mZnNldC4gICovCi0rICAgICAgZGVmID0gZ2VsZl9nZXR2ZXJkZWYgKHZl cmQsIG9mZnNldCwgJmRlZm1lbSk7Ci0rICAgICAgaWYgKGRlZiA9PSBOVUxMKQotKwlicmVhazsK LSsKLSsgICAgICBhdXhvZmZzZXQgPSBvZmZzZXQgKyBkZWYtPnZkX2F1eDsKLSsgICAgICBhdXgg PSBnZWxmX2dldHZlcmRhdXggKHZlcmQsIGF1eG9mZnNldCwgJmF1eG1lbSk7Ci0rICAgICAgaWYg KGF1eCA9PSBOVUxMKQotKwlicmVhazsKLSsKLSsgICAgICBpZiAoc3RyY21wIChuYW1lLCBlbGZf c3RycHRyIChlbGYsIHZlcmRfc2hkci0+c2hfbGluaywKLSsJCSAgYXV4LT52ZGFfbmFtZSkpID09 IDApCi0rCXJldHVybiBkZWYtPnZkX25keDsKLSsKLSsgICAgICAvKiBGaW5kIHRoZSBuZXh0IG9m ZnNldC4gICovCi0rICAgICAgb2Zmc2V0ICs9IGRlZi0+dmRfbmV4dDsKLSsgICAgfQotKwotKyAg cmV0dXJuIC0xOwotK30KLSsKLStpbnQKLSttYWluIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCi0r ewotKyAgaWYgKGFyZ2MgPCA0KQotKyAgICBlcnJvciAoMSwgMCwgIlVzYWdlOiBjaGFuZ2Vfc3lt dmVyIGxpYnJhcnkgZnJvbV9zeW12ZXIgdG9fc3ltdmVyIHN5bWJvbC4uLlxuRXhhbXBsZTogY2hh bmdlX3N5bXZlciBsaWJmb28uc28gRk9PXzEuMCAqZ2xvYmFsKiBiYXIgYmF6Iik7Ci0rCi0rICBj b25zdCBjaGFyICpmbmFtZSA9IGFyZ3ZbMV07Ci0rCi0rICAvKiBPcGVuIHRoZSBmaWxlLiAgKi8K LSsgIGludCBmZDsKLSsgIGZkID0gb3BlbiAoZm5hbWUsIE9fUkRXUik7Ci0rICBpZiAoZmQgPT0g LTEpCi0rICAgIGVycm9yICgxLCBlcnJubywgZm5hbWUpOwotKwotKyAgZWxmX3ZlcnNpb24gKEVW X0NVUlJFTlQpOwotKwotKyAgLyogTm93IGdldCB0aGUgRUxGIGRlc2NyaXB0b3IuICAqLwotKyAg RWxmICplbGYgPSBlbGZfYmVnaW4gKGZkLCBFTEZfQ19SRUFEX01NQVAsIE5VTEwpOwotKyAgaWYg KGVsZiA9PSBOVUxMIHx8IGVsZl9raW5kIChlbGYpICE9IEVMRl9LX0VMRikKLSsgICAgZXJyb3Ig KDEsIDAsICJDb3VsZG4ndCBvcGVuICVzOiAlcyIsIGZuYW1lLCBlbGZfZXJybXNnICgtMSkpOwot KwotKyAgc2l6ZV90IHNoc3RybmR4OwotKyAgLyogR2V0IHRoZSBzZWN0aW9uIGhlYWRlciBzdHJp bmcgdGFibGUgaW5kZXguICAqLwotKyAgaWYgKGVsZl9nZXRzaHN0cm5keCAoZWxmLCAmc2hzdHJu ZHgpIDwgMCkKLSsgICAgZXJyb3IgKDEsIDAsICJjYW5ub3QgZ2V0IHNoc3RybmR4IGZyb20gJXMi LCBmbmFtZSk7Ci0rCi0rICBHRWxmX0VoZHIgZWhkcl9tZW07Ci0rICBHRWxmX0VoZHIgKmVoZHI7 Ci0rCi0rICAvKiBXZSBuZWVkIHRoZSBFTEYgaGVhZGVyIGluIGEgZmV3IHBsYWNlcy4gICovCi0r ICBlaGRyID0gZ2VsZl9nZXRlaGRyIChlbGYsICZlaGRyX21lbSk7Ci0rICBpZiAoZWhkciA9PSBO VUxMKQotKyAgICBlcnJvciAoMSwgMCwgImNvdWxkbid0IGdldCBFTEYgaGVhZGVycyAlczogJXMi LCBmbmFtZSwgZWxmX2Vycm1zZyAoLTEpKTsKLSsKLSsgIEVsZl9TY24gKnNjbiA9IE5VTEw7Ci0r ICBHRWxmX1NoZHIgc2hkcl9tZW0sIHZlcmRfc2hkciwgdmVyX3NoZHIsIGR5bnN5bV9zaGRyOwot KyAgRWxmX0RhdGEgKnZlciA9IE5VTEwsICp2ZXJkID0gTlVMTCwgKmR5bnN5bSA9IE5VTEw7Ci0r Ci0rICB3aGlsZSAoKHNjbiA9IGVsZl9uZXh0c2NuIChlbGYsIHNjbikpICE9IE5VTEwpCi0rICAg IHsKLSsgICAgICBHRWxmX1NoZHIgKnNoZHIgPSBnZWxmX2dldHNoZHIgKHNjbiwgJnNoZHJfbWVt KTsKLSsKLSsgICAgICBpZiAoc2hkciA9PSBOVUxMKQotKwllcnJvciAoMSwgMCwgImNvdWxkbid0 IGdldCBzaGRyIGZyb20gJXMiLCBmbmFtZSk7Ci0rCi0rICAgICAgaWYgKChzaGRyLT5zaF9mbGFn cyAmIFNIRl9BTExPQykgIT0gMCkKLSsJewotKwkgIGNvbnN0IGNoYXIgKm5hbWUgPSBlbGZfc3Ry cHRyIChlbGYsIHNoc3RybmR4LCBzaGRyLT5zaF9uYW1lKTsKLSsJICBFbGZfRGF0YSAqKnA7Ci0r Ci0rCSAgaWYgKHN0cmNtcCAobmFtZSwgIi5nbnUudmVyc2lvbiIpID09IDApCi0rCSAgICB7Ci0r CSAgICAgIHAgPSAmdmVyOwotKwkgICAgICB2ZXJfc2hkciA9ICpzaGRyOwotKwkgICAgfQotKwkg IGVsc2UgaWYgKHN0cmNtcCAobmFtZSwgIi5nbnUudmVyc2lvbl9kIikgPT0gMCkKLSsJICAgIHsK LSsJICAgICAgcCA9ICZ2ZXJkOwotKwkgICAgICB2ZXJkX3NoZHIgPSAqc2hkcjsKLSsJICAgIH0K LSsJICBlbHNlIGlmIChzdHJjbXAgKG5hbWUsICIuZHluc3ltIikgPT0gMCkKLSsJICAgIHsKLSsJ ICAgICAgcCA9ICZkeW5zeW07Ci0rCSAgICAgIGR5bnN5bV9zaGRyID0gKnNoZHI7Ci0rCSAgICB9 Ci0rCSAgZWxzZQotKwkgICAgY29udGludWU7Ci0rCi0rCSAgaWYgKCpwICE9IE5VTEwpCi0rCSAg ICBlcnJvciAoMSwgMCwgIlR3byAlcyBzZWN0aW9ucyBpbiAlcyIsIG5hbWUsIGZuYW1lKTsKLSsJ ICAqcCA9IGVsZl9nZXRkYXRhIChzY24sIE5VTEwpOwotKwkgIGlmICgqcCA9PSBOVUxMIHx8IGVs Zl9nZXRkYXRhIChzY24sICpwKSAhPSBOVUxMKQotKwkgICAgZXJyb3IgKDEsIDAsICJObyBkYXRh IG9yIG5vbi1jb250aWd1b3VzIGRhdGEgaW4gJXMgc2VjdGlvbiBpbiAlcyIsCi0rCQkgICBuYW1l LCBmbmFtZSk7Ci0rCX0KLSsgICAgfQotKwotKyAgaWYgKHZlciA9PSBOVUxMIHx8IHZlcmQgPT0g TlVMTCB8fCBkeW5zeW0gPT0gTlVMTCkKLSsgICAgZXJyb3IgKDEsIDAsICJDb3VsZG4ndCBmaW5k IG9uZSBvZiB0aGUgbmVlZGVkIHNlY3Rpb25zIGluICVzIiwgZm5hbWUpOwotKwotKyAgaW50IGZy b21faWR4ID0gY29tcHV0ZV92ZXJpZHggKGFyZ3ZbMl0sIGVsZiwgdmVyZCwgJnZlcmRfc2hkcik7 Ci0rICBpZiAoZnJvbV9pZHggPT0gLTEpCi0rICAgIGVycm9yICgxLCAwLCAiQ291bGQgbm90IGZp bmQgc3ltYm9sIHZlcnNpb24gJXMgaW4gJXMiLCBhcmd2WzJdLCBmbmFtZSk7Ci0rCi0rICBpbnQg dG9faWR4ID0gY29tcHV0ZV92ZXJpZHggKGFyZ3ZbM10sIGVsZiwgdmVyZCwgJnZlcmRfc2hkcik7 Ci0rICBpZiAodG9faWR4ID09IC0xKQotKyAgICBlcnJvciAoMSwgMCwgIkNvdWxkIG5vdCBmaW5k IHN5bWJvbCB2ZXJzaW9uICVzIGluICVzIiwgYXJndlszXSwgZm5hbWUpOwotKwotKyAgaWYgKGR5 bnN5bV9zaGRyLnNoX2VudHNpemUgIT0gZ2VsZl9mc2l6ZSAoZWxmLCBFTEZfVF9TWU0sIDEsIGVo ZHItPmVfdmVyc2lvbikKLSsgICAgICB8fCBkeW5zeW1fc2hkci5zaF9zaXplICUgZHluc3ltX3No ZHIuc2hfZW50c2l6ZQotKyAgICAgIHx8IHZlcl9zaGRyLnNoX2VudHNpemUgIT0gMgotKyAgICAg IHx8ICh2ZXJfc2hkci5zaF9zaXplICYgMSkKLSsgICAgICB8fCBkeW5zeW1fc2hkci5zaF9zaXpl IC8gZHluc3ltX3NoZHIuc2hfZW50c2l6ZSAhPSB2ZXJfc2hkci5zaF9zaXplIC8gMikKLSsgICAg ZXJyb3IgKDEsIDAsICJVbmV4cGVjdGVkIHNoX3NpemUgb3Igc2hfZW50c2l6ZSBpbiAlcyIsIGZu YW1lKTsKLSsKLSsgIHNpemVfdCBuZW50cmllcyA9IHZlcl9zaGRyLnNoX3NpemUgLyAyOwotKyAg c2l6ZV90IGNudDsKLSsgIEdFbGZfVmVyc3ltIGFycmF5W25lbnRyaWVzXTsKLSsgIGZvciAoY250 ID0gMDsgY250IDwgbmVudHJpZXM7ICsrY250KQotKyAgICB7Ci0rICAgICAgR0VsZl9WZXJzeW0g dnN5bW1lbTsKLSsgICAgICBHRWxmX1ZlcnN5bSAqdnN5bTsKLSsKLSsgICAgICB2c3ltID0gZ2Vs Zl9nZXR2ZXJzeW0gKHZlciwgY250LCAmdnN5bW1lbSk7Ci0rICAgICAgaWYgKHZzeW0gPT0gTlVM TCkKLSsJZXJyb3IgKDEsIDAsICJnZWx0X2dldHZlcnN5bSBmYWlsZWQgaW4gJXM6ICVzIiwgZm5h bWUsIGVsZl9lcnJtc2cgKC0xKSk7Ci0rCi0rICAgICAgYXJyYXlbY250XSA9ICp2c3ltOwotKyAg ICAgIGlmICgqdnN5bSAhPSBmcm9tX2lkeCkKLSsJY29udGludWU7Ci0rCi0rICAgICAgR0VsZl9T eW0gc3ltX21lbTsKLSsgICAgICBHRWxmX1N5bSAqc3ltOwotKyAgICAgIHN5bSA9IGdlbGZfZ2V0 c3ltIChkeW5zeW0sIGNudCwgJnN5bV9tZW0pOwotKyAgICAgIGlmIChzeW0gPT0gTlVMTCkKLSsJ ZXJyb3IgKDEsIDAsICJnZWx0X2dldHN5bSBmYWlsZWQgaW4gJXM6ICVzIiwgZm5hbWUsIGVsZl9l cnJtc2cgKC0xKSk7Ci0rCi0rICAgICAgY29uc3QgY2hhciAqbmFtZSA9IGVsZl9zdHJwdHIgKGVs ZiwgZHluc3ltX3NoZHIuc2hfbGluaywgc3ltLT5zdF9uYW1lKTsKLSsKLSsgICAgICBpbnQgYXJn bjsKLSsgICAgICBmb3IgKGFyZ24gPSA0OyBhcmduIDwgYXJnYzsgKythcmduKQotKwlpZiAoZm5t YXRjaCAoYXJndlthcmduXSwgbmFtZSwgMCkgPT0gMCkKLSsJICB7Ci0rCSAgICBhcnJheVtjbnRd ID0gdG9faWR4OwotKwkgICAgYnJlYWs7Ci0rCSAgfQotKyAgICB9Ci0rCi0rICBpZiAoc2l6ZW9m IChhcnJheVswXSkgIT0gMikKLSsgICAgYWJvcnQgKCk7Ci0rCi0rI2lmIF9fQllURV9PUkRFUiA9 PSBfX0xJVFRMRV9FTkRJQU4KLSsgIGlmIChlaGRyLT5lX2lkZW50W0VJX0RBVEFdID09IEVMRkRB VEEyTFNCKQotKyAgICA7Ci0rICBlbHNlIGlmIChlaGRyLT5lX2lkZW50W0VJX0RBVEFdID09IEVM RkRBVEEyTVNCKQotKyNlbGlmIF9fQllURV9PUkRFUiA9PSBfX0JJR19FTkRJQU4KLSsgIGlmIChl aGRyLT5lX2lkZW50W0VJX0RBVEFdID09IEVMRkRBVEEyTVNCKQotKyAgICA7Ci0rICBlbHNlIGlm IChlaGRyLT5lX2lkZW50W0VJX0RBVEFdID09IEVMRkRBVEEyTFNCKQotKyNlbHNlCi0rIyBlcnJv ciBVbnN1cHBvcnRlZCBlbmRpYW5pdHkKLSsjZW5kaWYKLSsgICAgewotKyAgICAgIGZvciAoY250 ID0gMDsgY250IDwgbmVudHJpZXM7ICsrY250KQotKwlhcnJheVtjbnRdID0gKChhcnJheVtjbnRd ICYgMHhmZikgPDwgOCkgfCAoKGFycmF5W2NudF0gJiAweGZmMDApID4+IDgpOwotKyAgICB9Ci0r ICBlbHNlCi0rICAgIGVycm9yICgxLCAwLCAiVW5rbm93biBFSV9EQVRBICVkIGluICVzIiwgZWhk ci0+ZV9pZGVudFtFSV9EQVRBXSwgZm5hbWUpOwotKwotKyAgaWYgKGVsZl9lbmQgKGVsZikgIT0g MCkKLSsgICAgZXJyb3IgKDEsIDAsICJjb3VsZG4ndCBjbG9zZSAlczogJXMiLCBmbmFtZSwgZWxm X2Vycm1zZyAoLTEpKTsKLSsKLSsgIGlmIChsc2VlayAoZmQsIHZlcl9zaGRyLnNoX29mZnNldCwg U0VFS19TRVQpICE9IChvZmZfdCkgdmVyX3NoZHIuc2hfb2Zmc2V0KQotKyAgICBlcnJvciAoMSwg MCwgImZhaWxlZCB0byBzZWVrIHRvICV6ZCBpbiAlcyIsIChzaXplX3QpIHZlcl9zaGRyLnNoX29m ZnNldCwKLSsJICAgZm5hbWUpOwotKwotKyAgaWYgKHdyaXRlIChmZCwgYXJyYXksIDIgKiBuZW50 cmllcykgIT0gKHNzaXplX3QpICgyICogbmVudHJpZXMpKQotKyAgICBlcnJvciAoMSwgMCwgImZh aWxlZCB0byB3cml0ZSAuZ251LnZlcnNpb24gc2VjdGlvbiBpbnRvICVzIiwgZm5hbWUpOwotKwot KyAgY2xvc2UgKGZkKTsKLSsgIHJldHVybiAwOwotK30KLS0tLSBnY2MvY29uZmlnL2lhNjQvdW53 aW5kLWlhNjQuYy5qagkyMDA0LTEwLTA0IDA4OjU1OjU3LjAwMDAwMDAwMCAtMDQwMAotKysrIGdj Yy9jb25maWcvaWE2NC91bndpbmQtaWE2NC5jCTIwMDQtMTEtMTUgMDk6MDc6NDUuMDAwMDAwMDAw IC0wNTAwCi1AQCAtNTEsNiArNTEsNTEgQEAKLSAjZGVmaW5lIFVOV19GTEFHX1VIQU5ETEVSKHgp CSgoeCkgJiAweDAwMDAwMDAyMDAwMDAwMDBMKQotICNkZWZpbmUgVU5XX0xFTkdUSCh4KQkJKCh4 KSAmIDB4MDAwMDAwMDBmZmZmZmZmZkwpCi0gCi0rI2lmIGRlZmluZWQgKFVTRV9TWU1WRVJfR0xP QkFMKSAmJiBkZWZpbmVkIChTSEFSRUQpCi0rZXh0ZXJuIF9VbndpbmRfUmVhc29uX0NvZGUgX19z eW12ZXJnbG9iYWxfVW53aW5kX0JhY2t0cmFjZQotKyAgKF9VbndpbmRfVHJhY2VfRm4sIHZvaWQg Kik7Ci0rZXh0ZXJuIHZvaWQgX19zeW12ZXJnbG9iYWxfVW53aW5kX0RlbGV0ZUV4Y2VwdGlvbgot KyAgKHN0cnVjdCBfVW53aW5kX0V4Y2VwdGlvbiAqKTsKLStleHRlcm4gdm9pZCAqIF9fc3ltdmVy Z2xvYmFsX1Vud2luZF9GaW5kRW5jbG9zaW5nRnVuY3Rpb24gKHZvaWQgKik7Ci0rZXh0ZXJuIF9V bndpbmRfUmVhc29uX0NvZGUgX19zeW12ZXJnbG9iYWxfVW53aW5kX0ZvcmNlZFVud2luZAotKyAg KHN0cnVjdCBfVW53aW5kX0V4Y2VwdGlvbiAqLCBfVW53aW5kX1N0b3BfRm4sIHZvaWQgKik7Ci0r ZXh0ZXJuIF9VbndpbmRfV29yZCBfX3N5bXZlcmdsb2JhbF9VbndpbmRfR2V0Q0ZBCi0rICAoc3Ry dWN0IF9VbndpbmRfQ29udGV4dCAqKTsKLStleHRlcm4gX1Vud2luZF9Xb3JkIF9fc3ltdmVyZ2xv YmFsX1Vud2luZF9HZXRCU1AKLSsgIChzdHJ1Y3QgX1Vud2luZF9Db250ZXh0ICopOwotK2V4dGVy biBfVW53aW5kX1dvcmQgX19zeW12ZXJnbG9iYWxfVW53aW5kX0dldEdSCi0rICAoc3RydWN0IF9V bndpbmRfQ29udGV4dCAqLCBpbnQgKTsKLStleHRlcm4gX1Vud2luZF9QdHIgX19zeW12ZXJnbG9i YWxfVW53aW5kX0dldElQIChzdHJ1Y3QgX1Vud2luZF9Db250ZXh0ICopOwotK2V4dGVybiB2b2lk ICpfX3N5bXZlcmdsb2JhbF9VbndpbmRfR2V0TGFuZ3VhZ2VTcGVjaWZpY0RhdGEKLSsgIChzdHJ1 Y3QgX1Vud2luZF9Db250ZXh0ICopOwotK2V4dGVybiBfVW53aW5kX1B0ciBfX3N5bXZlcmdsb2Jh bF9VbndpbmRfR2V0UmVnaW9uU3RhcnQKLSsgIChzdHJ1Y3QgX1Vud2luZF9Db250ZXh0ICopOwot K2V4dGVybiBfVW53aW5kX1JlYXNvbl9Db2RlIF9fc3ltdmVyZ2xvYmFsX1Vud2luZF9SYWlzZUV4 Y2VwdGlvbgotKyAgKHN0cnVjdCBfVW53aW5kX0V4Y2VwdGlvbiAqKTsKLStleHRlcm4gdm9pZCBf X3N5bXZlcmdsb2JhbF9VbndpbmRfUmVzdW1lIChzdHJ1Y3QgX1Vud2luZF9FeGNlcHRpb24gKik7 Ci0rZXh0ZXJuIF9VbndpbmRfUmVhc29uX0NvZGUgX19zeW12ZXJnbG9iYWxfVW53aW5kX1Jlc3Vt ZV9vcl9SZXRocm93Ci0rICAgKHN0cnVjdCBfVW53aW5kX0V4Y2VwdGlvbiAqKTsKLStleHRlcm4g dm9pZCBfX3N5bXZlcmdsb2JhbF9VbndpbmRfU2V0R1IKLSsgIChzdHJ1Y3QgX1Vud2luZF9Db250 ZXh0ICosIGludCwgX1Vud2luZF9Xb3JkKTsKLStleHRlcm4gdm9pZCBfX3N5bXZlcmdsb2JhbF9V bndpbmRfU2V0SVAKLSsgIChzdHJ1Y3QgX1Vud2luZF9Db250ZXh0ICosIF9VbndpbmRfUHRyKTsK LSsjZGVmaW5lIF9VbndpbmRfQmFja3RyYWNlIF9fc3ltdmVyZ2xvYmFsX1Vud2luZF9CYWNrdHJh Y2UKLSsjZGVmaW5lIF9VbndpbmRfRGVsZXRlRXhjZXB0aW9uIF9fc3ltdmVyZ2xvYmFsX1Vud2lu ZF9EZWxldGVFeGNlcHRpb24KLSsjZGVmaW5lIF9VbndpbmRfRmluZEVuY2xvc2luZ0Z1bmN0aW9u IF9fc3ltdmVyZ2xvYmFsX1Vud2luZF9GaW5kRW5jbG9zaW5nRnVuY3Rpb24KLSsjZGVmaW5lIF9V bndpbmRfRm9yY2VkVW53aW5kIF9fc3ltdmVyZ2xvYmFsX1Vud2luZF9Gb3JjZWRVbndpbmQKLSsj ZGVmaW5lIF9VbndpbmRfR2V0QlNQIF9fc3ltdmVyZ2xvYmFsX1Vud2luZF9HZXRCU1AKLSsjZGVm aW5lIF9VbndpbmRfR2V0Q0ZBIF9fc3ltdmVyZ2xvYmFsX1Vud2luZF9HZXRDRkEKLSsjZGVmaW5l IF9VbndpbmRfR2V0R1IgX19zeW12ZXJnbG9iYWxfVW53aW5kX0dldEdSCi0rI2RlZmluZSBfVW53 aW5kX0dldElQIF9fc3ltdmVyZ2xvYmFsX1Vud2luZF9HZXRJUAotKyNkZWZpbmUgX1Vud2luZF9H ZXRMYW5ndWFnZVNwZWNpZmljRGF0YSBfX3N5bXZlcmdsb2JhbF9VbndpbmRfR2V0TGFuZ3VhZ2VT cGVjaWZpY0RhdGEKLSsjZGVmaW5lIF9VbndpbmRfR2V0UmVnaW9uU3RhcnQgX19zeW12ZXJnbG9i YWxfVW53aW5kX0dldFJlZ2lvblN0YXJ0Ci0rI2RlZmluZSBfVW53aW5kX1JhaXNlRXhjZXB0aW9u IF9fc3ltdmVyZ2xvYmFsX1Vud2luZF9SYWlzZUV4Y2VwdGlvbgotKyNkZWZpbmUgX1Vud2luZF9S ZXN1bWUgX19zeW12ZXJnbG9iYWxfVW53aW5kX1Jlc3VtZQotKyNkZWZpbmUgX1Vud2luZF9SZXN1 bWVfb3JfUmV0aHJvdyBfX3N5bXZlcmdsb2JhbF9VbndpbmRfUmVzdW1lX29yX1JldGhyb3cKLSsj ZGVmaW5lIF9VbndpbmRfU2V0R1IgX19zeW12ZXJnbG9iYWxfVW53aW5kX1NldEdSCi0rI2RlZmlu ZSBfVW53aW5kX1NldElQIF9fc3ltdmVyZ2xvYmFsX1Vud2luZF9TZXRJUAotKyNlbmRpZgotKwot IGVudW0gdW53X2FwcGxpY2F0aW9uX3JlZ2lzdGVyCi0gewotICAgVU5XX0FSX0JTUCwKLUBAIC0y NDAyLDQgKzI0NDcsNDQgQEAgYWxpYXMgKF9VbndpbmRfU2V0R1IpOwotIGFsaWFzIChfVW53aW5k X1NldElQKTsKLSAjZW5kaWYKLSAKLSsjaWYgZGVmaW5lZCAoVVNFX1NZTVZFUl9HTE9CQUwpICYm IGRlZmluZWQgKFNIQVJFRCkKLSsjdW5kZWYgYWxpYXMKLSsjZGVmaW5lIHN5bXZlcmdsb2JhbChu YW1lLCB2ZXJzaW9uKSBcCi0rX190eXBlb2YgKF9fc3ltdmVyZ2xvYmFsIyNuYW1lKSBfX3N5bXZl cmxvY2FsIyNuYW1lCQlcCi0rICBfX2F0dHJpYnV0ZV9fICgoYWxpYXMgKCJfX3N5bXZlcmdsb2Jh bCIgI25hbWUpKSk7CQlcCi0rX19hc21fXyAoIi5zeW12ZXIgX19zeW12ZXJnbG9iYWwiICNuYW1l IiwiICNuYW1lICJAQEdDQ18zLjQuMiIpO1wKLStfX2FzbV9fICgiLnN5bXZlciBfX3N5bXZlcmxv Y2FsIiAjbmFtZSIsIiAjbmFtZSAiQCIgI3ZlcnNpb24pCi0rCi0rI3VuZGVmIF9VbndpbmRfQmFj a3RyYWNlCi0rI3VuZGVmIF9VbndpbmRfRGVsZXRlRXhjZXB0aW9uCi0rI3VuZGVmIF9VbndpbmRf RmluZEVuY2xvc2luZ0Z1bmN0aW9uCi0rI3VuZGVmIF9VbndpbmRfRm9yY2VkVW53aW5kCi0rI3Vu ZGVmIF9VbndpbmRfR2V0QlNQCi0rI3VuZGVmIF9VbndpbmRfR2V0Q0ZBCi0rI3VuZGVmIF9Vbndp bmRfR2V0R1IKLSsjdW5kZWYgX1Vud2luZF9HZXRJUAotKyN1bmRlZiBfVW53aW5kX0dldExhbmd1 YWdlU3BlY2lmaWNEYXRhCi0rI3VuZGVmIF9VbndpbmRfR2V0UmVnaW9uU3RhcnQKLSsjdW5kZWYg X1Vud2luZF9SYWlzZUV4Y2VwdGlvbgotKyN1bmRlZiBfVW53aW5kX1Jlc3VtZQotKyN1bmRlZiBf VW53aW5kX1Jlc3VtZV9vcl9SZXRocm93Ci0rI3VuZGVmIF9VbndpbmRfU2V0R1IKLSsjdW5kZWYg X1Vud2luZF9TZXRJUAotK3N5bXZlcmdsb2JhbCAoX1Vud2luZF9CYWNrdHJhY2UsIEdDQ18zLjMp OwotK3N5bXZlcmdsb2JhbCAoX1Vud2luZF9EZWxldGVFeGNlcHRpb24sIEdDQ18zLjApOwotK3N5 bXZlcmdsb2JhbCAoX1Vud2luZF9GaW5kRW5jbG9zaW5nRnVuY3Rpb24sIEdDQ18zLjMpOwotK3N5 bXZlcmdsb2JhbCAoX1Vud2luZF9Gb3JjZWRVbndpbmQsIEdDQ18zLjApOwotK3N5bXZlcmdsb2Jh bCAoX1Vud2luZF9HZXRCU1AsIEdDQ18zLjMuMik7Ci0rc3ltdmVyZ2xvYmFsIChfVW53aW5kX0dl dENGQSwgR0NDXzMuMyk7Ci0rc3ltdmVyZ2xvYmFsIChfVW53aW5kX0dldEdSLCBHQ0NfMy4wKTsK LStzeW12ZXJnbG9iYWwgKF9VbndpbmRfR2V0SVAsIEdDQ18zLjApOwotK3N5bXZlcmdsb2JhbCAo X1Vud2luZF9HZXRMYW5ndWFnZVNwZWNpZmljRGF0YSwgR0NDXzMuMCk7Ci0rc3ltdmVyZ2xvYmFs IChfVW53aW5kX0dldFJlZ2lvblN0YXJ0LCBHQ0NfMy4wKTsKLStzeW12ZXJnbG9iYWwgKF9Vbndp bmRfUmFpc2VFeGNlcHRpb24sIEdDQ18zLjApOwotK3N5bXZlcmdsb2JhbCAoX1Vud2luZF9SZXN1 bWUsIEdDQ18zLjApOwotK3N5bXZlcmdsb2JhbCAoX1Vud2luZF9SZXN1bWVfb3JfUmV0aHJvdywg R0NDXzMuMyk7Ci0rc3ltdmVyZ2xvYmFsIChfVW53aW5kX1NldEdSLCBHQ0NfMy4wKTsKLStzeW12 ZXJnbG9iYWwgKF9VbndpbmRfU2V0SVAsIEdDQ18zLjApOwotKyNlbmRpZgotKwotICNlbmRpZgot LS0tIGdjYy9jb25maWcvaWE2NC9ta21hcC1zeW12ZXItbXVsdGkuYXdrLmpqCTIwMDQtMDItMTgg MTA6Mjc6MzYuMDAwMDAwMDAwIC0wNTAwCi0rKysgZ2NjL2NvbmZpZy9pYTY0L21rbWFwLXN5bXZl ci1tdWx0aS5hd2sJMjAwNC0xMS0xNSAwOTo0Njo1MC4wMDAwMDAwMDAgLTA1MDAKLUBAIC0wLDAg KzEsMTMzIEBACi0rIyBHZW5lcmF0ZSBhbiBFTEYgc3ltYm9sIHZlcnNpb24gbWFwIGEtbGEgU29s YXJpcyBhbmQgR05VIGxkLgotKyMJQ29udHJpYnV0ZWQgYnkgUmljaGFyZCBIZW5kZXJzb24gPHJ0 aEBjeWdudXMuY29tPgotKyMKLSsjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdDQy4KLSsjCi0rIyBH Q0MgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlm eSBpdCB1bmRlcgotKyMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUKLSsjIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl ciB2ZXJzaW9uIDIsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyCi0rIyB2ZXJzaW9uLgot KyMKLSsjIEdDQyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLCBidXQgV0lUSE9VVAotKyMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZCi0rIyBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljCi0rIyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCi0rIwotKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsjIGFsb25nIHdpdGggR0NDOyBzZWUg dGhlIGZpbGUgQ09QWUlORy4gIElmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUKLSsjIFNvZnR3YXJl IEZvdW5kYXRpb24sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEK LSsjIDAyMTEwLTEzMDEsIFVTQS4KLSsKLStCRUdJTiB7Ci0rICBzdGF0ZSA9ICJubSI7Ci0rICBz YXdzeW1ib2wgPSAwOwotK30KLSsKLSsjIFJlbW92ZSBjb21tZW50IGFuZCBibGFuayBsaW5lcy4K LSsvXiAqIy8gfHwgL14gKiQvIHsKLSsgIG5leHQ7Ci0rfQotKwotKyMgV2UgYmVnaW4gd2l0aCBu bSBpbnB1dC4gIENvbGxlY3QgdGhlIHNldCBvZiBzeW1ib2xzIHRoYXQgYXJlIHByZXNlbnQKLSsj IHNvIHRoYXQgd2UgY2FuIG5vdCBlbWl0IHRoZW0gaW50byB0aGUgZmluYWwgdmVyc2lvbiBzY3Jp cHQgLS0gU29sYXJpcwotKyMgY29tcGxhaW5zIGF0IHVzIGlmIHdlIGRvLgotKwotK3N0YXRlID09 ICJubSIgJiYgL14lJS8gewotKyAgc3RhdGUgPSAidmVyIjsKLSsgIG5leHQ7Ci0rfQotKwotK3N0 YXRlID09ICJubSIgJiYgKCQxID09ICJVIiB8fCAkMiA9PSAiVSIpIHsKLSsgIG5leHQ7Ci0rfQot KwotK3N0YXRlID09ICJubSIgJiYgTkYgPT0gMyB7Ci0rICBpZiAoJDMgfiAvXlteQF0qQEdDQ19b MC05Ll0qJC8pIHsKLSsgICAgZGVmWyQzXSA9IDEKLSsgICAgdGw9JDMKLSsgICAgc3ViKC9eLipA LywiIix0bCkKLSsgICAgdmVyWyQzXSA9IHRsCi0rICB9IGVsc2UgewotKyAgICBzdWIoL0BAP0dD Q19bMC05Ll0qJC8sIiIsJDMpCi0rICAgIGRlZlskM10gPSAxOwotKyAgfQotKyAgc2F3c3ltYm9s ID0gMTsKLSsgIG5leHQ7Ci0rfQotKwotK3N0YXRlID09ICJubSIgewotKyAgbmV4dDsKLSt9Ci0r Ci0rIyBOb3cgd2UgcHJvY2VzcyBhIHNpbXBsaWZpZWQgdmFyaWFudCBvZiB0aGUgU29sYXJpcyBz eW1ib2wgdmVyc2lvbgotKyMgc2NyaXB0LiAgV2UgaGF2ZSBvbmUgc3ltYm9sIHBlciBsaW5lLCBu byBzZW1pY29sb25zLCBzaW1wbGUgbWFya2VycwotKyMgZm9yIGJlZ2lubmluZyBhbmQgZW5kaW5n IGVhY2ggc2VjdGlvbiwgYW5kICVpbmhlcml0IG1hcmtlcnMgZm9yCi0rIyBkZXNjcmliaW5nIHZl cnNpb24gaW5oZXJpdGVuY2UuICBBIHN5bWJvbCBtYXkgYXBwZWFyIGluIG1vcmUgdGhhbgotKyMg b25lIHN5bWJvbCB2ZXJzaW9uLCBhbmQgdGhlIGxhc3Qgc2VlbiB0YWtlcyBlZmZlY3QuCi0rCi0r TkYgPT0gMyAmJiAkMSA9PSAiJWluaGVyaXQiIHsKLSsgIGluaGVyaXRbJDJdID0gJDM7Ci0rICBu ZXh0OwotK30KLSsKLStORiA9PSAyICYmICQyID09ICJ7IiB7Ci0rICBsaWJzWyQxXSA9IDE7Ci0r ICB0aGlzbGliID0gJDE7Ci0rICBuZXh0OwotK30KLSsKLSskMSA9PSAifSIgewotKyAgdGhpc2xp YiA9ICIiOwotKyAgbmV4dDsKLSt9Ci0rCi0rewotKyAgdmVyWyQxXSA9IHRoaXNsaWI7Ci0rICBu ZXh0OwotK30KLSsKLStFTkQgewotKyAgaWYgKCFzYXdzeW1ib2wpCi0rICAgIHsKLSsgICAgICBw cmludCAiTm8gc3ltYm9scyBzZWVuIC0tIGJyb2tlbiBvciBtaXMtaW5zdGFsbGVkIG5tPyIgfCAi Y2F0IDE+JjIiOwotKyAgICAgIGV4aXQgMTsKLSsgICAgfQotKyAgZm9yIChsIGluIGxpYnMpCi0r ICAgIG91dHB1dChsKTsKLSt9Ci0rCi0rZnVuY3Rpb24gb3V0cHV0KGxpYikgewotKyAgaWYgKGRv bmVbbGliXSkKLSsgICAgcmV0dXJuOwotKyAgZG9uZVtsaWJdID0gMTsKLSsgIGlmIChpbmhlcml0 W2xpYl0pCi0rICAgIG91dHB1dChpbmhlcml0W2xpYl0pOwotKwotKyAgZW1wdHk9MQotKyAgZm9y IChzeW0gaW4gdmVyKQotKyAgICBpZiAoKHZlcltzeW1dID09IGxpYikgJiYgKHN5bSBpbiBkZWYp KQotKyAgICAgIHsKLSsJaWYgKGVtcHR5KQotKwkgIHsKLSsJICAgIHByaW50ZigiJXMge1xuIiwg bGliKTsKLSsJICAgIHByaW50ZigiICBnbG9iYWw6XG4iKTsKLSsJICAgIGVtcHR5ID0gMDsKLSsJ ICB9Ci0rCXN5bXAgPSBzeW07Ci0rCXN1YigvQEdDQ19bMC05Ll0qJC8sIiIsc3ltcCk7Ci0rCXBy aW50ZigiXHQlcztcbiIsIHN5bXApOwotKwlpZiAoZG90c3ltcykKLSsJICBwcmludGYoIlx0LiVz O1xuIiwgc3ltcCk7Ci0rICAgICAgfQotKwotKyAgaWYgKGVtcHR5KQotKyAgICB7Ci0rICAgICAg Zm9yIChsIGluIGxpYnMpCi0rCWlmIChpbmhlcml0W2xdID09IGxpYikKLSsJICBpbmhlcml0W2xd ID0gaW5oZXJpdFtsaWJdOwotKyAgICB9Ci0rICBlbHNlIGlmIChpbmhlcml0W2xpYl0pCi0rICAg IHByaW50ZigifSAlcztcbiIsIGluaGVyaXRbbGliXSk7Ci0rICBlbHNlCi0rICAgIHByaW50ZiAo IlxuICBsb2NhbDpcblx0Kjtcbn07XG4iKTsKLSt9Ci0tLS0gZ2NjL2NvbmZpZy9pYTY0L2xpYmdj Yy1pYTY0LW5vLWxpYnVud2luZC52ZXIuamoJMjAwNC0wMi0xOCAxMDoyNzozNi4wMDAwMDAwMDAg LTA1MDAKLSsrKyBnY2MvY29uZmlnL2lhNjQvbGliZ2NjLWlhNjQtbm8tbGlidW53aW5kLnZlcgky MDA0LTExLTE1IDA5OjE5OjU2LjAwMDAwMDAwMCAtMDUwMAotQEAgLTAsMCArMSwxNyBAQAotK0dD Q18zLjQuMiB7Ci0rICBfVW53aW5kX0dldEdSCi0rICBfVW53aW5kX1JhaXNlRXhjZXB0aW9uCi0r ICBfVW53aW5kX0dldFJlZ2lvblN0YXJ0Ci0rICBfVW53aW5kX1NldElQCi0rICBfVW53aW5kX0dl dElQCi0rICBfVW53aW5kX0dldExhbmd1YWdlU3BlY2lmaWNEYXRhCi0rICBfVW53aW5kX1Jlc3Vt ZQotKyAgX1Vud2luZF9EZWxldGVFeGNlcHRpb24KLSsgIF9VbndpbmRfU2V0R1IKLSsgIF9Vbndp bmRfRm9yY2VkVW53aW5kCi0rICBfVW53aW5kX0JhY2t0cmFjZQotKyAgX1Vud2luZF9GaW5kRW5j bG9zaW5nRnVuY3Rpb24KLSsgIF9VbndpbmRfR2V0Q0ZBCi0rICBfVW53aW5kX1Jlc3VtZV9vcl9S ZXRocm93Ci0rICBfVW53aW5kX0dldEJTUAotK30KCmRpZmYgLS1naXQgYS9nY2M0My1qYXZhLWRl YnVnLWlmYWNlLXR5cGUucGF0Y2ggYi9nY2M0My1qYXZhLWRlYnVnLWlmYWNlLXR5cGUucGF0Y2gK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYzYTFiNTAuLjAwMDAwMDAKLS0tIGEvZ2Nj NDMtamF2YS1kZWJ1Zy1pZmFjZS10eXBlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAs MCBAQAotMjAwOC0wMS0yNSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+Ci0KLQkq IGxhbmcuYyAoamF2YV9jbGFzc2lmeV9yZWNvcmQpOiBSZXZlcnQgMjAwNy0xMi0yMCBjaGFuZ2Uu Ci0KLS0tLSBnY2MvamF2YS9sYW5nLmMJMjAwNy0xMi0yNyAwOTowOTo0OS4wMDAwMDAwMDAgKzAx MDAKLSsrKyBnY2MvamF2YS9sYW5nLmMJMjAwOC0wMS0yNSAxNzo0Mzo1Ny4wMDAwMDAwMDAgKzAx MDAKLUBAIC05NjUsOSArOTY1LDcgQEAgamF2YV9jbGFzc2lmeV9yZWNvcmQgKHRyZWUgdHlwZSkK LSAgIGlmICghIENMQVNTX1AgKHR5cGUpKQotICAgICByZXR1cm4gUkVDT1JEX0lTX1NUUlVDVDsK LSAKLS0gIC8qID8/PyBHREIgZG9lcyBub3Qgc3VwcG9ydCBEV19UQUdfaW50ZXJmYWNlX3R5cGUg YXMgb2YgRGVjZW1iZXIsCi0tICAgICAyMDA3LiAgUmUtZW5hYmxlIHRoaXMgYXQgYSBsYXRlciB0 aW1lLiAgKi8KLS0gIGlmICgwICYmIENMQVNTX0lOVEVSRkFDRSAoVFlQRV9OQU1FICh0eXBlKSkp Ci0rICBpZiAoQ0xBU1NfSU5URVJGQUNFIChUWVBFX05BTUUgKHR5cGUpKSkKLSAgICAgcmV0dXJu IFJFQ09SRF9JU19JTlRFUkZBQ0U7Ci0gCi0gICByZXR1cm4gUkVDT1JEX0lTX0NMQVNTOwoKZGlm ZiAtLWdpdCBhL2djYzQzLWphdmEtbm9tdWx0aS5wYXRjaCBiL2djYzQzLWphdmEtbm9tdWx0aS5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjA3ZWFkOC4uMDAwMDAwMAotLS0g YS9nY2M0My1qYXZhLW5vbXVsdGkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBA Ci0tLS0gbGliamF2YS9jb25maWd1cmUuYWMuamoJMjAwNy0xMi0wNyAxNzo1NTo1MC4wMDAwMDAw MDAgKzAxMDAKLSsrKyBsaWJqYXZhL2NvbmZpZ3VyZS5hYwkyMDA3LTEyLTA3IDE4OjM2OjU2LjAw MDAwMDAwMCArMDEwMAotQEAgLTgyLDYgKzgyLDEzIEBAIEFDX0FSR19FTkFCTEUoamF2YS1tYWlu dGFpbmVyLW1vZGUsCi0gCVthbGxvdyByZWJ1aWxkaW5nIG9mIC5jbGFzcyBhbmQgLmggZmlsZXNd KSkKLSBBTV9DT05ESVRJT05BTChKQVZBX01BSU5UQUlORVJfTU9ERSwgdGVzdCAiJGVuYWJsZV9q YXZhX21haW50YWluZXJfbW9kZSIgPSB5ZXMpCi0gCi0rQUNfQVJHX0VOQUJMRShsaWJqYXZhLW11 bHRpbGliLAotKwlBU19IRUxQX1NUUklORyhbLS1lbmFibGUtbGliamF2YS1tdWx0aWxpYl0sIFti dWlsZCBsaWJqYXZhIGFzIG11bHRpbGliXSkpCi0raWYgdGVzdCAiJGVuYWJsZV9saWJqYXZhX211 bHRpbGliIiA9IG5vOyB0aGVuCi0rICBtdWx0aWxpYj1ubwotKyAgYWNfY29uZmlndXJlX2FyZ3M9 IiRhY19jb25maWd1cmVfYXJncyAtLWRpc2FibGUtbXVsdGlsaWIiCi0rZmkKLSsKLSAjIEl0IG1h eSBub3QgYmUgc2FmZSB0byBydW4gbGlua2luZyB0ZXN0cyBpbiBBQ19QUk9HX0NDL0FDX1BST0df Q1hYLgotIEdDQ19OT19FWEVDVVRBQkxFUwotIAotLS0tIGxpYmphdmEvY29uZmlndXJlLmpqCTIw MDctMTItMDcgMTc6NTU6NTAuMDAwMDAwMDAwICswMTAwCi0rKysgbGliamF2YS9jb25maWd1cmUJ MjAwNy0xMi0wNyAxODozOTo1OC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0xMDE4LDYgKzEwMTgsOCBA QCBPcHRpb25hbCBGZWF0dXJlczoKLSAgIC0tZW5hYmxlLWdjb25mLXBlZXIgICAgIGNvbXBpbGUg R0NvbmYgbmF0aXZlIHBlZXJzIGZvciB1dGlsLnByZWZlcmVuY2VzCi0gICAtLWVuYWJsZS1qYXZh LW1haW50YWluZXItbW9kZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3cgcmVidWls ZGluZyBvZiAuY2xhc3MgYW5kIC5oIGZpbGVzCi0rICAtLWVuYWJsZS1saWJqYXZhLW11bHRpbGli Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZCBsaWJqYXZhIGFzIG11bHRpbGliCi0g ICAtLWRpc2FibGUtZGVwZW5kZW5jeS10cmFja2luZyAgc3BlZWRzIHVwIG9uZS10aW1lIGJ1aWxk Ci0gICAtLWVuYWJsZS1kZXBlbmRlbmN5LXRyYWNraW5nICAgZG8gbm90IHJlamVjdCBzbG93IGRl cGVuZGVuY3kgZXh0cmFjdG9ycwotICAgLS1lbmFibGUtbWFpbnRhaW5lci1tb2RlICBlbmFibGUg bWFrZSBydWxlcyBhbmQgZGVwZW5kZW5jaWVzIG5vdCB1c2VmdWwKLUBAIC0xODQ4LDYgKzE4NTAs MTYgQEAgZWxzZQotIGZpCi0gCi0gCi0rIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLWxpYmphdmEt bXVsdGlsaWIgd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7ZW5hYmxlX2xpYmphdmFfbXVsdGlsaWIr c2V0fSIgPSBzZXQ7IHRoZW4KLSsgIGVuYWJsZXZhbD0kZW5hYmxlX2xpYmphdmFfbXVsdGlsaWI7 Ci0rZmkKLSsKLStpZiB0ZXN0ICIkZW5hYmxlX2xpYmphdmFfbXVsdGlsaWIiID0gbm87IHRoZW4K LSsgIG11bHRpbGliPW5vCi0rICBhY19jb25maWd1cmVfYXJncz0iJGFjX2NvbmZpZ3VyZV9hcmdz IC0tZGlzYWJsZS1tdWx0aWxpYiIKLStmaQotKwotICMgSXQgbWF5IG5vdCBiZSBzYWZlIHRvIHJ1 biBsaW5raW5nIHRlc3RzIGluIEFDX1BST0dfQ0MvQUNfUFJPR19DWFguCi0gCi0gCgpkaWZmIC0t Z2l0IGEvZ2NjNDMtbGliZ29tcC1vbXBfaC1tdWx0aWxpYi5wYXRjaCBiL2djYzQzLWxpYmdvbXAt b21wX2gtbXVsdGlsaWIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQwZTk4 ZDEuLjAwMDAwMDAKLS0tIGEvZ2NjNDMtbGliZ29tcC1vbXBfaC1tdWx0aWxpYi5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLTIwMDgtMDYtMDkgIEpha3ViIEplbGluZWsgIDxq YWt1YkByZWRoYXQuY29tPgotCi0JKiBvbXAuaC5pbiAob21wX25lc3RfbG9ja190KTogRml4IHVw IGZvciBMaW51eCBtdWx0aWxpYnMuCi0KLS0tLSBsaWJnb21wL29tcC5oLmluLmpqCTIwMDgtMDYt MDkgMTM6MzQ6MDUuMDAwMDAwMDAwICswMjAwCi0rKysgbGliZ29tcC9vbXAuaC5pbgkyMDA4LTA2 LTA5IDEzOjM0OjQ4LjAwMDAwMDAwMCArMDIwMAotQEAgLTQyLDggKzQyLDggQEAgdHlwZWRlZiBz dHJ1Y3QKLSAKLSB0eXBlZGVmIHN0cnVjdAotIHsKLS0gIHVuc2lnbmVkIGNoYXIgX3hbQE9NUF9O RVNUX0xPQ0tfU0laRUBdIAotLSAgICBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXyhAT01QX05F U1RfTE9DS19BTElHTkApKSk7Ci0rICB1bnNpZ25lZCBjaGFyIF94WzggKyBzaXplb2YgKHZvaWQg KildIAotKyAgICBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXyhzaXplb2YgKHZvaWQgKikpKSk7 Ci0gfSBvbXBfbmVzdF9sb2NrX3Q7Ci0gI2VuZGlmCi0gCgpkaWZmIC0tZ2l0IGEvZ2NjNDMtbGli dG9vbC1uby1ycGF0aC5wYXRjaCBiL2djYzQzLWxpYnRvb2wtbm8tcnBhdGgucGF0Y2gKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ2NmM2NjEuLjAwMDAwMDAKLS0tIGEvZ2NjNDMtbGli dG9vbC1uby1ycGF0aC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLWxpYnRv b2wgc3Vja3MuCi0tLS0gbHRtYWluLnNoLmpqCTIwMDctMTItMDcgMTQ6NTM6MjEuMDAwMDAwMDAw ICswMTAwCi0rKysgbHRtYWluLnNoCTIwMDgtMDktMDUgMjE6NTE6NDguMDAwMDAwMDAwICswMjAw Ci1AQCAtNTM5NCw2ICs1Mzk0LDcgQEAgRU9GCi0gCSAgcnBhdGg9IiRmaW5hbGl6ZV9ycGF0aCIK LSAJICB0ZXN0ICIkbW9kZSIgIT0gcmVsaW5rICYmIHJwYXRoPSIkY29tcGlsZV9ycGF0aCRycGF0 aCIKLSAJICBmb3IgbGliZGlyIGluICRycGF0aDsgZG8KLSsJICAgIGNhc2UgIiRsaWJkaXIiIGlu IC91c3IvbGlifC91c3IvbGliNjR8L3Vzci9saWIvLi4vbGlifC91c3IvbGliLy4uL2xpYjY0KSBj b250aW51ZTs7IGVzYWMKLSAJICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjIjsgdGhlbgotIAkgICAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRv ciI7IHRoZW4KLSAJCWlmIHRlc3QgLXogIiRoYXJkY29kZV9saWJkaXJzIjsgdGhlbgotQEAgLTYw NzEsNiArNjA3Miw3IEBAIEVPRgotICAgICAgIHJwYXRoPQotICAgICAgIGhhcmRjb2RlX2xpYmRp cnM9Ci0gICAgICAgZm9yIGxpYmRpciBpbiAkY29tcGlsZV9ycGF0aCAkZmluYWxpemVfcnBhdGg7 IGRvCi0rCWNhc2UgIiRsaWJkaXIiIGluIC91c3IvbGlifC91c3IvbGliNjR8L3Vzci9saWIvLi4v bGlifC91c3IvbGliLy4uL2xpYjY0KSBjb250aW51ZTs7IGVzYWMKLSAJaWYgdGVzdCAtbiAiJGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMiOyB0aGVuCi0gCSAgaWYgdGVzdCAtbiAiJGhhcmRjb2Rl X2xpYmRpcl9zZXBhcmF0b3IiOyB0aGVuCi0gCSAgICBpZiB0ZXN0IC16ICIkaGFyZGNvZGVfbGli ZGlycyI7IHRoZW4KLUBAIC02MTIwLDYgKzYxMjIsNyBAQCBFT0YKLSAgICAgICBycGF0aD0KLSAg ICAgICBoYXJkY29kZV9saWJkaXJzPQotICAgICAgIGZvciBsaWJkaXIgaW4gJGZpbmFsaXplX3Jw YXRoOyBkbwotKwljYXNlICIkbGliZGlyIiBpbiAvdXNyL2xpYnwvdXNyL2xpYjY0fC91c3IvbGli Ly4uL2xpYnwvdXNyL2xpYi8uLi9saWI2NCkgY29udGludWU7OyBlc2FjCi0gCWlmIHRlc3QgLW4g IiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIjsgdGhlbgotIAkgIGlmIHRlc3QgLW4gIiRoYXJk Y29kZV9saWJkaXJfc2VwYXJhdG9yIjsgdGhlbgotIAkgICAgaWYgdGVzdCAteiAiJGhhcmRjb2Rl X2xpYmRpcnMiOyB0aGVuCgpkaWZmIC0tZ2l0IGEvZ2NjNDMtcHBjMzItcmV0YWRkci5wYXRjaCBi L2djYzQzLXBwYzMyLXJldGFkZHIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IGU5YWUxYmMuLjAwMDAwMDAKLS0tIGEvZ2NjNDMtcHBjMzItcmV0YWRkci5wYXRjaAorKysgL2Rl di9udWxsCkBAIC0xLDg2ICswLDAgQEAKLTIwMDUtMTEtMjggIEpha3ViIEplbGluZWsgIDxqYWt1 YkByZWRoYXQuY29tPgotCi0JKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChyczYwMDBfcmV0dXJu X2FkZHIpOiBJZiBDT1VOVCA9PSAwLAotCXJlYWQgd29yZCBSRVRVUk5fQUREUkVTU19PRkZTRVQg Ynl0ZXMgYWJvdmUgYXJnX3BvaW50ZXJfcnR4Ci0JaW5zdGVhZCBvZiBkb2luZyBhbiBleHRyYW4g aW5kaXJlY3Rpb24gZnJvbSBmcmFtZV9wb2ludGVyX3J0eC4KLQotCSogZ2NjLmRnLzIwMDUxMTI4 LTEuYzogTmV3IHRlc3QuCi0KLS0tLSBnY2MvY29uZmlnL3JzNjAwMC9yczYwMDAuYy5qagkyMDA1 LTExLTI2IDE0OjM4OjAxLjAwMDAwMDAwMCArMDEwMAotKysrIGdjYy9jb25maWcvcnM2MDAwL3Jz NjAwMC5jCTIwMDUtMTEtMjggMjA6MzI6MTguMDAwMDAwMDAwICswMTAwCi1AQCAtMTMxNjYsMTcg KzEzMTY2LDIyIEBAIHJzNjAwMF9yZXR1cm5fYWRkciAoaW50IGNvdW50LCBydHggZnJhbWUKLSAg ICAgIGRvbid0IHRyeSB0byBiZSB0b28gY2xldmVyIGhlcmUuICAqLwotICAgaWYgKGNvdW50ICE9 IDAgfHwgKERFRkFVTFRfQUJJICE9IEFCSV9BSVggJiYgZmxhZ19waWMpKQotICAgICB7Ci0rICAg ICAgcnR4IHg7Ci0gICAgICAgY2Z1bi0+bWFjaGluZS0+cmFfbmVlZHNfZnVsbF9mcmFtZSA9IDE7 Ci0gCi0tICAgICAgcmV0dXJuCi0tCWdlbl9ydHhfTUVNCi0tCSAgKFBtb2RlLAotLQkgICBtZW1v cnlfYWRkcmVzcwotLQkgICAoUG1vZGUsCi0tCSAgICBwbHVzX2NvbnN0YW50IChjb3B5X3RvX3Jl ZwotLQkJCSAgIChnZW5fcnR4X01FTSAoUG1vZGUsCi0tCQkJCQkgbWVtb3J5X2FkZHJlc3MgKFBt b2RlLCBmcmFtZSkpKSwKLS0JCQkgICBSRVRVUk5fQUREUkVTU19PRkZTRVQpKSk7Ci0rICAgICAg aWYgKGNvdW50ID09IDApCi0rCXsKLSsJICBnY2NfYXNzZXJ0IChmcmFtZSA9PSBmcmFtZV9wb2lu dGVyX3J0eCk7Ci0rCSAgeCA9IGFyZ19wb2ludGVyX3J0eDsKLSsJfQotKyAgICAgIGVsc2UKLSsJ ewotKwkgIHggPSBtZW1vcnlfYWRkcmVzcyAoUG1vZGUsIGZyYW1lKTsKLSsJICB4ID0gY29weV90 b19yZWcgKGdlbl9ydHhfTUVNIChQbW9kZSwgeCkpOwotKwl9Ci0rCi0rICAgICAgeCA9IHBsdXNf Y29uc3RhbnQgKHgsIFJFVFVSTl9BRERSRVNTX09GRlNFVCk7Ci0rICAgICAgcmV0dXJuIGdlbl9y dHhfTUVNIChQbW9kZSwgbWVtb3J5X2FkZHJlc3MgKFBtb2RlLCB4KSk7Ci0gICAgIH0KLSAKLSAg IGNmdW4tPm1hY2hpbmUtPnJhX25lZWRfbHIgPSAxOwotLS0tIGdjYy90ZXN0c3VpdGUvZ2NjLmRn LzIwMDUxMTI4LTEuYy5qagkyMDA1LTEwLTEwIDExOjIxOjQxLjA5Njk5OTAwMCArMDIwMAotKysr IGdjYy90ZXN0c3VpdGUvZ2NjLmRnLzIwMDUxMTI4LTEuYwkyMDA1LTExLTI4IDEyOjMwOjU3LjAw MDAwMDAwMCArMDEwMAotQEAgLTAsMCArMSw0MSBAQAotKy8qIHsgZGctZG8gcnVuIH0gKi8KLSsv KiB7IGRnLW9wdGlvbnMgIi1PMiAtZnBpYyIgfSAqLwotKwotK2V4dGVybiB2b2lkIGV4aXQgKGlu dCk7Ci0rZXh0ZXJuIHZvaWQgYWJvcnQgKHZvaWQpOwotKwotK2ludCBiOwotKwotK3N0cnVjdCBB Ci0rewotKyAgdm9pZCAqcGFkWzE0N107Ci0rICB2b2lkICpyYSwgKmg7Ci0rICBsb25nIG87Ci0r fTsKLSsKLSt2b2lkCi0rX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQotK2ZvbyAoc3RydWN0IEEg KmEsIHZvaWQgKngpCi0rewotKyAgX19idWlsdGluX21lbXNldCAoYSwgMCwgc2l6ZW9mIChhKSk7 Ci0rICBpZiAoIWIpCi0rICAgIGV4aXQgKDApOwotK30KLSsKLSt2b2lkCi0rX19hdHRyaWJ1dGVf Xygobm9pbmxpbmUpKQotK2JhciAodm9pZCkKLSt7Ci0rICBzdHJ1Y3QgQSBhOwotKwotKyAgX19i dWlsdGluX3Vud2luZF9pbml0ICgpOwotKyAgZm9vICgmYSwgX19idWlsdGluX3JldHVybl9hZGRy ZXNzICgwKSk7Ci0rfQotKwotK2ludAotK21haW4gKHZvaWQpCi0rewotKyAgYmFyICgpOwotKyAg YWJvcnQgKCk7Ci0rICByZXR1cm4gMDsKLSt9CgpkaWZmIC0tZ2l0IGEvZ2NjNDMtcHBjNjQtaWE2 NC1HTlUtc3RhY2sucGF0Y2ggYi9nY2M0My1wcGM2NC1pYTY0LUdOVS1zdGFjay5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDQ5ZjJiOS4uMDAwMDAwMAotLS0gYS9nY2M0My1w cGM2NC1pYTY0LUdOVS1zdGFjay5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDg2ICswLDAgQEAK LTIwMDctMDgtMjcgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgotCi0JKiBjb25m aWcvcnM2MDAwL3JzNjAwMC5jIChyczYwMDBfZWxmX2VuZF9pbmRpY2F0ZV9leGVjX3N0YWNrKTog TmV3LgotCSogY29uZmlnL3JzNjAwMC9saW51eDY0LmggKFRBUkdFVF9BU01fRklMRV9FTkQpOiBV c2UKLQlyczYwMDBfZWxmX2VuZF9pbmRpY2F0ZV9leGVjX3N0YWNrLgotCSogY29uZmlnL2lhNjQv aWE2NC5jIChpYTY0X2xpbnV4X2ZpbGVfZW5kKTogbmV3LgotCSogY29uZmlnL2lhNjQvbGludXgu aCAoVEFSR0VUX0FTTV9GSUxFX0VORCk6IFVzZSBpYTY0X2xpbnV4X2ZpbGVfZW5kLgotCi0tLS0g Z2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLmMuamoJMjAwNy0xMi0wNyAxODo0MTowOC4wMDAwMDAw MDAgKzAxMDAKLSsrKyBnY2MvY29uZmlnL3JzNjAwMC9yczYwMDAuYwkyMDA3LTEyLTA3IDE4OjQy OjEyLjAwMDAwMDAwMCArMDEwMAotQEAgLTc0Niw2ICs3NDYsNyBAQCBzdGF0aWMgdm9pZCByczYw MDBfZmlsZV9zdGFydCAodm9pZCk7Ci0gc3RhdGljIGludCByczYwMDBfZWxmX3JlbG9jX3J3X21h c2sgKHZvaWQpOwotIHN0YXRpYyB2b2lkIHJzNjAwMF9lbGZfYXNtX291dF9jb25zdHJ1Y3RvciAo cnR4LCBpbnQpOwotIHN0YXRpYyB2b2lkIHJzNjAwMF9lbGZfYXNtX291dF9kZXN0cnVjdG9yIChy dHgsIGludCk7Ci0rc3RhdGljIHZvaWQgcnM2MDAwX2VsZl9lbmRfaW5kaWNhdGVfZXhlY19zdGFj ayAodm9pZCkgQVRUUklCVVRFX1VOVVNFRDsKLSBzdGF0aWMgdm9pZCByczYwMDBfZWxmX2FzbV9p bml0X3NlY3Rpb25zICh2b2lkKTsKLSBzdGF0aWMgc2VjdGlvbiAqcnM2MDAwX2VsZl9zZWxlY3Rf cnR4X3NlY3Rpb24gKGVudW0gbWFjaGluZV9tb2RlLCBydHgsCi0gCQkJCQkgICAgICAgdW5zaWdu ZWQgSE9TVF9XSURFX0lOVCk7Ci1AQCAtMjA0MTgsNiArMjA0MTksMjAgQEAgcnM2MDAwX2VsZl9k ZWNsYXJlX2Z1bmN0aW9uX25hbWUgKEZJTEUgKgotICAgICB9Ci0gICBBU01fT1VUUFVUX0xBQkVM IChmaWxlLCBuYW1lKTsKLSB9Ci0rCi0rc3RhdGljIHZvaWQKLStyczYwMDBfZWxmX2VuZF9pbmRp Y2F0ZV9leGVjX3N0YWNrICh2b2lkKQotK3sKLSsgIGlmIChUQVJHRVRfMzJCSVQpCi0rICAgIGZp bGVfZW5kX2luZGljYXRlX2V4ZWNfc3RhY2sgKCk7Ci0rICBlbHNlCi0rICAgIHsKLSsgICAgICBp bnQgc2F2ZWRfdHJhbXBvbGluZXNfY3JlYXRlZCA9IHRyYW1wb2xpbmVzX2NyZWF0ZWQ7Ci0rICAg ICAgdHJhbXBvbGluZXNfY3JlYXRlZCA9IDA7Ci0rICAgICAgZmlsZV9lbmRfaW5kaWNhdGVfZXhl Y19zdGFjayAoKTsKLSsgICAgICB0cmFtcG9saW5lc19jcmVhdGVkID0gc2F2ZWRfdHJhbXBvbGlu ZXNfY3JlYXRlZDsKLSsgICAgfQotK30KLSAjZW5kaWYKLSAKLSAjaWYgVEFSR0VUX1hDT0ZGCi0t LS0gZ2NjL2NvbmZpZy9yczYwMDAvbGludXg2NC5oLmpqCTIwMDctMTItMDcgMTc6MTg6MDYuMDAw MDAwMDAwICswMTAwCi0rKysgZ2NjL2NvbmZpZy9yczYwMDAvbGludXg2NC5oCTIwMDctMTItMDcg MTg6NDE6MjEuMDAwMDAwMDAwICswMTAwCi1AQCAtNTA0LDcgKzUwNCw3IEBAIGV4dGVybiBpbnQg ZG90X3N5bWJvbHM7Ci0gI3VuZGVmIERSQUZUX1Y0X1NUUlVDVF9SRVQKLSAjZGVmaW5lIERSQUZU X1Y0X1NUUlVDVF9SRVQgKCFUQVJHRVRfNjRCSVQpCi0gCi0tI2RlZmluZSBUQVJHRVRfQVNNX0ZJ TEVfRU5EIGZpbGVfZW5kX2luZGljYXRlX2V4ZWNfc3RhY2sKLSsjZGVmaW5lIFRBUkdFVF9BU01f RklMRV9FTkQgcnM2MDAwX2VsZl9lbmRfaW5kaWNhdGVfZXhlY19zdGFjawotIAotICNkZWZpbmUg VEFSR0VUX1BPU0lYX0lPCi0gCi0tLS0gZ2NjL2NvbmZpZy9pYTY0L2xpbnV4LmguamoJMjAwNy0x Mi0wNyAxODoxNzo0My4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnY2MvY29uZmlnL2lhNjQvbGludXgu aAkyMDA3LTEyLTA3IDE4OjQxOjIxLjAwMDAwMDAwMCArMDEwMAotQEAgLTUsNyArNSw3IEBACi0g Ci0gI2RlZmluZSBUQVJHRVRfVkVSU0lPTiBmcHJpbnRmIChzdGRlcnIsICIgKElBLTY0KSBMaW51 eCIpOwotIAotLSNkZWZpbmUgVEFSR0VUX0FTTV9GSUxFX0VORCBmaWxlX2VuZF9pbmRpY2F0ZV9l eGVjX3N0YWNrCi0rI2RlZmluZSBUQVJHRVRfQVNNX0ZJTEVfRU5EIGlhNjRfbGludXhfZmlsZV9l bmQKLSAKLSAvKiBUaGlzIGlzIGZvciAtcHJvZmlsZSB0byB1c2UgLWxjX3AgaW5zdGVhZCBvZiAt bGMuICAqLwotICN1bmRlZiBDQzFfU1BFQwotLS0tIGdjYy9jb25maWcvaWE2NC9pYTY0LmMuamoJ MjAwNy0xMi0wNyAxNTo0MTo1OC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnY2MvY29uZmlnL2lhNjQv aWE2NC5jCTIwMDctMTItMDcgMTg6NDM6MTguMDAwMDAwMDAwICswMTAwCi1AQCAtMjYyLDYgKzI2 Miw4IEBAIHN0YXRpYyBzZWN0aW9uICppYTY0X3NlbGVjdF9ydHhfc2VjdGlvbiAKLSBzdGF0aWMg dm9pZCBpYTY0X291dHB1dF9kd2FyZl9kdHByZWwgKEZJTEUgKiwgaW50LCBydHgpCi0gICAgICBB VFRSSUJVVEVfVU5VU0VEOwotIHN0YXRpYyB1bnNpZ25lZCBpbnQgaWE2NF9zZWN0aW9uX3R5cGVf ZmxhZ3MgKHRyZWUsIGNvbnN0IGNoYXIgKiwgaW50KTsKLStzdGF0aWMgdm9pZCBpYTY0X2xpbnV4 X2ZpbGVfZW5kICh2b2lkKQotKyAgICAgQVRUUklCVVRFX1VOVVNFRDsKLSBzdGF0aWMgdm9pZCBp YTY0X2luaXRfbGliZnVuY3MgKHZvaWQpCi0gICAgICBBVFRSSUJVVEVfVU5VU0VEOwotIHN0YXRp YyB2b2lkIGlhNjRfaHB1eF9pbml0X2xpYmZ1bmNzICh2b2lkKQotQEAgLTk5NTcsNCArOTk1OSwx MyBAQCBpYTY0X2NfbW9kZV9mb3Jfc3VmZml4IChjaGFyIHN1ZmZpeCkKLSAgIHJldHVybiBWT0lE bW9kZTsKLSB9Ci0gCi0rc3RhdGljIHZvaWQKLStpYTY0X2xpbnV4X2ZpbGVfZW5kICh2b2lkKQot K3sKLSsgIGludCBzYXZlZF90cmFtcG9saW5lc19jcmVhdGVkID0gdHJhbXBvbGluZXNfY3JlYXRl ZDsKLSsgIHRyYW1wb2xpbmVzX2NyZWF0ZWQgPSAwOwotKyAgZmlsZV9lbmRfaW5kaWNhdGVfZXhl Y19zdGFjayAoKTsKLSsgIHRyYW1wb2xpbmVzX2NyZWF0ZWQgPSBzYXZlZF90cmFtcG9saW5lc19j cmVhdGVkOwotK30KLSsKLSAjaW5jbHVkZSAiZ3QtaWE2NC5oIgoKZGlmZiAtLWdpdCBhL2djYzQz LXByMjc4OTgucGF0Y2ggYi9nY2M0My1wcjI3ODk4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAxNzJiYjgxLi4wMDAwMDAwCi0tLSBhL2djYzQzLXByMjc4OTgucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi0yMDA2LTA4LTE4ICBKYWt1YiBKZWxpbmVrICA8 amFrdWJAcmVkaGF0LmNvbT4KLQotCVBSIGMvMjc4OTgKLQkqIGdjYy5kZy9wcjI3ODk4LmM6IE5l dyB0ZXN0LgotCi0tLS0gZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvcHIyNzg5OC5jLmpqCTIwMDYtMDgt MTggMDk6MTk6MzMuMDAwMDAwMDAwICswMjAwCi0rKysgZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvcHIy Nzg5OC5jCTIwMDYtMDgtMTggMDk6MTk6MjcuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDgg QEAKLSsvKiBQUiBjLzI3ODk4ICovCi0rLyogeyBkZy1kbyBjb21waWxlIH0gKi8KLSsvKiB7IGRn LW9wdGlvbnMgIi0tY29tYmluZSIgfSAqLwotKy8qIHsgZGctYWRkaXRpb25hbC1zb3VyY2VzICJw cjI3ODk4LmMiIH0gKi8KLSsKLSt1bmlvbiB1IHsgc3RydWN0IHsgaW50IGk7IH07IH07Ci0rCi0r ZXh0ZXJuIGludCBmb28gKHVuaW9uIHUgKik7CgpkaWZmIC0tZ2l0IGEvZ2NjNDMtcHIyOTYwOS0y LnBhdGNoIGIvZ2NjNDMtcHIyOTYwOS0yLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCBlMDU3NjA1Li4wMDAwMDAwCi0tLSBhL2djYzQzLXByMjk2MDktMi5wYXRjaAorKysgL2Rl di9udWxsCkBAIC0xLDEwNSArMCwwIEBACi0yMDA4LTEwLTA5ICBKYWt1YiBKZWxpbmVrICA8amFr dWJAcmVkaGF0LmNvbT4KLQotCSogdHJlZS1zc2EtbGl2ZS5jIChyZW1vdmVfdW51c2VkX2xvY2Fs cyk6IE1hcmsgYWxsIGVkZ2UncyBnb3RvX2Jsb2NrCi0JYXMgdXNlZC4KLQkqIGdpbXBsZS1sb3cu YyAobG93ZXJfcmV0dXJuX2V4cHIsIGxvd2VyX2J1aWx0aW5fc2V0am1wKTogU2V0Ci0JVFJFRV9C TE9DSyBvbiB0aGUgbmV3bHkgY3JlYXRlZCBzdG10cy4KLQkqIHRyZWUtY2ZnLmMgKG1ha2VfY29u ZF9leHByX2VkZ2VzLCBtYWtlX2dvdG9fZXhwcl9lZGdlcyk6IE9ubHkgc2V0Ci0JZ290b19ibG9j ayBvbiBlZGdlcyBpZiBnb3RvX2xvY3VzIGlzIGtub3duLgotCi0tLS0gZ2NjL3RyZWUtc3NhLWxp dmUuYy5qagkyMDA4LTEwLTA3IDIxOjI1OjU3LjAwMDAwMDAwMCArMDIwMAotKysrIGdjYy90cmVl LXNzYS1saXZlLmMJMjAwOC0xMC0wOSAwMDoyNToyMC4wMDAwMDAwMDAgKzAyMDAKLUBAIC01OTEs NiArNTkxLDggQEAgcmVtb3ZlX3VudXNlZF9sb2NhbHMgKHZvaWQpCi0gICAgIHsKLSAgICAgICBi bG9ja19zdG10X2l0ZXJhdG9yIGJzaTsKLSAgICAgICB0cmVlIHBoaSwgZGVmOwotKyAgICAgIGVk Z2VfaXRlcmF0b3IgZWk7Ci0rICAgICAgZWRnZSBlOwotIAotICAgICAgIC8qIFdhbGsgdGhlIHN0 YXRlbWVudHMuICAqLwotICAgICAgIGZvciAoYnNpID0gYnNpX3N0YXJ0IChiYik7ICFic2lfZW5k X3AgKGJzaSk7IGJzaV9uZXh0ICgmYnNpKSkKLUBAIC02MTQsNiArNjE2LDEwIEBAIHJlbW92ZV91 bnVzZWRfbG9jYWxzICh2b2lkKQotIAkgICAgICBtYXJrX2FsbF92YXJzX3VzZWQgKCZhcmcsIE5V TEwpOwotICAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSsKLSsgICAgICBGT1JfRUFDSF9FREdF IChlLCBlaSwgYmItPnN1Y2NzKQotKwlpZiAoZS0+Z290b19sb2N1cykKLSsJICBUUkVFX1VTRUQg KGUtPmdvdG9fYmxvY2spID0gdHJ1ZTsKLSAgICAgfQotIAotICAgLyogUmVtb3ZlIHVubWFya2Vk IGxvY2FsIHZhcnMgZnJvbSB1bmV4cGFuZGVkX3Zhcl9saXN0LiAgKi8KLS0tLSBnY2MvZ2ltcGxl LWxvdy5jLmpqCTIwMDgtMTAtMDcgMjE6MjU6NTguMDAwMDAwMDAwICswMjAwCi0rKysgZ2NjL2dp bXBsZS1sb3cuYwkyMDA4LTEwLTA5IDAwOjQyOjMxLjAwMDAwMDAwMCArMDIwMAotQEAgLTU5MCw2 ICs1OTAsNyBAQCBsb3dlcl9yZXR1cm5fZXhwciAodHJlZV9zdG10X2l0ZXJhdG9yICp0Ci0gIGZv dW5kOgotICAgdCA9IGJ1aWxkMSAoR09UT19FWFBSLCB2b2lkX3R5cGVfbm9kZSwgbGFiZWwpOwot ICAgU0VUX0VYUFJfTE9DVVMgKHQsIEVYUFJfTE9DVVMgKHN0bXQpKTsKLSsgIFRSRUVfQkxPQ0sg KHQpID0gVFJFRV9CTE9DSyAoc3RtdCk7Ci0gICB0c2lfbGlua19iZWZvcmUgKHRzaSwgdCwgVFNJ X1NBTUVfU1RNVCk7Ci0gICB0c2lfZGVsaW5rICh0c2kpOwotIH0KLUBAIC02NzIsNiArNjczLDcg QEAgbG93ZXJfYnVpbHRpbl9zZXRqbXAgKHRyZWVfc3RtdF9pdGVyYXRvcgotICAgdCA9IGltcGxp Y2l0X2J1aWx0X2luX2RlY2xzW0JVSUxUX0lOX1NFVEpNUF9TRVRVUF07Ci0gICB0ID0gYnVpbGRf Y2FsbF9leHByICh0LCAyLCBDQUxMX0VYUFJfQVJHIChzdG10LCAwKSwgYXJnKTsKLSAgIFNFVF9F WFBSX0xPQ1VTICh0LCBFWFBSX0xPQ1VTIChzdG10KSk7Ci0rICBUUkVFX0JMT0NLICh0KSA9IFRS RUVfQkxPQ0sgKHN0bXQpOwotICAgdHNpX2xpbmtfYmVmb3JlICh0c2ksIHQsIFRTSV9TQU1FX1NU TVQpOwotIAotICAgLyogQnVpbGQgJ0RFU1QgPSAwJyBhbmQgaW5zZXJ0LiAgKi8KLUBAIC02ODAs NiArNjgyLDcgQEAgbG93ZXJfYnVpbHRpbl9zZXRqbXAgKHRyZWVfc3RtdF9pdGVyYXRvcgotICAg ICAgIHQgPSBidWlsZF9naW1wbGVfbW9kaWZ5X3N0bXQgKGRlc3QsIGZvbGRfY29udmVydCAoVFJF RV9UWVBFIChkZXN0KSwKLSAJCQkJCQkJaW50ZWdlcl96ZXJvX25vZGUpKTsKLSAgICAgICBTRVRf RVhQUl9MT0NVUyAodCwgRVhQUl9MT0NVUyAoc3RtdCkpOwotKyAgICAgIFRSRUVfQkxPQ0sgKHQp ID0gVFJFRV9CTE9DSyAoc3RtdCk7Ci0gICAgICAgdHNpX2xpbmtfYmVmb3JlICh0c2ksIHQsIFRT SV9TQU1FX1NUTVQpOwotICAgICB9Ci0gCi1AQCAtNjk2LDYgKzY5OSw3IEBAIGxvd2VyX2J1aWx0 aW5fc2V0am1wICh0cmVlX3N0bXRfaXRlcmF0b3IKLSAgIHQgPSBpbXBsaWNpdF9idWlsdF9pbl9k ZWNsc1tCVUlMVF9JTl9TRVRKTVBfUkVDRUlWRVJdOwotICAgdCA9IGJ1aWxkX2NhbGxfZXhwciAo dCwgMSwgYXJnKTsKLSAgIFNFVF9FWFBSX0xPQ1VTICh0LCBFWFBSX0xPQ1VTIChzdG10KSk7Ci0r ICBUUkVFX0JMT0NLICh0KSA9IFRSRUVfQkxPQ0sgKHN0bXQpOwotICAgdHNpX2xpbmtfYmVmb3Jl ICh0c2ksIHQsIFRTSV9TQU1FX1NUTVQpOwotIAotICAgLyogQnVpbGQgJ0RFU1QgPSAxJyBhbmQg aW5zZXJ0LiAgKi8KLUBAIC03MDQsNiArNzA4LDcgQEAgbG93ZXJfYnVpbHRpbl9zZXRqbXAgKHRy ZWVfc3RtdF9pdGVyYXRvcgotICAgICAgIHQgPSBidWlsZF9naW1wbGVfbW9kaWZ5X3N0bXQgKGRl c3QsIGZvbGRfY29udmVydCAoVFJFRV9UWVBFIChkZXN0KSwKLSAJCQkJCQkJaW50ZWdlcl9vbmVf bm9kZSkpOwotICAgICAgIFNFVF9FWFBSX0xPQ1VTICh0LCBFWFBSX0xPQ1VTIChzdG10KSk7Ci0r ICAgICAgVFJFRV9CTE9DSyAodCkgPSBUUkVFX0JMT0NLIChzdG10KTsKLSAgICAgICB0c2lfbGlu a19iZWZvcmUgKHRzaSwgdCwgVFNJX1NBTUVfU1RNVCk7Ci0gICAgIH0KLSAKLS0tLSBnY2MvdHJl ZS1jZmcuYy5qagkyMDA4LTEwLTA3IDIxOjM5OjE0LjAwMDAwMDAwMCArMDIwMAotKysrIGdjYy90 cmVlLWNmZy5jCTIwMDgtMTAtMDkgMDA6MDA6NDguMDAwMDAwMDAwICswMjAwCi1AQCAtNjM0LDcg KzYzNCw4IEBAIG1ha2VfY29uZF9leHByX2VkZ2VzIChiYXNpY19ibG9jayBiYikKLSAjZWxzZQot ICAgZS0+Z290b19sb2N1cyA9IEVYUFJfTE9DVVMgKENPTkRfRVhQUl9USEVOIChlbnRyeSkpOwot ICNlbmRpZgotLSAgZS0+Z290b19ibG9jayA9IFRSRUVfQkxPQ0sgKENPTkRfRVhQUl9USEVOIChl bnRyeSkpOwotKyAgaWYgKGUtPmdvdG9fbG9jdXMpCi0rICAgIGUtPmdvdG9fYmxvY2sgPSBUUkVF X0JMT0NLIChDT05EX0VYUFJfVEhFTiAoZW50cnkpKTsKLSAgIGUgPSBtYWtlX2VkZ2UgKGJiLCBl bHNlX2JiLCBFREdFX0ZBTFNFX1ZBTFVFKTsKLSAgIGlmIChlKQotICAgICB7Ci1AQCAtNjQzLDcg KzY0NCw4IEBAIG1ha2VfY29uZF9leHByX2VkZ2VzIChiYXNpY19ibG9jayBiYikKLSAjZWxzZQot ICAgICAgIGUtPmdvdG9fbG9jdXMgPSBFWFBSX0xPQ1VTIChDT05EX0VYUFJfRUxTRSAoZW50cnkp KTsKLSAjZW5kaWYKLS0gICAgICBlLT5nb3RvX2Jsb2NrID0gVFJFRV9CTE9DSyAoQ09ORF9FWFBS X0VMU0UgKGVudHJ5KSk7Ci0rICAgICAgaWYgKGUtPmdvdG9fbG9jdXMpCi0rCWUtPmdvdG9fYmxv Y2sgPSBUUkVFX0JMT0NLIChDT05EX0VYUFJfRUxTRSAoZW50cnkpKTsKLSAgICAgfQotIAotICAg LyogV2UgZG8gbm90IG5lZWQgdGhlIGdvdG9zIGFueW1vcmUuICAqLwotQEAgLTg0Myw3ICs4NDUs OCBAQCBtYWtlX2dvdG9fZXhwcl9lZGdlcyAoYmFzaWNfYmxvY2sgYmIpCi0gI2Vsc2UKLSAgICAg ICBlLT5nb3RvX2xvY3VzID0gRVhQUl9MT0NVUyAoZ290b190KTsKLSAjZW5kaWYKLS0gICAgICBl LT5nb3RvX2Jsb2NrID0gVFJFRV9CTE9DSyAoZ290b190KTsKLSsgICAgICBpZiAoZS0+Z290b19s b2N1cykKLSsJZS0+Z290b19ibG9jayA9IFRSRUVfQkxPQ0sgKGdvdG9fdCk7Ci0gICAgICAgYnNp X3JlbW92ZSAoJmxhc3QsIHRydWUpOwotICAgICAgIHJldHVybjsKLSAgICAgfQoKZGlmZiAtLWdp dCBhL2djYzQzLXByMjk2MDktMy5wYXRjaCBiL2djYzQzLXByMjk2MDktMy5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzI3OTFjZC4uMDAwMDAwMAotLS0gYS9nY2M0My1wcjI5 NjA5LTMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNjggKzAsMCBAQAotMjAwOC0xMC0wOSAg SmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+Ci0KLQkqIHJ0bC5oIChsb2NhdG9yX2Vx KTogTmV3IGRlY2wuCi0JKiBjZmdsYXlvdXQuYyAobG9jYXRvcl9zY29wZSk6IE5ldyBmdW5jdGlv bi4KLQkoaW5zbl9zY29wZSk6IFVzZSBpdC4KLQkobG9jYXRvcl9lcSk6IE5ldyBmdW5jdGlvbi4K LQkoZml4dXBfcmVvcmRlcl9jaGFpbik6IFNlYXJjaCBmb3IgbGFzdCBpbnNuIGluIHNyYyBiYgot CXRoYXQgaGFzIGxvY2F0b3Igc2V0IG9yIGZpcnN0IGluc24gaW4gZGVzdCBiYi4gIFVzZQotCWxv Y2F0b3JfZXEgaW5zdGVhZCBvZiA9PSB0byBjb21wYXJlIGxvY2F0b3JzLgotCSogY2ZncnRsLmMg KGNmZ19sYXlvdXRfbWVyZ2VfYmxvY2tzKTogTGlrZXdpc2UuCi0JKiBjZmdjbGVhbnVwLmMgKHRy eV9mb3J3YXJkX2VkZ2VzKTogVXNlIGxvY2F0b3JfZXEgaW5zdGVhZCBvZgotCT09IHRvIGNvbXBh cmUgbG9jYXRvcnMuCi0KLS0tLSBnY2MvY2ZnbGF5b3V0LmMuamoJMjAwOC0xMC0wNyAyMTozNToz My4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnY2MvY2ZnbGF5b3V0LmMJMjAwOC0xMC0wOSAxMToxODo1 MS4wMDAwMDAwMDAgKzAyMDAKLUBAIC00NDgsMTMgKzQ0OCwxMiBAQCBjaGFuZ2Vfc2NvcGUgKHJ0 eCBvcmlnX2luc24sIHRyZWUgczEsIHRyCi0gICAgIH0KLSB9Ci0gCi0tLyogUmV0dXJuIGxleGlj YWwgc2NvcGUgYmxvY2sgaW5zbiBiZWxvbmcgdG8uICAqLwotKy8qIFJldHVybiBsZXhpY2FsIHNj b3BlIGJsb2NrIGxvY2F0b3IgYmVsb25ncyB0by4gICovCi0gc3RhdGljIHRyZWUKLS1pbnNuX3Nj b3BlIChjb25zdF9ydHggaW5zbikKLStsb2NhdG9yX3Njb3BlIChpbnQgbG9jKQotIHsKLSAgIGlu dCBtYXggPSBWRUNfbGVuZ3RoIChpbnQsIGJsb2NrX2xvY2F0b3JzX2xvY3MpOwotICAgaW50IG1p biA9IDA7Ci0tICBpbnQgbG9jID0gSU5TTl9MT0NBVE9SIChpbnNuKTsKLSAKLSAgIC8qIFdoZW4g YmxvY2tfbG9jYXRvcnNfbG9jcyB3YXMgaW5pdGlhbGl6ZWQsIHRoZSBwcm8tIGFuZCBlcGlsb2d1 ZQotICAgICAgaW5zbnMgZGlkbid0IGV4aXN0IHlldCBhbmQgY2FuIHRoZXJlZm9yZSBub3QgYmUg Zm91bmQgdGhpcyB3YXkuCi1AQCAtNDg4LDYgKzQ4NywxMyBAQCBpbnNuX3Njb3BlIChjb25zdF9y dHggaW5zbikKLSAgIHJldHVybiBWRUNfaW5kZXggKHRyZWUsIGJsb2NrX2xvY2F0b3JzX2Jsb2Nr cywgbWluKTsKLSB9Ci0gCi0rLyogUmV0dXJuIGxleGljYWwgc2NvcGUgYmxvY2sgaW5zbiBiZWxv bmdzIHRvLiAgKi8KLStzdGF0aWMgdHJlZQotK2luc25fc2NvcGUgKGNvbnN0X3J0eCBpbnNuKQot K3sKLSsgIHJldHVybiBsb2NhdG9yX3Njb3BlIChJTlNOX0xPQ0FUT1IgKGluc24pKTsKLSt9Ci0r Ci0gLyogUmV0dXJuIGxpbmUgbnVtYmVyIG9mIHRoZSBzdGF0ZW1lbnQgc3BlY2lmaWVkIGJ5IHRo ZSBsb2NhdG9yLiAgKi8KLSBzdGF0aWMgbG9jYXRpb25fdAotIGxvY2F0b3JfbG9jYXRpb24gKGlu dCBsb2MpCi1AQCAtNTUxLDYgKzU1NywxNyBAQCBpbnNuX2ZpbGUgKGNvbnN0X3J0eCBpbnNuKQot ICAgcmV0dXJuIGxvY2F0b3JfZmlsZSAoSU5TTl9MT0NBVE9SIChpbnNuKSk7Ci0gfQotIAotKy8q IFJldHVybiB0cnVlIGlmIExPQzEgYW5kIExPQzIgbG9jYXRvcnMgaGF2ZSB0aGUgc2FtZSBsb2Nh dGlvbiBhbmQgc2NvcGUuICAqLwotK2Jvb2wKLStsb2NhdG9yX2VxIChpbnQgbG9jMSwgaW50IGxv YzIpCi0rewotKyAgaWYgKGxvYzEgPT0gbG9jMikKLSsgICAgcmV0dXJuIHRydWU7Ci0rICBpZiAo bG9jYXRvcl9sb2NhdGlvbiAobG9jMSkgIT0gbG9jYXRvcl9sb2NhdGlvbiAobG9jMikpCi0rICAg IHJldHVybiBmYWxzZTsKLSsgIHJldHVybiBsb2NhdG9yX3Njb3BlIChsb2MxKSA9PSBsb2NhdG9y X3Njb3BlIChsb2MyKTsKLSt9Ci0rCi0gLyogUmVidWlsZCBhbGwgdGhlIE5PVEVfSU5TTl9CTE9D S19CRUcgYW5kIE5PVEVfSU5TTl9CTE9DS19FTkQgbm90ZXMgYmFzZWQKLSAgICBvbiB0aGUgc2Nv cGUgdHJlZSBhbmQgdGhlIG5ld2x5IHJlb3JkZXJlZCBpbnN0cnVjdGlvbnMuICAqLwotIAotQEAg LTkwMSwyNCArOTE4LDMwIEBAIGZpeHVwX3Jlb3JkZXJfY2hhaW4gKHZvaWQpCi0gCSAgaWYgKGUt PmdvdG9fbG9jdXMgJiYgIShlLT5mbGFncyAmIEVER0VfQUJOT1JNQUwpKQotIAkgICAgewotIAkg ICAgICBiYXNpY19ibG9jayBuYjsKLSsJICAgICAgcnR4IGVuZDsKLSAKLS0JICAgICAgaWYgKHNp bXBsZWp1bXBfcCAoQkJfRU5EIChlLT5zcmMpKSkKLSsJICAgICAgaW5zbiA9IEJCX0VORCAoZS0+ c3JjKTsKLSsJICAgICAgZW5kID0gUFJFVl9JTlNOIChCQl9IRUFEIChlLT5zcmMpKTsKLSsJICAg ICAgd2hpbGUgKGluc24gIT0gZW5kCi0rCQkgICAgICYmICghSU5TTl9QIChpbnNuKSB8fCBJTlNO X0xPQ0FUT1IgKGluc24pID09IDApKQotKwkJaW5zbiA9IFBSRVZfSU5TTiAoaW5zbik7Ci0rCSAg ICAgIGlmIChpbnNuICE9IGVuZAotKwkJICAmJiBsb2NhdG9yX2VxIChJTlNOX0xPQ0FUT1IgKGlu c24pLCAoaW50KSBlLT5nb3RvX2xvY3VzKSkKLSsJCWNvbnRpbnVlOwotKwkgICAgICBpZiAoc2lt cGxlanVtcF9wIChCQl9FTkQgKGUtPnNyYykpCi0rCQkgICYmIElOU05fTE9DQVRPUiAoQkJfRU5E IChlLT5zcmMpKSA9PSAwKQotIAkJewotLQkJICBpZiAoSU5TTl9MT0NBVE9SIChCQl9FTkQgKGUt PnNyYykpID09IChpbnQpIGUtPmdvdG9fbG9jdXMpCi0tCQkgICAgY29udGludWU7Ci0tCQkgIGlm IChJTlNOX0xPQ0FUT1IgKEJCX0VORCAoZS0+c3JjKSkgPT0gMCkKLS0JCSAgICB7Ci0tCQkgICAg ICBJTlNOX0xPQ0FUT1IgKEJCX0VORCAoZS0+c3JjKSkgPSBlLT5nb3RvX2xvY3VzOwotLQkJICAg ICAgY29udGludWU7Ci0tCQkgICAgfQotKwkJICBJTlNOX0xPQ0FUT1IgKEJCX0VORCAoZS0+c3Jj KSkgPSBlLT5nb3RvX2xvY3VzOwotKwkJICBjb250aW51ZTsKLSAJCX0KLSAJICAgICAgaWYgKGUt PmRlc3QgIT0gRVhJVF9CTE9DS19QVFIpCi0gCQl7Ci0gCQkgIGluc24gPSBCQl9IRUFEIChlLT5k ZXN0KTsKLS0JCSAgaWYgKCFJTlNOX1AgKGluc24pKQotLQkJICAgIGluc24gPSBuZXh0X2luc24g KGluc24pOwotLQkJICBpZiAoaW5zbiAmJiBJTlNOX1AgKGluc24pCi0tCQkgICAgICAmJiBJTlNO X0xPQ0FUT1IgKGluc24pID09IChpbnQpIGUtPmdvdG9fbG9jdXMpCi0rCQkgIGVuZCA9IE5FWFRf SU5TTiAoQkJfRU5EIChlLT5kZXN0KSk7Ci0rCQkgIHdoaWxlIChpbnNuICE9IGVuZCAmJiAhSU5T Tl9QIChpbnNuKSkKLSsJCSAgICBpbnNuID0gTkVYVF9JTlNOIChpbnNuKTsKLSsJCSAgaWYgKGlu c24gIT0gZW5kICYmIElOU05fTE9DQVRPUiAoaW5zbikKLSsJCSAgICAgICYmIGxvY2F0b3JfZXEg KElOU05fTE9DQVRPUiAoaW5zbiksIChpbnQpIGUtPmdvdG9fbG9jdXMpKQotIAkJICAgIGNvbnRp bnVlOwotIAkJfQotIAkgICAgICBuYiA9IHNwbGl0X2VkZ2UgKGUpOwotLS0tIGdjYy9ydGwuaC5q agkyMDA4LTEwLTA3IDIxOjI1OjQ0LjAwMDAwMDAwMCArMDIwMAotKysrIGdjYy9ydGwuaAkyMDA4 LTEwLTA5IDExOjE1OjU3LjAwMDAwMDAwMCArMDIwMAotQEAgLTE2MjIsNiArMTYyMiw3IEBAIGV4 dGVybiBpbnQgaW5zbl9saW5lIChjb25zdF9ydHgpOwotIGV4dGVybiBjb25zdCBjaGFyICogaW5z bl9maWxlIChjb25zdF9ydHgpOwotIGV4dGVybiBpbnQgbG9jYXRvcl9saW5lIChpbnQpOwotIGV4 dGVybiBjb25zdCBjaGFyICogbG9jYXRvcl9maWxlIChpbnQpOwotK2V4dGVybiBib29sIGxvY2F0 b3JfZXEgKGludCwgaW50KTsKLSBleHRlcm4gaW50IHByb2xvZ3VlX2xvY2F0b3IsIGVwaWxvZ3Vl X2xvY2F0b3I7Ci0gCi0gLyogSW4ganVtcC5jICovCi0tLS0gZ2NjL2NmZ3J0bC5jLmpqCTIwMDgt MTAtMDcgMjE6MzU6MzMuMDAwMDAwMDAwICswMjAwCi0rKysgZ2NjL2NmZ3J0bC5jCTIwMDgtMTAt MDkgMTA6Mzc6MDMuMDAwMDAwMDAwICswMjAwCi1AQCAtMjYyMywxOSArMjYyMywyMSBAQCBjZmdf bGF5b3V0X21lcmdlX2Jsb2NrcyAoYmFzaWNfYmxvY2sgYSwgCi0gICAgICBzb21lIHVuaXF1ZSBs b2N1cywgZW1pdCBhIG5vcCB3aXRoIHRoYXQgbG9jdXMgaW4gYmV0d2Vlbi4gICovCi0gICBpZiAo IW9wdGltaXplICYmIEVER0VfU1VDQyAoYSwgMCktPmdvdG9fbG9jdXMpCi0gICAgIHsKLS0gICAg ICBydHggaW5zbiA9IEJCX0VORCAoYSk7Ci0rICAgICAgcnR4IGluc24gPSBCQl9FTkQgKGEpLCBl bmQgPSBQUkVWX0lOU04gKEJCX0hFQUQgKGEpKTsKLSAgICAgICBpbnQgZ290b19sb2N1cyA9IEVE R0VfU1VDQyAoYSwgMCktPmdvdG9fbG9jdXM7Ci0gCi0tICAgICAgaWYgKE5PVEVfUCAoaW5zbikp Ci0tCWluc24gPSBwcmV2X25vbm5vdGVfaW5zbiAoaW5zbik7Ci0tICAgICAgaWYgKGluc24gJiYg SU5TTl9QIChpbnNuKSAmJiBJTlNOX0xPQ0FUT1IgKGluc24pID09IGdvdG9fbG9jdXMpCi0rICAg ICAgd2hpbGUgKGluc24gIT0gZW5kICYmICghSU5TTl9QIChpbnNuKSB8fCBJTlNOX0xPQ0FUT1Ig KGluc24pID09IDApKQotKwlpbnNuID0gUFJFVl9JTlNOIChpbnNuKTsKLSsgICAgICBpZiAoaW5z biAhPSBlbmQgJiYgbG9jYXRvcl9lcSAoSU5TTl9MT0NBVE9SIChpbnNuKSwgZ290b19sb2N1cykp Ci0gCWdvdG9fbG9jdXMgPSAwOwotICAgICAgIGVsc2UKLSAJewotIAkgIGluc24gPSBCQl9IRUFE IChiKTsKLS0JICBpZiAoIUlOU05fUCAoaW5zbikpCi0tCSAgICBpbnNuID0gbmV4dF9pbnNuIChp bnNuKTsKLS0JICBpZiAoaW5zbiAmJiBJTlNOX1AgKGluc24pICYmIElOU05fTE9DQVRPUiAoaW5z bikgPT0gZ290b19sb2N1cykKLSsJICBlbmQgPSBORVhUX0lOU04gKEJCX0VORCAoYikpOwotKwkg IHdoaWxlIChpbnNuICE9IGVuZCAmJiAhSU5TTl9QIChpbnNuKSkKLSsJICAgIGluc24gPSBORVhU X0lOU04gKGluc24pOwotKwkgIGlmIChpbnNuICE9IGVuZCAmJiBJTlNOX0xPQ0FUT1IgKGluc24p ICE9IDAKLSsJICAgICAgJiYgbG9jYXRvcl9lcSAoSU5TTl9MT0NBVE9SIChpbnNuKSwgZ290b19s b2N1cykpCi0gCSAgICBnb3RvX2xvY3VzID0gMDsKLSAJfQotICAgICAgIGlmIChnb3RvX2xvY3Vz KQotLS0tIGdjYy9jZmdjbGVhbnVwLmMuamoJMjAwOC0xMC0wNyAyMTozNTozMy4wMDAwMDAwMDAg KzAyMDAKLSsrKyBnY2MvY2ZnY2xlYW51cC5jCTIwMDgtMTAtMDkgMTE6MDc6NDAuMDAwMDAwMDAw ICswMjAwCi1AQCAtNDgyLDcgKzQ4Miw3IEBAIHRyeV9mb3J3YXJkX2VkZ2VzIChpbnQgbW9kZSwg YmFzaWNfYmxvY2sKLSAJCSAgICAgYmxvY2tzIHdpdGggZGlmZmVyZW50IGxvY3VzIGFyZSBub3Qg b3B0aW1pemVkIG91dC4gICovCi0gCQkgIGludCBsb2N1cyA9IHNpbmdsZV9zdWNjX2VkZ2UgKHRh cmdldCktPmdvdG9fbG9jdXM7Ci0gCi0tCQkgIGlmIChsb2N1cyAmJiBnb3RvX2xvY3VzICYmIGxv Y3VzICE9IGdvdG9fbG9jdXMpCi0rCQkgIGlmIChsb2N1cyAmJiBnb3RvX2xvY3VzICYmICFsb2Nh dG9yX2VxIChsb2N1cywgZ290b19sb2N1cykpCi0gCQkgICAgY291bnRlciA9IG5fYmFzaWNfYmxv Y2tzOwotIAkJICBlbHNlIGlmIChsb2N1cykKLSAJCSAgICBnb3RvX2xvY3VzID0gbG9jdXM7Ci1A QCAtNDkxLDcgKzQ5MSw4IEBAIHRyeV9mb3J3YXJkX2VkZ2VzIChpbnQgbW9kZSwgYmFzaWNfYmxv Y2sKLSAJCSAgICB7Ci0gCQkgICAgICBsb2N1cyA9IElOU05fTE9DQVRPUiAoQkJfRU5EICh0YXJn ZXQpKTsKLSAKLS0JCSAgICAgIGlmIChsb2N1cyAmJiBnb3RvX2xvY3VzICYmIGxvY3VzICE9IGdv dG9fbG9jdXMpCi0rCQkgICAgICBpZiAobG9jdXMgJiYgZ290b19sb2N1cwotKwkJCSAgJiYgIWxv Y2F0b3JfZXEgKGxvY3VzLCBnb3RvX2xvY3VzKSkKLSAJCQljb3VudGVyID0gbl9iYXNpY19ibG9j a3M7Ci0gCQkgICAgICBlbHNlIGlmIChsb2N1cykKLSAJCQlnb3RvX2xvY3VzID0gbG9jdXM7Cgpk aWZmIC0tZ2l0IGEvZ2NjNDMtcHIyOTYwOS5wYXRjaCBiL2djYzQzLXByMjk2MDkucGF0Y2gKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFhOGRmYmYuLjAwMDAwMDAKLS0tIGEvZ2NjNDMt cHIyOTYwOS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDg5OSArMCwwIEBACi0yMDA4LTEwLTA4 ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KLQotCSogY2ZnZXhwYW5kLmMgKGV4 cGFuZF9naW1wbGVfY29uZF9leHByKTogQ29udmVydCBhbHNvIGdvdG9fYmxvY2sgYW5kCi0JZ290 b19sb2N1cyBvZiB0cnVlX2VkZ2UgaW50byBSVEwgbG9jYXRvci4KLQotMjAwOC0xMC0wNyAgSmFr dWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+Ci0KLQlQUiBkZWJ1Zy8yOTYwOQotCVBSIGRl YnVnLzM2NjkwCi0JUFIgZGVidWcvMzc2MTYKLQkqIGJhc2ljLWJsb2NrLmggKHN0cnVjdCBlZGdl X2RlZik6IEFkZCBnb3RvX2Jsb2NrIGZpZWxkLgotCSogY2ZnbGF5b3V0LmMgKGZpeHVwX3Jlb3Jk ZXJfY2hhaW4pOiBFbnN1cmUgdGhhdCB0aGVyZSBpcyBhdCBsZWFzdAotCW9uZSBpbnNuIHdpdGgg bG9jdXMgY29ycmVzcG9uZGluZyB0byBlZGdlJ3MgZ290b19sb2N1cyBpZiAhb3B0aW1pemUuCi0J KiBwcm9maWxlLmMgKGJyYW5jaF9wcm9iKTogQ29weSBlZGdlJ3MgZ290b19ibG9jay4KLQkqIGNm Z3J0bC5jIChmb3JjZV9ub25mYWxsdGhydV9hbmRfcmVkaXJlY3QpOiBVc2UgZ290b19sb2N1cyBm b3IKLQllbWl0dGVkIGp1bXBzLgotCShjZmdfbGF5b3V0X21lcmdlX2Jsb2Nrcyk6IEVtaXQgYSBu b3Agd2l0aCBlZGdlJ3MgZ290b19sb2N1cwotCWxvY2F0b3IgaW4gYmV0d2VlbiB0aGUgbWVyZ2Vk IGJhc2ljIGJsb2NrcyBpZiAhb3B0aW1pemUgYW5kIG5lZWRlZC4KLQkqIGNmZ2V4cGFuZC5jIChl eHBhbmRfZ2ltcGxlX2NvbmRfZXhwcik6IENvbnZlcnQgZ290b19ibG9jayBhbmQKLQlnb3RvX2xv Y3VzIGludG8gUlRMIGxvY2F0b3IuICBGb3IgdW5jb25kaXRpb25hbCBqdW1wIHVzZSB0aGF0Ci0J bG9jYXRvciBmb3IgdGhlIGp1bXAgaW5zbi4KLQkoZXhwYW5kX2dpbXBsZV9iYXNpY19ibG9jayk6 IENvbnZlcnQgZ290b19ibG9jayBhbmQgZ290b19sb2N1cyBpbnRvCi0JUlRMIGxvY2F0b3IgZm9y IGFsbCByZW1haW5pbmcgZWRnZXMuICBGb3IgdW5jb25kaXRpb25hbCBqdW1wCi0JdXNlIHRoYXQg bG9jYXRvciBmb3IgdGhlIGp1bXAgaW5zbi4KLQkqIGNmZ2NsZWFudXAuYyAodHJ5X2ZvcndhcmRf ZWRnZXMpOiBBdm9pZCB0aGUgb3B0aW1pemF0aW9uIGlmCi0JdGhlcmUgaXMgbW9yZSB0aGFuIG9u ZSBlZGdlIG9yIGluc24gbG9jYXRvciBhbG9uZyB0aGUgZm9yd2FyZGluZwotCWVkZ2VzIGFuZCAh b3B0aW1pemUuICBJZiB0aGVyZSBpcyBqdXN0IG9uZSwgc2V0IGUtPmdvdG9fbG9jdXMuCi0JKiB0 cmVlLWNmZy5jIChtYWtlX2NvbmRfZXhwcl9lZGdlcywgbWFrZV9nb3RvX2V4cHJfZWRnZXMpOiBT ZXQgYWxzbwotCWVkZ2UncyBnb3RvX2Jsb2NrLgotCShtb3ZlX2Jsb2NrX3RvX2ZuKTogQWRqdXN0 IGVkZ2UncyBnb3RvX2Jsb2NrLgotCi0JKiBnY2MuZGcvZGVidWcvcHIyOTYwOS0xLmM6IE5ldyB0 ZXN0LgotCSogZ2NjLmRnL2RlYnVnL3ByMjk2MDktMi5jOiBOZXcgdGVzdC4KLQkqIGdjYy5kZy9k ZWJ1Zy9wcjM2NjkwLTEuYzogTmV3IHRlc3QuCi0JKiBnY2MuZGcvZGVidWcvcHIzNjY5MC0yLmM6 IE5ldyB0ZXN0LgotCSogZ2NjLmRnL2RlYnVnL3ByMzY2OTAtMy5jOiBOZXcgdGVzdC4KLQkqIGdj Yy5kZy9kZWJ1Zy9wcjM3NjE2LmM6IE5ldyB0ZXN0LgotCSogZ2NjLmRnL2RlYnVnL2R3YXJmMi9w cjI5NjA5LTEuYzogTmV3IHRlc3QuCi0JKiBnY2MuZGcvZGVidWcvZHdhcmYyL3ByMjk2MDktMi5j OiBOZXcgdGVzdC4KLQkqIGdjYy5kZy9kZWJ1Zy9kd2FyZjIvcHIzNjY5MC0xLmM6IE5ldyB0ZXN0 LgotCSogZ2NjLmRnL2RlYnVnL2R3YXJmMi9wcjM2NjkwLTIuYzogTmV3IHRlc3QuCi0JKiBnY2Mu ZGcvZGVidWcvZHdhcmYyL3ByMzY2OTAtMy5jOiBOZXcgdGVzdC4KLQkqIGdjYy5kZy9kZWJ1Zy9k d2FyZjIvcHIzNzYxNi5jOiBOZXcgdGVzdC4KLQotLS0tIGdjYy9wcm9maWxlLmMJKHJldmlzaW9u IDE0MDk0NykKLSsrKyBnY2MvcHJvZmlsZS5jCShyZXZpc2lvbiAxNDA5NDgpCi1AQCAtODI1LDcg KzgyNSw5IEBAIGJyYW5jaF9wcm9iICh2b2lkKQotICNlbmRpZgotIAkgICAgewotIAkgICAgICBi YXNpY19ibG9jayBuZXcgPSBzcGxpdF9lZGdlIChlKTsKLS0JICAgICAgc2luZ2xlX3N1Y2NfZWRn ZSAobmV3KS0+Z290b19sb2N1cyA9IGUtPmdvdG9fbG9jdXM7Ci0rCSAgICAgIGVkZ2UgbmUgPSBz aW5nbGVfc3VjY19lZGdlIChuZXcpOwotKwkgICAgICBuZS0+Z290b19sb2N1cyA9IGUtPmdvdG9f bG9jdXM7Ci0rCSAgICAgIG5lLT5nb3RvX2Jsb2NrID0gZS0+Z290b19ibG9jazsKLSAJICAgIH0K LSAJICBpZiAoKGUtPmZsYWdzICYgKEVER0VfQUJOT1JNQUwgfCBFREdFX0FCTk9STUFMX0NBTEwp KQotIAkgICAgICAgJiYgZS0+ZGVzdCAhPSBFWElUX0JMT0NLX1BUUikKLS0tLSBnY2MvY2ZnZXhw YW5kLmMJKHJldmlzaW9uIDE0MDk0NykKLSsrKyBnY2MvY2ZnZXhwYW5kLmMJKHJldmlzaW9uIDE0 MDk0OCkKLUBAIC0xMzE2LDcgKzEzMTYsMTIgQEAgZXhwYW5kX2dpbXBsZV9jb25kX2V4cHIgKGJh c2ljX2Jsb2NrIGJiLAotICAgICAgIGFkZF9yZWdfYnJfcHJvYl9ub3RlIChsYXN0LCB0cnVlX2Vk Z2UtPnByb2JhYmlsaXR5KTsKLSAgICAgICBtYXliZV9kdW1wX3J0bF9mb3JfdHJlZV9zdG10IChz dG10LCBsYXN0KTsKLSAgICAgICBpZiAodHJ1ZV9lZGdlLT5nb3RvX2xvY3VzKQotLSAgCXNldF9j dXJyX2luc25fc291cmNlX2xvY2F0aW9uIChsb2NhdGlvbl9mcm9tX2xvY3VzICh0cnVlX2VkZ2Ut PmdvdG9fbG9jdXMpKTsKLSsJewotKwkgIHNldF9jdXJyX2luc25fc291cmNlX2xvY2F0aW9uIChs b2NhdGlvbl9mcm9tX2xvY3VzICh0cnVlX2VkZ2UtPmdvdG9fbG9jdXMpKTsKLSsJICBzZXRfY3Vy cl9pbnNuX2Jsb2NrICh0cnVlX2VkZ2UtPmdvdG9fYmxvY2spOwotKwkgIHRydWVfZWRnZS0+Z290 b19sb2N1cyA9IGN1cnJfaW5zbl9sb2NhdG9yICgpOwotKwl9Ci0rICAgICAgdHJ1ZV9lZGdlLT5n b3RvX2Jsb2NrID0gTlVMTDsKLSAgICAgICBmYWxzZV9lZGdlLT5mbGFncyB8PSBFREdFX0ZBTExU SFJVOwotICAgICAgIHJldHVybiBOVUxMOwotICAgICB9Ci1AQCAtMTMyNiw3ICsxMzMxLDEyIEBA IGV4cGFuZF9naW1wbGVfY29uZF9leHByIChiYXNpY19ibG9jayBiYiwKLSAgICAgICBhZGRfcmVn X2JyX3Byb2Jfbm90ZSAobGFzdCwgZmFsc2VfZWRnZS0+cHJvYmFiaWxpdHkpOwotICAgICAgIG1h eWJlX2R1bXBfcnRsX2Zvcl90cmVlX3N0bXQgKHN0bXQsIGxhc3QpOwotICAgICAgIGlmIChmYWxz ZV9lZGdlLT5nb3RvX2xvY3VzKQotLSAgCXNldF9jdXJyX2luc25fc291cmNlX2xvY2F0aW9uIChs b2NhdGlvbl9mcm9tX2xvY3VzIChmYWxzZV9lZGdlLT5nb3RvX2xvY3VzKSk7Ci0rCXsKLSsJICBz ZXRfY3Vycl9pbnNuX3NvdXJjZV9sb2NhdGlvbiAobG9jYXRpb25fZnJvbV9sb2N1cyAoZmFsc2Vf ZWRnZS0+Z290b19sb2N1cykpOwotKwkgIHNldF9jdXJyX2luc25fYmxvY2sgKGZhbHNlX2VkZ2Ut PmdvdG9fYmxvY2spOwotKwkgIGZhbHNlX2VkZ2UtPmdvdG9fbG9jdXMgPSBjdXJyX2luc25fbG9j YXRvciAoKTsKLSsJfQotKyAgICAgIGZhbHNlX2VkZ2UtPmdvdG9fYmxvY2sgPSBOVUxMOwotICAg ICAgIHRydWVfZWRnZS0+ZmxhZ3MgfD0gRURHRV9GQUxMVEhSVTsKLSAgICAgICByZXR1cm4gTlVM TDsKLSAgICAgfQotQEAgLTEzMzQsNiArMTM0NCwxMyBAQCBleHBhbmRfZ2ltcGxlX2NvbmRfZXhw ciAoYmFzaWNfYmxvY2sgYmIsCi0gICBqdW1waWYgKHByZWQsIGxhYmVsX3J0eF9mb3JfYmIgKHRy dWVfZWRnZS0+ZGVzdCkpOwotICAgYWRkX3JlZ19icl9wcm9iX25vdGUgKGxhc3QsIHRydWVfZWRn ZS0+cHJvYmFiaWxpdHkpOwotICAgbGFzdCA9IGdldF9sYXN0X2luc24gKCk7Ci0rICBpZiAoZmFs c2VfZWRnZS0+Z290b19sb2N1cykKLSsgICAgewotKyAgICAgIHNldF9jdXJyX2luc25fc291cmNl X2xvY2F0aW9uIChsb2NhdGlvbl9mcm9tX2xvY3VzIChmYWxzZV9lZGdlLT5nb3RvX2xvY3VzKSk7 Ci0rICAgICAgc2V0X2N1cnJfaW5zbl9ibG9jayAoZmFsc2VfZWRnZS0+Z290b19ibG9jayk7Ci0r ICAgICAgZmFsc2VfZWRnZS0+Z290b19sb2N1cyA9IGN1cnJfaW5zbl9sb2NhdG9yICgpOwotKyAg ICB9Ci0rICBmYWxzZV9lZGdlLT5nb3RvX2Jsb2NrID0gTlVMTDsKLSAgIGVtaXRfanVtcCAobGFi ZWxfcnR4X2Zvcl9iYiAoZmFsc2VfZWRnZS0+ZGVzdCkpOwotIAotICAgQkJfRU5EIChiYikgPSBs YXN0OwotQEAgLTEzNTYsOSArMTM3MywxMyBAQCBleHBhbmRfZ2ltcGxlX2NvbmRfZXhwciAoYmFz aWNfYmxvY2sgYmIsCi0gCi0gICBtYXliZV9kdW1wX3J0bF9mb3JfdHJlZV9zdG10IChzdG10LCBs YXN0Mik7Ci0gCi0tICBpZiAoZmFsc2VfZWRnZS0+Z290b19sb2N1cykKLS0gICAgc2V0X2N1cnJf aW5zbl9zb3VyY2VfbG9jYXRpb24gKGxvY2F0aW9uX2Zyb21fbG9jdXMgKGZhbHNlX2VkZ2UtPmdv dG9fbG9jdXMpKTsKLS0KLSsgIGlmICh0cnVlX2VkZ2UtPmdvdG9fbG9jdXMpCi0rICAgIHsKLSsg ICAgICBzZXRfY3Vycl9pbnNuX3NvdXJjZV9sb2NhdGlvbiAobG9jYXRpb25fZnJvbV9sb2N1cyAo dHJ1ZV9lZGdlLT5nb3RvX2xvY3VzKSk7Ci0rICAgICAgc2V0X2N1cnJfaW5zbl9ibG9jayAodHJ1 ZV9lZGdlLT5nb3RvX2Jsb2NrKTsKLSsgICAgICB0cnVlX2VkZ2UtPmdvdG9fbG9jdXMgPSBjdXJy X2luc25fbG9jYXRvciAoKTsKLSsgICAgfQotKyAgdHJ1ZV9lZGdlLT5nb3RvX2Jsb2NrID0gTlVM TDsKLSAgIHJldHVybiBuZXdfYmI7Ci0gfQotIAotQEAgLTE2MTMsMTkgKzE2MzQsMjEgQEAgZXhw YW5kX2dpbXBsZV9iYXNpY19ibG9jayAoYmFzaWNfYmxvY2sgYgotIAl9Ci0gICAgIH0KLSAKLS0g IC8qIEV4cGFuZCBpbXBsaWNpdCBnb3RvLiAgKi8KLSsgIC8qIEV4cGFuZCBpbXBsaWNpdCBnb3Rv IGFuZCBjb252ZXJ0IGdvdG9fbG9jdXMuICAqLwotICAgRk9SX0VBQ0hfRURHRSAoZSwgZWksIGJi LT5zdWNjcykKLSAgICAgewotLSAgICAgIGlmIChlLT5mbGFncyAmIEVER0VfRkFMTFRIUlUpCi0t CWJyZWFrOwotLSAgICB9Ci0tCi0tICBpZiAoZSAmJiBlLT5kZXN0ICE9IGJiLT5uZXh0X2JiKQot LSAgICB7Ci0tICAgICAgZW1pdF9qdW1wIChsYWJlbF9ydHhfZm9yX2JiIChlLT5kZXN0KSk7Ci0t ICAgICAgaWYgKGUtPmdvdG9fbG9jdXMpCi0tICAgICAgICBzZXRfY3Vycl9pbnNuX3NvdXJjZV9s b2NhdGlvbiAobG9jYXRpb25fZnJvbV9sb2N1cyAoZS0+Z290b19sb2N1cykpOwotLSAgICAgIGUt PmZsYWdzICY9IH5FREdFX0ZBTExUSFJVOwotKyAgICAgIGlmIChlLT5nb3RvX2xvY3VzICYmIGUt PmdvdG9fYmxvY2spCi0rCXsKLSsJICBzZXRfY3Vycl9pbnNuX3NvdXJjZV9sb2NhdGlvbiAobG9j YXRpb25fZnJvbV9sb2N1cyAoZS0+Z290b19sb2N1cykpOwotKwkgIHNldF9jdXJyX2luc25fYmxv Y2sgKGUtPmdvdG9fYmxvY2spOwotKwkgIGUtPmdvdG9fbG9jdXMgPSBjdXJyX2luc25fbG9jYXRv ciAoKTsKLSsJfQotKyAgICAgIGUtPmdvdG9fYmxvY2sgPSBOVUxMOwotKyAgICAgIGlmICgoZS0+ ZmxhZ3MgJiBFREdFX0ZBTExUSFJVKSAmJiBlLT5kZXN0ICE9IGJiLT5uZXh0X2JiKQotKwl7Ci0r CSAgZW1pdF9qdW1wIChsYWJlbF9ydHhfZm9yX2JiIChlLT5kZXN0KSk7Ci0rCSAgZS0+ZmxhZ3Mg Jj0gfkVER0VfRkFMTFRIUlU7Ci0rCX0KLSAgICAgfQotIAotICAgZG9fcGVuZGluZ19zdGFja19h ZGp1c3QgKCk7Ci0tLS0gZ2NjL2NmZ2NsZWFudXAuYwkocmV2aXNpb24gMTQwOTQ3KQotKysrIGdj Yy9jZmdjbGVhbnVwLmMJKHJldmlzaW9uIDE0MDk0OCkKLUBAIC00MjksNyArNDI5LDcgQEAgdHJ5 X2ZvcndhcmRfZWRnZXMgKGludCBtb2RlLCBiYXNpY19ibG9jawotICAgZm9yIChlaSA9IGVpX3N0 YXJ0IChiLT5zdWNjcyk7IChlID0gZWlfc2FmZV9lZGdlIChlaSkpOyApCi0gICAgIHsKLSAgICAg ICBiYXNpY19ibG9jayB0YXJnZXQsIGZpcnN0OwotLSAgICAgIGludCBjb3VudGVyOwotKyAgICAg IGludCBjb3VudGVyLCBnb3RvX2xvY3VzOwotICAgICAgIGJvb2wgdGhyZWFkZWQgPSBmYWxzZTsK LSAgICAgICBpbnQgbnRocmVhZGVkX2VkZ2VzID0gMDsKLSAgICAgICBib29sIG1heV90aHJlYWQg PSBmaXJzdF9wYXNzIHwgZGZfZ2V0X2JiX2RpcnR5IChiKTsKLUBAIC00NDcsNiArNDQ3LDcgQEAg dHJ5X2ZvcndhcmRfZWRnZXMgKGludCBtb2RlLCBiYXNpY19ibG9jawotIAotICAgICAgIHRhcmdl dCA9IGZpcnN0ID0gZS0+ZGVzdDsKLSAgICAgICBjb3VudGVyID0gTlVNX0ZJWEVEX0JMT0NLUzsK LSsgICAgICBnb3RvX2xvY3VzID0gZS0+Z290b19sb2N1czsKLSAKLSAgICAgICAvKiBJZiB3ZSBh cmUgcGFydGl0aW9uaW5nIGhvdC9jb2xkIGJhc2ljX2Jsb2Nrcywgd2UgZG9uJ3Qgd2FudCB0byBt ZXNzCi0gCSB1cCBqdW1wcyB0aGF0IGNyb3NzIGJldHdlZW4gaG90L2NvbGQgc2VjdGlvbnMuCi1A QCAtNDc2LDYgKzQ3NywyNyBAQCB0cnlfZm9yd2FyZF9lZGdlcyAoaW50IG1vZGUsIGJhc2ljX2Js b2NrCi0gCSAgICAgIG5ld190YXJnZXQgPSBzaW5nbGVfc3VjYyAodGFyZ2V0KTsKLSAJICAgICAg aWYgKHRhcmdldCA9PSBuZXdfdGFyZ2V0KQotIAkJY291bnRlciA9IG5fYmFzaWNfYmxvY2tzOwot KwkgICAgICBlbHNlIGlmICghb3B0aW1pemUpCi0rCQl7Ci0rCQkgIC8qIFdoZW4gbm90IG9wdGlt aXppbmcsIGVuc3VyZSB0aGF0IGVkZ2VzIG9yIGZvcndhcmRlcgotKwkJICAgICBibG9ja3Mgd2l0 aCBkaWZmZXJlbnQgbG9jdXMgYXJlIG5vdCBvcHRpbWl6ZWQgb3V0LiAgKi8KLSsJCSAgaW50IGxv Y3VzID0gc2luZ2xlX3N1Y2NfZWRnZSAodGFyZ2V0KS0+Z290b19sb2N1czsKLSsKLSsJCSAgaWYg KGxvY3VzICYmIGdvdG9fbG9jdXMgJiYgbG9jdXMgIT0gZ290b19sb2N1cykKLSsJCSAgICBjb3Vu dGVyID0gbl9iYXNpY19ibG9ja3M7Ci0rCQkgIGVsc2UgaWYgKGxvY3VzKQotKwkJICAgIGdvdG9f bG9jdXMgPSBsb2N1czsKLSsKLSsJCSAgaWYgKElOU05fUCAoQkJfRU5EICh0YXJnZXQpKSkKLSsJ CSAgICB7Ci0rCQkgICAgICBsb2N1cyA9IElOU05fTE9DQVRPUiAoQkJfRU5EICh0YXJnZXQpKTsK LSsKLSsJCSAgICAgIGlmIChsb2N1cyAmJiBnb3RvX2xvY3VzICYmIGxvY3VzICE9IGdvdG9fbG9j dXMpCi0rCQkJY291bnRlciA9IG5fYmFzaWNfYmxvY2tzOwotKwkJICAgICAgZWxzZSBpZiAobG9j dXMpCi0rCQkJZ290b19sb2N1cyA9IGxvY3VzOwotKwkJICAgIH0KLSsJCX0KLSAJICAgIH0KLSAK LSAJICAvKiBBbGxvdyB0byB0aHJlYWQgb25seSBvdmVyIG9uZSBlZGdlIGF0IHRpbWUgdG8gc2lt cGxpZnkgdXBkYXRpbmcKLUBAIC01MzksNiArNTYxLDggQEAgdHJ5X2ZvcndhcmRfZWRnZXMgKGlu dCBtb2RlLCBiYXNpY19ibG9jawotIAkgIGludCBlZGdlX2ZyZXF1ZW5jeTsKLSAJICBpbnQgbiA9 IDA7Ci0gCi0rCSAgZS0+Z290b19sb2N1cyA9IGdvdG9fbG9jdXM7Ci0rCi0gCSAgLyogRG9uJ3Qg Zm9yY2UgaWYgdGFyZ2V0IGlzIGV4aXQgYmxvY2suICAqLwotIAkgIGlmICh0aHJlYWRlZCAmJiB0 YXJnZXQgIT0gRVhJVF9CTE9DS19QVFIpCi0gCSAgICB7Ci0tLS0gZ2NjL2NmZ2xheW91dC5jCShy ZXZpc2lvbiAxNDA5NDcpCi0rKysgZ2NjL2NmZ2xheW91dC5jCShyZXZpc2lvbiAxNDA5NDgpCi1A QCAtODg3LDYgKzg4Nyw0NiBAQCBmaXh1cF9yZW9yZGVyX2NoYWluICh2b2lkKQotICAgICAgIGlm IChlICYmICFjYW5fZmFsbHRocnUgKGUtPnNyYywgZS0+ZGVzdCkpCi0gCWZvcmNlX25vbmZhbGx0 aHJ1IChlKTsKLSAgICAgfQotKwotKyAgLyogRW5zdXJlIGdvdG9fbG9jdXMgZnJvbSBlZGdlcyBo YXMgc29tZSBpbnN0cnVjdGlvbnMgd2l0aCB0aGF0IGxvY3VzCi0rICAgICBpbiBSVEwuICAqLwot KyAgaWYgKCFvcHRpbWl6ZSkKLSsgICAgRk9SX0VBQ0hfQkIgKGJiKQotKyAgICAgIHsKLSsgICAg ICAgIGVkZ2UgZTsKLSsgICAgICAgIGVkZ2VfaXRlcmF0b3IgZWk7Ci0rCi0rICAgICAgICBGT1Jf RUFDSF9FREdFIChlLCBlaSwgYmItPnN1Y2NzKQotKwkgIGlmIChlLT5nb3RvX2xvY3VzICYmICEo ZS0+ZmxhZ3MgJiBFREdFX0FCTk9STUFMKSkKLSsJICAgIHsKLSsJICAgICAgYmFzaWNfYmxvY2sg bmI7Ci0rCi0rCSAgICAgIGlmIChzaW1wbGVqdW1wX3AgKEJCX0VORCAoZS0+c3JjKSkpCi0rCQl7 Ci0rCQkgIGlmIChJTlNOX0xPQ0FUT1IgKEJCX0VORCAoZS0+c3JjKSkgPT0gKGludCkgZS0+Z290 b19sb2N1cykKLSsJCSAgICBjb250aW51ZTsKLSsJCSAgaWYgKElOU05fTE9DQVRPUiAoQkJfRU5E IChlLT5zcmMpKSA9PSAwKQotKwkJICAgIHsKLSsJCSAgICAgIElOU05fTE9DQVRPUiAoQkJfRU5E IChlLT5zcmMpKSA9IGUtPmdvdG9fbG9jdXM7Ci0rCQkgICAgICBjb250aW51ZTsKLSsJCSAgICB9 Ci0rCQl9Ci0rCSAgICAgIGlmIChlLT5kZXN0ICE9IEVYSVRfQkxPQ0tfUFRSKQotKwkJewotKwkJ ICBpbnNuID0gQkJfSEVBRCAoZS0+ZGVzdCk7Ci0rCQkgIGlmICghSU5TTl9QIChpbnNuKSkKLSsJ CSAgICBpbnNuID0gbmV4dF9pbnNuIChpbnNuKTsKLSsJCSAgaWYgKGluc24gJiYgSU5TTl9QIChp bnNuKQotKwkJICAgICAgJiYgSU5TTl9MT0NBVE9SIChpbnNuKSA9PSAoaW50KSBlLT5nb3RvX2xv Y3VzKQotKwkJICAgIGNvbnRpbnVlOwotKwkJfQotKwkgICAgICBuYiA9IHNwbGl0X2VkZ2UgKGUp OwotKwkgICAgICBpZiAoIUlOU05fUCAoQkJfRU5EIChuYikpKQotKwkJQkJfRU5EIChuYikgPSBl bWl0X2luc25fYWZ0ZXJfbm9sb2MgKGdlbl9ub3AgKCksIEJCX0VORCAobmIpLAotKwkJCQkJCSAg ICAgbmIpOwotKwkgICAgICBJTlNOX0xPQ0FUT1IgKEJCX0VORCAobmIpKSA9IGUtPmdvdG9fbG9j dXM7Ci0rCSAgICB9Ci0rICAgICAgfQotIH0KLSAMCi0gLyogUGVyZm9ybSBzYW5pdHkgY2hlY2tz IG9uIHRoZSBpbnNuIGNoYWluLgotLS0tIGdjYy9iYXNpYy1ibG9jay5oCShyZXZpc2lvbiAxNDA5 NDcpCi0rKysgZ2NjL2Jhc2ljLWJsb2NrLmgJKHJldmlzaW9uIDE0MDk0OCkKLUBAIC0xMjksNyAr MTI5LDggQEAgc3RydWN0IGVkZ2VfZGVmIEdUWSgoKSkKLSAgIC8qIEF1eGlsaWFyeSBpbmZvIHNw ZWNpZmljIHRvIGEgcGFzcy4gICovCi0gICBQVFIgR1RZICgoc2tpcCAoIiIpKSkgYXV4OwotIAot LSAgLyogTG9jYXRpb24gb2YgYW55IGdvdG8gaW1wbGljaXQgaW4gdGhlIGVkZ2UsIGR1cmluZyB0 cmVlLXNzYS4gICovCi0rICAvKiBMb2NhdGlvbiBvZiBhbnkgZ290byBpbXBsaWNpdCBpbiB0aGUg ZWRnZSBhbmQgYXNzb2NpYXRlZCBCTE9DSy4gICovCi0rICB0cmVlIGdvdG9fYmxvY2s7Ci0gICBz b3VyY2VfbG9jdXMgZ290b19sb2N1czsKLSAKLSAgIC8qIFRoZSBpbmRleCBudW1iZXIgY29ycmVz cG9uZGluZyB0byB0aGlzIGVkZ2UgaW4gdGhlIGVkZ2UgdmVjdG9yCi0tLS0gZ2NjL3RyZWUtY2Zn LmMJKHJldmlzaW9uIDE0MDk0NykKLSsrKyBnY2MvdHJlZS1jZmcuYwkocmV2aXNpb24gMTQwOTQ4 KQotQEAgLTYzNCw2ICs2MzQsNyBAQCBtYWtlX2NvbmRfZXhwcl9lZGdlcyAoYmFzaWNfYmxvY2sg YmIpCi0gI2Vsc2UKLSAgIGUtPmdvdG9fbG9jdXMgPSBFWFBSX0xPQ1VTIChDT05EX0VYUFJfVEhF TiAoZW50cnkpKTsKLSAjZW5kaWYKLSsgIGUtPmdvdG9fYmxvY2sgPSBUUkVFX0JMT0NLIChDT05E X0VYUFJfVEhFTiAoZW50cnkpKTsKLSAgIGUgPSBtYWtlX2VkZ2UgKGJiLCBlbHNlX2JiLCBFREdF X0ZBTFNFX1ZBTFVFKTsKLSAgIGlmIChlKQotICAgICB7Ci1AQCAtNjQyLDYgKzY0Myw3IEBAIG1h a2VfY29uZF9leHByX2VkZ2VzIChiYXNpY19ibG9jayBiYikKLSAjZWxzZQotICAgICAgIGUtPmdv dG9fbG9jdXMgPSBFWFBSX0xPQ1VTIChDT05EX0VYUFJfRUxTRSAoZW50cnkpKTsKLSAjZW5kaWYK LSsgICAgICBlLT5nb3RvX2Jsb2NrID0gVFJFRV9CTE9DSyAoQ09ORF9FWFBSX0VMU0UgKGVudHJ5 KSk7Ci0gICAgIH0KLSAKLSAgIC8qIFdlIGRvIG5vdCBuZWVkIHRoZSBnb3RvcyBhbnltb3JlLiAg Ki8KLUBAIC04NDEsNiArODQzLDcgQEAgbWFrZV9nb3RvX2V4cHJfZWRnZXMgKGJhc2ljX2Jsb2Nr IGJiKQotICNlbHNlCi0gICAgICAgZS0+Z290b19sb2N1cyA9IEVYUFJfTE9DVVMgKGdvdG9fdCk7 Ci0gI2VuZGlmCi0rICAgICAgZS0+Z290b19ibG9jayA9IFRSRUVfQkxPQ0sgKGdvdG9fdCk7Ci0g ICAgICAgYnNpX3JlbW92ZSAoJmxhc3QsIHRydWUpOwotICAgICAgIHJldHVybjsKLSAgICAgfQot QEAgLTU4NzQsNiArNTg3NywyMyBAQCBtb3ZlX2Jsb2NrX3RvX2ZuIChzdHJ1Y3QgZnVuY3Rpb24g KmRlc3RfCi0gICAgICAgdXBkYXRlX3N0bXQgKHN0bXQpOwotICAgICAgIHBvcF9jZnVuICgpOwot ICAgICB9Ci0rCi0rICBGT1JfRUFDSF9FREdFIChlLCBlaSwgYmItPnN1Y2NzKQotKyAgICBpZiAo ZS0+Z290b19sb2N1cykKLSsgICAgICB7Ci0rCXRyZWUgYmxvY2sgPSBlLT5nb3RvX2Jsb2NrOwot KwlpZiAoZC0+b3JpZ19ibG9jayA9PSBOVUxMX1RSRUUKLSsJICAgIHx8IGJsb2NrID09IGQtPm9y aWdfYmxvY2spCi0rCSAgZS0+Z290b19ibG9jayA9IGQtPm5ld19ibG9jazsKLSsjaWZkZWYgRU5B QkxFX0NIRUNLSU5HCi0rCWVsc2UgaWYgKGJsb2NrICE9IGQtPm5ld19ibG9jaykKLSsJICB7Ci0r CSAgICB3aGlsZSAoYmxvY2sgJiYgYmxvY2sgIT0gZC0+b3JpZ19ibG9jaykKLSsJICAgICAgYmxv Y2sgPSBCTE9DS19TVVBFUkNPTlRFWFQgKGJsb2NrKTsKLSsJICAgIGdjY19hc3NlcnQgKGJsb2Nr KTsKLSsJICB9Ci0rI2VuZGlmCi0rICAgICAgfQotIH0KLSAKLSAvKiBFeGFtaW5lIHRoZSBzdGF0 ZW1lbnRzIGluIEJCICh3aGljaCBpcyBpbiBTUkNfQ0ZVTik7IGZpbmQgYW5kIHJldHVybgotLS0t IGdjYy9jZmdydGwuYwkocmV2aXNpb24gMTQwOTQ3KQotKysrIGdjYy9jZmdydGwuYwkocmV2aXNp b24gMTQwOTQ4KQotQEAgLTEwMDksNiArMTAwOSw3IEBAIGZvcmNlX25vbmZhbGx0aHJ1X2FuZF9y ZWRpcmVjdCAoZWRnZSBlLCAKLSAgIHJ0eCBub3RlOwotICAgZWRnZSBuZXdfZWRnZTsKLSAgIGlu dCBhYm5vcm1hbF9lZGdlX2ZsYWdzID0gMDsKLSsgIGludCBsb2M7Ci0gCi0gICAvKiBJbiB0aGUg Y2FzZSB0aGUgbGFzdCBpbnN0cnVjdGlvbiBpcyBjb25kaXRpb25hbCBqdW1wIHRvIHRoZSBuZXh0 Ci0gICAgICBpbnN0cnVjdGlvbiwgZmlyc3QgcmVkaXJlY3QgdGhlIGp1bXAgaXRzZWxmIGFuZCB0 aGVuIGNvbnRpbnVlCi1AQCAtMTEyNywxMSArMTEyOCwxNSBAQCBmb3JjZV9ub25mYWxsdGhydV9h bmRfcmVkaXJlY3QgKGVkZ2UgZSwgCi0gICBlbHNlCi0gICAgIGp1bXBfYmxvY2sgPSBlLT5zcmM7 Ci0gCi0rICBpZiAoZS0+Z290b19sb2N1cyAmJiBlLT5nb3RvX2Jsb2NrID09IE5VTEwpCi0rICAg IGxvYyA9IGUtPmdvdG9fbG9jdXM7Ci0rICBlbHNlCi0rICAgIGxvYyA9IDA7Ci0gICBlLT5mbGFn cyAmPSB+RURHRV9GQUxMVEhSVTsKLSAgIGlmICh0YXJnZXQgPT0gRVhJVF9CTE9DS19QVFIpCi0g ICAgIHsKLSAjaWZkZWYgSEFWRV9yZXR1cm4KLS0JZW1pdF9qdW1wX2luc25fYWZ0ZXJfbm9sb2Mg KGdlbl9yZXR1cm4gKCksIEJCX0VORCAoanVtcF9ibG9jaykpOwotKwllbWl0X2p1bXBfaW5zbl9h ZnRlcl9zZXRsb2MgKGdlbl9yZXR1cm4gKCksIEJCX0VORCAoanVtcF9ibG9jayksIGxvYyk7Ci0g I2Vsc2UKLSAJZ2NjX3VucmVhY2hhYmxlICgpOwotICNlbmRpZgotQEAgLTExMzksNyArMTE0NCw3 IEBAIGZvcmNlX25vbmZhbGx0aHJ1X2FuZF9yZWRpcmVjdCAoZWRnZSBlLCAKLSAgIGVsc2UKLSAg ICAgewotICAgICAgIHJ0eCBsYWJlbCA9IGJsb2NrX2xhYmVsICh0YXJnZXQpOwotLSAgICAgIGVt aXRfanVtcF9pbnNuX2FmdGVyX25vbG9jIChnZW5fanVtcCAobGFiZWwpLCBCQl9FTkQgKGp1bXBf YmxvY2spKTsKLSsgICAgICBlbWl0X2p1bXBfaW5zbl9hZnRlcl9zZXRsb2MgKGdlbl9qdW1wIChs YWJlbCksIEJCX0VORCAoanVtcF9ibG9jayksIGxvYyk7Ci0gICAgICAgSlVNUF9MQUJFTCAoQkJf RU5EIChqdW1wX2Jsb2NrKSkgPSBsYWJlbDsKLSAgICAgICBMQUJFTF9OVVNFUyAobGFiZWwpKys7 Ci0gICAgIH0KLUBAIC0yNjA2LDYgKzI2MTEsMzIgQEAgY2ZnX2xheW91dF9tZXJnZV9ibG9ja3Mg KGJhc2ljX2Jsb2NrIGEsIAotICAgICB0cnlfcmVkaXJlY3RfYnlfcmVwbGFjaW5nX2p1bXAgKEVE R0VfU1VDQyAoYSwgMCksIGIsIHRydWUpOwotICAgZ2NjX2Fzc2VydCAoIUpVTVBfUCAoQkJfRU5E IChhKSkpOwotIAotKyAgLyogV2hlbiBub3Qgb3B0aW1pemluZyBhbmQgdGhlIGVkZ2UgaXMgdGhl IG9ubHkgcGxhY2UgaW4gUlRMIHdoaWNoIGhvbGRzCi0rICAgICBzb21lIHVuaXF1ZSBsb2N1cywg ZW1pdCBhIG5vcCB3aXRoIHRoYXQgbG9jdXMgaW4gYmV0d2Vlbi4gICovCi0rICBpZiAoIW9wdGlt aXplICYmIEVER0VfU1VDQyAoYSwgMCktPmdvdG9fbG9jdXMpCi0rICAgIHsKLSsgICAgICBydHgg aW5zbiA9IEJCX0VORCAoYSk7Ci0rICAgICAgaW50IGdvdG9fbG9jdXMgPSBFREdFX1NVQ0MgKGEs IDApLT5nb3RvX2xvY3VzOwotKwotKyAgICAgIGlmIChOT1RFX1AgKGluc24pKQotKwlpbnNuID0g cHJldl9ub25ub3RlX2luc24gKGluc24pOwotKyAgICAgIGlmIChpbnNuICYmIElOU05fUCAoaW5z bikgJiYgSU5TTl9MT0NBVE9SIChpbnNuKSA9PSBnb3RvX2xvY3VzKQotKwlnb3RvX2xvY3VzID0g MDsKLSsgICAgICBlbHNlCi0rCXsKLSsJICBpbnNuID0gQkJfSEVBRCAoYik7Ci0rCSAgaWYgKCFJ TlNOX1AgKGluc24pKQotKwkgICAgaW5zbiA9IG5leHRfaW5zbiAoaW5zbik7Ci0rCSAgaWYgKGlu c24gJiYgSU5TTl9QIChpbnNuKSAmJiBJTlNOX0xPQ0FUT1IgKGluc24pID09IGdvdG9fbG9jdXMp Ci0rCSAgICBnb3RvX2xvY3VzID0gMDsKLSsJfQotKyAgICAgIGlmIChnb3RvX2xvY3VzKQotKwl7 Ci0rCSAgQkJfRU5EIChhKSA9IGVtaXRfaW5zbl9hZnRlcl9ub2xvYyAoZ2VuX25vcCAoKSwgQkJf RU5EIChhKSwgYSk7Ci0rCSAgSU5TTl9MT0NBVE9SIChCQl9FTkQgKGEpKSA9IGdvdG9fbG9jdXM7 Ci0rCX0KLSsgICAgfQotKwotICAgLyogUG9zc2libGUgbGluZSBudW1iZXIgbm90ZXMgc2hvdWxk IGFwcGVhciBpbiBiZXR3ZWVuLiAgKi8KLSAgIGlmIChiLT5pbC5ydGwtPmhlYWRlcikKLSAgICAg ewotLS0tIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL2RlYnVnL3ByMzY2OTAtMS5jCShyZXZpc2lvbiAw KQotKysrIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL2RlYnVnL3ByMzY2OTAtMS5jCShyZXZpc2lvbiAx NDA5NDgpCi1AQCAtMCwwICsxLDIzIEBACi0rLyogUFIgZGVidWcvMzY2OTAgKi8KLSsvKiBWZXJp ZnkgdGhhdCBicmVhayBmdW5jIGlzIGhpdC4gIAotKyAgIFRoaXMgdmVyc2lvbiBvZiB0aGUgdGVz dCBqdXN0IGNoZWNrcyB0aGF0IGl0IGNhbiBiZSBjb21waWxlZCwgbGlua2VkCi0rICAgYW5kIGV4 ZWN1dGVkLCBmdXJ0aGVyIHRlc3RpbmcgaXMgZG9uZSBpbiBjb3JyZXNwb25kaW5nIGdjYy5kZy9k d2FyZjIvCi0rICAgdGVzdCBhbmQgaG9wZWZ1bGx5IGluIGdkYiB0ZXN0c3VpdGUuICAqLwotKy8q IHsgZGctZG8gcnVuIH0gKi8KLSsvKiB7IGRnLW9wdGlvbnMgIi1PMCAtZyAtZEEiIH0gKi8KLSsK LStpbnQgaTsKLSsKLSt2b2lkCi0rZnVuYyAodm9pZCkKLSt7Ci0rICB3aGlsZSAoaSA9PSAxKQot KyAgICBpID0gMDsKLSt9Ci0rCi0raW50Ci0rbWFpbiAodm9pZCkKLSt7Ci0rICBmdW5jICgpOwot KyAgcmV0dXJuIDA7Ci0rfQotLS0tIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL2RlYnVnL3ByMzY2OTAt Mi5jCShyZXZpc2lvbiAwKQotKysrIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL2RlYnVnL3ByMzY2OTAt Mi5jCShyZXZpc2lvbiAxNDA5NDgpCi1AQCAtMCwwICsxLDQwIEBACi0rLyogUFIgZGVidWcvMzY2 OTAgKi8KLSsvKiBWZXJpZnkgdGhhdCBicmVha3BvaW50IGNhbiBiZSBwdXQgb24gZ290byBmMSwg aXQgaXMgaGl0IGFuZAotKyAgIHZhcnogYXQgdGhhdCBzcG90IGlzIGRlZmluZWQgYW5kIGNvbnRh aW5zIDUuICBOb3doZXJlIGVsc2UKLSsgICBpbiB0aGUgZnVuY3Rpb24gc2hvdWxkIGJlIHZhcnog aW4gdGhlIHNjb3BlLgotKyAgIFRoaXMgdmVyc2lvbiBvZiB0aGUgdGVzdCBqdXN0IGNoZWNrcyB0 aGF0IGl0IGNhbiBiZSBjb21waWxlZCwgbGlua2VkCi0rICAgYW5kIGV4ZWN1dGVkLCBmdXJ0aGVy IHRlc3RpbmcgaXMgZG9uZSBpbiBjb3JyZXNwb25kaW5nIGdjYy5kZy9kd2FyZjIvCi0rICAgdGVz dCBhbmQgaG9wZWZ1bGx5IGluIGdkYiB0ZXN0c3VpdGUuICAqLwotKy8qIHsgZGctZG8gcnVuIH0g Ki8KLSsvKiB7IGRnLW9wdGlvbnMgIi1PMCAtZyAtZEEiIH0gKi8KLSsKLStpbnQgY250OwotKwot K3ZvaWQKLStiYXIgKGludCBpKQotK3sKLSsgIGNudCArPSBpOwotK30KLSsKLSt2b2lkCi0rZm9v IChpbnQgaSkKLSt7Ci0rICBpZiAoIWkpCi0rICAgIGJhciAoMCk7Ci0rICBlbHNlCi0rICAgIHsK LSsgICAgICBzdGF0aWMgaW50IHZhcnogPSA1OwotKyAgICAgIGdvdG8gZjE7Ci0rICAgIH0KLSsg IGJhciAoMSk7Ci0rZjE6Ci0rICBiYXIgKDIpOwotK30KLSsKLStpbnQKLSttYWluICh2b2lkKQot K3sKLSsgIGZvbyAoMCk7Ci0rICBmb28gKDEpOwotKyAgcmV0dXJuIDA7Ci0rfQotLS0tIGdjYy90 ZXN0c3VpdGUvZ2NjLmRnL2RlYnVnL3ByMjk2MDktMS5jCShyZXZpc2lvbiAwKQotKysrIGdjYy90 ZXN0c3VpdGUvZ2NjLmRnL2RlYnVnL3ByMjk2MDktMS5jCShyZXZpc2lvbiAxNDA5NDgpCi1AQCAt MCwwICsxLDMzIEBACi0rLyogUFIgZGVidWcvMjk2MDkgKi8KLSsvKiBWZXJpZnkgdGhhdCBicmVh a3BvaW50IG9uIHRoZSBicmVhayBpcyBoaXQuCi0rICAgVGhpcyB2ZXJzaW9uIG9mIHRoZSB0ZXN0 IGp1c3QgY2hlY2tzIHRoYXQgaXQgY2FuIGJlIGNvbXBpbGVkLCBsaW5rZWQKLSsgICBhbmQgZXhl Y3V0ZWQsIGZ1cnRoZXIgdGVzdGluZyBpcyBkb25lIGluIGNvcnJlc3BvbmRpbmcgZ2NjLmRnL2R3 YXJmMi8KLSsgICB0ZXN0IGFuZCBob3BlZnVsbHkgaW4gZ2RiIHRlc3RzdWl0ZS4gICovCi0rLyog eyBkZy1kbyBydW4gfSAqLwotKy8qIHsgZGctb3B0aW9ucyAiLU8wIC1nIC1kQSIgfSAqLwotKwot K2V4dGVybiB2b2lkIGFib3J0ICh2b2lkKTsKLSsKLStpbnQKLStmb28gKHZvaWQpCi0rewotKyAg aW50IGEsIGk7Ci0rCi0rICBmb3IgKGkgPSAxOyBpIDw9IDEwOyBpKyspCi0rICAgIHsKLSsgICAg ICBpZiAoaSA8IDMpCi0rCWEgPSAxOwotKyAgICAgIGVsc2UKLSsJYnJlYWs7Ci0rICAgICAgYSA9 IDU7Ci0rICAgIH0KLSsgIHJldHVybiBhOwotK30KLSsKLStpbnQKLSttYWluICh2b2lkKQotK3sK LSsgIGlmIChmb28gKCkgIT0gNSkKLSsgICAgYWJvcnQgKCk7Ci0rICByZXR1cm4gMDsKLSt9Ci0t LS0gZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvZGVidWcvcHIzNjY5MC0zLmMJKHJldmlzaW9uIDApCi0r KysgZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvZGVidWcvcHIzNjY5MC0zLmMJKHJldmlzaW9uIDE0MDk0 OCkKLUBAIC0wLDAgKzEsNDcgQEAKLSsvKiBQUiBkZWJ1Zy8zNjY5MCAqLwotKy8qIHsgZGctZG8g cnVuIH0gKi8KLSsvKiB7IGRnLW9wdGlvbnMgIi1PMCAtZyAtZEEiIH0gKi8KLSsKLStpbnQgY250 OwotKwotK3ZvaWQKLStiYXIgKGludCBpKQotK3sKLSsgIGNudCArPSBpOwotK30KLSsKLSt2b2lk Ci0rZm9vIChpbnQgaSwgaW50IGopCi0rewotKyAgaWYgKGopCi0rICAgIHsKLSsgICAgICBiYXIg KGkgKyAxKTsKLSsgICAgICBnb3RvIGYxOwotKyAgICB9Ci0rICBiYXIgKGkgKyAyKTsKLSsgIGdv dG8gZjI7Ci0rZjE6Ci0rICBpZiAoaSA+IDEwKQotKyAgICBnb3RvIGYzOwotK2YyOgotKyAgaWYg KGkgPiA0MCkKLSsgICAgZ290byBmNDsKLSsgIGVsc2UKLSsgICAgZ290byBmNTsKLStmMzoKLSsg IGJhciAoaSk7Ci0rZjQ6Ci0rICBiYXIgKGkpOwotK2Y1OgotKyAgYmFyIChpKTsKLSt9Ci0rCi0r aW50Ci0rbWFpbiAodm9pZCkKLSt7Ci0rICBmb28gKDAsIDEpOwotKyAgZm9vICgxMSwgMSk7Ci0r ICBmb28gKDIxLCAwKTsKLSsgIGZvbyAoNDEsIDApOwotKyAgcmV0dXJuIDA7Ci0rfQotLS0tIGdj Yy90ZXN0c3VpdGUvZ2NjLmRnL2RlYnVnL3ByMjk2MDktMi5jCShyZXZpc2lvbiAwKQotKysrIGdj Yy90ZXN0c3VpdGUvZ2NjLmRnL2RlYnVnL3ByMjk2MDktMi5jCShyZXZpc2lvbiAxNDA5NDgpCi1A QCAtMCwwICsxLDUzIEBACi0rLyogUFIgZGVidWcvMjk2MDkgKi8KLSsvKiBWZXJpZnkgdGhhdCBi cmVha3BvaW50IG9uIGJvdGggZ290byBmYWlsdXJlOyBzdG10cyBpcyBoaXQuCi0rICAgVGhpcyB2 ZXJzaW9uIG9mIHRoZSB0ZXN0IGp1c3QgY2hlY2tzIHRoYXQgaXQgY2FuIGJlIGNvbXBpbGVkLCBs aW5rZWQKLSsgICBhbmQgZXhlY3V0ZWQsIGZ1cnRoZXIgdGVzdGluZyBpcyBkb25lIGluIGNvcnJl c3BvbmRpbmcgZ2NjLmRnL2R3YXJmMi8KLSsgICB0ZXN0IGFuZCBob3BlZnVsbHkgaW4gZ2RiIHRl c3RzdWl0ZS4gICovCi0rLyogeyBkZy1kbyBydW4gfSAqLwotKy8qIHsgZGctb3B0aW9ucyAiLU8w IC1nIC1kQSIgfSAqLwotKwotK2V4dGVybiB2b2lkIGFib3J0ICh2b2lkKTsKLStpbnQgeDsKLSsK LStpbnQKLStmb28gKHZvaWQpCi0rewotKyAgcmV0dXJuIDAgXiB4OwotK30KLSsKLStpbnQKLSti YXIgKHZvaWQpCi0rewotKyAgcmV0dXJuIDEgXiB4OwotK30KLSsKLStpbnQKLStiYXogKHZvaWQp Ci0rewotKyAgaW50IGM7Ci0rCi0rICBpZiAoIWZvbyAoKSkKLSsgICAgZ290byBmYWlsdXJlOwot KwotKyAgaWYgKCFiYXIgKCkpCi0rICAgIGdvdG8gZmFpbHVyZTsKLSsKLSsgIHJldHVybiAwOwot KwotK2ZhaWx1cmU6Ci0rICByZXR1cm4gMTsKLSt9Ci0rCi0raW50Ci0rbWFpbiAodm9pZCkKLSt7 Ci0rICBpZiAoYmF6ICgpICE9IDEpCi0rICAgIGFib3J0ICgpOwotKyAgeCA9IDE7Ci0rICBpZiAo YmF6ICgpICE9IDEpCi0rICAgIGFib3J0ICgpOwotKyAgeCA9IDI7Ci0rICBpZiAoYmF6ICgpICE9 IDApCi0rICAgIGFib3J0ICgpOwotKyAgcmV0dXJuIDA7Ci0rfQotLS0tIGdjYy90ZXN0c3VpdGUv Z2NjLmRnL2RlYnVnL2R3YXJmMi9wcjM2NjkwLTEuYwkocmV2aXNpb24gMCkKLSsrKyBnY2MvdGVz dHN1aXRlL2djYy5kZy9kZWJ1Zy9kd2FyZjIvcHIzNjY5MC0xLmMJKHJldmlzaW9uIDE0MDk0OCkK LUBAIC0wLDAgKzEsMjIgQEAKLSsvKiBQUiBkZWJ1Zy8zNjY5MCAqLwotKy8qIFZlcmlmeSB0aGF0 IGJyZWFrIGZ1bmMgaXMgaGl0LiAgKi8KLSsvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLwotKy8qIHsg ZGctb3B0aW9ucyAiLU8wIC1nZHdhcmYtMiAtZEEiIH0gKi8KLSsKLStpbnQgaTsKLSsKLSt2b2lk Ci0rZnVuYyAodm9pZCkKLSt7Ci0rICB3aGlsZSAoaSA9PSAxKQotKyAgICBpID0gMDsKLSt9Ci0r Ci0raW50Ci0rbWFpbiAodm9pZCkKLSt7Ci0rICBmdW5jICgpOwotKyAgcmV0dXJuIDA7Ci0rfQot KwotKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAicHIzNjY5MC0xLmM6MTEiIH0gfSAq LwotLS0tIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL2RlYnVnL2R3YXJmMi9wcjM2NjkwLTIuYwkocmV2 aXNpb24gMCkKLSsrKyBnY2MvdGVzdHN1aXRlL2djYy5kZy9kZWJ1Zy9kd2FyZjIvcHIzNjY5MC0y LmMJKHJldmlzaW9uIDE0MDk0OCkKLUBAIC0wLDAgKzEsMzkgQEAKLSsvKiBQUiBkZWJ1Zy8zNjY5 MCAqLwotKy8qIFZlcmlmeSB0aGF0IGJyZWFrcG9pbnQgY2FuIGJlIHB1dCBvbiBnb3RvIGYxLCBp dCBpcyBoaXQgYW5kCi0rICAgdmFyeiBhdCB0aGF0IHNwb3QgaXMgZGVmaW5lZCBhbmQgY29udGFp bnMgNS4gIE5vd2hlcmUgZWxzZQotKyAgIGluIHRoZSBmdW5jdGlvbiBzaG91bGQgYmUgdmFyeiBp biB0aGUgc2NvcGUuICAqLwotKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCi0rLyogeyBkZy1vcHRp b25zICItTzAgLWdkd2FyZi0yIC1kQSIgfSAqLwotKwotK2ludCBjbnQ7Ci0rCi0rdm9pZAotK2Jh ciAoaW50IGkpCi0rewotKyAgY250ICs9IGk7Ci0rfQotKwotK3ZvaWQKLStmb28gKGludCBpKQot K3sKLSsgIGlmICghaSkKLSsgICAgYmFyICgwKTsKLSsgIGVsc2UKLSsgICAgewotKyAgICAgIHN0 YXRpYyBpbnQgdmFyeiA9IDU7Ci0rICAgICAgZ290byBmMTsKLSsgICAgfQotKyAgYmFyICgxKTsK LStmMToKLSsgIGJhciAoMik7Ci0rfQotKwotK2ludAotK21haW4gKHZvaWQpCi0rewotKyAgZm9v ICgwKTsKLSsgIGZvbyAoMSk7Ci0rICByZXR1cm4gMDsKLSt9Ci0rCi0rLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyICJwcjM2NjkwLTIuYzoyNCIgfSB9ICovCi0tLS0gZ2NjL3Rlc3RzdWl0 ZS9nY2MuZGcvZGVidWcvZHdhcmYyL3ByMjk2MDktMS5jCShyZXZpc2lvbiAwKQotKysrIGdjYy90 ZXN0c3VpdGUvZ2NjLmRnL2RlYnVnL2R3YXJmMi9wcjI5NjA5LTEuYwkocmV2aXNpb24gMTQwOTQ4 KQotQEAgLTAsMCArMSwzMiBAQAotKy8qIFBSIGRlYnVnLzI5NjA5ICovCi0rLyogVmVyaWZ5IHRo YXQgYnJlYWtwb2ludCBvbiB0aGUgYnJlYWsgaXMgaGl0LiAgKi8KLSsvKiB7IGRnLWRvIGNvbXBp bGUgfSAqLwotKy8qIHsgZGctb3B0aW9ucyAiLU8wIC1nZHdhcmYtMiAtZEEiIH0gKi8KLSsKLSt2 b2lkIGFib3J0ICh2b2lkKTsKLSsKLStpbnQKLStmb28gKHZvaWQpCi0rewotKyAgaW50IGEsIGk7 Ci0rCi0rICBmb3IgKGkgPSAxOyBpIDw9IDEwOyBpKyspCi0rICAgIHsKLSsgICAgICBpZiAoaSA8 IDMpCi0rCWEgPSAxOwotKyAgICAgIGVsc2UKLSsJYnJlYWs7Ci0rICAgICAgYSA9IDU7Ci0rICAg IH0KLSsgIHJldHVybiBhOwotK30KLSsKLStpbnQKLSttYWluICh2b2lkKQotK3sKLSsgIGlmIChm b28gKCkgIT0gNSkKLSsgICAgYWJvcnQgKCk7Ci0rICByZXR1cm4gMDsKLSt9Ci0rCi0rLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJwcjI5NjA5LTEuYzoxOCIgfSB9ICovCi0tLS0gZ2Nj L3Rlc3RzdWl0ZS9nY2MuZGcvZGVidWcvZHdhcmYyL3ByMzY2OTAtMy5jCShyZXZpc2lvbiAwKQot KysrIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL2RlYnVnL2R3YXJmMi9wcjM2NjkwLTMuYwkocmV2aXNp b24gMTQwOTQ4KQotQEAgLTAsMCArMSw1MyBAQAotKy8qIFBSIGRlYnVnLzM2NjkwICovCi0rLyog eyBkZy1kbyBjb21waWxlIH0gKi8KLSsvKiB7IGRnLW9wdGlvbnMgIi1PMCAtZ2R3YXJmLTIgLWRB IiB9ICovCi0rCi0raW50IGNudDsKLSsKLSt2b2lkCi0rYmFyIChpbnQgaSkKLSt7Ci0rICBjbnQg Kz0gaTsKLSt9Ci0rCi0rdm9pZAotK2ZvbyAoaW50IGksIGludCBqKQotK3sKLSsgIGlmIChqKQot KyAgICB7Ci0rICAgICAgYmFyIChpICsgMSk7Ci0rICAgICAgZ290byBmMTsKLSsgICAgfQotKyAg YmFyIChpICsgMik7Ci0rICBnb3RvIGYyOwotK2YxOgotKyAgaWYgKGkgPiAxMCkKLSsgICAgZ290 byBmMzsKLStmMjoKLSsgIGlmIChpID4gNDApCi0rICAgIGdvdG8gZjQ7Ci0rICBlbHNlCi0rICAg IGdvdG8gZjU7Ci0rZjM6Ci0rICBiYXIgKGkpOwotK2Y0OgotKyAgYmFyIChpKTsKLStmNToKLSsg IGJhciAoaSk7Ci0rfQotKwotK2ludAotK21haW4gKHZvaWQpCi0rewotKyAgZm9vICgwLCAxKTsK LSsgIGZvbyAoMTEsIDEpOwotKyAgZm9vICgyMSwgMCk7Ci0rICBmb28gKDQxLCAwKTsKLSsgIHJl dHVybiAwOwotK30KLSsKLSsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInByMzY2OTAt My5jOjE5IiB9IH0gKi8KLSsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInByMzY2OTAt My5jOjIyIiB9IH0gKi8KLSsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInByMzY2OTAt My5jOjI1IiB9IH0gKi8KLSsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInByMzY2OTAt My5jOjI4IiB9IH0gKi8KLSsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInByMzY2OTAt My5jOjMwIiB9IH0gKi8KLS0tLSBnY2MvdGVzdHN1aXRlL2djYy5kZy9kZWJ1Zy9kd2FyZjIvcHIy OTYwOS0yLmMJKHJldmlzaW9uIDApCi0rKysgZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvZGVidWcvZHdh cmYyL3ByMjk2MDktMi5jCShyZXZpc2lvbiAxNDA5NDgpCi1AQCAtMCwwICsxLDUzIEBACi0rLyog UFIgZGVidWcvMjk2MDkgKi8KLSsvKiBWZXJpZnkgdGhhdCBicmVha3BvaW50IG9uIGJvdGggZ290 byBmYWlsdXJlOyBzdG10cyBpcyBoaXQuICAqLwotKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCi0r LyogeyBkZy1vcHRpb25zICItTzAgLWdkd2FyZi0yIC1kQSIgfSAqLwotKwotK2V4dGVybiB2b2lk IGFib3J0ICh2b2lkKTsKLStpbnQgeDsKLSsKLStpbnQKLStmb28gKHZvaWQpCi0rewotKyAgcmV0 dXJuIDAgXiB4OwotK30KLSsKLStpbnQKLStiYXIgKHZvaWQpCi0rewotKyAgcmV0dXJuIDEgXiB4 OwotK30KLSsKLStpbnQKLStiYXogKHZvaWQpCi0rewotKyAgaW50IGM7Ci0rCi0rICBpZiAoIWZv byAoKSkKLSsgICAgZ290byBmYWlsdXJlOwotKwotKyAgaWYgKCFiYXIgKCkpCi0rICAgIGdvdG8g ZmFpbHVyZTsKLSsKLSsgIHJldHVybiAwOwotKwotK2ZhaWx1cmU6Ci0rICByZXR1cm4gMTsKLSt9 Ci0rCi0raW50Ci0rbWFpbiAodm9pZCkKLSt7Ci0rICBpZiAoYmF6ICgpICE9IDEpCi0rICAgIGFi b3J0ICgpOwotKyAgeCA9IDE7Ci0rICBpZiAoYmF6ICgpICE9IDEpCi0rICAgIGFib3J0ICgpOwot KyAgeCA9IDI7Ci0rICBpZiAoYmF6ICgpICE9IDApCi0rICAgIGFib3J0ICgpOwotKyAgcmV0dXJu IDA7Ci0rfQotKwotKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAicHIyOTYwOS0yLmM6 MjciIH0gfSAqLwotKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAicHIyOTYwOS0yLmM6 MzAiIH0gfSAqLwotLS0tIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL2RlYnVnL2R3YXJmMi9wcjM3NjE2 LmMJKHJldmlzaW9uIDApCi0rKysgZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvZGVidWcvZHdhcmYyL3By Mzc2MTYuYwkocmV2aXNpb24gMTQwOTQ4KQotQEAgLTAsMCArMSw0MSBAQAotKy8qIFBSIGRlYnVn LzM3NjE2ICovCi0rLyogVGVzdCB0aGF0IG9uZSBjYW4gcHV0IGJyZWFrcG9pbnRzIG9udG8gY29u dGludWUsIGV4aXRsYWIgYW5kIGJyZWFrCi0rICAgYW5kIGFjdHVhbGx5IHNlZSBwcm9ncmFtIHJl YWNoaW5nIHRob3NlIGJyZWFrcG9pbnRzLiAgKi8KLSsvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLwot Ky8qIHsgZGctb3B0aW9ucyAiLU8wIC1nZHdhcmYtMiAtZEEiIH0gKi8KLSsKLStleHRlcm4gdm9p ZCBhYm9ydCAodm9pZCk7Ci0rCi0raW50Ci0rZm9vIChpbnQgcGFybSkKLSt7Ci0rICBpbnQgdmFy aiwgdmFybTsKLSsKLSsgIGZvciAodmFyaiA9IDA7IHZhcmogPCAxMDsgdmFyaisrKQotKyAgICB7 Ci0rICAgICAgaWYgKHZhcmogPT0gNSkKLSsJY29udGludWU7Ci0rICAgICAgaWYgKHZhcmogPT0g NyAmJiAhcGFybSkKLSsJZ290byBleGl0bGFiOwotKyAgICAgIGlmICh2YXJqID09IDkpCi0rCWJy ZWFrOwotKyAgICAgIHZhcm0gPSB2YXJqOwotKyAgICB9Ci0rCi0rZXhpdGxhYjoKLSsgIHJldHVy biB2YXJtOwotK30KLSsKLStpbnQKLSttYWluICh2b2lkKQotK3sKLSsgIGlmIChmb28gKDApICE9 IDYpCi0rICAgIGFib3J0ICgpOwotKyAgaWYgKGZvbyAoMSkgIT0gOCkKLSsgICAgYWJvcnQgKCk7 Ci0rICByZXR1cm4gMDsKLSt9Ci0rCi0rLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJw cjM3NjE2LmM6MTciIH0gfSAqLwotKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAicHIz NzYxNi5jOjE5IiB9IH0gKi8KLSsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInByMzc2 MTYuYzoyMSIgfSB9ICovCi0tLS0gZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvZGVidWcvcHIzNzYxNi5j CShyZXZpc2lvbiAwKQotKysrIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL2RlYnVnL3ByMzc2MTYuYwko cmV2aXNpb24gMTQwOTQ4KQotQEAgLTAsMCArMSw0MCBAQAotKy8qIFBSIGRlYnVnLzM3NjE2ICov Ci0rLyogVGVzdCB0aGF0IG9uZSBjYW4gcHV0IGJyZWFrcG9pbnRzIG9udG8gY29udGludWUsIGV4 aXRsYWIgYW5kIGJyZWFrCi0rICAgYW5kIGFjdHVhbGx5IHNlZSBwcm9ncmFtIHJlYWNoaW5nIHRo b3NlIGJyZWFrcG9pbnRzLgotKyAgIFRoaXMgdmVyc2lvbiBvZiB0aGUgdGVzdCBqdXN0IGNoZWNr cyB0aGF0IGl0IGNhbiBiZSBjb21waWxlZCwgbGlua2VkCi0rICAgYW5kIGV4ZWN1dGVkLCBmdXJ0 aGVyIHRlc3RpbmcgaXMgZG9uZSBpbiBjb3JyZXNwb25kaW5nIGdjYy5kZy9kd2FyZjIvCi0rICAg dGVzdCBhbmQgaG9wZWZ1bGx5IGluIGdkYiB0ZXN0c3VpdGUuICAqLwotKy8qIHsgZGctZG8gcnVu IH0gKi8KLSsvKiB7IGRnLW9wdGlvbnMgIi1PMCAtZyAtZEEiIH0gKi8KLSsKLStleHRlcm4gdm9p ZCBhYm9ydCAodm9pZCk7Ci0rCi0raW50Ci0rZm9vIChpbnQgcGFybSkKLSt7Ci0rICBpbnQgdmFy aiwgdmFybTsKLSsKLSsgIGZvciAodmFyaiA9IDA7IHZhcmogPCAxMDsgdmFyaisrKQotKyAgICB7 Ci0rICAgICAgaWYgKHZhcmogPT0gNSkKLSsJY29udGludWU7Ci0rICAgICAgaWYgKHZhcmogPT0g NyAmJiAhcGFybSkKLSsJZ290byBleGl0bGFiOwotKyAgICAgIGlmICh2YXJqID09IDkpCi0rCWJy ZWFrOwotKyAgICAgIHZhcm0gPSB2YXJqOwotKyAgICB9Ci0rCi0rZXhpdGxhYjoKLSsgIHJldHVy biB2YXJtOwotK30KLSsKLStpbnQKLSttYWluICh2b2lkKQotK3sKLSsgIGlmIChmb28gKDApICE9 IDYpCi0rICAgIGFib3J0ICgpOwotKyAgaWYgKGZvbyAoMSkgIT0gOCkKLSsgICAgYWJvcnQgKCk7 Ci0rICByZXR1cm4gMDsKLSt9CgpkaWZmIC0tZ2l0IGEvZ2NjNDMtcHIzMjEzOS5wYXRjaCBiL2dj YzQzLXByMzIxMzkucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYzNTY5Njcu LjAwMDAwMDAKLS0tIGEvZ2NjNDMtcHIzMjEzOS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE5 ICswLDAgQEAKLTIwMDctMDYtMDEgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgot Ci0JUFIgdHJlZS1vcHRpbWl6YXRpb24vMzIxMzkKLQkqIGdjYy5jLXRvcnR1cmUvY29tcGlsZS8y MDA3MDUzMS0xLmM6IE5ldyB0ZXN0LgotCi0tLS0gZ2NjL3Rlc3RzdWl0ZS9nY2MuYy10b3J0dXJl L2NvbXBpbGUvMjAwNzA1MzEtMS5jLmpqCTIwMDctMDUtMzEgMTM6NDc6MjIuMDAwMDAwMDAwICsw MjAwCi0rKysgZ2NjL3Rlc3RzdWl0ZS9nY2MuYy10b3J0dXJlL2NvbXBpbGUvMjAwNzA1MzEtMS5j CTIwMDctMDYtMDEgMTA6NTc6MTUuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDExIEBACi0r LyogUFIgdHJlZS1vcHRpbWl6YXRpb24vMzIxMzkgKi8KLStpbnQgZm9vICh2b2lkKTsKLStpbnQg YmFyICh2b2lkKSBfX2F0dHJpYnV0ZV9fICgoY29uc3QpKTsKLSsKLStpbnQKLSt0ZXN0IChpbnQg eCkKLSt7Ci0rICBpbnQgYSA9ICh4ID09IDEwMDAwID8gZm9vIDogYmFyKSAoKTsKLSsgIGludCBi ID0gKHggPT0gMTAwMDAgPyBmb28gOiBiYXIpICgpOwotKyAgcmV0dXJuIGEgKyBiOwotK30KCmRp ZmYgLS1naXQgYS9nY2M0My1wcjMzNzYzLnBhdGNoIGIvZ2NjNDMtcHIzMzc2My5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWU5YzkwZC4uMDAwMDAwMAotLS0gYS9nY2M0My1w cjMzNzYzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTUzICswLDAgQEAKLTIwMDctMTEtMDYg IEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgotCi0JUFIgdHJlZS1vcHRpbWl6YXRp b24vMzM3NjMKLQkqIGdjYy5kZy9wcjMzNzYzLmM6IE5ldyB0ZXN0LgotCSogZysrLmRnL29wdC9p bmxpbmUxMy5DOiBOZXcgdGVzdC4KLQotMjAwNy0xMS0wNiAgSmFuIEh1Ymlja2EgIDxqaEBzdXNl LmN6PgotCi0JUFIgdHJlZS1vcHRpbWl6YXRpb24vMzM3NjMKLQkqIHRyZWUtaW5saW5lLmMgKGV4 cGFuZF9jYWxsX2lubGluZSk6IFNpbGVudGx5IGlnbm9yZSBhbHdheXNfaW5saW5lCi0JYXR0cmli dXRlIGZvciByZWRlZmluZWQgZXh0ZXJuIGlubGluZSBmdW5jdGlvbnMuCi0KLS0tLSBnY2MvdHJl ZS1pbmxpbmUuYy5qagkyMDA3LTExLTA2IDA5OjI5OjA0LjAwMDAwMDAwMCArMDEwMAotKysrIGdj Yy90cmVlLWlubGluZS5jCTIwMDctMTEtMDYgMTY6MTk6MTIuMDAwMDAwMDAwICswMTAwCi1AQCAt MjU4Miw2ICsyNTgyLDEyIEBAIGV4cGFuZF9jYWxsX2lubGluZSAoYmFzaWNfYmxvY2sgYmIsIHRy ZWUKLSAgIGlmICghY2dyYXBoX2lubGluZV9wIChjZ19lZGdlLCAmcmVhc29uKSkKLSAgICAgewot ICAgICAgIGlmIChsb29rdXBfYXR0cmlidXRlICgiYWx3YXlzX2lubGluZSIsIERFQ0xfQVRUUklC VVRFUyAoZm4pKQotKwkvKiBGb3IgZXh0ZXJuIGlubGluZSBmdW5jdGlvbnMgdGhhdCBnZXQgcmVk ZWZpbmVkIHdlIGFsd2F5cwotKwkgICBzaWxlbnRseSBpZ25vcmVkIGFsd2F5X2lubGluZSBmbGFn LiBCZXR0ZXIgYmVoYXZpb3VyIHdvdWxkCi0rCSAgIGJlIHRvIGJlIGFibGUgdG8ga2VlcCBib3Ro IGJvZGllcyBhbmQgdXNlIGV4dGVybiBpbmxpbmUgYm9keQotKwkgICBmb3IgaW5saW5pbmcsIGJ1 dCB3ZSBjYW4ndCBkbyB0aGF0IGJlY2F1c2UgZnJvbnRlbmRzIG92ZXJ3cml0ZQotKwkgICB0aGUg Ym9keS4gICovCi0rCSAgJiYgIWNnX2VkZ2UtPmNhbGxlZS0+bG9jYWwucmVkZWZpbmVkX2V4dGVy bl9pbmxpbmUKLSAJICAvKiBBdm9pZCB3YXJuaW5ncyBkdXJpbmcgZWFybHkgaW5saW5lIHBhc3Mu ICovCi0gCSAgJiYgKCFmbGFnX3VuaXRfYXRfYV90aW1lIHx8IGNncmFwaF9nbG9iYWxfaW5mb19y ZWFkeSkpCi0gCXsKLS0tLSBnY2MvdGVzdHN1aXRlL2djYy5kZy9wcjMzNzYzLmMuamoJMjAwNy0x MS0wNiAxNjoxOToxMi4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnY2MvdGVzdHN1aXRlL2djYy5kZy9w cjMzNzYzLmMJMjAwNy0xMS0wNiAxNjoxOToxMi4wMDAwMDAwMDAgKzAxMDAKLUBAIC0wLDAgKzEs NjAgQEAKLSsvKiBQUiB0cmVlLW9wdGltaXphdGlvbi8zMzc2MyAqLwotKy8qIHsgZGctZG8gY29t cGlsZSB9ICovCi0rLyogeyBkZy1vcHRpb25zICItTzIiIH0gKi8KLSsKLSt0eXBlZGVmIHN0cnVj dAotK3sKLSsgIHZvaWQgKmE7Ci0rICB2b2lkICpiOwotK30gVDsKLStleHRlcm4gdm9pZCAqZm9v IChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKik7Ci0rZXh0ZXJuIHZvaWQgKmJhciAodm9pZCAq LCBjb25zdCBjaGFyICosIFQpOwotK2V4dGVybiBpbnQgYmF6IChjb25zdCBjaGFyICosIGludCk7 Ci0rCi0rZXh0ZXJuIGlubGluZSBfX2F0dHJpYnV0ZV9fICgoYWx3YXlzX2lubGluZSwgZ251X2lu bGluZSkpIGludAotK2JheiAoY29uc3QgY2hhciAqeCwgaW50IHkpCi0rewotKyAgcmV0dXJuIDI7 Ci0rfQotKwotK2ludAotK2JheiAoY29uc3QgY2hhciAqeCwgaW50IHkpCi0rewotKyAgcmV0dXJu IDE7Ci0rfQotKwotK2ludCB4YSwgeGI7Ci0rCi0rc3RhdGljIHZvaWQgKgotK2lubCAoY29uc3Qg Y2hhciAqeCwgY29uc3QgY2hhciAqeSkKLSt7Ci0rICBUIHQgPSB7ICZ4YSwgJnhiIH07Ci0rICBp bnQgKmYgPSAoaW50ICopIF9fYnVpbHRpbl9tYWxsb2MgKHNpemVvZiAoaW50KSk7Ci0rICBjb25z dCBjaGFyICp6OwotKyAgaW50IG8gPSAwOwotKyAgdm9pZCAqciA9IDA7Ci0rCi0rICBmb3IgKHog PSB5OyAqejsgeisrKQotKyAgICB7Ci0rICAgICAgaWYgKCp6ID09ICdyJykKLSsJbyB8PSAxOwot KyAgICAgIGlmICgqeiA9PSAndycpCi0rCW8gfD0gMjsKLSsgICAgfQotKyAgaWYgKG8gPT0gMSkK LSsgICAgKmYgPSBiYXogKHgsIDApOwotKyAgaWYgKG8gPT0gMikKLSsgICAgKmYgPSBiYXogKHgs IDEpOwotKyAgaWYgKG8gPT0gMykKLSsgICAgKmYgPSBiYXogKHgsIDIpOwotKwotKyAgaWYgKG8g JiYgKmYgPiAwKQotKyAgICByID0gYmFyIChmLCAidyIsIHQpOwotKyAgcmV0dXJuIHI7Ci0rfQot KwotK3ZvaWQgKgotK2ZvbyAoY29uc3QgY2hhciAqeCwgY29uc3QgY2hhciAqeSkKLSt7Ci0rICBy ZXR1cm4gaW5sICh4LCB5KTsKLSt9Ci0tLS0gZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvb3B0L2lubGlu ZTEzLkMuamoJMjAwNy0xMS0wNiAxNjoyMDoyMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnY2MvdGVz dHN1aXRlL2crKy5kZy9vcHQvaW5saW5lMTMuQwkyMDA3LTExLTA2IDE2OjIxOjMwLjAwMDAwMDAw MCArMDEwMAotQEAgLTAsMCArMSw2MCBAQAotKy8vIFBSIHRyZWUtb3B0aW1pemF0aW9uLzMzNzYz Ci0rLy8geyBkZy1kbyBjb21waWxlIH0KLSsvLyB7IGRnLW9wdGlvbnMgIi1PMiIgfQotKwotK3R5 cGVkZWYgc3RydWN0Ci0rewotKyAgdm9pZCAqYTsKLSsgIHZvaWQgKmI7Ci0rfSBUOwotK2V4dGVy biB2b2lkICpmb28gKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsKLStleHRlcm4gdm9pZCAq YmFyICh2b2lkICosIGNvbnN0IGNoYXIgKiwgVCk7Ci0rZXh0ZXJuIGludCBiYXogKGNvbnN0IGNo YXIgKiwgaW50KTsKLSsKLStleHRlcm4gaW5saW5lIF9fYXR0cmlidXRlX18gKChhbHdheXNfaW5s aW5lLCBnbnVfaW5saW5lKSkgaW50Ci0rYmF6IChjb25zdCBjaGFyICp4LCBpbnQgeSkKLSt7Ci0r ICByZXR1cm4gMjsKLSt9Ci0rCi0raW50Ci0rYmF6IChjb25zdCBjaGFyICp4LCBpbnQgeSkKLSt7 Ci0rICByZXR1cm4gMTsKLSt9Ci0rCi0raW50IHhhLCB4YjsKLSsKLStzdGF0aWMgdm9pZCAqCi0r aW5sIChjb25zdCBjaGFyICp4LCBjb25zdCBjaGFyICp5KQotK3sKLSsgIFQgdCA9IHsgJnhhLCAm eGIgfTsKLSsgIGludCAqZiA9IChpbnQgKikgX19idWlsdGluX21hbGxvYyAoc2l6ZW9mIChpbnQp KTsKLSsgIGNvbnN0IGNoYXIgKno7Ci0rICBpbnQgbyA9IDA7Ci0rICB2b2lkICpyID0gMDsKLSsK LSsgIGZvciAoeiA9IHk7ICp6OyB6KyspCi0rICAgIHsKLSsgICAgICBpZiAoKnogPT0gJ3InKQot KwlvIHw9IDE7Ci0rICAgICAgaWYgKCp6ID09ICd3JykKLSsJbyB8PSAyOwotKyAgICB9Ci0rICBp ZiAobyA9PSAxKQotKyAgICAqZiA9IGJheiAoeCwgMCk7Ci0rICBpZiAobyA9PSAyKQotKyAgICAq ZiA9IGJheiAoeCwgMSk7Ci0rICBpZiAobyA9PSAzKQotKyAgICAqZiA9IGJheiAoeCwgMik7Ci0r Ci0rICBpZiAobyAmJiAqZiA+IDApCi0rICAgIHIgPSBiYXIgKGYsICJ3IiwgdCk7Ci0rICByZXR1 cm4gcjsKLSt9Ci0rCi0rdm9pZCAqCi0rZm9vIChjb25zdCBjaGFyICp4LCBjb25zdCBjaGFyICp5 KQotK3sKLSsgIHJldHVybiBpbmwgKHgsIHkpOwotK30KCmRpZmYgLS1naXQgYS9nY2M0My1wcjM0 MDM3LnBhdGNoIGIvZ2NjNDMtcHIzNDAzNy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMmM1YTE2My4uMDAwMDAwMAotLS0gYS9nY2M0My1wcjM0MDM3LnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsMTE4ICswLDAgQEAKLTIwMDgtMDktMTEgIEpha3ViIEplbGluZWsgIDxqYWt1 YkByZWRoYXQuY29tPgotCi0JUFIgZGVidWcvMzQwMzcKLQkqIGdpbXBsaWZ5LmMgKGdpbXBsaWZ5 X3R5cGVfc2l6ZXMpOiBXaGVuIG5vdCBvcHRpbWl6aW5nLCBlbnN1cmUKLQlUWVBFX01JTl9WQUxV RSBhbmQgVFlQRV9NQVhfVkFMVUUgaXMgbm90IGlzIG5vdCBERUNMX0lHTk9SRURfUAotCVZBUl9E RUNMLgotCSogY2ZnZXhwYW5kLmMgKGV4cGFuZF91c2VkX3ZhcnMpOiBLZWVwIERFQ0xfQVJUSUZJ Q0lBTAotCSFERUNMX0lHTk9SRURfUCB2YXJzIGluIHVuZXhwYW5kZWRfdmFyX2xpc3QgbGlzdCBm b3IgaW5zdGFudGlhdGVfZGVjbHMsCi0JZ2djX2ZyZWUgb3RoZXIgVFJFRV9MSVNUIG5vZGVzIGZy b20gdGhhdCBjaGFpbi4KLQkqIGZ1bmN0aW9uLmMgKGluc3RhbnRpYXRlX2RlY2xzKTogSW5zdGFu dGlhdGUgYWxzbyBERUNMX1JUTAotCW9mIHZhcnMgaW4gY2Z1bi0+dW5leHBhbmRlZF92YXJfbGlz dCwgZnJlZSB0aGF0IGxpc3QgYWZ0ZXJ3YXJkcy4KLQotLS0tIGdjYy9naW1wbGlmeS5jLmpqCTIw MDgtMDktMTAgMjA6NTA6MTEuMDAwMDAwMDAwICswMjAwCi0rKysgZ2NjL2dpbXBsaWZ5LmMJMjAw OC0wOS0xMSAxMzo1NDoyMi4wMDAwMDAwMDAgKzAyMDAKLUBAIC03MTA1LDYgKzcxMDUsMTggQEAg Z2ltcGxpZnlfdHlwZV9zaXplcyAodHJlZSB0eXBlLCBnaW1wbGVfcwotICAgICAgIC8qIFRoZXNl IHR5cGVzIG1heSBub3QgaGF2ZSBkZWNsYXJhdGlvbnMsIHNvIGhhbmRsZSB0aGVtIGhlcmUuICAq LwotICAgICAgIGdpbXBsaWZ5X3R5cGVfc2l6ZXMgKFRSRUVfVFlQRSAodHlwZSksIGxpc3RfcCk7 Ci0gICAgICAgZ2ltcGxpZnlfdHlwZV9zaXplcyAoVFlQRV9ET01BSU4gKHR5cGUpLCBsaXN0X3Ap OwotKyAgICAgIC8qIFdoZW4gbm90IG9wdGltaXppbmcsIGVuc3VyZSBWTEEgYm91bmRzIGFyZW4n dCByZW1vdmVkLiAgKi8KLSsgICAgICBpZiAoIW9wdGltaXplCi0rCSAgJiYgVFlQRV9ET01BSU4g KHR5cGUpCi0rCSAgJiYgSU5URUdSQUxfVFlQRV9QIChUWVBFX0RPTUFJTiAodHlwZSkpKQotKwl7 Ci0rCSAgdCA9IFRZUEVfTUlOX1ZBTFVFIChUWVBFX0RPTUFJTiAodHlwZSkpOwotKwkgIGlmICh0 ICYmIFRSRUVfQ09ERSAodCkgPT0gVkFSX0RFQ0wgJiYgREVDTF9BUlRJRklDSUFMICh0KSkKLSsJ ICAgIERFQ0xfSUdOT1JFRF9QICh0KSA9IDA7Ci0rCSAgdCA9IFRZUEVfTUFYX1ZBTFVFIChUWVBF X0RPTUFJTiAodHlwZSkpOwotKwkgIGlmICh0ICYmIFRSRUVfQ09ERSAodCkgPT0gVkFSX0RFQ0wg JiYgREVDTF9BUlRJRklDSUFMICh0KSkKLSsJICAgIERFQ0xfSUdOT1JFRF9QICh0KSA9IDA7Ci0r CX0KLSAgICAgICBicmVhazsKLSAKLSAgICAgY2FzZSBSRUNPUkRfVFlQRToKLS0tLSBnY2MvY2Zn ZXhwYW5kLmMuamoJMjAwOC0wOS0wOSAxNjowODowNC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnY2Mv Y2ZnZXhwYW5kLmMJMjAwOC0wOS0xMSAxNTowMTowMC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0xNDQw LDcgKzE0NDAsNyBAQCBlc3RpbWF0ZWRfc3RhY2tfZnJhbWVfc2l6ZSAodm9pZCkKLSBzdGF0aWMg dm9pZAotIGV4cGFuZF91c2VkX3ZhcnMgKHZvaWQpCi0gewotLSAgdHJlZSB0LCBvdXRlcl9ibG9j ayA9IERFQ0xfSU5JVElBTCAoY3VycmVudF9mdW5jdGlvbl9kZWNsKTsKLSsgIHRyZWUgdCwgbmV4 dCwgb3V0ZXJfYmxvY2sgPSBERUNMX0lOSVRJQUwgKGN1cnJlbnRfZnVuY3Rpb25fZGVjbCk7Ci0g Ci0gICAvKiBDb21wdXRlIHRoZSBwaGFzZSBvZiB0aGUgc3RhY2sgZnJhbWUgZm9yIHRoaXMgZnVu Y3Rpb24uICAqLwotICAgewotQEAgLTE0NTMsMTEgKzE0NTMsMTUgQEAgZXhwYW5kX3VzZWRfdmFy cyAodm9pZCkKLSAKLSAgIC8qIEF0IHRoaXMgcG9pbnQgYWxsIHZhcmlhYmxlcyBvbiB0aGUgdW5l eHBhbmRlZF92YXJfbGlzdCB3aXRoIFRSRUVfVVNFRAotICAgICAgc2V0IGFyZSBub3QgYXNzb2Np YXRlZCB3aXRoIGFueSBibG9jayBzY29wZS4gIExheSB0aGVtIG91dC4gICovCi0tICBmb3IgKHQg PSBjZnVuLT51bmV4cGFuZGVkX3Zhcl9saXN0OyB0OyB0ID0gVFJFRV9DSEFJTiAodCkpCi0rICB0 ID0gY2Z1bi0+dW5leHBhbmRlZF92YXJfbGlzdDsKLSsgIGNmdW4tPnVuZXhwYW5kZWRfdmFyX2xp c3QgPSBOVUxMX1RSRUU7Ci0rICBmb3IgKDsgdDsgdCA9IG5leHQpCi0gICAgIHsKLSAgICAgICB0 cmVlIHZhciA9IFRSRUVfVkFMVUUgKHQpOwotICAgICAgIGJvb2wgZXhwYW5kX25vdyA9IGZhbHNl OwotIAotKyAgICAgIG5leHQgPSBUUkVFX0NIQUlOICh0KTsKLSsKLSAgICAgICAvKiBXZSBkaWRu J3Qgc2V0IGEgYmxvY2sgZm9yIHN0YXRpYyBvciBleHRlcm4gYmVjYXVzZSBpdCdzIGhhcmQKLSAJ IHRvIHRlbGwgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBhIGdsb2JhbCB2YXJpYWJsZSAocmUpZGVj bGFyZWQKLSAJIGluIGEgbG9jYWwgc2NvcGUsIGFuZCBvbmUgdGhhdCdzIHJlYWxseSBkZWNsYXJl ZCB0aGVyZSB0bwotQEAgLTE0ODQsOSArMTQ4OCwyNSBAQCBleHBhbmRfdXNlZF92YXJzICh2b2lk KQotICAgICAgIFRSRUVfVVNFRCAodmFyKSA9IDE7Ci0gCi0gICAgICAgaWYgKGV4cGFuZF9ub3cp Ci0tCWV4cGFuZF9vbmVfdmFyICh2YXIsIHRydWUsIHRydWUpOwotKwl7Ci0rCSAgZXhwYW5kX29u ZV92YXIgKHZhciwgdHJ1ZSwgdHJ1ZSk7Ci0rCSAgaWYgKERFQ0xfQVJUSUZJQ0lBTCAodmFyKSAm JiAhREVDTF9JR05PUkVEX1AgKHZhcikpCi0rCSAgICB7Ci0rCSAgICAgIHJ0eCBydGwgPSBERUNM X1JUTF9JRl9TRVQgKHZhcik7Ci0rCi0rCSAgICAgIC8qIEtlZXAgYXJ0aWZpY2lhbCBub24taWdu b3JlZCB2YXJzIGluIGNmdW4tPnVuZXhwYW5kZWRfdmFyX2xpc3QKLSsJCSBjaGFpbiB1bnRpbCBp bnN0YW50aWF0ZV9kZWNscy4gICovCi0rCSAgICAgIGlmIChydGwgJiYgKE1FTV9QIChydGwpIHx8 IEdFVF9DT0RFIChydGwpID09IENPTkNBVCkpCi0rCQl7Ci0rCQkgIFRSRUVfQ0hBSU4gKHQpID0g Y2Z1bi0+dW5leHBhbmRlZF92YXJfbGlzdDsKLSsJCSAgY2Z1bi0+dW5leHBhbmRlZF92YXJfbGlz dCA9IHQ7Ci0rCQkgIGNvbnRpbnVlOwotKwkJfQotKwkgICAgfQotKwl9Ci0rCi0rICAgICAgZ2dj X2ZyZWUgKHQpOwotICAgICB9Ci0tICBjZnVuLT51bmV4cGFuZGVkX3Zhcl9saXN0ID0gTlVMTF9U UkVFOwotIAotICAgLyogQXQgdGhpcyBwb2ludCwgYWxsIHZhcmlhYmxlcyB3aXRoaW4gdGhlIGJs b2NrIHRyZWUgd2l0aCBUUkVFX1VTRUQKLSAgICAgIHNldCBhcmUgYWN0dWFsbHkgdXNlZCBieSB0 aGUgb3B0aW1pemVkIGZ1bmN0aW9uLiAgTGF5IHRoZW0gb3V0LiAgKi8KLS0tLSBnY2MvZnVuY3Rp b24uYy5qagkyMDA4LTA5LTA5IDIxOjEzOjI0LjAwMDAwMDAwMCArMDIwMAotKysrIGdjYy9mdW5j dGlvbi5jCTIwMDgtMDktMTEgMTQ6NTY6NDcuMDAwMDAwMDAwICswMjAwCi1AQCAtMTY0NSw3ICsx NjQ1LDcgQEAgaW5zdGFudGlhdGVfZGVjbHNfMSAodHJlZSBsZXQpCi0gc3RhdGljIHZvaWQKLSBp bnN0YW50aWF0ZV9kZWNscyAodHJlZSBmbmRlY2wpCi0gewotLSAgdHJlZSBkZWNsOwotKyAgdHJl ZSBkZWNsLCB0LCBuZXh0OwotIAotICAgLyogUHJvY2VzcyBhbGwgcGFyYW1ldGVycyBvZiB0aGUg ZnVuY3Rpb24uICAqLwotICAgZm9yIChkZWNsID0gREVDTF9BUkdVTUVOVFMgKGZuZGVjbCk7IGRl Y2w7IGRlY2wgPSBUUkVFX0NIQUlOIChkZWNsKSkKLUBAIC0xNjYxLDYgKzE2NjEsMTcgQEAgaW5z dGFudGlhdGVfZGVjbHMgKHRyZWUgZm5kZWNsKQotIAotICAgLyogTm93IHByb2Nlc3MgYWxsIHZh cmlhYmxlcyBkZWZpbmVkIGluIHRoZSBmdW5jdGlvbiBvciBpdHMgc3ViYmxvY2tzLiAgKi8KLSAg IGluc3RhbnRpYXRlX2RlY2xzXzEgKERFQ0xfSU5JVElBTCAoZm5kZWNsKSk7Ci0rCi0rICB0ID0g Y2Z1bi0+dW5leHBhbmRlZF92YXJfbGlzdDsKLSsgIGNmdW4tPnVuZXhwYW5kZWRfdmFyX2xpc3Qg PSBOVUxMX1RSRUU7Ci0rICBmb3IgKDsgdDsgdCA9IG5leHQpCi0rICAgIHsKLSsgICAgICBuZXh0 ID0gVFJFRV9DSEFJTiAodCk7Ci0rICAgICAgZGVjbCA9IFRSRUVfVkFMVUUgKHQpOwotKyAgICAg IGlmIChERUNMX1JUTF9TRVRfUCAoZGVjbCkpCi0rCWluc3RhbnRpYXRlX2RlY2xfcnRsIChERUNM X1JUTCAoZGVjbCkpOwotKyAgICAgIGdnY19mcmVlICh0KTsKLSsgICAgfQotIH0KLSAKLSAvKiBQ YXNzIHRocm91Z2ggdGhlIElOU05TIG9mIGZ1bmN0aW9uIEZOREVDTCBhbmQgY29udmVydCB2aXJ0 dWFsIHJlZ2lzdGVyCgpkaWZmIC0tZ2l0IGEvZ2NjNDMtcHIzNjc0MS1yZXZlcnQucGF0Y2ggYi9n Y2M0My1wcjM2NzQxLXJldmVydC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg NWE2N2Q5Ni4uMDAwMDAwMAotLS0gYS9nY2M0My1wcjM2NzQxLXJldmVydC5wYXRjaAorKysgL2Rl di9udWxsCkBAIC0xLDQ3ICswLDAgQEAKLVJldmVydDoKLTIwMDgtMDgtMjggIERvZGppIFNla2V0 ZWxpICA8ZG9kamlAcmVkaGF0LmNvbT4KLQotCVBSIGMrKy8zNjc0MQotCSogdHJlZS5jIChpbnRf Zml0c190eXBlX3ApOiBEb24ndCBmb3JnZXQgdW5zaWduZWQgaW50ZWdlcnMKLQkgIG9mIHR5cGUg c2l6ZXR5cGUgd2hpY2ggaGlnaGVyIGVuZCB3b3JkIGVxdWFscyAtMS4KLQotCSogZysrLmRnL290 aGVyL25ldy1zaXplLXR5cGUuQzogTmV3IHRlc3QuCi0KLS0tLSBnY2MvdHJlZS5jCShyZXZpc2lv biAxMzk3MTEpCi0rKysgZ2NjL3RyZWUuYwkocmV2aXNpb24gMTM5NzEwKQotQEAgLTYyOTYsMjEg KzYyOTYsNiBAQCBpbnRfZml0c190eXBlX3AgKGNvbnN0X3RyZWUgYywgY29uc3RfdHJlCi0gICAg ICBmb3IgInVua25vd24gaWYgY29uc3RhbnQgZml0cyIsIDAgZm9yICJjb25zdGFudCBrbm93biAq bm90KiB0byBmaXQiIGFuZCAxCi0gICAgICBmb3IgImNvbnN0YW50IGtub3duIHRvIGZpdCIuICAq LwotIAotLSAgaWYgKFRSRUVfVFlQRSAoYykgPT0gc2l6ZXR5cGUKLS0gICAgICAmJiBUWVBFX1VO U0lHTkVEIChUUkVFX1RZUEUgKGMpKQotLSAgICAgICYmIFRSRUVfSU5UX0NTVF9ISUdIIChjKSA9 PSAtMQotLSAgICAgICYmICFUUkVFX09WRVJGTE9XIChjKSkKLS0gICAgICAvKiBTbyBjIGlzIGFu IHVuc2lnbmVkIGludGVnZXIgd2hpY2ggdHlwZSBpcyBzaXpldHlwZS4KLS0gICAgICAgICBzaXpl dHlwZSdkIGludGVnZXJzIGFyZSBzaWduIGV4dGVuZGVkIGV2ZW4gdGhvdWdoIHRoZXkgYXJlCi0t CSB1bnNpZ25lZC4gSWYgdGhlIGludGVnZXIgdmFsdWUgZml0cyBpbiB0aGUgbG93ZXIgZW5kIHdv cmQgb2YgYywKLS0JIGFuZCBpZiB0aGUgaGlnaGVyIGVuZCB3b3JkIGhhcyBhbGwgaXRzIGJpdHMg c2V0IHRvIDEsIHRoYXQKLS0JIG1lYW5zIHRoZSBoaWdoZXIgZW5kIGJpdHMgYXJlIHNldCB0byAx IG9ubHkgZm9yIHNpZ24gZXh0ZW5zaW9uLgotLQkgU28gbGV0J3MgY29udmVydCBjIGludG8gYW4g ZXF1aXZhbGVudCB6ZXJvIGV4dGVuZGVkIHVuc2lnbmVkCi0tCSBpbnRlZ2VyLiAgKi8KLS0gICAg ICBjID0gZm9yY2VfZml0X3R5cGVfZG91YmxlIChzaXplX3R5cGVfbm9kZSwKLS0JCQkJIFRSRUVf SU5UX0NTVF9MT1cgKGMpLAotLQkJCQkgVFJFRV9JTlRfQ1NUX0hJR0ggKGMpLAotLQkJCQkgZmFs c2UsIGZhbHNlKTsKLSAgIC8qIENoZWNrIGlmIEMgPj0gdHlwZV9sb3dfYm91bmQuICAqLwotICAg aWYgKHR5cGVfbG93X2JvdW5kICYmIFRSRUVfQ09ERSAodHlwZV9sb3dfYm91bmQpID09IElOVEVH RVJfQ1NUKQotICAgICB7Ci0tLS0gZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvb3RoZXIvbmV3LXNpemUt dHlwZS5DCShyZXZpc2lvbiAxMzk3MTEpCi0rKysgZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvb3RoZXIv bmV3LXNpemUtdHlwZS5DCShyZXZpc2lvbiAxMzk3MTApCi1AQCAtMSwxMCArMSwxMCBAQAotIC8v IENvbnRyaWJ1dGVkIGJ5IERvZGppIFNla2V0ZWxpIDxkb2RqaUByZWRoYXQuY29tPgotIC8vIE9y aWdpbjogUFIgYysrLzM2NzQxCi0gCi0gI2luY2x1ZGUgPHN0ZGRlZi5oPgotIGNvbnN0IGNoYXIq Ci0gZm9vKCkKLSB7Ci0tICAgIHJldHVybiBuZXcgY2hhclt+c3RhdGljX2Nhc3Q8c2l6ZV90Pigw KV07Ly8geyBkZy1ib2d1cyAibGFyZ2UiIH0KLSsgICAgcmV0dXJuIG5ldyBjaGFyW35zdGF0aWNf Y2FzdDxzaXplX3Q+KDApXTsvLyB7IGRnLWJvZ3VzICJsYXJnZSIgIiIgeyB4ZmFpbCAqLSotKiB9 IH0KLSB9Ci0gCgpkaWZmIC0tZ2l0IGEvZ2NjNDMtcHIzNzE4OS5wYXRjaCBiL2djYzQzLXByMzcx ODkucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJlNjFmM2QuLjAwMDAwMDAK LS0tIGEvZ2NjNDMtcHIzNzE4OS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExNyArMCwwIEBA Ci0yMDA4LTA5LTAzICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KLQotCVBSIGMr Ky8zNzE4OQotCSogY3AtdHJlZS5oIChkZWZlcl9tYXJrX3VzZWRfY2FsbHMsIGRlZmVycmVkX21h cmtfdXNlZF9jYWxscyk6IE5ldwotCWV4dGVybiBkZWNscy4KLQkqIGRlY2wyLmMgKG1hcmtfdXNl ZCk6IElmIGRlZmVyX21hcmtfdXNlZF9jYWxscywgcHVzaCBkZWNsIGludG8KLQlkZWZlcnJlZF9t YXJrX3VzZWRfY2FsbHMgdmVjdG9yIGFuZCBleGl0IGVhcmx5LgotCSogZGVjbC5jIChkZWZlcl9t YXJrX3VzZWRfY2FsbHMsIGRlZmVycmVkX21hcmtfdXNlZF9jYWxscyk6IE5ldwotCXZhcmlhYmxl cy4KLQkoZmluaXNoX2Z1bmN0aW9uKTogU2V0IGRlZmVyX21hcmtfdXNlZF9jYWxscyBmb3IgdGhl IGR1cmF0aW9uIG9mIHRoZQotCWZ1bmN0aW9uLiAgQ2FsbCBtYXJrX3VzZWQgb24gYW55IHF1ZXVl ZCBkZWNscy4KLQotCVBSIGMrKy8zNzE4OQotCSogZysrLmRnL2dvbXAvcHIzNzE4OS5DOiBOZXcg dGVzdC4KLQotLS0tIGdjYy9jcC9kZWNsMi5jCShyZXZpc2lvbiAxMzk5NTQpCi0rKysgZ2NjL2Nw L2RlY2wyLmMJKHJldmlzaW9uIDEzOTk1NSkKLUBAIC0zNzc2LDYgKzM3NzYsMTUgQEAgbWFya191 c2VkICh0cmVlIGRlY2wpCi0gICAvKiBJZiB3ZSBkb24ndCBuZWVkIGEgdmFsdWUsIHRoZW4gd2Ug ZG9uJ3QgbmVlZCB0byBzeW50aGVzaXplIERFQ0wuICAqLwotICAgaWYgKHNraXBfZXZhbHVhdGlv bikKLSAgICAgcmV0dXJuOwotKwotKyAgLyogSWYgd2l0aGluIGZpbmlzaF9mdW5jdGlvbiwgZGVm ZXIgdGhlIHJlc3QgdW50aWwgdGhhdCBmdW5jdGlvbgotKyAgICAgZmluaXNoZXMsIG90aGVyd2lz ZSBpdCBtaWdodCByZWN1cnNlLiAgKi8KLSsgIGlmIChkZWZlcl9tYXJrX3VzZWRfY2FsbHMpCi0r ICAgIHsKLSsgICAgICBWRUNfc2FmZV9wdXNoICh0cmVlLCBnYywgZGVmZXJyZWRfbWFya191c2Vk X2NhbGxzLCBkZWNsKTsKLSsgICAgICByZXR1cm47Ci0rICAgIH0KLSsKLSAgIC8qIE5vcm1hbGx5 LCB3ZSBjYW4gd2FpdCB1bnRpbCBpbnN0YW50aWF0aW9uLXRpbWUgdG8gc3ludGhlc2l6ZQotICAg ICAgREVDTC4gIEhvd2V2ZXIsIGlmIERFQ0wgaXMgYSBzdGF0aWMgZGF0YSBtZW1iZXIgaW5pdGlh bGl6ZWQgd2l0aAotICAgICAgYSBjb25zdGFudCwgd2UgbmVlZCB0aGUgdmFsdWUgcmlnaHQgbm93 IGJlY2F1c2UgYSByZWZlcmVuY2UgdG8KLS0tLSBnY2MvY3AvZGVjbC5jCShyZXZpc2lvbiAxMzk5 NTQpCi0rKysgZ2NjL2NwL2RlY2wuYwkocmV2aXNpb24gMTM5OTU1KQotQEAgLTIyNyw2ICsyMjcs MTEgQEAgc3RydWN0IG5hbWVkX2xhYmVsX2VudHJ5IEdUWSgoKSkKLSAgICBmdW5jdGlvbiwgdHdv IGluc2lkZSB0aGUgYm9keSBvZiBhIGZ1bmN0aW9uIGluIGEgbG9jYWwgY2xhc3MsIGV0Yy4pICAq LwotIGludCBmdW5jdGlvbl9kZXB0aDsKLSAKLSsvKiBUbyBhdm9pZCB1bndhbnRlZCByZWN1cnNp b24sIGZpbmlzaF9mdW5jdGlvbiBkZWZlcnMgYWxsIG1hcmtfdXNlZCBjYWxscwotKyAgIGVuY291 bnRlcmVkIGR1cmluZyBpdHMgZXhlY3V0aW9uIHVudGlsIGl0IGZpbmlzaGVzLiAgKi8KLStib29s IGRlZmVyX21hcmtfdXNlZF9jYWxsczsKLStWRUModHJlZSwgZ2MpICpkZWZlcnJlZF9tYXJrX3Vz ZWRfY2FsbHM7Ci0rCi0gLyogU3RhdGVzIGluZGljYXRpbmcgaG93IGdyb2tkZWNsYXJhdG9yKCkg c2hvdWxkIGhhbmRsZSBkZWNsc3BlY3MgbWFya2VkCi0gICAgd2l0aCBfX2F0dHJpYnV0ZV9fKChk ZXByZWNhdGVkKSkuICBBbiBvYmplY3QgZGVjbGFyZWQgYXMKLSAgICBfX2F0dHJpYnV0ZV9fKChk ZXByZWNhdGVkKSkgc3VwcHJlc3NlcyB3YXJuaW5ncyBvZiB1c2VzIG9mIG90aGVyCi1AQCAtMTIw MzMsNiArMTIwMzgsOSBAQCBmaW5pc2hfZnVuY3Rpb24gKGludCBmbGFncykKLSAgIGlmIChmbmRl Y2wgPT0gTlVMTF9UUkVFKQotICAgICByZXR1cm4gZXJyb3JfbWFya19ub2RlOwotIAotKyAgZ2Nj X2Fzc2VydCAoIWRlZmVyX21hcmtfdXNlZF9jYWxscyk7Ci0rICBkZWZlcl9tYXJrX3VzZWRfY2Fs bHMgPSB0cnVlOwotKwotICAgaWYgKERFQ0xfTk9OU1RBVElDX01FTUJFUl9GVU5DVElPTl9QIChm bmRlY2wpCi0gICAgICAgJiYgREVDTF9WSVJUVUFMX1AgKGZuZGVjbCkKLSAgICAgICAmJiAhcHJv Y2Vzc2luZ190ZW1wbGF0ZV9kZWNsKQotQEAgLTEyMjMyLDYgKzEyMjQwLDE3IEBAIGZpbmlzaF9m dW5jdGlvbiAoaW50IGZsYWdzKQotICAgICAgICBjeHhfcG9wX2Z1bmN0aW9uX2NvbnRleHQgYW5k IHRoZW4gcmVzZXQgdmlhIHBvcF9mdW5jdGlvbl9jb250ZXh0LiAgKi8KLSAgICAgY3VycmVudF9m dW5jdGlvbl9kZWNsID0gTlVMTF9UUkVFOwotIAotKyAgZGVmZXJfbWFya191c2VkX2NhbGxzID0g ZmFsc2U7Ci0rICBpZiAoZGVmZXJyZWRfbWFya191c2VkX2NhbGxzKQotKyAgICB7Ci0rICAgICAg dW5zaWduZWQgaW50IGk7Ci0rICAgICAgdHJlZSBkZWNsOwotKwotKyAgICAgIGZvciAoaSA9IDA7 IFZFQ19pdGVyYXRlICh0cmVlLCBkZWZlcnJlZF9tYXJrX3VzZWRfY2FsbHMsIGksIGRlY2wpOyBp KyspCi0rCW1hcmtfdXNlZCAoZGVjbCk7Ci0rICAgICAgVkVDX2ZyZWUgKHRyZWUsIGdjLCBkZWZl cnJlZF9tYXJrX3VzZWRfY2FsbHMpOwotKyAgICB9Ci0rCi0gICByZXR1cm4gZm5kZWNsOwotIH0K LSAMCi0tLS0gZ2NjL2NwL2NwLXRyZWUuaAkocmV2aXNpb24gMTM5OTU0KQotKysrIGdjYy9jcC9j cC10cmVlLmgJKHJldmlzaW9uIDEzOTk1NSkKLUBAIC00MzgxLDYgKzQzODEsOSBAQCBleHRlcm4g dm9pZCBpbml0aWFsaXplX2FydGlmaWNpYWxfdmFyCQkoCi0gZXh0ZXJuIHRyZWUgY2hlY2tfdmFy X3R5cGUJCQkodHJlZSwgdHJlZSk7Ci0gZXh0ZXJuIHRyZWUgcmVzaGFwZV9pbml0ICh0cmVlLCB0 cmVlKTsKLSAKLStleHRlcm4gYm9vbCBkZWZlcl9tYXJrX3VzZWRfY2FsbHM7Ci0rZXh0ZXJuIEdU WSgoKSkgVkVDKHRyZWUsIGdjKSAqZGVmZXJyZWRfbWFya191c2VkX2NhbGxzOwotKwotIC8qIGlu IGRlY2wyLmMgKi8KLSBleHRlcm4gYm9vbCBjaGVja19qYXZhX21ldGhvZAkJCSh0cmVlKTsKLSBl eHRlcm4gdHJlZSBidWlsZF9tZW1mbl90eXBlCQkJKHRyZWUsIHRyZWUsIGNwX2N2X3F1YWxzKTsK LS0tLSBnY2MvdGVzdHN1aXRlL2crKy5kZy9nb21wL3ByMzcxODkuQwkocmV2aXNpb24gMCkKLSsr KyBnY2MvdGVzdHN1aXRlL2crKy5kZy9nb21wL3ByMzcxODkuQwkocmV2aXNpb24gMTM5OTU1KQot QEAgLTAsMCArMSwyNyBAQAotKy8vIFBSIGMrKy8zNzE4OQotKy8vIHsgZGctZG8gY29tcGlsZSB9 Ci0rLy8geyBkZy1vcHRpb25zICItZm9wZW5tcCIgfQotKwotK3N0cnVjdCBTCi0rewotKyAgUyAo KSB7fQotKyAgUyAoUyBjb25zdCAmKSB7fQotK307Ci0rCi0rc3RydWN0IFQKLSt7Ci0rICBTIHM7 Ci0rfTsKLSsKLSt2b2lkCi0rYmFyIChUICYpCi0rewotK30KLSsKLStpbnQKLStmb28gKCkKLSt7 Ci0rICBUIHQ7Ci0rICAjcHJhZ21hIG9tcCB0YXNrCi0rICAgIGJhciAodCk7Ci0rfQoKZGlmZiAt LWdpdCBhL2djYzQzLXByMzc3MzgucGF0Y2ggYi9nY2M0My1wcjM3NzM4LnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MGMzMjM1Li4wMDAwMDAwCi0tLSBhL2djYzQzLXByMzc3 MzgucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNzYgKzAsMCBAQAotMjAwOC0xMC0wNyAgSmFr dWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+Ci0KLQkqIGY5NS1sYW5nLmMgKHBvcGxldmVs KTogRG9uJ3QgY2xlYXIgQkxPQ0tfVkFSUyBpZiBmdW5jdGlvbmJvZHkuCi0JKiB0cmFucy1kZWNs LmMgKGdmY19idWlsZF9xdWFsaWZpZWRfYXJyYXkpOiBCdWlsZCBhY2N1cmF0ZSBkZWJ1ZyB0eXBl Ci0JZXZlbiBpZiBuZXN0LgotCShidWlsZF9lbnRyeV90aHVua3MsIGdmY19nZW5lcmF0ZV9mdW5j dGlvbl9jb2RlLAotCWdmY19nZW5lcmF0ZV9jb25zdHJ1Y3RvcnMpOiBFbnN1cmUgREVDTF9TQVZF RF9UUkVFIGlzIGEgQklORF9FWFBSCi0Jd2l0aCBERUNMX0lOSVRJQUwgYXMgaXRzIEJMT0NLLgot Ci0JUFIgZGVidWcvMzc3MzgKLQkqIGR3YXJmMm91dC5jIChjb21tb25fYmxvY2tfZGllX3RhYmxl KTogTmV3IHZhcmlhYmxlLgotCShjb21tb25fYmxvY2tfZGllX3RhYmxlX2hhc2gsIGNvbW1vbl9i bG9ja19kaWVfdGFibGVfZXEpOiBOZXcKLQlmdW5jdGlvbnMuCi0JKGdlbl92YXJpYWJsZV9kaWUp OiBMb29rIHVwIGEgRFdfVEFHX2NvbW1vbl9ibG9jayBkaWUgZm9yIGEgcGFydGljdWxhcgotCUNP TU1PTiBibG9jayBpbiB0aGUgY3VycmVudCBzY29wZSByYXRoZXIgdGhhbiBnbG9iYWxseS4gIE9w dGltaXplCi0JRFdfT1BfYWRkciBTWU1CT0xfUkVGIERXX09QX3BsdXNfdWNvbnN0IG9mZiBpbnRv Ci0JRFdfT1BfYWRkciBTWU1CT0xfUkVGK29mZi4KLQotCSogZ2ZvcnRyYW4uZGcvZGVidWcvcHIz NzczOC5mOiBOZXcgdGVzdC4KLQotLS0tIGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVidWcv cHIzNzczOC5mCShyZXZpc2lvbiAwKQotKysrIGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVi dWcvcHIzNzczOC5mCShyZXZpc2lvbiAxNDA5NDUpCi1AQCAtMCwwICsxLDMwIEBACi0rQyBQUiBk ZWJ1Zy8zNzczOAotK0MgeyBkZy1kbyBjb21waWxlIH0KLStDIHsgZGctc2tpcC1pZiAiRFdBUkYt MiBvbmx5IiB7ICIqLSotKiIgfSB7ICIqIiB9IHsgIi1nZHdhcmYtMiIgfSB9Ci0rQyB7IGRnLW9w dGlvbnMgIi1kQSIgfQotKwotKyAgICAgIHN1YnJvdXRpbmUgYQotKyAgICAgIGludGVnZXIqNCBh X2ksIGNfaQotKyAgICAgIGNvbW1vbiAvYmxvY2svYV9pLCBjX2kKLSsgICAgICBhX2kgPSAxCi0r ICAgICAgY19pID0gNAotKyAgICAgIGVuZCBzdWJyb3V0aW5lIGEKLSsgICAgICBzdWJyb3V0aW5l IGIKLSsgICAgICBpbnRlZ2VyKjQgYl9pCi0rICAgICAgY29tbW9uIC9ibG9jay9iX2ksIGRfaQot KyAgICAgIGJfaSA9IDIKLSsgICAgICBkX2kgPSA1Ci0rICAgICAgZW5kIHN1YnJvdXRpbmUgYgot KyAgICAgIHN1YnJvdXRpbmUgYwotKyAgICAgIGludGVnZXIqNCBhX2ksIGNfaQotKyAgICAgIGNv bW1vbiAvYmxvY2svYV9pLCBjX2kKLSsgICAgICBpZiAoYV9pIC5uZS4gMikgY2FsbCBhYm9ydAot KyAgICAgIGlmIChjX2kgLm5lLiA1KSBjYWxsIGFib3J0Ci0rICAgICAgZW5kIHN1YnJvdXRpbmUg YwotKyAgICAgIHByb2dyYW0gYWJjCi0rICAgICAgY2FsbCBhCi0rICAgICAgY2FsbCBiCi0rICAg ICAgY2FsbCBjCi0rICAgICAgZW5kIHByb2dyYW0gYWJjCi0rCi0rQyB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMgIkRJRVxbXlxuXF0qRFdfVEFHX2NvbW1vbl9ibG9jayIgMyB9IH0K LS0tLSBnY2MvZHdhcmYyb3V0LmMJKHJldmlzaW9uIDE0MDk0MykKLSsrKyBnY2MvZHdhcmYyb3V0 LmMJKHJldmlzaW9uIDE0MDk0NSkKLUBAIC00NzQ4LDYgKzQ3NDgsMTAgQEAgc3RhdGljIEdUWSgo cGFyYW1faXMgKHN0cnVjdCBkd2FyZl9maWxlXwotICAgIFRoZSBrZXkgaXMgYSBERUNMX1VJRCgp IHdoaWNoIGlzIGEgdW5pcXVlIG51bWJlciBpZGVudGlmeWluZyBlYWNoIGRlY2wuICAqLwotIHN0 YXRpYyBHVFkgKChwYXJhbV9pcyAoc3RydWN0IGRpZV9zdHJ1Y3QpKSkgaHRhYl90IGRlY2xfZGll X3RhYmxlOwotIAotKy8qIEEgaGFzaCB0YWJsZSBvZiByZWZlcmVuY2VzIHRvIERJRSdzIHRoYXQg ZGVzY3JpYmUgQ09NTU9OIGJsb2Nrcy4KLSsgICBUaGUga2V5IGlzIERFQ0xfVUlEKCkgXiBkaWVf cGFyZW50LiAgKi8KLStzdGF0aWMgR1RZICgocGFyYW1faXMgKHN0cnVjdCBkaWVfc3RydWN0KSkp IGh0YWJfdCBjb21tb25fYmxvY2tfZGllX3RhYmxlOwotKwotIC8qIE5vZGUgb2YgdGhlIHZhcmlh YmxlIGxvY2F0aW9uIGxpc3QuICAqLwotIHN0cnVjdCB2YXJfbG9jX25vZGUgR1RZICgoY2hhaW5f bmV4dCAoIiVoLm5leHQiKSkpCi0gewotQEAgLTQ5NjAsNiArNDk2NCw4IEBAIHN0YXRpYyB2b2lk IGVxdWF0ZV90eXBlX251bWJlcl90b19kaWUgKHQKLSBzdGF0aWMgaGFzaHZhbF90IGRlY2xfZGll X3RhYmxlX2hhc2ggKGNvbnN0IHZvaWQgKik7Ci0gc3RhdGljIGludCBkZWNsX2RpZV90YWJsZV9l cSAoY29uc3Qgdm9pZCAqLCBjb25zdCB2b2lkICopOwotIHN0YXRpYyBkd19kaWVfcmVmIGxvb2t1 cF9kZWNsX2RpZSAodHJlZSk7Ci0rc3RhdGljIGhhc2h2YWxfdCBjb21tb25fYmxvY2tfZGllX3Rh YmxlX2hhc2ggKGNvbnN0IHZvaWQgKik7Ci0rc3RhdGljIGludCBjb21tb25fYmxvY2tfZGllX3Rh YmxlX2VxIChjb25zdCB2b2lkICosIGNvbnN0IHZvaWQgKik7Ci0gc3RhdGljIGhhc2h2YWxfdCBk ZWNsX2xvY190YWJsZV9oYXNoIChjb25zdCB2b2lkICopOwotIHN0YXRpYyBpbnQgZGVjbF9sb2Nf dGFibGVfZXEgKGNvbnN0IHZvaWQgKiwgY29uc3Qgdm9pZCAqKTsKLSBzdGF0aWMgdmFyX2xvY19s aXN0ICpsb29rdXBfZGVjbF9sb2MgKGNvbnN0X3RyZWUpOwotQEAgLTEzODEyLDYgKzEzODE4LDI2 IEBAIGdlbl9zdWJwcm9ncmFtX2RpZSAodHJlZSBkZWNsLCBkd19kaWVfcmUKLSAKLSB9Ci0gCi0r LyogUmV0dXJucyBhIGhhc2ggdmFsdWUgZm9yIFggKHdoaWNoIHJlYWxseSBpcyBhIGRpZV9zdHJ1 Y3QpLiAgKi8KLSsKLStzdGF0aWMgaGFzaHZhbF90Ci0rY29tbW9uX2Jsb2NrX2RpZV90YWJsZV9o YXNoIChjb25zdCB2b2lkICp4KQotK3sKLSsgIGNvbnN0X2R3X2RpZV9yZWYgZCA9IChjb25zdF9k d19kaWVfcmVmKSB4OwotKyAgcmV0dXJuIChoYXNodmFsX3QpIGQtPmRlY2xfaWQgXiBodGFiX2hh c2hfcG9pbnRlciAoZC0+ZGllX3BhcmVudCk7Ci0rfQotKwotKy8qIFJldHVybiBub256ZXJvIGlm IGRlY2xfaWQgYW5kIGRpZV9wYXJlbnQgb2YgZGllX3N0cnVjdCBYIGlzIHRoZSBzYW1lCi0rICAg YXMgZGVjbF9pZCBhbmQgZGllX3BhcmVudCBvZiBkaWVfc3RydWN0IFkuICAqLwotKwotK3N0YXRp YyBpbnQKLStjb21tb25fYmxvY2tfZGllX3RhYmxlX2VxIChjb25zdCB2b2lkICp4LCBjb25zdCB2 b2lkICp5KQotK3sKLSsgIGNvbnN0X2R3X2RpZV9yZWYgZCA9IChjb25zdF9kd19kaWVfcmVmKSB4 OwotKyAgY29uc3RfZHdfZGllX3JlZiBlID0gKGNvbnN0X2R3X2RpZV9yZWYpIHk7Ci0rICByZXR1 cm4gZC0+ZGVjbF9pZCA9PSBlLT5kZWNsX2lkICYmIGQtPmRpZV9wYXJlbnQgPT0gZS0+ZGllX3Bh cmVudDsKLSt9Ci0rCi0gLyogR2VuZXJhdGUgYSBESUUgdG8gcmVwcmVzZW50IGEgZGVjbGFyZWQg ZGF0YSBvYmplY3QuICAqLwotIAotIHN0YXRpYyB2b2lkCi1AQCAtMTM4NTMsNiArMTM4NzksNyBA QCBnZW5fdmFyaWFibGVfZGllICh0cmVlIGRlY2wsIGR3X2RpZV9yZWYgCi0gICAgICAgdHJlZSBm aWVsZDsKLSAgICAgICBkd19kaWVfcmVmIGNvbV9kaWU7Ci0gICAgICAgZHdfbG9jX2Rlc2NyX3Jl ZiBsb2M7Ci0rICAgICAgZGllX25vZGUgY29tX2RpZV9hcmc7Ci0gCi0gICAgICAgdmFyX2RpZSA9 IGxvb2t1cF9kZWNsX2RpZSAoZGVjbCk7Ci0gICAgICAgaWYgKHZhcl9kaWUpCi1AQCAtMTM4NjMs MjEgKzEzODkwLDQxIEBAIGdlbl92YXJpYWJsZV9kaWUgKHRyZWUgZGVjbCwgZHdfZGllX3JlZiAK LSAJICAgICAgaWYgKGxvYykKLSAJCXsKLSAJCSAgaWYgKG9mZikKLS0JCSAgICBhZGRfbG9jX2Rl c2NyICgmbG9jLCBuZXdfbG9jX2Rlc2NyIChEV19PUF9wbHVzX3Vjb25zdCwKLSsJCSAgICB7Ci0r CQkgICAgICAvKiBPcHRpbWl6ZSB0aGUgY29tbW9uIGNhc2UuICAqLwotKwkJICAgICAgaWYgKGxv Yy0+ZHdfbG9jX29wYyA9PSBEV19PUF9hZGRyCi0rCQkJICAmJiBsb2MtPmR3X2xvY19uZXh0ID09 IE5VTEwKLSsJCQkgICYmIEdFVF9DT0RFIChsb2MtPmR3X2xvY19vcHJuZDEudi52YWxfYWRkcikK LSsJCQkgICAgID09IFNZTUJPTF9SRUYpCi0rCQkJbG9jLT5kd19sb2Nfb3BybmQxLnYudmFsX2Fk ZHIKLSsJCQkgID0gcGx1c19jb25zdGFudCAobG9jLT5kd19sb2Nfb3BybmQxLnYudmFsX2FkZHIs IG9mZik7Ci0rCQkJZWxzZQotKwkJCSAgYWRkX2xvY19kZXNjciAoJmxvYywKLSsJCQkJCSBuZXdf bG9jX2Rlc2NyIChEV19PUF9wbHVzX3Vjb25zdCwKLSAJCQkJCQkJb2ZmLCAwKSk7Ci0rCQkgICAg fQotIAkJICBhZGRfQVRfbG9jICh2YXJfZGllLCBEV19BVF9sb2NhdGlvbiwgbG9jKTsKLSAJCSAg cmVtb3ZlX0FUICh2YXJfZGllLCBEV19BVF9kZWNsYXJhdGlvbik7Ci0gCQl9Ci0gCSAgICB9Ci0g CSAgcmV0dXJuOwotIAl9Ci0rCi0rICAgICAgaWYgKGNvbW1vbl9ibG9ja19kaWVfdGFibGUgPT0g TlVMTCkKLSsJY29tbW9uX2Jsb2NrX2RpZV90YWJsZQotKwkgID0gaHRhYl9jcmVhdGVfZ2djICgx MCwgY29tbW9uX2Jsb2NrX2RpZV90YWJsZV9oYXNoLAotKwkJCSAgICAgY29tbW9uX2Jsb2NrX2Rp ZV90YWJsZV9lcSwgTlVMTCk7Ci0rCi0gICAgICAgZmllbGQgPSBUUkVFX09QRVJBTkQgKERFQ0xf VkFMVUVfRVhQUiAoZGVjbCksIDApOwotLSAgICAgIGNvbV9kaWUgPSBsb29rdXBfZGVjbF9kaWUg KGNvbV9kZWNsKTsKLSsgICAgICBjb21fZGllX2FyZy5kZWNsX2lkID0gREVDTF9VSUQgKGNvbV9k ZWNsKTsKLSsgICAgICBjb21fZGllX2FyZy5kaWVfcGFyZW50ID0gY29udGV4dF9kaWU7Ci0rICAg ICAgY29tX2RpZSA9IChkd19kaWVfcmVmKSBodGFiX2ZpbmQgKGNvbW1vbl9ibG9ja19kaWVfdGFi bGUsICZjb21fZGllX2FyZyk7Ci0gICAgICAgbG9jID0gbG9jX2Rlc2NyaXB0b3JfZnJvbV90cmVl IChjb21fZGVjbCk7Ci0gICAgICAgaWYgKGNvbV9kaWUgPT0gTlVMTCkKLSAJewotIAkgIGNvbnN0 IGNoYXIgKmNuYW0KLSAJICAgID0gSURFTlRJRklFUl9QT0lOVEVSIChERUNMX0FTU0VNQkxFUl9O QU1FIChjb21fZGVjbCkpOwotKwkgIHZvaWQgKipzbG90OwotIAotIAkgIGNvbV9kaWUgPSBuZXdf ZGllIChEV19UQUdfY29tbW9uX2Jsb2NrLCBjb250ZXh0X2RpZSwgZGVjbCk7Ci0gCSAgYWRkX25h bWVfYW5kX3NyY19jb29yZHNfYXR0cmlidXRlcyAoY29tX2RpZSwgY29tX2RlY2wpOwotQEAgLTEz ODkxLDcgKzEzOTM4LDkgQEAgZ2VuX3ZhcmlhYmxlX2RpZSAodHJlZSBkZWNsLCBkd19kaWVfcmVm IAotICAgICAgICAgICBlbHNlIGlmIChERUNMX0VYVEVSTkFMIChkZWNsKSkKLSAJICAgIGFkZF9B VF9mbGFnIChjb21fZGllLCBEV19BVF9kZWNsYXJhdGlvbiwgMSk7Ci0gCSAgYWRkX3B1Ym5hbWVf c3RyaW5nIChjbmFtLCBjb21fZGllKTsgLyogPz8/IG5lZWRlZD8gKi8KLS0JICBlcXVhdGVfZGVj bF9udW1iZXJfdG9fZGllIChjb21fZGVjbCwgY29tX2RpZSk7Ci0rCSAgY29tX2RpZS0+ZGVjbF9p ZCA9IERFQ0xfVUlEIChjb21fZGVjbCk7Ci0rCSAgc2xvdCA9IGh0YWJfZmluZF9zbG90IChjb21t b25fYmxvY2tfZGllX3RhYmxlLCBjb21fZGllLCBJTlNFUlQpOwotKwkgICpzbG90ID0gKHZvaWQg KikgY29tX2RpZTsKLSAJfQotICAgICAgIGVsc2UgaWYgKGdldF9BVCAoY29tX2RpZSwgRFdfQVRf bG9jYXRpb24pID09IE5VTEwgJiYgbG9jKQotIAl7Ci1AQCAtMTM5MDcsNyArMTM5NTYsMTcgQEAg Z2VuX3ZhcmlhYmxlX2RpZSAodHJlZSBkZWNsLCBkd19kaWVfcmVmIAotICAgICAgIGlmIChsb2Mp Ci0gCXsKLSAJICBpZiAob2ZmKQotLQkgICAgYWRkX2xvY19kZXNjciAoJmxvYywgbmV3X2xvY19k ZXNjciAoRFdfT1BfcGx1c191Y29uc3QsIG9mZiwgMCkpOwotKwkgICAgewotKwkgICAgICAvKiBP cHRpbWl6ZSB0aGUgY29tbW9uIGNhc2UuICAqLwotKwkgICAgICBpZiAobG9jLT5kd19sb2Nfb3Bj ID09IERXX09QX2FkZHIKLSsJCSAgJiYgbG9jLT5kd19sb2NfbmV4dCA9PSBOVUxMCi0rCQkgICYm IEdFVF9DT0RFIChsb2MtPmR3X2xvY19vcHJuZDEudi52YWxfYWRkcikgPT0gU1lNQk9MX1JFRikK LSsJCWxvYy0+ZHdfbG9jX29wcm5kMS52LnZhbF9hZGRyCi0rCQkgID0gcGx1c19jb25zdGFudCAo bG9jLT5kd19sb2Nfb3BybmQxLnYudmFsX2FkZHIsIG9mZik7Ci0rCSAgICAgIGVsc2UKLSsJCWFk ZF9sb2NfZGVzY3IgKCZsb2MsIG5ld19sb2NfZGVzY3IgKERXX09QX3BsdXNfdWNvbnN0LAotKwkJ CQkJCSAgICBvZmYsIDApKTsKLSsJICAgIH0KLSAJICBhZGRfQVRfbG9jICh2YXJfZGllLCBEV19B VF9sb2NhdGlvbiwgbG9jKTsKLSAJfQotICAgICAgIGVsc2UgaWYgKERFQ0xfRVhURVJOQUwgKGRl Y2wpKQotLS0tIGdjYy9mb3J0cmFuL2Y5NS1sYW5nLmMJKHJldmlzaW9uIDE0MDk0MykKLSsrKyBn Y2MvZm9ydHJhbi9mOTUtbGFuZy5jCShyZXZpc2lvbiAxNDA5NDUpCi1AQCAtNDU3LDE0ICs0NTcs OCBAQCBwb3BsZXZlbCAoaW50IGtlZXAsIGludCByZXZlcnNlLCBpbnQgZnVuCi0gICBjdXJyZW50 X2JpbmRpbmdfbGV2ZWwgPSBjdXJyZW50X2JpbmRpbmdfbGV2ZWwtPmxldmVsX2NoYWluOwotIAot ICAgaWYgKGZ1bmN0aW9uYm9keSkKLS0gICAgewotLSAgICAgIC8qIFRoaXMgaXMgdGhlIHRvcCBs ZXZlbCBibG9jayBvZiBhIGZ1bmN0aW9uLiBUaGUgLi4uX0RFQ0wgY2hhaW4gc3RvcmVkCi0tICAg ICAgICAgaW4gQkxPQ0tfVkFSUyBhcmUgdGhlIGZ1bmN0aW9uJ3MgcGFyYW1ldGVycyAoUEFSTV9E RUNMIG5vZGVzKS4gRG9uJ3QKLS0gICAgICAgICBsZWF2ZSB0aGVtIGluIHRoZSBCTE9DSyBiZWNh dXNlIHRoZXkgYXJlIGZvdW5kIGluIHRoZSBGVU5DVElPTl9ERUNMCi0tICAgICAgICAgaW5zdGVh ZC4gICovCi0tICAgICAgREVDTF9JTklUSUFMIChjdXJyZW50X2Z1bmN0aW9uX2RlY2wpID0gYmxv Y2tfbm9kZTsKLS0gICAgICBCTE9DS19WQVJTIChibG9ja19ub2RlKSA9IDA7Ci0tICAgIH0KLSsg ICAgLyogVGhpcyBpcyB0aGUgdG9wIGxldmVsIGJsb2NrIG9mIGEgZnVuY3Rpb24uICovCi0rICAg IERFQ0xfSU5JVElBTCAoY3VycmVudF9mdW5jdGlvbl9kZWNsKSA9IGJsb2NrX25vZGU7Ci0gICBl bHNlIGlmIChjdXJyZW50X2JpbmRpbmdfbGV2ZWwgPT0gZ2xvYmFsX2JpbmRpbmdfbGV2ZWwpCi0g ICAgIC8qIFdoZW4gdXNpbmcgZ2ZjX3N0YXJ0X2Jsb2NrL2dmY19maW5pc2hfYmxvY2sgZnJvbSBt aWRkbGUtZW5kIGhvb2tzLAotICAgICAgICBkb24ndCBhZGQgbmV3bHkgY3JlYXRlZCBCTE9DS3Mg YXMgc3VibG9ja3Mgb2YgZ2xvYmFsX2JpbmRpbmdfbGV2ZWwuICAqLwotLS0tIGdjYy9mb3J0cmFu L3RyYW5zLWRlY2wuYwkocmV2aXNpb24gMTQwOTQzKQotKysrIGdjYy9mb3J0cmFuL3RyYW5zLWRl Y2wuYwkocmV2aXNpb24gMTQwOTQ1KQotQEAgLTcwNCw3ICs3MDQsNyBAQCBnZmNfYnVpbGRfcXVh bGlmaWVkX2FycmF5ICh0cmVlIGRlY2wsIGdmCi0gICAgICAgbGF5b3V0X3R5cGUgKHR5cGUpOwot ICAgICB9Ci0gCi0tICBpZiAobmVzdCB8fCB3cml0ZV9zeW1ib2xzID09IE5PX0RFQlVHKQotKyAg aWYgKHdyaXRlX3N5bWJvbHMgPT0gTk9fREVCVUcpCi0gICAgIHJldHVybjsKLSAKLSAgIGlmIChU WVBFX05BTUUgKHR5cGUpICE9IE5VTExfVFJFRQotQEAgLTE3NjEsNyArMTc2MSw3IEBAIGJ1aWxk X2VudHJ5X3RodW5rcyAoZ2ZjX25hbWVzcGFjZSAqIG5zKQotIAotICAgICAgIHRodW5rX2ZuZGVj bCA9IHRodW5rX3N5bS0+YmFja2VuZF9kZWNsOwotIAotLSAgICAgIGdmY19zdGFydF9ibG9jayAo JmJvZHkpOwotKyAgICAgIGdmY19pbml0X2Jsb2NrICgmYm9keSk7Ci0gCi0gICAgICAgLyogUGFz cyBleHRyYSBwYXJhbWV0ZXIgaWRlbnRpZnlpbmcgdGhpcyBlbnRyeSBwb2ludC4gICovCi0gICAg ICAgdG1wID0gYnVpbGRfaW50X2NzdCAoZ2ZjX2FycmF5X2luZGV4X3R5cGUsIGVsLT5pZCk7Ci1A QCAtMTg2OSw4ICsxODY5LDEyIEBAIGJ1aWxkX2VudHJ5X3RodW5rcyAoZ2ZjX25hbWVzcGFjZSAq IG5zKQotIAotICAgICAgIC8qIEZpbmlzaCBvZmYgdGhpcyBmdW5jdGlvbiBhbmQgc2VuZCBpdCBm b3IgY29kZSBnZW5lcmF0aW9uLiAgKi8KLSAgICAgICBERUNMX1NBVkVEX1RSRUUgKHRodW5rX2Zu ZGVjbCkgPSBnZmNfZmluaXNoX2Jsb2NrICgmYm9keSk7Ci0rICAgICAgdG1wID0gZ2V0ZGVjbHMg KCk7Ci0gICAgICAgcG9wbGV2ZWwgKDEsIDAsIDEpOwotICAgICAgIEJMT0NLX1NVUEVSQ09OVEVY VCAoREVDTF9JTklUSUFMICh0aHVua19mbmRlY2wpKSA9IHRodW5rX2ZuZGVjbDsKLSsgICAgICBE RUNMX1NBVkVEX1RSRUUgKHRodW5rX2ZuZGVjbCkKLSsJPSBidWlsZDNfdiAoQklORF9FWFBSLCB0 bXAsIERFQ0xfU0FWRURfVFJFRSAodGh1bmtfZm5kZWNsKSwKLSsJCSAgICBERUNMX0lOSVRJQUwg KHRodW5rX2ZuZGVjbCkpOwotIAotICAgICAgIC8qIE91dHB1dCB0aGUgR0VORVJJQyB0cmVlLiAg Ki8KLSAgICAgICBkdW1wX2Z1bmN0aW9uIChURElfb3JpZ2luYWwsIHRodW5rX2ZuZGVjbCk7Ci1A QCAtMzY1Miw3ICszNjU2LDcgQEAgZ2ZjX2dlbmVyYXRlX2Z1bmN0aW9uX2NvZGUgKGdmY19uYW1l c3BhYwotIAotICAgdHJhbnNfZnVuY3Rpb25fc3RhcnQgKHN5bSk7Ci0gCi0tICBnZmNfc3RhcnRf YmxvY2sgKCZibG9jayk7Ci0rICBnZmNfaW5pdF9ibG9jayAoJmJsb2NrKTsKLSAKLSAgIGlmIChu cy0+ZW50cmllcyAmJiBucy0+cHJvY19uYW1lLT50cy50eXBlID09IEJUX0NIQVJBQ1RFUikKLSAg ICAgewotQEAgLTM4ODYsMTEgKzM4OTAsMTYgQEAgZ2ZjX2dlbmVyYXRlX2Z1bmN0aW9uX2NvZGUg KGdmY19uYW1lc3BhYwotICAgc2F2ZWRfZnVuY3Rpb25fZGVjbHMgPSBOVUxMX1RSRUU7Ci0gCi0g ICBERUNMX1NBVkVEX1RSRUUgKGZuZGVjbCkgPSBnZmNfZmluaXNoX2Jsb2NrICgmYmxvY2spOwot KyAgZGVjbCA9IGdldGRlY2xzICgpOwotIAotICAgLyogRmluaXNoIG9mZiB0aGlzIGZ1bmN0aW9u IGFuZCBzZW5kIGl0IGZvciBjb2RlIGdlbmVyYXRpb24uICAqLwotICAgcG9wbGV2ZWwgKDEsIDAs IDEpOwotICAgQkxPQ0tfU1VQRVJDT05URVhUIChERUNMX0lOSVRJQUwgKGZuZGVjbCkpID0gZm5k ZWNsOwotIAotKyAgREVDTF9TQVZFRF9UUkVFIChmbmRlY2wpCi0rICAgID0gYnVpbGQzX3YgKEJJ TkRfRVhQUiwgZGVjbCwgREVDTF9TQVZFRF9UUkVFIChmbmRlY2wpLAotKwkJREVDTF9JTklUSUFM IChmbmRlY2wpKTsKLSsKLSAgIC8qIE91dHB1dCB0aGUgR0VORVJJQyB0cmVlLiAgKi8KLSAgIGR1 bXBfZnVuY3Rpb24gKFRESV9vcmlnaW5hbCwgZm5kZWNsKTsKLSAKLUBAIC0zOTY5LDkgKzM5Nzgs MTMgQEAgZ2ZjX2dlbmVyYXRlX2NvbnN0cnVjdG9ycyAodm9pZCkKLSAgICAgICBERUNMX1NBVkVE X1RSRUUgKGZuZGVjbCkgPSBidWlsZF9zdG10IChFWFBSX1NUTVQsIHRtcCk7Ci0gICAgIH0KLSAK LSsgIGRlY2wgPSBnZXRkZWNscyAoKTsKLSAgIHBvcGxldmVsICgxLCAwLCAxKTsKLSAKLSAgIEJM T0NLX1NVUEVSQ09OVEVYVCAoREVDTF9JTklUSUFMIChmbmRlY2wpKSA9IGZuZGVjbDsKLSsgIERF Q0xfU0FWRURfVFJFRSAoZm5kZWNsKQotKyAgICA9IGJ1aWxkM192IChCSU5EX0VYUFIsIGRlY2ws IERFQ0xfU0FWRURfVFJFRSAoZm5kZWNsKSwKLSsJCURFQ0xfSU5JVElBTCAoZm5kZWNsKSk7Ci0g Ci0gICBmcmVlX2FmdGVyX3BhcnNpbmcgKGNmdW4pOwotICAgZnJlZV9hZnRlcl9jb21waWxhdGlv biAoY2Z1bik7CgpkaWZmIC0tZ2l0IGEvZ2NjNDMtcHIzNzg1OC5wYXRjaCBiL2djYzQzLXByMzc4 NTgucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIxZmE0MDUuLjAwMDAwMDAK LS0tIGEvZ2NjNDMtcHIzNzg1OC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAK LTIwMDgtMTEtMDMgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgotCi0JUFIgbWlk ZGxlLWVuZC8zNzg1OAotCSogcGFzc2VzLmMgKGV4ZWN1dGVfb25lX3Bhc3MpOiBEb24ndCBsb29r IGF0IGNmdW4tPmN1cnJfcHJvcGVydGllcwotCWZvciBpcGEgYW5kIHNpbXBsZSBpcGEgcGFzc2Vz LgotCi0JKiBnY2MuZGcvcHIzNzg1OC5jOiBOZXcgdGVzdC4KLQotLS0tIGdjYy9wYXNzZXMuYwko cmV2aXNpb24gMTQxNTQ0KQotKysrIGdjYy9wYXNzZXMuYwkocmV2aXNpb24gMTQxNTQ1KQotQEAg LTEyODksNiArMTI4OSw3IEBAIGV4ZWN1dGVfb25lX3Bhc3MgKHN0cnVjdCBvcHRfcGFzcyAqcGFz cykKLSAgIGlmIChpbml0aWFsaXppbmdfZHVtcAotICAgICAgICYmIGR1bXBfZmlsZQotICAgICAg ICYmIGdyYXBoX2R1bXBfZm9ybWF0ICE9IG5vX2dyYXBoCi0rICAgICAgJiYgY2Z1bgotICAgICAg ICYmIChjZnVuLT5jdXJyX3Byb3BlcnRpZXMgJiAoUFJPUF9jZmcgfCBQUk9QX3J0bCkpCi0gCSAg PT0gKFBST1BfY2ZnIHwgUFJPUF9ydGwpKQotICAgICB7Ci0tLS0gZ2NjL3Rlc3RzdWl0ZS9nY2Mu ZGcvcHIzNzg1OC5jCShyZXZpc2lvbiAwKQotKysrIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL3ByMzc4 NTguYwkocmV2aXNpb24gMTQxNTQ1KQotQEAgLTAsMCArMSwxMSBAQAotKy8qIFBSIG1pZGRsZS1l bmQvMzc4NTggKi8KLSsvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLwotKy8qIHsgZGctb3B0aW9ucyAi LU8yIC1mZHVtcC1pcGEtZWFybHlfbG9jYWxfY2xlYW51cHMgLWR2IiB9ICovCi0rCi0raW50Ci0r bWFpbiAodm9pZCkKLSt7Ci0rICByZXR1cm4gMDsKLSt9Ci0rCi0rLyogeyBkZy1maW5hbCB7IGNs ZWFudXAtaXBhLWR1bXAgImVhcmx5X2xvY2FsX2NsZWFudXBzIiB9IH0gKi8KCmRpZmYgLS1naXQg YS9nY2M0My1wcjM3ODcwLnBhdGNoIGIvZ2NjNDMtcHIzNzg3MC5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggM2U0M2Q0Zi4uMDAwMDAwMAotLS0gYS9nY2M0My1wcjM3ODcwLnBh dGNoCisrKyAvZGV2L251bGwKQEAgLTEsNzkgKzAsMCBAQAotMjAwOC0xMC0yOSAgSmFrdWIgSmVs aW5layAgPGpha3ViQHJlZGhhdC5jb20+Ci0KLQlQUiBtaWRkbGUtZW5kLzM3ODcwCi0JKiBleHBt ZWQuYyAoZXh0cmFjdF9iaXRfZmllbGRfMSk6IElmIGludF9tb2RlX2Zvcl9tb2RlIHJldHVybnMK LQlCTEttb2RlIGZvciBub24tbWVtb3J5LCBjb252ZXJ0IHVzaW5nIGEgd2lkZXIgTU9ERV9JTlQg bW9kZQotCW9yIHRocm91Z2ggbWVtb3J5LgotCi0JKiBnY2MudGFyZ2V0L2kzODYvcHIzNzg3MC5j OiBOZXcgdGVzdC4KLQotLS0tIGdjYy9leHBtZWQuYwkocmV2aXNpb24gMTQxNDI5KQotKysrIGdj Yy9leHBtZWQuYwkocmV2aXNpb24gMTQxNDMwKQotQEAgLTEyNzgsOSArMTI3OCw4IEBAIGV4dHJh Y3RfYml0X2ZpZWxkXzEgKHJ0eCBzdHJfcnR4LCB1bnNpZ24KLSAgICAgICB7Ci0gCWlmIChNRU1f UCAob3AwKSkKLSAJICBvcDAgPSBhZGp1c3RfYWRkcmVzcyAob3AwLCBpbW9kZSwgMCk7Ci0tCWVs c2UKLSsJZWxzZSBpZiAoaW1vZGUgIT0gQkxLbW9kZSkKLSAJICB7Ci0tCSAgICBnY2NfYXNzZXJ0 IChpbW9kZSAhPSBCTEttb2RlKTsKLSAJICAgIG9wMCA9IGdlbl9sb3dwYXJ0IChpbW9kZSwgb3Aw KTsKLSAKLSAJICAgIC8qIElmIHdlIGdvdCBhIFNVQlJFRywgZm9yY2UgaXQgaW50byBhIHJlZ2lz dGVyIHNpbmNlIHdlCi1AQCAtMTI4OCw2ICsxMjg3LDI0IEBAIGV4dHJhY3RfYml0X2ZpZWxkXzEg KHJ0eCBzdHJfcnR4LCB1bnNpZ24KLSAJICAgIGlmIChHRVRfQ09ERSAob3AwKSA9PSBTVUJSRUcp Ci0gCSAgICAgIG9wMCA9IGZvcmNlX3JlZyAoaW1vZGUsIG9wMCk7Ci0gCSAgfQotKwllbHNlIGlm IChSRUdfUCAob3AwKSkKLSsJICB7Ci0rCSAgICBydHggcmVnLCBzdWJyZWc7Ci0rCSAgICBpbW9k ZSA9IHNtYWxsZXN0X21vZGVfZm9yX3NpemUgKEdFVF9NT0RFX0JJVFNJWkUgKEdFVF9NT0RFIChv cDApKSwKLSsJCQkJCSAgICBNT0RFX0lOVCk7Ci0rCSAgICByZWcgPSBnZW5fcmVnX3J0eCAoaW1v ZGUpOwotKwkgICAgc3VicmVnID0gZ2VuX2xvd3BhcnRfU1VCUkVHIChHRVRfTU9ERSAob3AwKSwg cmVnKTsKLSsJICAgIGVtaXRfbW92ZV9pbnNuIChzdWJyZWcsIG9wMCk7Ci0rCSAgICBvcDAgPSBy ZWc7Ci0rCSAgICBiaXRudW0gKz0gU1VCUkVHX0JZVEUgKHN1YnJlZykgKiBCSVRTX1BFUl9VTklU OwotKwkgIH0KLSsJZWxzZQotKwkgIHsKLSsJICAgIHJ0eCBtZW0gPSBhc3NpZ25fc3RhY2tfdGVt cCAoR0VUX01PREUgKG9wMCksCi0rCQkJCQkgR0VUX01PREVfU0laRSAoR0VUX01PREUgKG9wMCkp LCAwKTsKLSsJICAgIGVtaXRfbW92ZV9pbnNuIChtZW0sIG9wMCk7Ci0rCSAgICBvcDAgPSBhZGp1 c3RfYWRkcmVzcyAobWVtLCBCTEttb2RlLCAwKTsKLSsJICB9Ci0gICAgICAgfQotICAgfQotIAot LS0tIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3ByMzc4NzAuYwkocmV2aXNpb24gMCkK LSsrKyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9wcjM3ODcwLmMJKHJldmlzaW9uIDE0 MTQzMCkKLUBAIC0wLDAgKzEsMjkgQEAKLSsvKiBQUiBtaWRkbGUtZW5kLzM3ODcwICovCi0rLyog eyBkZy1kbyBydW4gfSAqLwotKy8qIHsgZGctb3B0aW9ucyAiLU8yIiB9ICovCi0rCi0rdW5zaWdu ZWQgaW50Ci0rZm9vIChsb25nIGRvdWJsZSB4KQotK3sKLSsgIHN0cnVjdCB7IGNoYXIgYVs4XTsg dW5zaWduZWQgaW50IGI6NzsgfSBjOwotKyAgX19idWlsdGluX21lbWNweSAoJmMsICZ4LCBzaXpl b2YgKGMpKTsKLSsgIHJldHVybiBjLmI7Ci0rfQotKwotK3Vuc2lnbmVkIGludAotK2JhciAobG9u ZyBkb3VibGUgeCkKLSt7Ci0rICB1bmlvbiB7IHN0cnVjdCB7IGNoYXIgYVs4XTsgdW5zaWduZWQg aW50IGI6NzsgfSBjOyBsb25nIGRvdWJsZSBkOyB9IHU7Ci0rICB1LmQgPSB4OwotKyAgcmV0dXJu IHUuYy5iOwotK30KLSsKLStpbnQKLSttYWluICh2b2lkKQotK3sKLSsgIGlmIChmb28gKDEuMjQ1 TCkgIT0gYmFyICgxLjI0NUwpCi0rICAgICAgfHwgZm9vICgyNDUuNjdMKSAhPSBiYXIgKDI0NS42 N0wpCi0rICAgICAgfHwgZm9vICgwLjAwNTY3TCkgIT0gYmFyICgwLjAwNTY3TCkpCi0rICAgIF9f YnVpbHRpbl9hYm9ydCAoKTsKLSsgIHJldHVybiAwOwotK30KCmRpZmYgLS1naXQgYS9nY2M0My1w cjM3ODc5LnBhdGNoIGIvZ2NjNDMtcHIzNzg3OS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggYTZkZWI5Ny4uMDAwMDAwMAotLS0gYS9nY2M0My1wcjM3ODc5LnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsNTkgKzAsMCBAQAotMjAwOC0xMC0yNyAgSmFrdWIgSmVsaW5layAgPGph a3ViQHJlZGhhdC5jb20+Ci0KLQlQUiB0cmVlLW9wdGltaXphdGlvbi8zNzg3OQotCSogcHJlZGlj dC5jICh0cmVlX2VzdGltYXRlX3Byb2JhYmlsaXR5KTogQ2hlY2sgaWYgbGFzdF9zdG10IGlzCi0J bm9uLU5VTEwgYmVmb3JlIGRlcmVmZXJlbmNpbmcgaXQuCi0KLQkqIGdjYy5kZy9wcjM3ODc5LmM6 IE5ldyB0ZXN0LgotCi0tLS0gZ2NjL3ByZWRpY3QuYwkocmV2aXNpb24gMTQxMzg5KQotKysrIGdj Yy9wcmVkaWN0LmMJKHJldmlzaW9uIDE0MTM5MCkKLUBAIC0xMzc0LDYgKzEzNzQsNyBAQCB0cmVl X2VzdGltYXRlX3Byb2JhYmlsaXR5ICh2b2lkKQotICAgICB7Ci0gICAgICAgZWRnZSBlOwotICAg ICAgIGVkZ2VfaXRlcmF0b3IgZWk7Ci0rICAgICAgdHJlZSBsYXN0OwotIAotICAgICAgIEZPUl9F QUNIX0VER0UgKGUsIGVpLCBiYi0+c3VjY3MpCi0gCXsKLUBAIC0xMzk2LDcgKzEzOTcsOCBAQCB0 cmVlX2VzdGltYXRlX3Byb2JhYmlsaXR5ICh2b2lkKQotIAkgICAgICAmJiBlLT5kZXN0ICE9IEVY SVRfQkxPQ0tfUFRSCi0gCSAgICAgICYmIHNpbmdsZV9zdWNjX3AgKGUtPmRlc3QpCi0gCSAgICAg ICYmIHNpbmdsZV9zdWNjX2VkZ2UgKGUtPmRlc3QpLT5kZXN0ID09IEVYSVRfQkxPQ0tfUFRSCi0t CSAgICAgICYmIFRSRUVfQ09ERSAobGFzdF9zdG10IChlLT5kZXN0KSkgPT0gUkVUVVJOX0VYUFIp Ci0rCSAgICAgICYmIChsYXN0ID0gbGFzdF9zdG10IChlLT5kZXN0KSkgIT0gTlVMTF9UUkVFCi0r CSAgICAgICYmIFRSRUVfQ09ERSAobGFzdCkgPT0gUkVUVVJOX0VYUFIpCi0gCSAgICB7Ci0gCSAg ICAgIGVkZ2UgZTE7Ci0gCSAgICAgIGVkZ2VfaXRlcmF0b3IgZWkxOwotLS0tIGdjYy90ZXN0c3Vp dGUvZ2NjLmRnL3ByMzc4NzkuYwkocmV2aXNpb24gMCkKLSsrKyBnY2MvdGVzdHN1aXRlL2djYy5k Zy9wcjM3ODc5LmMJKHJldmlzaW9uIDE0MTM5MCkKLUBAIC0wLDAgKzEsMjggQEAKLSsvKiBQUiB0 cmVlLW9wdGltaXphdGlvbi8zNzg3OSAqLwotKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCi0rLyog eyBkZy1vcHRpb25zICItTzIiIH0gKi8KLSsKLStzdGF0aWMgaW5saW5lIHZvaWQgYmFyIChpbnQp IF9fYXR0cmlidXRlX18gKChub3JldHVybikpOwotK3ZvaWQgYmF6ICgpIF9fYXR0cmlidXRlX18g KChub3JldHVybikpOwotKwotK2lubGluZSBpbnQKLStmb28gKGludCBpKQotK3sKLSsgIHJldHVy biBpOwotK30KLSsKLStpbnQgaSA9IDIzOwotK3N0YXRpYyBpbmxpbmUgdm9pZAotK2JhciAoaW50 IGopCi0rewotKyAgaWYgKGopCi0rICAgIGFzbSAoIiIpOwotK30JCS8qIHsgZGctd2FybmluZyAi ZG9lcyByZXR1cm4iIH0gKi8KLSsKLSt2b2lkCi0rYmF6ICgpCi0rewotKyAgaW50IGo7Ci0rICBi YXIgKGZvbyAoaiA9IGkrKykpOwotKyAgYXNtICgiIik7Ci0rfQoKZGlmZiAtLWdpdCBhL2djYzQz LXByMzc5MjQucGF0Y2ggYi9nY2M0My1wcjM3OTI0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCA2MmJhYWMyLi4wMDAwMDAwCi0tLSBhL2djYzQzLXByMzc5MjQucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSwxMDYgKzAsMCBAQAotMjAwOC0xMC0yOCAgSmFrdWIgSmVsaW5layAg PGpha3ViQHJlZGhhdC5jb20+Ci0KLQlQUiBjLzM3OTI0Ci0JKiBjb21iaW5lLmMgKG1ha2VfY29t cG91bmRfb3BlcmF0aW9uKTogRG9uJ3QgY2FsbCBtYWtlX2V4dHJhY3Rpb24gd2l0aAotCW5vbi1w b3NpdGl2ZSBsZW5ndGguCi0JKHNpbXBsaWZ5X3NoaWZ0X2NvbnN0XzEpOiBDYW5vbmljYWxpemUg Y291bnQgZXZlbiBpZiBjb21wbGVtZW50X3AuCi0KLQkqIGdjYy5jLXRvcnR1cmUvZXhlY3V0ZS9w cjM3OTI0LmM6IE5ldyB0ZXN0LgotCi0tLS0gZ2NjL2NvbWJpbmUuYwkocmV2aXNpb24gMTQxNDEy KQotKysrIGdjYy9jb21iaW5lLmMJKHJldmlzaW9uIDE0MTQxMykKLUBAIC03MDI0LDcgKzcwMjQs OCBAQCBtYWtlX2NvbXBvdW5kX29wZXJhdGlvbiAocnR4IHgsIGVudW0gcnR4Ci0gICAgICAgaWYg KEdFVF9DT0RFIChyaHMpID09IENPTlNUX0lOVAotIAkgICYmIEdFVF9DT0RFIChsaHMpID09IEFT SElGVAotIAkgICYmIEdFVF9DT0RFIChYRVhQIChsaHMsIDEpKSA9PSBDT05TVF9JTlQKLS0JICAm JiBJTlRWQUwgKHJocykgPj0gSU5UVkFMIChYRVhQIChsaHMsIDEpKSkKLSsJICAmJiBJTlRWQUwg KHJocykgPj0gSU5UVkFMIChYRVhQIChsaHMsIDEpKQotKwkgICYmIElOVFZBTCAocmhzKSA8IG1v ZGVfd2lkdGgpCi0gCXsKLSAJICBuZXcgPSBtYWtlX2NvbXBvdW5kX29wZXJhdGlvbiAoWEVYUCAo bGhzLCAwKSwgbmV4dF9jb2RlKTsKLSAJICBuZXcgPSBtYWtlX2V4dHJhY3Rpb24gKG1vZGUsIG5l dywKLUBAIC03MDQ0LDYgKzcwNDUsNyBAQCBtYWtlX2NvbXBvdW5kX29wZXJhdGlvbiAocnR4IHgs IGVudW0gcnR4Ci0gCQkmJiAoT0JKRUNUX1AgKFNVQlJFR19SRUcgKGxocykpKSkKLSAJICAmJiBH RVRfQ09ERSAocmhzKSA9PSBDT05TVF9JTlQKLSAJICAmJiBJTlRWQUwgKHJocykgPCBIT1NUX0JJ VFNfUEVSX1dJREVfSU5UCi0rCSAgJiYgSU5UVkFMIChyaHMpIDwgbW9kZV93aWR0aAotIAkgICYm IChuZXcgPSBleHRyYWN0X2xlZnRfc2hpZnQgKGxocywgSU5UVkFMIChyaHMpKSkgIT0gMCkKLSAJ bmV3ID0gbWFrZV9leHRyYWN0aW9uIChtb2RlLCBtYWtlX2NvbXBvdW5kX29wZXJhdGlvbiAobmV3 LCBuZXh0X2NvZGUpLAotIAkJCSAgICAgICAwLCBOVUxMX1JUWCwgbW9kZV93aWR0aCAtIElOVFZB TCAocmhzKSwKLUBAIC05MDIzLDExICs5MDI1LDYgQEAgc2ltcGxpZnlfc2hpZnRfY29uc3RfMSAo ZW51bSBydHhfY29kZSBjbwotICAgICAgIGlmIChHRVRfQ09ERSAodmFyb3ApID09IENMT0JCRVIp Ci0gCXJldHVybiBOVUxMX1JUWDsKLSAKLS0gICAgICAvKiBJZiB3ZSBkaXNjb3ZlcmVkIHdlIGhh ZCB0byBjb21wbGVtZW50IFZBUk9QLCBsZWF2ZS4gIE1ha2luZyBhIE5PVAotLQkgaGVyZSB3b3Vs ZCBjYXVzZSBhbiBpbmZpbml0ZSBsb29wLiAgKi8KLS0gICAgICBpZiAoY29tcGxlbWVudF9wKQot LQlicmVhazsKLS0KLSAgICAgICAvKiBDb252ZXJ0IFJPVEFURVJUIHRvIFJPVEFURS4gICovCi0g ICAgICAgaWYgKGNvZGUgPT0gUk9UQVRFUlQpCi0gCXsKLUBAIC05MDczLDYgKzkwNzAsMTEgQEAg c2ltcGxpZnlfc2hpZnRfY29uc3RfMSAoZW51bSBydHhfY29kZSBjbwotIAkgICAgfQotIAl9Ci0g Ci0rICAgICAgLyogSWYgd2UgZGlzY292ZXJlZCB3ZSBoYWQgdG8gY29tcGxlbWVudCBWQVJPUCwg bGVhdmUuICBNYWtpbmcgYSBOT1QKLSsJIGhlcmUgd291bGQgY2F1c2UgYW4gaW5maW5pdGUgbG9v cC4gICovCi0rICAgICAgaWYgKGNvbXBsZW1lbnRfcCkKLSsJYnJlYWs7Ci0rCi0gICAgICAgLyog QW4gYXJpdGhtZXRpYyByaWdodCBzaGlmdCBvZiBhIHF1YW50aXR5IGtub3duIHRvIGJlIC0xIG9y IDAKLSAJIGlzIGEgbm8tb3AuICAqLwotICAgICAgIGlmIChjb2RlID09IEFTSElGVFJUCi0tLS0g Z2NjL3Rlc3RzdWl0ZS9nY2MuYy10b3J0dXJlL2V4ZWN1dGUvcHIzNzkyNC5jCShyZXZpc2lvbiAw KQotKysrIGdjYy90ZXN0c3VpdGUvZ2NjLmMtdG9ydHVyZS9leGVjdXRlL3ByMzc5MjQuYwkocmV2 aXNpb24gMTQxNDEzKQotQEAgLTAsMCArMSw1MCBAQAotKy8qIFBSIGMvMzc5MjQgKi8KLSsKLStl eHRlcm4gdm9pZCBhYm9ydCAodm9pZCk7Ci0rCi0rc2lnbmVkIGNoYXIgYTsKLSt1bnNpZ25lZCBj aGFyIGI7Ci0rCi0raW50Ci0rdGVzdDEgKHZvaWQpCi0rewotKyAgaW50IGMgPSAtMTsKLSsgIHJl dHVybiAoKHVuc2lnbmVkIGludCkgKGEgXiBjKSkgPj4gOTsKLSt9Ci0rCi0raW50Ci0rdGVzdDIg KHZvaWQpCi0rewotKyAgaW50IGMgPSAtMTsKLSsgIHJldHVybiAoKHVuc2lnbmVkIGludCkgKGIg XiBjKSkgPj4gOTsKLSt9Ci0rCi0raW50Ci0rbWFpbiAodm9pZCkKLSt7Ci0rICBhID0gMDsKLSsg IGlmICh0ZXN0MSAoKSAhPSAoLTFVID4+IDkpKQotKyAgICBhYm9ydCAoKTsKLSsgIGEgPSAweDQw OwotKyAgaWYgKHRlc3QxICgpICE9ICgtMVUgPj4gOSkpCi0rICAgIGFib3J0ICgpOwotKyAgYSA9 IDB4ODA7Ci0rICBpZiAodGVzdDEgKCkgIT0gKGEgPCAwKSA/IDAgOiAoLTFVID4+IDkpKQotKyAg ICBhYm9ydCAoKTsKLSsgIGEgPSAweGZmOwotKyAgaWYgKHRlc3QxICgpICE9IChhIDwgMCkgPyAw IDogKC0xVSA+PiA5KSkKLSsgICAgYWJvcnQgKCk7Ci0rICBiID0gMDsKLSsgIGlmICh0ZXN0MiAo KSAhPSAoLTFVID4+IDkpKQotKyAgICBhYm9ydCAoKTsKLSsgIGIgPSAweDQwOwotKyAgaWYgKHRl c3QyICgpICE9ICgtMVUgPj4gOSkpCi0rICAgIGFib3J0ICgpOwotKyAgYiA9IDB4ODA7Ci0rICBp ZiAodGVzdDIgKCkgIT0gKC0xVSA+PiA5KSkKLSsgICAgYWJvcnQgKCk7Ci0rICBiID0gMHhmZjsK LSsgIGlmICh0ZXN0MiAoKSAhPSAoLTFVID4+IDkpKQotKyAgICBhYm9ydCAoKTsKLSsgIHJldHVy biAwOwotK30KCmRpZmYgLS1naXQgYS9nY2M0My1yaDI1MTY4Mi5wYXRjaCBiL2djYzQzLXJoMjUx NjgyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOTZhZTZmLi4wMDAwMDAw Ci0tLSBhL2djYzQzLXJoMjUxNjgyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsODkgKzAsMCBA QAotMjAwOC0wNC0wMSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+Ci0KLQlQUiBw Y2gvMTM2NzUKLQkqIGZpbGVzLmMgKHN0cnVjdCBfY3BwX2ZpbGUpOiBSZW1vdmUgcGNoIGZpZWxk LgotCShwY2hfb3Blbl9maWxlKTogRG9uJ3Qgc2V0IGZpbGUtPnBjaCwganVzdCBmaWxlLT5wY2hu YW1lLgotCShzaG91bGRfc3RhY2tfZmlsZSk6IEFmdGVyIHBmaWxlLT5jYi5yZWFkX3BjaCBjYWxs Ci0JZnJlZSBwY2huYW1lIGFuZCBjbGVhciBwY2huYW1lLCBkb24ndCBjbG9zZSBmaWxlLT5mZC4K LQlUZXN0IGZpbGUtPnBjaG5hbWUgaW5zdGVhZCBvZiBmaWxlLT5wY2guICBEb24ndCBjbG9zZSBm ZCBhZnRlciBjYi4KLQkoX2NwcF9zdGFja19pbmNsdWRlKTogVGVzdCBmaWxlLT5wY2huYW1lIGlu c3RlYWQgb2YgZmlsZS0+cGNoLgotCi0JKiBjLXBjaC5jIChjX2NvbW1vbl9yZWFkX3BjaCk6IE9u IGVycm9yIGNsb3NlIChmZCkgcmVzcC4gZmNsb3NlIChmKS4KLQotLS0tIGxpYmNwcC9maWxlcy5j LmpqCTIwMDgtMDItMTggMjM6NTA6MTcuMDAwMDAwMDAwICswMTAwCi0rKysgbGliY3BwL2ZpbGVz LmMJMjAwOC0wMy0zMSAxNTo1OTowMS4wMDAwMDAwMDAgKzAyMDAKLUBAIC0xMDYsOSArMTA2LDYg QEAgc3RydWN0IF9jcHBfZmlsZQotIAotICAgLyogSWYgQlVGRkVSIGFib3ZlIGNvbnRhaW5zIHRo ZSB0cnVlIGNvbnRlbnRzIG9mIHRoZSBmaWxlLiAgKi8KLSAgIGJvb2wgYnVmZmVyX3ZhbGlkOwot LQotLSAgLyogRmlsZSBpcyBhIFBDSCAob24gcmV0dXJuIGZyb20gZmluZF9pbmNsdWRlX2ZpbGUp LiAgKi8KLS0gIGJvb2wgcGNoOwotIH07Ci0gCi0gLyogQSBzaW5nbHktbGlua2VkIGxpc3QgZm9y IGFsbCBzZWFyY2hlcyBmb3IgYSBnaXZlbiBmaWxlIG5hbWUsIHdpdGgKLUBAIC0zMjIsOSArMzE5 LDcgQEAgcGNoX29wZW5fZmlsZSAoY3BwX3JlYWRlciAqcGZpbGUsIF9jcHBfZgotIAkgICAgfQot IAkgIGNsb3NlZGlyIChwY2hkaXIpOwotIAl9Ci0tICAgICAgaWYgKHZhbGlkKQotLQlmaWxlLT5w Y2ggPSB0cnVlOwotLSAgICAgIGVsc2UKLSsgICAgICBpZiAoIXZhbGlkKQotIAkqaW52YWxpZF9w Y2ggPSB0cnVlOwotICAgICB9Ci0gCi1AQCAtNzAzLDExICs2OTgsMTIgQEAgc2hvdWxkX3N0YWNr X2ZpbGUgKGNwcF9yZWFkZXIgKnBmaWxlLCBfYwotICAgICByZXR1cm4gZmFsc2U7Ci0gCi0gICAv KiBIYW5kbGUgUENIIGZpbGVzIGltbWVkaWF0ZWx5OyBkb24ndCBzdGFjayB0aGVtLiAgKi8KLS0g IGlmIChmaWxlLT5wY2gpCi0rICBpZiAoZmlsZS0+cGNobmFtZSkKLSAgICAgewotICAgICAgIHBm aWxlLT5jYi5yZWFkX3BjaCAocGZpbGUsIGZpbGUtPnBjaG5hbWUsIGZpbGUtPmZkLCBmaWxlLT5w YXRoKTsKLS0gICAgICBjbG9zZSAoZmlsZS0+ZmQpOwotICAgICAgIGZpbGUtPmZkID0gLTE7Ci0r ICAgICAgZnJlZSAoKHZvaWQgKikgZmlsZS0+cGNobmFtZSk7Ci0rICAgICAgZmlsZS0+cGNobmFt ZSA9IE5VTEw7Ci0gICAgICAgcmV0dXJuIGZhbHNlOwotICAgICB9Ci0gCi1AQCAtOTE2LDcgKzkx Miw3IEBAIF9jcHBfc3RhY2tfaW5jbHVkZSAoY3BwX3JlYWRlciAqcGZpbGUsIGMKLSAgICAgIGNv bXBsaWNhdGVzIExBU1RfU09VUkNFX0xJTkVfTE9DQVRJT04uICBUaGlzIGRvZXMgbm90IGFwcGx5 IGlmIHdlCi0gICAgICBmb3VuZCBhIFBDSCBmaWxlIChpbiB3aGljaCBjYXNlIGxpbmVtYXBfYWRk IGlzIG5vdCBjYWxsZWQpIG9yIHdlCi0gICAgICB3ZXJlIGluY2x1ZGVkIGZyb20gdGhlIGNvbW1h bmQtbGluZS4gICovCi0tICBpZiAoISBmaWxlLT5wY2ggJiYgZmlsZS0+ZXJyX25vID09IDAgJiYg dHlwZSAhPSBJVF9DTURMSU5FKQotKyAgaWYgKGZpbGUtPnBjaG5hbWUgPT0gTlVMTCAmJiBmaWxl LT5lcnJfbm8gPT0gMCAmJiB0eXBlICE9IElUX0NNRExJTkUpCi0gICAgIHBmaWxlLT5saW5lX3Rh YmxlLT5oaWdoZXN0X2xvY2F0aW9uLS07Ci0gCi0gICByZXR1cm4gX2NwcF9zdGFja19maWxlIChw ZmlsZSwgZmlsZSwgdHlwZSA9PSBJVF9JTVBPUlQpOwotLS0tIGdjYy9jLXBjaC5jLmpqCTIwMDgt MDItMTggMjM6NDY6MDguMDAwMDAwMDAwICswMTAwCi0rKysgZ2NjL2MtcGNoLmMJMjAwOC0wMy0z MSAxNTo1NjowMC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0zNzIsNiArMzcyLDcgQEAgY19jb21tb25f cmVhZF9wY2ggKGNwcF9yZWFkZXIgKnBmaWxlLCBjbwotICAgaWYgKGYgPT0gTlVMTCkKLSAgICAg ewotICAgICAgIGNwcF9lcnJubyAocGZpbGUsIENQUF9ETF9FUlJPUiwgImNhbGxpbmcgZmRvcGVu Iik7Ci0rICAgICAgY2xvc2UgKGZkKTsKLSAgICAgICByZXR1cm47Ci0gICAgIH0KLSAKLUBAIC0z ODAsNiArMzgxLDcgQEAgY19jb21tb25fcmVhZF9wY2ggKGNwcF9yZWFkZXIgKnBmaWxlLCBjbwot ICAgaWYgKGZyZWFkICgmaCwgc2l6ZW9mIChoKSwgMSwgZikgIT0gMSkKLSAgICAgewotICAgICAg IGNwcF9lcnJubyAocGZpbGUsIENQUF9ETF9FUlJPUiwgInJlYWRpbmciKTsKLSsgICAgICBmY2xv c2UgKGYpOwotICAgICAgIHJldHVybjsKLSAgICAgfQotIAotQEAgLTQyNSw3ICs0MjcsMTAgQEAg Y19jb21tb25fcmVhZF9wY2ggKGNwcF9yZWFkZXIgKnBmaWxlLCBjbwotICAgZ3RfcGNoX3Jlc3Rv cmUgKGYpOwotIAotICAgaWYgKGNwcF9yZWFkX3N0YXRlIChwZmlsZSwgbmFtZSwgZiwgc21kKSAh PSAwKQotLSAgICByZXR1cm47Ci0rICAgIHsKLSsgICAgICBmY2xvc2UgKGYpOwotKyAgICAgIHJl dHVybjsKLSsgICAgfQotIAotICAgZmNsb3NlIChmKTsKLSAKCmRpZmYgLS1naXQgYS9nY2M0My1y aDMzMDc3MS5wYXRjaCBiL2djYzQzLXJoMzMwNzcxLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCBmNTJiOTE5Li4wMDAwMDAwCi0tLSBhL2djYzQzLXJoMzMwNzcxLnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotMjAwNy0xMC0xNiAgSmFrdWIgSmVsaW5layAg PGpha3ViQHJlZGhhdC5jb20+Ci0KLQkqIE1ha2VmaWxlLmFtIChsaWJnY2pfdG9vbHNfbGFfTElC QUREKTogQWRkLgotCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGVkLgotCi0tLS0gbGliamF2YS9N YWtlZmlsZS5hbS5qagkyMDA3LTAzLTE3IDA5OjIwOjMwLjAwMDAwMDAwMCArMDEwMAotKysrIGxp YmphdmEvTWFrZWZpbGUuYW0JMjAwNy0xMC0xNiAxNTo0NToxNC4wMDAwMDAwMDAgKzAyMDAKLUBA IC0yNzcsNiArMjc3LDggQEAgRVhUUkFfbGliZ2NqX2xhX1NPVVJDRVMgPSBqYXZhL2xhbmcvT2Jq ZQotIAotIGxpYmdjal90b29sc19sYV9TT1VSQ0VTID0gY2xhc3NwYXRoL3Rvb2xzL3Rvb2xzLnpp cAotIGxpYmdjal90b29sc19sYV9HQ0pGTEFHUyA9ICQoQU1fR0NKRkxBR1MpIC1maW5kaXJlY3Qt ZGlzcGF0Y2ggLWZuby1pbmRpcmVjdC1jbGFzc2VzICAtZnNvdXJjZS1maWxlbmFtZT0kKGhlcmUp L2NsYXNzcGF0aC90b29scy9hbGwtY2xhc3Nlcy5sc3QKLSsjIyBTZWUganZfY29udmVydF9MREFE RC4KLStsaWJnY2pfdG9vbHNfbGFfTElCQUREID0gLUwkKGhlcmUpLy5saWJzIGxpYmdjai5sYQot IGxpYmdjal90b29sc19sYV9MREZMQUdTID0gLXJwYXRoICQodG9vbGV4ZWNsaWJkaXIpIFwKLSAg LXZlcnNpb24taW5mbyBgZ3JlcCAtdiAnXlwjJyAkKHNyY2RpcikvbGlidG9vbC12ZXJzaW9uYCBc Ci0gICQoTElCR0NKX0xEX1NZTUJPTElDX0ZVTkNUSU9OUykKLS0tLSBsaWJqYXZhL01ha2VmaWxl LmluLmpqCTIwMDctMDctMDQgMjE6MTE6MTEuMDAwMDAwMDAwICswMjAwCi0rKysgbGliamF2YS9N YWtlZmlsZS5pbgkyMDA3LTEwLTE2IDE1OjU2OjA3LjAwMDAwMDAwMCArMDIwMAotQEAgLTE1Myw3 ICsxNTMsNiBAQCBhbV9fb2JqZWN0c18xID0gZ251L2djai94bGliL2xpYl9nbnVfYXd0Ci0gYW1f bGliX2dudV9hd3RfeGxpYl9sYV9PQkpFQ1RTID0gJChhbV9fb2JqZWN0c18xKQotIGxpYl9nbnVf YXd0X3hsaWJfbGFfT0JKRUNUUyA9ICQoYW1fbGliX2dudV9hd3RfeGxpYl9sYV9PQkpFQ1RTKQot IEBYTElCX0FXVF9UUlVFQGFtX2xpYl9nbnVfYXd0X3hsaWJfbGFfcnBhdGggPSAtcnBhdGggJCh0 b29sZXhlY2xpYmRpcikKLS1saWJnY2pfdG9vbHNfbGFfTElCQUREID0KLSBhbV9saWJnY2pfdG9v bHNfbGFfT0JKRUNUUyA9IGNsYXNzcGF0aC90b29scy9saWJnY2pfdG9vbHNfbGEtdG9vbHMubG8K LSBsaWJnY2pfdG9vbHNfbGFfT0JKRUNUUyA9ICQoYW1fbGliZ2NqX3Rvb2xzX2xhX09CSkVDVFMp Ci0gQElOVEVSUFJFVEVSX1RSVUVAYW1fX0RFUEVOREVOQ0lFU18xID0gZ251L2NsYXNzcGF0aC9q ZHdwLmxvIFwKLUBAIC05NDEsNiArOTQwLDcgQEAgbGliZ2NqX2xhX0xJTksgPSAkKExJQkxJTksp Ci0gRVhUUkFfbGliZ2NqX2xhX1NPVVJDRVMgPSBqYXZhL2xhbmcvT2JqZWN0LmphdmEKLSBsaWJn Y2pfdG9vbHNfbGFfU09VUkNFUyA9IGNsYXNzcGF0aC90b29scy90b29scy56aXAKLSBsaWJnY2pf dG9vbHNfbGFfR0NKRkxBR1MgPSAkKEFNX0dDSkZMQUdTKSAtZmluZGlyZWN0LWRpc3BhdGNoIC1m bm8taW5kaXJlY3QtY2xhc3NlcyAgLWZzb3VyY2UtZmlsZW5hbWU9JChoZXJlKS9jbGFzc3BhdGgv dG9vbHMvYWxsLWNsYXNzZXMubHN0Ci0rbGliZ2NqX3Rvb2xzX2xhX0xJQkFERCA9IC1MJChoZXJl KS8ubGlicyBsaWJnY2oubGEKLSBsaWJnY2pfdG9vbHNfbGFfTERGTEFHUyA9IC1ycGF0aCAkKHRv b2xleGVjbGliZGlyKSBcCi0gIC12ZXJzaW9uLWluZm8gYGdyZXAgLXYgJ15cIycgJChzcmNkaXIp L2xpYnRvb2wtdmVyc2lvbmAgXAotICAkKExJQkdDSl9MRF9TWU1CT0xJQ19GVU5DVElPTlMpCgpk aWZmIC0tZ2l0IGEvZ2NjNDMtcmgzNDEyMjEucGF0Y2ggYi9nY2M0My1yaDM0MTIyMS5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjhlNzNiMC4uMDAwMDAwMAotLS0gYS9nY2M0 My1yaDM0MTIyMS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLTIwMDctMTAt MjEgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgotCi0JKiBkb2MvTWFrZWZpbGUu YW0gKFBPRDJNQU4pOiBTZXQgZGF0ZSBmcm9tIGNwLXRvb2xzLnRleGluZm8KLQl0aW1lc3RhbXAg cmF0aGVyIHRoYW4gZnJvbSBjdXJyZW50IGRhdGUuCi0JKiBkb2MvTWFrZWZpbGUuaW46IFJlZ2Vu ZXJhdGVkLgotCi0tLS0gbGliamF2YS9jbGFzc3BhdGgvZG9jL01ha2VmaWxlLmFtLmpqCTIwMDct MTItMDcgMTc6NTU6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgbGliamF2YS9jbGFzc3BhdGgvZG9j L01ha2VmaWxlLmFtCTIwMDctMTItMDcgMTg6NTU6MjguMDAwMDAwMDAwICswMTAwCi1AQCAtMzAs NyArMzAsNyBAQCBUT09MU19NQU5GSUxFUyA9IFwKLSAJZ3NlcmlhbHZlci4xIFwKLSAJZ3RuYW1l c2Vydi4xCi0gCi0tUE9EMk1BTiA9IHBvZDJtYW4gLS1jZW50ZXI9IkdOVSIgLS1yZWxlYXNlPSIk KFZFUlNJT04pIgotK1BPRDJNQU4gPSBwb2QybWFuIC0tY2VudGVyPSJHTlUiIC0tcmVsZWFzZT0i JChWRVJTSU9OKSIgLS1kYXRlPSIkKHNoZWxsIGxzIC0tdGltZS1zdHlsZT0rJUYgLWwgJChzcmNk aXIpL2NwLXRvb2xzLnRleGluZm8gfCBhd2sgJ3twcmludCAkJDZ9JykiCi0gVEVYSTJQT0QgPSBw ZXJsICQoc3JjZGlyKS90ZXhpMnBvZC5wbAotIFNUQU1QID0gZWNobyB0aW1lc3RhbXAgPgotIAot LS0tIGxpYmphdmEvY2xhc3NwYXRoL2RvYy9NYWtlZmlsZS5pbi5qagkyMDA3LTEyLTA3IDE3OjU1 OjAwLjAwMDAwMDAwMCArMDEwMAotKysrIGxpYmphdmEvY2xhc3NwYXRoL2RvYy9NYWtlZmlsZS5p bgkyMDA3LTEyLTA3IDE4OjU1OjQzLjAwMDAwMDAwMCArMDEwMAotQEAgLTM1Nyw3ICszNTcsNyBA QCBUT09MU19NQU5GSUxFUyA9IFwKLSAJZ3NlcmlhbHZlci4xIFwKLSAJZ3RuYW1lc2Vydi4xCi0g Ci0tUE9EMk1BTiA9IHBvZDJtYW4gLS1jZW50ZXI9IkdOVSIgLS1yZWxlYXNlPSIkKFZFUlNJT04p IgotK1BPRDJNQU4gPSBwb2QybWFuIC0tY2VudGVyPSJHTlUiIC0tcmVsZWFzZT0iJChWRVJTSU9O KSIgLS1kYXRlPSIkKHNoZWxsIGxzIC0tdGltZS1zdHlsZT0rJUYgLWwgJChzcmNkaXIpL2NwLXRv b2xzLnRleGluZm8gfCBhd2sgJ3twcmludCAkJDZ9JykiCi0gVEVYSTJQT0QgPSBwZXJsICQoc3Jj ZGlyKS90ZXhpMnBvZC5wbAotIFNUQU1QID0gZWNobyB0aW1lc3RhbXAgPgotIEBHRU5JTlNSQ19G QUxTRUBTVEFNUF9HRU5JTlNSQyA9IAoKZGlmZiAtLWdpdCBhL2djYzQzLXNwYXJjLWNvbmZpZy1k ZXRlY3Rpb24ucGF0Y2ggYi9nY2M0My1zcGFyYy1jb25maWctZGV0ZWN0aW9uLnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZWU5NWQ0Li4wMDAwMDAwCi0tLSBhL2djYzQzLXNw YXJjLWNvbmZpZy1kZXRlY3Rpb24ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBA Ci0tLS0gZ2NjL2NvbmZpZy5nY2MuamoJMjAwOC0wNC0yNCAxNTo0Mjo0Ni4wMDAwMDAwMDAgLTA1 MDAKLSsrKyBnY2MvY29uZmlnLmdjYwkyMDA4LTA0LTI0IDE1OjQ0OjUxLjAwMDAwMDAwMCAtMDUw MAotQEAgLTIzNDMsNyArMjM0Myw3IEBAIHNwYXJjLSotZWxmKikKLSAJZXh0cmFfcGFydHM9ImNy dGkubyBjcnRuLm8gY3J0YmVnaW4ubyBjcnRlbmQubyIKLSAJdXNlX2ZpeHByb3RvPXllcwotIAk7 OwotLXNwYXJjLSotbGludXgqKQkJIyBTUEFSQydzIHJ1bm5pbmcgR05VL0xpbnV4LCBsaWJjNgot K3NwYXJjLSotbGludXgqIHwgc3BhcmN2OSotKi1saW51eCopCQkjIFNQQVJDJ3MgcnVubmluZyBH TlUvTGludXgsIGxpYmM2Ci0gCXRtX2ZpbGU9IiR7dG1fZmlsZX0gZGJ4ZWxmLmggZWxmb3MuaCBz dnI0Lmggc3BhcmMvc3lzdjQuaCBzcGFyYy9saW51eC5oIgotIAlleHRyYV9vcHRpb25zPSIke2V4 dHJhX29wdGlvbnN9IHNwYXJjL2xvbmctZG91YmxlLXN3aXRjaC5vcHQiCi0gCXRtYWtlX2ZpbGU9 IiR7dG1ha2VfZmlsZX0gc3BhcmMvdC1saW51eCBzcGFyYy90LWNydGZtIgotQEAgLTI0NzcsNyAr MjQ3Nyw3IEBAIHNwYXJjNjQtKi1mcmVlYnNkKnx1bHRyYXNwYXJjLSotZnJlZWJzZCoKLSAJZXNh YwotIAluZWVkXzY0Yml0X2h3aW50PXllcwotIAk7OwotLXNwYXJjNjQtKi1saW51eCopCQkjIDY0 LWJpdCBTUEFSQydzIHJ1bm5pbmcgR05VL0xpbnV4Ci0rc3BhcmM2NCotKi1saW51eCopCQkjIDY0 LWJpdCBTUEFSQydzIHJ1bm5pbmcgR05VL0xpbnV4Ci0gCXRtX2ZpbGU9InNwYXJjL2JpYXJjaDY0 LmggJHt0bV9maWxlfSBkYnhlbGYuaCBlbGZvcy5oIHN2cjQuaCBzcGFyYy9zeXN2NC5oIHNwYXJj L2xpbnV4NjQuaCIKLSAJZXh0cmFfb3B0aW9ucz0iJHtleHRyYV9vcHRpb25zfSBzcGFyYy9sb25n LWRvdWJsZS1zd2l0Y2gub3B0IgotIAl0bWFrZV9maWxlPSIke3RtYWtlX2ZpbGV9IHNwYXJjL3Qt bGludXggc3BhcmMvdC1saW51eDY0IHNwYXJjL3QtY3J0Zm0iCi0tLS0gbGliZ2NjL2NvbmZpZy5o b3N0LmpqCTIwMDgtMDQtMjQgMTU6NDY6MTkuMDAwMDAwMDAwIC0wNTAwCi0rKysgbGliZ2NjL2Nv bmZpZy5ob3N0CTIwMDgtMDQtMjQgMTU6NDY6NDkuMDAwMDAwMDAwIC0wNTAwCi1AQCAtNTcyLDcg KzU3Miw3IEBAIHNwYXJjNjQtKi1vcGVuYnNkKikKLSAJOzsKLSBzcGFyYy0qLWVsZiopCi0gCTs7 Ci0tc3BhcmMtKi1saW51eCopCQkjIFNQQVJDJ3MgcnVubmluZyBHTlUvTGludXgsIGxpYmM2Ci0r c3BhcmMtKi1saW51eCogfCBzcGFyY3Y5Ki0qLWxpbnV4KikJCSMgU1BBUkMncyBydW5uaW5nIEdO VS9MaW51eCwgbGliYzYKLSAJZXh0cmFfcGFydHM9IiRleHRyYV9wYXJ0cyBjcnRmYXN0bWF0aC5v IgotIAl0bWFrZV9maWxlPSIke3RtYWtlX2ZpbGV9IHNwYXJjL3QtY3J0Zm0iCi0gCTs7Ci1AQCAt NTkwLDcgKzU5MCw3IEBAIHNwYXJjLXdycy12eHdvcmtzKQotIAk7OwotIHNwYXJjNjQtKi1mcmVl YnNkKnx1bHRyYXNwYXJjLSotZnJlZWJzZCopCi0gCTs7Ci0tc3BhcmM2NC0qLWxpbnV4KikJCSMg NjQtYml0IFNQQVJDJ3MgcnVubmluZyBHTlUvTGludXgKLStzcGFyYzY0Ki0qLWxpbnV4KikJCSMg NjQtYml0IFNQQVJDJ3MgcnVubmluZyBHTlUvTGludXgKLSAJZXh0cmFfcGFydHM9IiRleHRyYV9w YXJ0cyBjcnRmYXN0bWF0aC5vIgotIAl0bWFrZV9maWxlPSIke3RtYWtlX2ZpbGV9IHNwYXJjL3Qt Y3J0Zm0iCi0gCTs7CgpkaWZmIC0tZ2l0IGEvZ2NjNDMteDg2XzY0LXZhX3N0YXJ0LnBhdGNoIGIv Z2NjNDMteDg2XzY0LXZhX3N0YXJ0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCBlZmEwNmJjLi4wMDAwMDAwCi0tLSBhL2djYzQzLXg4Nl82NC12YV9zdGFydC5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDM1NSArMCwwIEBACi0yMDA4LTA5LTAyICBILkouIEx1ICA8aG9uZ2pp dS5sdUBpbnRlbC5jb20+Ci0JICAgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgot Ci0JKiBjb25maWcvaTM4Ni9pMzg2LmMgKFg4Nl82NF9WQVJBUkdTX1NJWkUpOiBSZW1vdmVkLgot CShzZXR1cF9pbmNvbWluZ192YXJhcmdzXzY0KTogU2V0L2NoZWNrIGl4ODZfdmFyYXJnc19ncHJf c2l6ZSBhbmQKLQlpeDg2X3ZhcmFyZ3NfZnByX3NpemUuICBVc2UgaXg4Nl92YXJhcmdzX2dwcl9z aXplIGluc3RlYWQgb2YKLQlSRUdQQVJNX01BWC4gIERvbid0IHNldCBpeDg2X3NhdmVfdmFycmFy Z3NfcmVnaXN0ZXJzLgotCShpeDg2X3ZhX3N0YXJ0KTogQ2hlY2sgaXg4Nl92YXJhcmdzX2dwcl9z aXplIGFuZAotCWl4ODZfdmFyYXJnc19mcHJfc2l6ZSBpbnN0ZWFkIG9mIGNmdW4tPnZhX2xpc3Rf Z3ByX3NpemUgYW5kCi0JY2Z1bi0+dmFfbGlzdF9mcHJfc2l6ZSwgcmVzcGVjdGl2ZWx5LiAgU3Vi dHJhY3QgOCpSRUdQQVJNX01BWAotCWZyb20gZnJhbWUgcG9pbnRlciBpZiBpeDg2X3ZhcmFyZ3Nf Z3ByX3NpemUgPT0gMC4KLQkoaXg4Nl9jb21wdXRlX2ZyYW1lX2xheW91dCk6IFVwZGF0ZWQuCi0J KiBjb25maWcvaTM4Ni9pMzg2LmggKGl4ODZfc2F2ZV92YXJyYXJnc19yZWdpc3RlcnMpOiBSZW1v dmVkLgotCShpeDg2X3ZhcmFyZ3NfZ3ByX3NpemUpOiBEZWZpbmUuCi0JKGl4ODZfdmFyYXJnc19m cHJfc2l6ZSk6IExpa2V3aXNlLgotCShtYWNoaW5lX2Z1bmN0aW9uKTogUmVtb3ZlIHNhdmVfdmFy cmFyZ3NfcmVnaXN0ZXJzLgotCUFkZCB2YXJhcmdzX2dwcl9zaXplIGFuZCB2YXJhcmdzX2Zwcl9z aXplLgotCi0JKiBnY2MudGFyZ2V0L2kzODYvYW1kNjQtYWJpLTMuYzogTmV3IHRlc3QuCi0JKiBn Y2MudGFyZ2V0L2kzODYvYW1kNjQtYWJpLTQuYzogTGlrZXdpc2UuCi0JKiBnY2MudGFyZ2V0L2kz ODYvYW1kNjQtYWJpLTUuYzogTGlrZXdpc2UuCi0JKiBnY2MudGFyZ2V0L2kzODYvYW1kNjQtYWJp LTYuYzogTGlrZXdpc2UuCi0KLS0tLSBnY2MvY29uZmlnL2kzODYvaTM4Ni5oCShyZXZpc2lvbiAx Mzk5MDkpCi0rKysgZ2NjL2NvbmZpZy9pMzg2L2kzODYuaAkocmV2aXNpb24gMTM5OTEwKQotQEAg LTI0NDAsNyArMjQ0MCw4IEBAIHN0cnVjdCBtYWNoaW5lX2Z1bmN0aW9uIEdUWSgoKSkKLSAgIHN0 cnVjdCBzdGFja19sb2NhbF9lbnRyeSAqc3RhY2tfbG9jYWxzOwotICAgY29uc3QgY2hhciAqc29t ZV9sZF9uYW1lOwotICAgcnR4IGZvcmNlX2FsaWduX2FyZ19wb2ludGVyOwotLSAgaW50IHNhdmVf dmFycmFyZ3NfcmVnaXN0ZXJzOwotKyAgaW50IHZhcmFyZ3NfZ3ByX3NpemU7Ci0rICBpbnQgdmFy YXJnc19mcHJfc2l6ZTsKLSAgIGludCBhY2Nlc3Nlc19wcmV2X2ZyYW1lOwotICAgaW50IG9wdGlt aXplX21vZGVfc3dpdGNoaW5nW01BWF8zODZfRU5USVRJRVNdOwotICAgaW50IG5lZWRzX2NsZDsK LUBAIC0yNDYzLDcgKzI0NjQsOCBAQCBzdHJ1Y3QgbWFjaGluZV9mdW5jdGlvbiBHVFkoKCkpCi0g fTsKLSAKLSAjZGVmaW5lIGl4ODZfc3RhY2tfbG9jYWxzIChjZnVuLT5tYWNoaW5lLT5zdGFja19s b2NhbHMpCi0tI2RlZmluZSBpeDg2X3NhdmVfdmFycmFyZ3NfcmVnaXN0ZXJzIChjZnVuLT5tYWNo aW5lLT5zYXZlX3ZhcnJhcmdzX3JlZ2lzdGVycykKLSsjZGVmaW5lIGl4ODZfdmFyYXJnc19ncHJf c2l6ZSAoY2Z1bi0+bWFjaGluZS0+dmFyYXJnc19ncHJfc2l6ZSkKLSsjZGVmaW5lIGl4ODZfdmFy YXJnc19mcHJfc2l6ZSAoY2Z1bi0+bWFjaGluZS0+dmFyYXJnc19mcHJfc2l6ZSkKLSAjZGVmaW5l IGl4ODZfb3B0aW1pemVfbW9kZV9zd2l0Y2hpbmcgKGNmdW4tPm1hY2hpbmUtPm9wdGltaXplX21v ZGVfc3dpdGNoaW5nKQotICNkZWZpbmUgaXg4Nl9jdXJyZW50X2Z1bmN0aW9uX25lZWRzX2NsZCAo Y2Z1bi0+bWFjaGluZS0+bmVlZHNfY2xkKQotICNkZWZpbmUgaXg4Nl90bHNfZGVzY3JpcHRvcl9j YWxsc19leHBhbmRlZF9pbl9jZnVuIFwKLS0tLSBnY2MvY29uZmlnL2kzODYvaTM4Ni5jCShyZXZp c2lvbiAxMzk5MDkpCi0rKysgZ2NjL2NvbmZpZy9pMzg2L2kzODYuYwkocmV2aXNpb24gMTM5OTEw KQotQEAgLTE2MTYsOSArMTYxNiw2IEBAIHJ0eCBpeDg2X2NvbXBhcmVfb3AwID0gTlVMTF9SVFg7 Ci0gcnR4IGl4ODZfY29tcGFyZV9vcDEgPSBOVUxMX1JUWDsKLSBydHggaXg4Nl9jb21wYXJlX2Vt aXR0ZWQgPSBOVUxMX1JUWDsKLSAKLS0vKiBTaXplIG9mIHRoZSByZWdpc3RlciBzYXZlIGFyZWEu ICAqLwotLSNkZWZpbmUgWDg2XzY0X1ZBUkFSR1NfU0laRSAoUkVHUEFSTV9NQVggKiBVTklUU19Q RVJfV09SRCArIFNTRV9SRUdQQVJNX01BWCAqIDE2KQotLQotIC8qIERlZmluZSB0aGUgc3RydWN0 dXJlIGZvciB0aGUgbWFjaGluZSBmaWVsZCBpbiBzdHJ1Y3QgZnVuY3Rpb24uICAqLwotIAotIHN0 cnVjdCBzdGFja19sb2NhbF9lbnRyeSBHVFkoKCkpCi1AQCAtNDk3NiwxMSArNDk3MywyMiBAQCBz ZXR1cF9pbmNvbWluZ192YXJhcmdzXzY0IChDVU1VTEFUSVZFX0FSCi0gICBhbGlhc19zZXRfdHlw ZSBzZXQ7Ci0gICBpbnQgaTsKLSAKLS0gIGlmICghIGNmdW4tPnZhX2xpc3RfZ3ByX3NpemUgJiYg ISBjZnVuLT52YV9saXN0X2Zwcl9zaXplKQotKyAgLyogR1BSIHNpemUgb2YgdmFyYXJncyBzYXZl IGFyZWEuICAqLwotKyAgaWYgKGNmdW4tPnZhX2xpc3RfZ3ByX3NpemUpCi0rICAgIGl4ODZfdmFy YXJnc19ncHJfc2l6ZSA9IFJFR1BBUk1fTUFYICogVU5JVFNfUEVSX1dPUkQ7Ci0rICBlbHNlCi0r ICAgIGl4ODZfdmFyYXJnc19ncHJfc2l6ZSA9IDA7Ci0rCi0rICAvKiBGUFIgc2l6ZSBvZiB2YXJh cmdzIHNhdmUgYXJlYS4gIFdlIGRvbid0IG5lZWQgaXQgaWYgd2UgZG9uJ3QgcGFzcwotKyAgICAg YW55dGhpbmcgaW4gU1NFIHJlZ2lzdGVycy4gICovCi0rICBpZiAoY3VtLT5zc2VfbnJlZ3MgJiYg Y2Z1bi0+dmFfbGlzdF9mcHJfc2l6ZSkKLSsgICAgaXg4Nl92YXJhcmdzX2Zwcl9zaXplID0gU1NF X1JFR1BBUk1fTUFYICogMTY7Ci0rICBlbHNlCi0rICAgIGl4ODZfdmFyYXJnc19mcHJfc2l6ZSA9 IDA7Ci0rCi0rICBpZiAoISBpeDg2X3ZhcmFyZ3NfZ3ByX3NpemUgJiYgISBpeDg2X3ZhcmFyZ3Nf ZnByX3NpemUpCi0gICAgIHJldHVybjsKLSAKLS0gIC8qIEluZGljYXRlIHRvIGFsbG9jYXRlIHNw YWNlIG9uIHRoZSBzdGFjayBmb3IgdmFyYXJncyBzYXZlIGFyZWEuICAqLwotLSAgaXg4Nl9zYXZl X3ZhcnJhcmdzX3JlZ2lzdGVycyA9IDE7Ci0gICAvKiBXZSBuZWVkIDE2LWJ5dGUgc3RhY2sgYWxp Z25tZW50IHRvIHNhdmUgU1NFIHJlZ2lzdGVycy4gIElmIHVzZXIKLSAgICAgIGFza2VkIGZvciBs b3dlciBwcmVmZXJyZWRfc3RhY2tfYm91bmRhcnksIGxldHMganVzdCBob3BlIHRoYXQgaGUga25v d3MKLSAgICAgIHdoYXQgaGUgaXMgZG9pbmcgYW5kIHdvbid0IHZhcmFyZ3MgU1NFIHZhbHVlcy4K LUBAIC01MDA2LDcgKzUwMTQsNyBAQCBzZXR1cF9pbmNvbWluZ192YXJhcmdzXzY0IChDVU1VTEFU SVZFX0FSCi0gCQkJCQl4ODZfNjRfaW50X3BhcmFtZXRlcl9yZWdpc3RlcnNbaV0pKTsKLSAgICAg fQotIAotLSAgaWYgKGN1bS0+c3NlX25yZWdzICYmIGNmdW4tPnZhX2xpc3RfZnByX3NpemUpCi0r ICBpZiAoaXg4Nl92YXJhcmdzX2Zwcl9zaXplKQotICAgICB7Ci0gICAgICAgLyogTm93IGVtaXQg Y29kZSB0byBzYXZlIFNTRSByZWdpc3RlcnMuICBUaGUgQVggcGFyYW1ldGVyIGNvbnRhaW5zIG51 bWJlcgotIAkgb2YgU1NFIHBhcmFtZXRlciByZWdpc3RlcnMgdXNlZCB0byBjYWxsIHRoaXMgZnVu Y3Rpb24uICBXZSB1c2UKLUBAIC01MDQxLDcgKzUwNDksNyBAQCBzZXR1cF9pbmNvbWluZ192YXJh cmdzXzY0IChDVU1VTEFUSVZFX0FSCi0gICAgICAgdG1wX3JlZyA9IGdlbl9yZWdfcnR4IChQbW9k ZSk7Ci0gICAgICAgZW1pdF9pbnNuIChnZW5fcnR4X1NFVCAoVk9JRG1vZGUsIHRtcF9yZWcsCi0g CQkJICAgICAgcGx1c19jb25zdGFudCAoc2F2ZV9hcmVhLAotLQkJCQkJICAgICA4ICogUkVHUEFS TV9NQVggKyAxMjcpKSk7Ci0rCQkJCQkgICAgIGl4ODZfdmFyYXJnc19ncHJfc2l6ZSArIDEyNykp KTsKLSAgICAgICBtZW0gPSBnZW5fcnR4X01FTSAoQkxLbW9kZSwgcGx1c19jb25zdGFudCAodG1w X3JlZywgLTEyNykpOwotICAgICAgIE1FTV9OT1RSQVBfUCAobWVtKSA9IDE7Ci0gICAgICAgc2V0 X21lbV9hbGlhc19zZXQgKG1lbSwgc2V0KTsKLUBAIC01MTQ1LDcgKzUxNTMsNyBAQCBpeDg2X3Zh X3N0YXJ0ICh0cmVlIHZhbGlzdCwgcnR4IG5leHRhcmcpCi0gICAgICAgZXhwYW5kX2V4cHIgKHQs IGNvbnN0MF9ydHgsIFZPSURtb2RlLCBFWFBBTkRfTk9STUFMKTsKLSAgICAgfQotIAotLSAgaWYg KGNmdW4tPnZhX2xpc3RfZnByX3NpemUpCi0rICBpZiAoVEFSR0VUX1NTRSAmJiBjZnVuLT52YV9s aXN0X2Zwcl9zaXplKQotICAgICB7Ci0gICAgICAgdHlwZSA9IFRSRUVfVFlQRSAoZnByKTsKLSAg ICAgICB0ID0gYnVpbGQyIChHSU1QTEVfTU9ESUZZX1NUTVQsIHR5cGUsIGZwciwKLUBAIC01MTY0 LDEyICs1MTcyLDE1IEBAIGl4ODZfdmFfc3RhcnQgKHRyZWUgdmFsaXN0LCBydHggbmV4dGFyZykK LSAgIFRSRUVfU0lERV9FRkZFQ1RTICh0KSA9IDE7Ci0gICBleHBhbmRfZXhwciAodCwgY29uc3Qw X3J0eCwgVk9JRG1vZGUsIEVYUEFORF9OT1JNQUwpOwotIAotLSAgaWYgKGNmdW4tPnZhX2xpc3Rf Z3ByX3NpemUgfHwgY2Z1bi0+dmFfbGlzdF9mcHJfc2l6ZSkKLSsgIGlmIChpeDg2X3ZhcmFyZ3Nf Z3ByX3NpemUgfHwgaXg4Nl92YXJhcmdzX2Zwcl9zaXplKQotICAgICB7Ci0gICAgICAgLyogRmlu ZCB0aGUgcmVnaXN0ZXIgc2F2ZSBhcmVhLgotIAkgUHJvbG9ndWUgb2YgdGhlIGZ1bmN0aW9uIHNh dmUgaXQgcmlnaHQgYWJvdmUgc3RhY2sgZnJhbWUuICAqLwotICAgICAgIHR5cGUgPSBUUkVFX1RZ UEUgKHNhdik7Ci0gICAgICAgdCA9IG1ha2VfdHJlZSAodHlwZSwgZnJhbWVfcG9pbnRlcl9ydHgp OwotKyAgICAgIGlmICghaXg4Nl92YXJhcmdzX2dwcl9zaXplKQotKwl0ID0gYnVpbGQyIChQT0lO VEVSX1BMVVNfRVhQUiwgdHlwZSwgdCwKLSsJCSAgICBzaXplX2ludCAoLTggKiBSRUdQQVJNX01B WCkpOwotICAgICAgIHQgPSBidWlsZDIgKEdJTVBMRV9NT0RJRllfU1RNVCwgdHlwZSwgc2F2LCB0 KTsKLSAgICAgICBUUkVFX1NJREVfRUZGRUNUUyAodCkgPSAxOwotICAgICAgIGV4cGFuZF9leHBy ICh0LCBjb25zdDBfcnR4LCBWT0lEbW9kZSwgRVhQQU5EX05PUk1BTCk7Ci1AQCAtNjA3OSwxMyAr NjA5MCw4IEBAIGl4ODZfY29tcHV0ZV9mcmFtZV9sYXlvdXQgKHN0cnVjdCBpeDg2X2YKLSAgIG9m ZnNldCArPSBmcmFtZS0+bnJlZ3MgKiBVTklUU19QRVJfV09SRDsKLSAKLSAgIC8qIFZhLWFyZyBh cmVhICovCi0tICBpZiAoaXg4Nl9zYXZlX3ZhcnJhcmdzX3JlZ2lzdGVycykKLS0gICAgewotLSAg ICAgIG9mZnNldCArPSBYODZfNjRfVkFSQVJHU19TSVpFOwotLSAgICAgIGZyYW1lLT52YV9hcmdf c2l6ZSA9IFg4Nl82NF9WQVJBUkdTX1NJWkU7Ci0tICAgIH0KLS0gIGVsc2UKLS0gICAgZnJhbWUt PnZhX2FyZ19zaXplID0gMDsKLSsgIGZyYW1lLT52YV9hcmdfc2l6ZSA9IGl4ODZfdmFyYXJnc19n cHJfc2l6ZSArIGl4ODZfdmFyYXJnc19mcHJfc2l6ZTsKLSsgIG9mZnNldCArPSBmcmFtZS0+dmFf YXJnX3NpemU7Ci0gCi0gICAvKiBBbGlnbiBzdGFydCBvZiBmcmFtZSBmb3IgbG9jYWwgZnVuY3Rp b24uICAqLwotICAgZnJhbWUtPnBhZGRpbmcxID0gKChvZmZzZXQgKyBzdGFja19hbGlnbm1lbnRf bmVlZGVkIC0gMSkKLS0tLSBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hbWQ2NC1hYmkt My5jCShyZXZpc2lvbiAwKQotKysrIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2FtZDY0 LWFiaS0zLmMJKHJldmlzaW9uIDEzOTkxMCkKLUBAIC0wLDAgKzEsMTggQEAKLSsvKiB7IGRnLWRv IGNvbXBpbGUgfSAqLwotKy8qIHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IGxwNjQgfSAq LwotKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1tbm8tc3NlIiB9ICovCi0rLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyICJzdWJxXFtcXHQgXF0qXFxcJDg4LFxbXFx0IFxdKiVyc3AiIH0gfSAq LwotKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3QgInN1YnFcW1xcdCBcXSpcXFwk MjE2LFxbXFx0IFxdKiVyc3AiIH0gfSAqLwotKwotKyNpbmNsdWRlIDxzdGRhcmcuaD4KLSsKLSt2 b2lkIGZvbyAodmFfbGlzdCB2YV9hcmdsaXN0KTsKLSsKLSt2b2lkCi0rdGVzdCAoaW50IGExLCAu Li4pCi0rewotKyAgdmFfbGlzdCB2YV9hcmdsaXN0OwotKyAgdmFfc3RhcnQgKHZhX2FyZ2xpc3Qs IGExKTsKLSsgIGZvbyAodmFfYXJnbGlzdCk7Ci0rICB2YV9lbmQgKHZhX2FyZ2xpc3QpOwotK30K LS0tLSBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hbWQ2NC1hYmktNS5jCShyZXZpc2lv biAwKQotKysrIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2FtZDY0LWFiaS01LmMJKHJl dmlzaW9uIDEzOTkxMCkKLUBAIC0wLDAgKzEsNjQgQEAKLSsvKiB7IGRnLWRvIHJ1biB9ICovCi0r LyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQgbHA2NCB9ICovCi0rLyogeyBkZy1vcHRp b25zICItTzIiIH0gKi8KLSsKLSsjaW5jbHVkZSA8c3RkYXJnLmg+Ci0rI2luY2x1ZGUgPGFzc2Vy dC5oPgotKwotK2ludCBuMSA9IDMwOwotK2RvdWJsZSBuMiA9IDMyNDsKLStkb3VibGUgbjMgPSAz OTQ5NC45NDsKLStkb3VibGUgbjQgPSA0MDc7Ci0rZG91YmxlIG41ID0gMzIuMzA0OwotK2RvdWJs ZSBuNiA9IDM5NC4xNDsKLStkb3VibGUgbjcgPSA0LjA3OwotK2RvdWJsZSBuOCA9IDMyLjQ7Ci0r ZG91YmxlIG45ID0gMzE0LjE5NDsKLStkb3VibGUgbjEwID0gMC4xNDA3OwotKwotK2ludCBlMTsK LStkb3VibGUgZTI7Ci0rZG91YmxlIGUzOwotK2RvdWJsZSBlNDsKLStkb3VibGUgZTU7Ci0rZG91 YmxlIGU2OwotK2RvdWJsZSBlNzsKLStkb3VibGUgZTg7Ci0rZG91YmxlIGU5OwotK2RvdWJsZSBl MTA7Ci0rCi0rc3RhdGljIHZvaWQKLStfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCi0rdGVzdCAo aW50IGExLCAuLi4pCi0rewotKyAgZTEgPSBhMTsKLSsgIHZhX2xpc3QgdmFfYXJnbGlzdDsKLSsg IHZhX3N0YXJ0ICh2YV9hcmdsaXN0LCBhMSk7Ci0rICBlMiA9IHZhX2FyZyAodmFfYXJnbGlzdCwg ZG91YmxlKTsKLSsgIGUzID0gdmFfYXJnICh2YV9hcmdsaXN0LCBkb3VibGUpOwotKyAgZTQgPSB2 YV9hcmcgKHZhX2FyZ2xpc3QsIGRvdWJsZSk7Ci0rICBlNSA9IHZhX2FyZyAodmFfYXJnbGlzdCwg ZG91YmxlKTsKLSsgIGU2ID0gdmFfYXJnICh2YV9hcmdsaXN0LCBkb3VibGUpOwotKyAgZTcgPSB2 YV9hcmcgKHZhX2FyZ2xpc3QsIGRvdWJsZSk7Ci0rICBlOCA9IHZhX2FyZyAodmFfYXJnbGlzdCwg ZG91YmxlKTsKLSsgIGU5ID0gdmFfYXJnICh2YV9hcmdsaXN0LCBkb3VibGUpOwotKyAgZTEwID0g dmFfYXJnICh2YV9hcmdsaXN0LCBkb3VibGUpOwotKyAgdmFfZW5kICh2YV9hcmdsaXN0KTsKLSt9 Ci0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsgIHRlc3QgKG4xLCBuMiwgbjMsIG40LCBuNSwgbjYs IG43LCBuOCwgbjksIG4xMCk7Ci0rICBhc3NlcnQgKG4xID09IGUxKTsKLSsgIGFzc2VydCAobjIg PT0gZTIpOwotKyAgYXNzZXJ0IChuMyA9PSBlMyk7Ci0rICBhc3NlcnQgKG40ID09IGU0KTsKLSsg IGFzc2VydCAobjUgPT0gZTUpOwotKyAgYXNzZXJ0IChuNiA9PSBlNik7Ci0rICBhc3NlcnQgKG43 ID09IGU3KTsKLSsgIGFzc2VydCAobjggPT0gZTgpOwotKyAgYXNzZXJ0IChuOSA9PSBlOSk7Ci0r ICBhc3NlcnQgKG4xMCA9PSBlMTApOwotKyAgcmV0dXJuIDA7Ci0rfQotLS0tIGdjYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9pMzg2L2FtZDY0LWFiaS00LmMJKHJldmlzaW9uIDApCi0rKysgZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYW1kNjQtYWJpLTQuYwkocmV2aXNpb24gMTM5OTEwKQot QEAgLTAsMCArMSw0NyBAQAotKy8qIHsgZGctZG8gcnVuIH0gKi8KLSsvKiB7IGRnLXJlcXVpcmUt ZWZmZWN0aXZlLXRhcmdldCBscDY0IH0gKi8KLSsvKiB7IGRnLW9wdGlvbnMgIi1PMiAtbW5vLXNz ZSIgfSAqLwotKwotKyNpbmNsdWRlIDxzdGRhcmcuaD4KLSsjaW5jbHVkZSA8YXNzZXJ0Lmg+Ci0r Ci0raW50IG4xID0gMzA7Ci0raW50IG4yID0gMzI0OwotK3ZvaWQgKm4zID0gKHZvaWQgKikgJm4y OwotK2ludCBuNCA9IDQwNzsKLSsKLStpbnQgZTE7Ci0raW50IGUyOwotK3ZvaWQgKmUzOwotK2lu dCBlNDsKLSsKLStzdGF0aWMgdm9pZAotK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKLStmb28g KHZhX2xpc3QgdmFfYXJnbGlzdCkKLSt7Ci0rICBlMiA9IHZhX2FyZyAodmFfYXJnbGlzdCwgaW50 KTsKLSsgIGUzID0gdmFfYXJnICh2YV9hcmdsaXN0LCB2b2lkICopOwotKyAgZTQgPSB2YV9hcmcg KHZhX2FyZ2xpc3QsIGludCk7Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rX19hdHRyaWJ1dGVfXygo bm9pbmxpbmUpKQotK3Rlc3QgKGludCBhMSwgLi4uKQotK3sKLSsgIGUxID0gYTE7Ci0rICB2YV9s aXN0IHZhX2FyZ2xpc3Q7Ci0rICB2YV9zdGFydCAodmFfYXJnbGlzdCwgYTEpOwotKyAgZm9vICh2 YV9hcmdsaXN0KTsKLSsgIHZhX2VuZCAodmFfYXJnbGlzdCk7Ci0rfQotKwotK2ludAotK21haW4g KCkKLSt7Ci0rICB0ZXN0IChuMSwgbjIsIG4zLCBuNCk7Ci0rICBhc3NlcnQgKG4xID09IGUxKTsK LSsgIGFzc2VydCAobjIgPT0gZTIpOwotKyAgYXNzZXJ0IChuMyA9PSBlMyk7Ci0rICBhc3NlcnQg KG40ID09IGU0KTsKLSsgIHJldHVybiAwOwotK30KLS0tLSBnY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvaTM4Ni9hbWQ2NC1hYmktNi5jCShyZXZpc2lvbiAwKQotKysrIGdjYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9pMzg2L2FtZDY0LWFiaS02LmMJKHJldmlzaW9uIDEzOTkxMCkKLUBAIC0wLDAgKzEs NzEgQEAKLSsvKiB7IGRnLWRvIHJ1biB9ICovCi0rLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10 YXJnZXQgbHA2NCB9ICovCi0rLyogeyBkZy1vcHRpb25zICItTzIiIH0gKi8KLSsKLSsjaW5jbHVk ZSA8c3RkYXJnLmg+Ci0rI2luY2x1ZGUgPGFzc2VydC5oPgotKwotK2ludCBuMSA9IDMwOwotK2Rv dWJsZSBuMiA9IDMyNDsKLStkb3VibGUgbjMgPSAzOTQ5NC45NDsKLStkb3VibGUgbjQgPSA0MDc7 Ci0rZG91YmxlIG41ID0gMzIuMzA0OwotK2RvdWJsZSBuNiA9IDM5NC4xNDsKLStkb3VibGUgbjcg PSA0LjA3OwotK2RvdWJsZSBuOCA9IDMyLjQ7Ci0rZG91YmxlIG45ID0gMzE0LjE5NDsKLStkb3Vi bGUgbjEwID0gMC4xNDA3OwotKwotK2ludCBlMTsKLStkb3VibGUgZTI7Ci0rZG91YmxlIGUzOwot K2RvdWJsZSBlNDsKLStkb3VibGUgZTU7Ci0rZG91YmxlIGU2OwotK2RvdWJsZSBlNzsKLStkb3Vi bGUgZTg7Ci0rZG91YmxlIGU5OwotK2RvdWJsZSBlMTA7Ci0rCi0rc3RhdGljIHZvaWQKLStfX2F0 dHJpYnV0ZV9fKChub2lubGluZSkpCi0rZm9vICh2YV9saXN0IHZhX2FyZ2xpc3QpCi0rewotKyAg ZTIgPSB2YV9hcmcgKHZhX2FyZ2xpc3QsIGRvdWJsZSk7Ci0rICBlMyA9IHZhX2FyZyAodmFfYXJn bGlzdCwgZG91YmxlKTsKLSsgIGU0ID0gdmFfYXJnICh2YV9hcmdsaXN0LCBkb3VibGUpOwotKyAg ZTUgPSB2YV9hcmcgKHZhX2FyZ2xpc3QsIGRvdWJsZSk7Ci0rICBlNiA9IHZhX2FyZyAodmFfYXJn bGlzdCwgZG91YmxlKTsKLSsgIGU3ID0gdmFfYXJnICh2YV9hcmdsaXN0LCBkb3VibGUpOwotKyAg ZTggPSB2YV9hcmcgKHZhX2FyZ2xpc3QsIGRvdWJsZSk7Ci0rICBlOSA9IHZhX2FyZyAodmFfYXJn bGlzdCwgZG91YmxlKTsKLSsgIGUxMCA9IHZhX2FyZyAodmFfYXJnbGlzdCwgZG91YmxlKTsKLSt9 Ci0rCi0rc3RhdGljIHZvaWQKLStfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCi0rdGVzdCAoaW50 IGExLCAuLi4pCi0rewotKyAgdmFfbGlzdCB2YV9hcmdsaXN0OwotKyAgZTEgPSBhMTsKLSsgIHZh X3N0YXJ0ICh2YV9hcmdsaXN0LCBhMSk7Ci0rICBmb28gKHZhX2FyZ2xpc3QpOwotKyAgdmFfZW5k ICh2YV9hcmdsaXN0KTsKLSt9Ci0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsgIHRlc3QgKG4xLCBu MiwgbjMsIG40LCBuNSwgbjYsIG43LCBuOCwgbjksIG4xMCk7Ci0rICBhc3NlcnQgKG4xID09IGUx KTsKLSsgIGFzc2VydCAobjIgPT0gZTIpOwotKyAgYXNzZXJ0IChuMyA9PSBlMyk7Ci0rICBhc3Nl cnQgKG40ID09IGU0KTsKLSsgIGFzc2VydCAobjUgPT0gZTUpOwotKyAgYXNzZXJ0IChuNiA9PSBl Nik7Ci0rICBhc3NlcnQgKG43ID09IGU3KTsKLSsgIGFzc2VydCAobjggPT0gZTgpOwotKyAgYXNz ZXJ0IChuOSA9PSBlOSk7Ci0rICBhc3NlcnQgKG4xMCA9PSBlMTApOwotKyAgcmV0dXJuIDA7Ci0r fQoKZGlmZiAtLWdpdCBhL2djYzQzLnNwZWMgYi9nY2M0My5zcGVjCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCA5N2EzZTAxLi4wMDAwMDAwCi0tLSBhL2djYzQzLnNwZWMKKysrIC9kZXYv bnVsbApAQCAtMSwyMDU4ICswLDAgQEAKLSVkZWZpbmUgREFURSAyMDA4MTEwNQotJWRlZmluZSBT Vk5SRVYgMTQxNjAxCi0lZGVmaW5lIGdjY192ZXJzaW9uIDQuMy4yCi0jIE5vdGUsIGdjY19yZWxl YXNlIG11c3QgYmUgaW50ZWdlciwgaWYgeW91IHdhbnQgdG8gYWRkIHN1ZmZpeGVzIHRvCi0jICV7 cmVsZWFzZX0sIGFwcGVuZCB0aGVtIGFmdGVyICV7Z2NjX3JlbGVhc2V9IG9uIFJlbGVhc2U6IGxp bmUuCi0lZGVmaW5lIGdjY19yZWxlYXNlIDcKLSVkZWZpbmUgX3VucGFja2FnZWRfZmlsZXNfdGVy bWluYXRlX2J1aWxkIDAKLSVkZWZpbmUgbXVsdGlsaWJfNjRfYXJjaHMgc3BhcmM2NCBwcGM2NCBz MzkweCB4ODZfNjQKLSVkZWZpbmUgaW5jbHVkZV9nYXBwbGV0dmlld2VyIDEKLSVpZmFyY2ggJXtp eDg2fSB4ODZfNjQgaWE2NCBwcGMgYWxwaGEKLSVkZWZpbmUgYnVpbGRfYWRhIDEKLSVlbHNlCi0l ZGVmaW5lIGJ1aWxkX2FkYSAwCi0lZW5kaWYKLSVkZWZpbmUgYnVpbGRfamF2YSAxCi0jIElmIHlv dSBkb24ndCBoYXZlIGFscmVhZHkgYSB1c2FibGUgZ2NjLWphdmEgYW5kIGxpYmdjaiBmb3IgeW91 ciBhcmNoLAotIyBkbyBvbiBzb21lIGFyY2ggd2hpY2ggaGFzIGl0IHJwbWJ1aWxkIC1iYyAtLXdp dGggamF2YV90YXIgZ2NjNDEuc3BlYwotIyB3aGljaCBjcmVhdGVzIGxpYmphdmEtY2xhc3Nlcy0l e3ZlcnNpb259LSV7cmVsZWFzZX0udGFyLmJ6MgotIyBXaXRoIHRoaXMgdGhlbiBvbiB0aGUgbmV3 IGFyY2ggZG8gcnBtYnVpbGQgLWJhIC12IC0td2l0aCBqYXZhX2Jvb3RzdHJhcCBnY2M0MS5zcGVj Ci0lZGVmaW5lIGJvb3RzdHJhcF9qYXZhICV7P193aXRoX2phdmFfYm9vdHN0cmFwOiV7YnVpbGRf amF2YX19JXshP193aXRoX2phdmFfYm9vdHN0cmFwOjB9Ci0lZGVmaW5lIGJ1aWxkX2phdmFfdGFy ICV7P193aXRoX2phdmFfdGFyOiV7YnVpbGRfamF2YX19JXshP193aXRoX2phdmFfdGFyOjB9Ci0l aWZhcmNoIHMzOTB4Ci0lZGVmaW5lIG11bHRpbGliXzMyX2FyY2ggczM5MAotJWVuZGlmCi0laWZh cmNoIHNwYXJjNjQKLSVkZWZpbmUgbXVsdGlsaWJfMzJfYXJjaCBzcGFyY3Y5Ci0lZW5kaWYKLSVp ZmFyY2ggcHBjNjQKLSVkZWZpbmUgbXVsdGlsaWJfMzJfYXJjaCBwcGMKLSVlbmRpZgotJWlmYXJj aCB4ODZfNjQKLSVkZWZpbmUgbXVsdGlsaWJfMzJfYXJjaCBpMzg2Ci0lZW5kaWYKLVN1bW1hcnk6 IFZhcmlvdXMgY29tcGlsZXJzIChDLCBDKyssIE9iamVjdGl2ZS1DLCBKYXZhLCAuLi4pCi1OYW1l OiBnY2MKLVZlcnNpb246ICV7Z2NjX3ZlcnNpb259Ci1SZWxlYXNlOiAle2djY19yZWxlYXNlfQot IyBsaWJnY2MsIGxpYmdmb3J0cmFuLCBsaWJtdWRmbGFwIGFuZCBjcnRzdHVmZiBoYXZlIGFuIGV4 Y2VwdGlvbiB3aGljaCBhbGxvd3MKLSMgbGlua2luZyBpdCBpbnRvIGFueSBraW5kIG9mIHByb2dy YW1zIG9yIHNoYXJlZCBsaWJyYXJpZXMgd2l0aG91dAotIyByZXN0cmljdGlvbnMuCi1MaWNlbnNl OiBHUEx2MysgYW5kIEdQTHYyKyB3aXRoIGV4Y2VwdGlvbnMKLUdyb3VwOiBEZXZlbG9wbWVudC9M YW5ndWFnZXMKLSMgVGhlIHNvdXJjZSBmb3IgdGhpcyBwYWNrYWdlIHdhcyBwdWxsZWQgZnJvbSB1 cHN0cmVhbSdzIHZjcy4gIFVzZSB0aGUKLSMgZm9sbG93aW5nIGNvbW1hbmRzIHRvIGdlbmVyYXRl IHRoZSB0YXJiYWxsOgotIyBzdm4gZXhwb3J0IHN2bjovL2djYy5nbnUub3JnL3N2bi9nY2MvYnJh bmNoZXMvcmVkaGF0L2djYy00XzMtYnJhbmNoQCV7U1ZOUkVWfSBnY2MtJXt2ZXJzaW9ufS0le0RB VEV9Ci0jIHRhciBjZiAtIGdjYy0le3ZlcnNpb259LSV7REFURX0gfCBiemlwMiAtOSA+IGdjYy0l e3ZlcnNpb259LSV7REFURX0udGFyLmJ6MgotU291cmNlMDogZ2NjLSV7dmVyc2lvbn0tJXtEQVRF fS50YXIuYnoyCi1Tb3VyY2UxOiBsaWJnY2NfcG9zdF91cGdyYWRlLmMKLVNvdXJjZTI6IFJFQURN RS5saWJnY2p3ZWJwbHVnaW4uc28KLVNvdXJjZTM6IHByb3RvaXplLjEKLSVkZWZpbmUgZmFzdGph cl92ZXIgMC45NQotU291cmNlNDogaHR0cDovL2Rvd25sb2FkLnNhdmFubmFoLm5vbmdudS5vcmcv cmVsZWFzZXMvZmFzdGphci9mYXN0amFyLSV7ZmFzdGphcl92ZXJ9LnRhci5negotVVJMOiBodHRw Oi8vZ2NjLmdudS5vcmcKLUJ1aWxkUm9vdDogJXtfdG1wcGF0aH0vJXtuYW1lfS0le3ZlcnNpb259 LSV7cmVsZWFzZX0tcm9vdC0lKCV7X19pZF91fSAtbikKLSMgTmVlZCBiaW51dGlscyB3aXRoIC1w aWUgc3VwcG9ydCA+PSAyLjE0LjkwLjAuNC00Ci0jIE5lZWQgYmludXRpbHMgd2hpY2ggY2FuIG9t aXQgZG90IHN5bWJvbHMgYW5kIG92ZXJsYXAgLm9wZCBvbiBwcGM2NCA+PSAyLjE1LjkxLjAuMi00 Ci0jIE5lZWQgYmludXRpbHMgd2hpY2ggaGFuZGxlIC1tc2VjdXJlLXBsdCBvbiBwcGMgPj0gMi4x Ni45MS4wLjItMgotIyBOZWVkIGJpbnV0aWxzIHdoaWNoIHN1cHBvcnQgLndlYWtyZWYgPj0gMi4x Ni45MS4wLjMtMQotIyBOZWVkIGJpbnV0aWxzIHdoaWNoIHN1cHBvcnQgLS1oYXNoLXN0eWxlPWdu dSA+PSAyLjE3LjUwLjAuMi03Ci0jIE5lZWQgYmludXRpbHMgd2hpY2ggc3VwcG9ydCBtZmZncHIg YW5kIG1mdGdwciA+PSAyLjE3LjUwLjAuMi04Ci0jIE5lZWQgYmludXRpbHMgd2hpY2ggc3VwcG9y dCAtLWJ1aWxkLWlkID49IDIuMTcuNTAuMC4xNy0zCi1CdWlsZFJlcXVpcmVzOiBiaW51dGlscyA+ PSAyLjE3LjUwLjAuMTctMwotQnVpbGRSZXF1aXJlczogemxpYi1kZXZlbCwgZ2V0dGV4dCwgZGVq YWdudSwgYmlzb24sIGZsZXgsIHRleGluZm8sIHNoYXJ1dGlscwotJWlmICV7YnVpbGRfamF2YX0K LUJ1aWxkUmVxdWlyZXM6IC91c3Ivc2hhcmUvamF2YS9lY2xpcHNlLWVjai5qYXIsIHppcCwgdW56 aXAKLSVpZiAle2Jvb3RzdHJhcF9qYXZhfQotU291cmNlMTA6IGxpYmphdmEtY2xhc3Nlcy0le3Zl cnNpb259LSV7cmVsZWFzZX0udGFyLmJ6MgotJWVsc2UKLUJ1aWxkUmVxdWlyZXM6IGdjYy1qYXZh LCBsaWJnY2oKLSVlbmRpZgotJWVuZGlmCi0jIE1ha2Ugc3VyZSBwdGhyZWFkLmggZG9lc24ndCBj b250YWluIF9fdGhyZWFkIHRva2VucwotIyBNYWtlIHN1cmUgZ2xpYmMgc3VwcG9ydHMgc3RhY2sg cHJvdGVjdG9yCi0jIE1ha2Ugc3VyZSBnbGliYyBzdXBwb3J0cyBEVF9HTlVfSEFTSAotQnVpbGRS ZXF1aXJlczogZ2xpYmMtZGV2ZWwgPj0gMi40LjkwLTEzCi1CdWlsZFJlcXVpcmVzOiBlbGZ1dGls cy1kZXZlbCA+PSAwLjcyCi0laWZhcmNoIHBwYyBwcGM2NCBzMzkwIHMzOTB4IHNwYXJjIHNwYXJj djkgYWxwaGEKLSMgTWFrZSBzdXJlIGdsaWJjIHN1cHBvcnRzIFRGbW9kZSBsb25nIGRvdWJsZQot QnVpbGRSZXF1aXJlczogZ2xpYmMgPj0gMi4zLjkwLTM1Ci0lZW5kaWYKLSVpZmFyY2ggJXttdWx0 aWxpYl82NF9hcmNoc30gc3BhcmN2OSBwcGMKLSMgRW5zdXJlIGdsaWJjeywtZGV2ZWx9IGlzIGlu c3RhbGxlZCBmb3IgYm90aCBtdWx0aWxpYiBhcmNoZXMKLUJ1aWxkUmVxdWlyZXM6IC9saWIvbGli Yy5zby42IC91c3IvbGliL2xpYmMuc28gL2xpYjY0L2xpYmMuc28uNiAvdXNyL2xpYjY0L2xpYmMu c28KLSVlbmRpZgotJWlmICV7YnVpbGRfYWRhfQotIyBBZGEgcmVxdWlyZXMgQWRhIHRvIGJ1aWxk Ci1CdWlsZFJlcXVpcmVzOiBnY2MtZ25hdCA+PSAzLjEsIGxpYmduYXQgPj0gMy4xCi0lZW5kaWYK LSVpZmFyY2ggaWE2NAotQnVpbGRSZXF1aXJlczogbGlidW53aW5kID49IDAuOTgKLSVlbmRpZgot UmVxdWlyZXM6IGNwcCA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQotIyBOZWVkIC5laF9mcmFtZSBs ZCBvcHRpbWl6YXRpb25zCi0jIE5lZWQgcHJvcGVyIHZpc2liaWxpdHkgc3VwcG9ydAotIyBOZWVk IC1waWUgc3VwcG9ydAotIyBOZWVkIC0tYXMtbmVlZGVkLy0tbm8tYXMtbmVlZGVkIHN1cHBvcnQK LSMgT24gcHBjNjQsIG5lZWQgb21pdCBkb3Qgc3ltYm9scyBzdXBwb3J0IGFuZCAtLW5vbi1vdmVy bGFwcGluZy1vcGQKLSMgTmVlZCBiaW51dGlscyB0aGF0IG93bnMgL3Vzci9iaW4vYysrZmlsdAot IyBOZWVkIGJpbnV0aWxzIHRoYXQgc3VwcG9ydCAud2Vha3JlZgotIyBOZWVkIGJpbnV0aWxzIHRo YXQgc3VwcG9ydHMgLS1oYXNoLXN0eWxlPWdudQotIyBOZWVkIGJpbnV0aWxzIHRoYXQgc3VwcG9y dCBtZmZncHIvbWZ0Z3ByCi0jIE5lZWQgYmludXRpbHMgdGhhdCBzdXBwb3J0IC0tYnVpbGQtaWQK LVJlcXVpcmVzOiBiaW51dGlscyA+PSAyLjE3LjUwLjAuMTctMwotIyBNYWtlIHN1cmUgZ2RiIHdp bGwgdW5kZXJzdGFuZCBEV19GT1JNX3N0cnAKLUNvbmZsaWN0czogZ2RiIDwgNS4xLTIKLVJlcXVp cmVzOiBnbGliYy1kZXZlbCA+PSAyLjIuOTAtMTIKLSVpZmFyY2ggcHBjIHBwYzY0IHMzOTAgczM5 MHggc3BhcmMgc3BhcmN2OSBhbHBoYQotIyBNYWtlIHN1cmUgZ2xpYmMgc3VwcG9ydHMgVEZtb2Rl IGxvbmcgZG91YmxlCi1SZXF1aXJlczogZ2xpYmMgPj0gMi4zLjkwLTM1Ci0lZW5kaWYKLVJlcXVp cmVzOiBsaWJnY2MgPj0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci1SZXF1aXJlczogbGliZ29tcCA9 ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQotI09ic29sZXRlczogZ2NjMwotI09ic29sZXRlczogZWdj cwotJWlmYXJjaCBzcGFyYwotI09ic29sZXRlczogZ2NjLXNwYXJjMzIKLSNPYnNvbGV0ZXM6IGdj Yy1jKystc3BhcmMzMgotJWVuZGlmCi0laWZhcmNoIHBwYwotI09ic29sZXRlczogZ2NjLXBwYzMy Ci0jT2Jzb2xldGVzOiBnY2MtYysrLXBwYzMyCi0lZW5kaWYKLSNPYnNvbGV0ZXM6IGdjYy1jaGls bAotJWlmICEle2J1aWxkX2FkYX0KLU9ic29sZXRlczogZ2NjLWduYXQgPCAle3ZlcnNpb259LSV7 cmVsZWFzZX0KLU9ic29sZXRlczogbGliZ25hdCA8ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQotJWVu ZGlmCi0laWZhcmNoIHNwYXJjIHNwYXJjNjQKLSNPYnNvbGV0ZXM6IGVnY3M2NAotJWVuZGlmCi0j T2Jzb2xldGVzOiBnY2MzNAotI09ic29sZXRlczogZ2NjMzUKLSNPYnNvbGV0ZXM6IGdjYzQKLVBy ZXJlcTogL3NiaW4vaW5zdGFsbC1pbmZvCi1BdXRvUmVxOiB0cnVlCi0KLVBhdGNoMTogZ2NjNDMt YnVpbGQtaWQucGF0Y2gKLVBhdGNoMjogZ2NjNDMtYysrLWJ1aWx0aW4tcmVkZWNsLnBhdGNoCi1Q YXRjaDM6IGdjYzQzLWlhNjQtbGlidW53aW5kLnBhdGNoCi1QYXRjaDQ6IGdjYzQzLWphdmEtbm9t dWx0aS5wYXRjaAotUGF0Y2g1OiBnY2M0My1wcGMzMi1yZXRhZGRyLnBhdGNoCi1QYXRjaDY6IGdj YzQzLXBwYzY0LWlhNjQtR05VLXN0YWNrLnBhdGNoCi1QYXRjaDc6IGdjYzQzLXByMjc4OTgucGF0 Y2gKLVBhdGNoODogZ2NjNDMtcHIzMjEzOS5wYXRjaAotUGF0Y2g5OiBnY2M0My1wcjMzNzYzLnBh dGNoCi1QYXRjaDEwOiBnY2M0My1yaDMzMDc3MS5wYXRjaAotUGF0Y2gxMTogZ2NjNDMtcmgzNDEy MjEucGF0Y2gKLVBhdGNoMTI6IGdjYzQzLWphdmEtZGVidWctaWZhY2UtdHlwZS5wYXRjaAotUGF0 Y2gxMzogZ2NjNDMtaTM4Ni1saWJnb21wLnBhdGNoCi1QYXRjaDE0OiBnY2M0My1yaDI1MTY4Mi5w YXRjaAotUGF0Y2gxNTogZ2NjNDMtc3BhcmMtY29uZmlnLWRldGVjdGlvbi5wYXRjaAotUGF0Y2gx NjogZ2NjNDMtbGliZ29tcC1vbXBfaC1tdWx0aWxpYi5wYXRjaAotUGF0Y2gxNzogZ2NjNDMteDg2 XzY0LXZhX3N0YXJ0LnBhdGNoCi1QYXRjaDE4OiBnY2M0My1wcjM3MTg5LnBhdGNoCi1QYXRjaDE5 OiBnY2M0My1hbHRpdmVjLXRlc3RzLnBhdGNoCi1QYXRjaDIwOiBnY2M0My1saWJ0b29sLW5vLXJw YXRoLnBhdGNoCi1QYXRjaDIxOiBnY2M0My1wcjM2NzQxLXJldmVydC5wYXRjaAotUGF0Y2gyMjog Z2NjNDMtcHIzNDAzNy5wYXRjaAotUGF0Y2gyMzogZ2NjNDMtcHIzNzczOC5wYXRjaAotUGF0Y2gy NDogZ2NjNDMtcHIyOTYwOS5wYXRjaAotUGF0Y2gyNTogZ2NjNDMtYWVzLnBhdGNoCi1QYXRjaDI2 OiBnY2M0My1wcjI5NjA5LTIucGF0Y2gKLVBhdGNoMjc6IGdjYzQzLXByMjk2MDktMy5wYXRjaAot UGF0Y2gyODogZ2NjNDMtcHIzNzg3MC5wYXRjaAotUGF0Y2gyOTogZ2NjNDMtcHIzNzg1OC5wYXRj aAotUGF0Y2gzMDogZ2NjNDMtcHIzNzg3OS5wYXRjaAotUGF0Y2gzMTogZ2NjNDMtcHIzNzkyNC5w YXRjaAotCi0jIE9uIEFSTSBFQUJJIHN5c3RlbXMsIHdlIGRvIHdhbnQgLWdudWVhYmkgdG8gYmUg cGFydCBvZiB0aGUKLSMgdGFyZ2V0IHRyaXBsZS4KLSVpZm5hcmNoICV7YXJtfQotJWRlZmluZSBf Z251ICV7bmlsfQotJWVuZGlmCi0laWZhcmNoIHNwYXJjdjkKLSVkZWZpbmUgZ2NjX3RhcmdldF9w bGF0Zm9ybSBzcGFyYzY0LSV7X3ZlbmRvcn0tJXtfdGFyZ2V0X29zfQotJWVuZGlmCi0laWZhcmNo IHBwYwotJWRlZmluZSBnY2NfdGFyZ2V0X3BsYXRmb3JtIHBwYzY0LSV7X3ZlbmRvcn0tJXtfdGFy Z2V0X29zfQotJWVuZGlmCi0laWZuYXJjaCBzcGFyY3Y5IHBwYwotJWRlZmluZSBnY2NfdGFyZ2V0 X3BsYXRmb3JtICV7X3RhcmdldF9wbGF0Zm9ybX0KLSVlbmRpZgotCi0lZGVzY3JpcHRpb24KLVRo ZSBnY2MgcGFja2FnZSBjb250YWlucyB0aGUgR05VIENvbXBpbGVyIENvbGxlY3Rpb24gdmVyc2lv biA0LjMuCi1Zb3UnbGwgbmVlZCB0aGlzIHBhY2thZ2UgaW4gb3JkZXIgdG8gY29tcGlsZSBDIGNv ZGUuCi0KLSVwYWNrYWdlIC1uIGxpYmdjYwotU3VtbWFyeTogR0NDIHZlcnNpb24gNC4zIHNoYXJl ZCBzdXBwb3J0IGxpYnJhcnkKLUdyb3VwOiBTeXN0ZW0gRW52aXJvbm1lbnQvTGlicmFyaWVzCi1B dXRvcmVxOiBmYWxzZQotCi0lZGVzY3JpcHRpb24gLW4gbGliZ2NjCi1UaGlzIHBhY2thZ2UgY29u dGFpbnMgR0NDIHNoYXJlZCBzdXBwb3J0IGxpYnJhcnkgd2hpY2ggaXMgbmVlZGVkCi1lLmcuIGZv ciBleGNlcHRpb24gaGFuZGxpbmcgc3VwcG9ydC4KLQotJXBhY2thZ2UgYysrCi1TdW1tYXJ5OiBD Kysgc3VwcG9ydCBmb3IgR0NDCi1Hcm91cDogRGV2ZWxvcG1lbnQvTGFuZ3VhZ2VzCi1SZXF1aXJl czogZ2NjID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci1SZXF1aXJlczogbGlic3RkYysrID0gJXt2 ZXJzaW9ufS0le3JlbGVhc2V9Ci1SZXF1aXJlczogbGlic3RkYysrLWRldmVsID0gJXt2ZXJzaW9u fS0le3JlbGVhc2V9Ci0jT2Jzb2xldGVzOiBnY2MzLWMrKwotI09ic29sZXRlczogZ2NjMzQtYysr Ci0jT2Jzb2xldGVzOiBnY2MzNS1jKysKLSNPYnNvbGV0ZXM6IGdjYzQtYysrCi1BdXRvcmVxOiB0 cnVlCi0KLSVkZXNjcmlwdGlvbiBjKysKLVRoaXMgcGFja2FnZSBhZGRzIEMrKyBzdXBwb3J0IHRv IHRoZSBHTlUgQ29tcGlsZXIgQ29sbGVjdGlvbi4KLUl0IGluY2x1ZGVzIHN1cHBvcnQgZm9yIG1v c3Qgb2YgdGhlIGN1cnJlbnQgQysrIHNwZWNpZmljYXRpb24sCi1pbmNsdWRpbmcgdGVtcGxhdGVz IGFuZCBleGNlcHRpb24gaGFuZGxpbmcuCi0KLSVwYWNrYWdlIC1uIGxpYnN0ZGMrKwotU3VtbWFy eTogR05VIFN0YW5kYXJkIEMrKyBMaWJyYXJ5Ci1Hcm91cDogU3lzdGVtIEVudmlyb25tZW50L0xp YnJhcmllcwotI09ic29sZXRlczogbGlic3RkYysrMwotI09ic29sZXRlczogbGlic3RkYysrMzQK LUF1dG9yZXE6IHRydWUKLQotJWRlc2NyaXB0aW9uIC1uIGxpYnN0ZGMrKwotVGhlIGxpYnN0ZGMr KyBwYWNrYWdlIGNvbnRhaW5zIGEgcmV3cml0dGVuIHN0YW5kYXJkIGNvbXBsaWFudCBHQ0MgU3Rh bmRhcmQKLUMrKyBMaWJyYXJ5LgotCi0lcGFja2FnZSAtbiBsaWJzdGRjKystZGV2ZWwKLVN1bW1h cnk6IEhlYWRlciBmaWxlcyBhbmQgbGlicmFyaWVzIGZvciBDKysgZGV2ZWxvcG1lbnQKLUdyb3Vw OiBEZXZlbG9wbWVudC9MaWJyYXJpZXMKLVJlcXVpcmVzOiBsaWJzdGRjKysgPSAle3ZlcnNpb259 LSV7cmVsZWFzZX0sICV7X3ByZWZpeH0vJXtfbGlifS9saWJzdGRjKysuc28uNgotI09ic29sZXRl czogbGlic3RkYysrMy1kZXZlbAotI09ic29sZXRlczogbGlic3RkYysrMzQtZGV2ZWwKLUF1dG9y ZXE6IHRydWUKLQotJWRlc2NyaXB0aW9uIC1uIGxpYnN0ZGMrKy1kZXZlbAotVGhpcyBpcyB0aGUg R05VIGltcGxlbWVudGF0aW9uIG9mIHRoZSBzdGFuZGFyZCBDKysgbGlicmFyaWVzLiAgVGhpcwot cGFja2FnZSBpbmNsdWRlcyB0aGUgaGVhZGVyIGZpbGVzIGFuZCBsaWJyYXJpZXMgbmVlZGVkIGZv ciBDKysKLWRldmVsb3BtZW50LiBUaGlzIGluY2x1ZGVzIHJld3JpdHRlbiBpbXBsZW1lbnRhdGlv biBvZiBTVEwuCi0KLSVwYWNrYWdlIG9iamMKLVN1bW1hcnk6IE9iamVjdGl2ZS1DIHN1cHBvcnQg Zm9yIEdDQwotR3JvdXA6IERldmVsb3BtZW50L0xhbmd1YWdlcwotUmVxdWlyZXM6IGdjYyA9ICV7 dmVyc2lvbn0tJXtyZWxlYXNlfQotUmVxdWlyZXM6IGxpYm9iamMgPSAle3ZlcnNpb259LSV7cmVs ZWFzZX0KLSNPYnNvbGV0ZXM6IGdjYzMtb2JqYwotQXV0b3JlcTogdHJ1ZQotCi0lZGVzY3JpcHRp b24gb2JqYwotZ2NjLW9iamMgcHJvdmlkZXMgT2JqZWN0aXZlLUMgc3VwcG9ydCBmb3IgdGhlIEdD Qy4KLU1haW5seSB1c2VkIG9uIHN5c3RlbXMgcnVubmluZyBOZVhUU1RFUCwgT2JqZWN0aXZlLUMg aXMgYW4KLW9iamVjdC1vcmllbnRlZCBkZXJpdmF0aXZlIG9mIHRoZSBDIGxhbmd1YWdlLgotCi0l cGFja2FnZSBvYmpjKysKLVN1bW1hcnk6IE9iamVjdGl2ZS1DKysgc3VwcG9ydCBmb3IgR0NDCi1H cm91cDogRGV2ZWxvcG1lbnQvTGFuZ3VhZ2VzCi1SZXF1aXJlczogZ2NjLWMrKyA9ICV7dmVyc2lv bn0tJXtyZWxlYXNlfSwgZ2NjLW9iamMgPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KLUF1dG9yZXE6 IHRydWUKLQotJWRlc2NyaXB0aW9uIG9iamMrKwotZ2NjLW9iamMrKyBwYWNrYWdlIHByb3ZpZGVz IE9iamVjdGl2ZS1DKysgc3VwcG9ydCBmb3IgdGhlIEdDQy4KLQotJXBhY2thZ2UgLW4gbGlib2Jq YwotU3VtbWFyeTogT2JqZWN0aXZlLUMgcnVudGltZQotR3JvdXA6IFN5c3RlbSBFbnZpcm9ubWVu dC9MaWJyYXJpZXMKLUF1dG9yZXE6IHRydWUKLQotJWRlc2NyaXB0aW9uIC1uIGxpYm9iamMKLVRo aXMgcGFja2FnZSBjb250YWlucyBPYmplY3RpdmUtQyBzaGFyZWQgbGlicmFyeSB3aGljaCBpcyBu ZWVkZWQgdG8gcnVuCi1PYmplY3RpdmUtQyBkeW5hbWljYWxseSBsaW5rZWQgcHJvZ3JhbXMuCi0K LSVwYWNrYWdlIGdmb3J0cmFuCi1TdW1tYXJ5OiBGb3J0cmFuIDk1IHN1cHBvcnQKLUdyb3VwOiBE ZXZlbG9wbWVudC9MYW5ndWFnZXMKLVJlcXVpcmVzOiBnY2MgPSAle3ZlcnNpb259LSV7cmVsZWFz ZX0KLVJlcXVpcmVzOiBsaWJnZm9ydHJhbiA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQotQnVpbGRS ZXF1aXJlczogZ21wLWRldmVsID49IDQuMS4yLTgsIG1wZnItZGV2ZWwgPj0gMi4yLjEKLVByZXJl cTogL3NiaW4vaW5zdGFsbC1pbmZvCi0jT2Jzb2xldGVzOiBnY2MzLWc3NwotI09ic29sZXRlczog Z2NjLWc3NwotI09ic29sZXRlczogZ2NjNC1nZm9ydHJhbgotQXV0b3JlcTogdHJ1ZQotCi0lZGVz Y3JpcHRpb24gZ2ZvcnRyYW4KLVRoZSBnY2MtZ2ZvcnRyYW4gcGFja2FnZSBwcm92aWRlcyBzdXBw b3J0IGZvciBjb21waWxpbmcgRm9ydHJhbiA5NQotcHJvZ3JhbXMgd2l0aCB0aGUgR05VIENvbXBp bGVyIENvbGxlY3Rpb24uCi0KLSVwYWNrYWdlIC1uIGxpYmdmb3J0cmFuCi1TdW1tYXJ5OiBGb3J0 cmFuIDk1IHJ1bnRpbWUKLUdyb3VwOiBTeXN0ZW0gRW52aXJvbm1lbnQvTGlicmFyaWVzCi0jT2Jz b2xldGVzOiBsaWJmMmMKLUF1dG9yZXE6IHRydWUKLQotJWRlc2NyaXB0aW9uIC1uIGxpYmdmb3J0 cmFuCi1UaGlzIHBhY2thZ2UgY29udGFpbnMgRm9ydHJhbiA5NSBzaGFyZWQgbGlicmFyeSB3aGlj aCBpcyBuZWVkZWQgdG8gcnVuCi1Gb3J0cmFuIDk1IGR5bmFtaWNhbGx5IGxpbmtlZCBwcm9ncmFt cy4KLQotJXBhY2thZ2UgLW4gbGliZ29tcAotU3VtbWFyeTogR0NDIE9wZW5NUCB2My4wIHNoYXJl ZCBzdXBwb3J0IGxpYnJhcnkKLUdyb3VwOiBTeXN0ZW0gRW52aXJvbm1lbnQvTGlicmFyaWVzCi1Q cmVyZXE6IC9zYmluL2luc3RhbGwtaW5mbwotCi0lZGVzY3JpcHRpb24gLW4gbGliZ29tcAotVGhp cyBwYWNrYWdlIGNvbnRhaW5zIEdDQyBzaGFyZWQgc3VwcG9ydCBsaWJyYXJ5IHdoaWNoIGlzIG5l ZWRlZAotZm9yIE9wZW5NUCB2My4wIHN1cHBvcnQuCi0KLSVwYWNrYWdlIC1uIGxpYm11ZGZsYXAK LVN1bW1hcnk6IEdDQyBtdWRmbGFwIHNoYXJlZCBzdXBwb3J0IGxpYnJhcnkKLUdyb3VwOiBTeXN0 ZW0gRW52aXJvbm1lbnQvTGlicmFyaWVzCi0KLSVkZXNjcmlwdGlvbiAtbiBsaWJtdWRmbGFwCi1U aGlzIHBhY2thZ2UgY29udGFpbnMgR0NDIHNoYXJlZCBzdXBwb3J0IGxpYnJhcnkgd2hpY2ggaXMg bmVlZGVkCi1mb3IgbXVkZmxhcCBzdXBwb3J0LgotCi0lcGFja2FnZSAtbiBsaWJtdWRmbGFwLWRl dmVsCi1TdW1tYXJ5OiBHQ0MgbXVkZmxhcCBzdXBwb3J0Ci1Hcm91cDogRGV2ZWxvcG1lbnQvTGli cmFyaWVzCi1SZXF1aXJlczogbGlibXVkZmxhcCA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQotUmVx dWlyZXM6IGdjYyA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQotCi0lZGVzY3JpcHRpb24gLW4gbGli bXVkZmxhcC1kZXZlbAotVGhpcyBwYWNrYWdlIGNvbnRhaW5zIGhlYWRlcnMgYW5kIHN0YXRpYyBs aWJyYXJpZXMgZm9yIGJ1aWxkaW5nCi1tdWRmbGFwLWluc3RydW1lbnRlZCBwcm9ncmFtcy4KLQot VG8gaW5zdHJ1bWVudCBhIG5vbi10aHJlYWRlZCBwcm9ncmFtLCBhZGQgLWZtdWRmbGFwCi1vcHRp b24gdG8gR0NDIGFuZCB3aGVuIGxpbmtpbmcgYWRkIC1sbXVkZmxhcCwgZm9yIHRocmVhZGVkIHBy b2dyYW1zCi1hbHNvIGFkZCAtZm11ZGZsYXB0aCBhbmQgLWxtdWRmbGFwdGguCi0KLSVwYWNrYWdl IGphdmEKLVN1bW1hcnk6IEphdmEgc3VwcG9ydCBmb3IgR0NDCi1Hcm91cDogRGV2ZWxvcG1lbnQv TGFuZ3VhZ2VzCi1SZXF1aXJlczogZ2NjID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci1SZXF1aXJl czogbGliZ2NqID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci1SZXF1aXJlczogbGliZ2NqLWRldmVs ID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci1SZXF1aXJlczogL3Vzci9zaGFyZS9qYXZhL2VjbGlw c2UtZWNqLmphcgotI09ic29sZXRlczogZ2NjMy1qYXZhCi0jT2Jzb2xldGVzOiBnY2MzNC1qYXZh Ci0jT2Jzb2xldGVzOiBnY2MzNS1qYXZhCi0jT2Jzb2xldGVzOiBnY2M0LWphdmEKLVByZXJlcTog L3NiaW4vaW5zdGFsbC1pbmZvCi1BdXRvcmVxOiB0cnVlCi0KLSVkZXNjcmlwdGlvbiBqYXZhCi1U aGlzIHBhY2thZ2UgYWRkcyBzdXBwb3J0IGZvciBjb21waWxpbmcgSmF2YSh0bSkgcHJvZ3JhbXMg YW5kCi1ieXRlY29kZSBpbnRvIG5hdGl2ZSBjb2RlLgotCi0lcGFja2FnZSAtbiBsaWJnY2oKLVN1 bW1hcnk6IEphdmEgcnVudGltZSBsaWJyYXJ5IGZvciBnY2MKLUdyb3VwOiBTeXN0ZW0gRW52aXJv bm1lbnQvTGlicmFyaWVzCi1QcmVyZXE6IC9zYmluL2luc3RhbGwtaW5mbwotUmVxdWlyZXM6IHpp cCA+PSAyLjEKLVJlcXVpcmVzOiBndGsyID49IDIuNC4wCi1SZXF1aXJlczogZ2xpYjIgPj0gMi40 LjAKLVJlcXVpcmVzOiBsaWJhcnRfbGdwbCA+PSAyLjEuMAotJWlmICV7YnVpbGRfamF2YX0KLUJ1 aWxkUmVxdWlyZXM6IGd0azItZGV2ZWwgPj0gMi40LjAKLUJ1aWxkUmVxdWlyZXM6IGdsaWIyLWRl dmVsID49IDIuNC4wCi1CdWlsZFJlcXVpcmVzOiB4dWxydW5uZXItZGV2ZWwKLUJ1aWxkUmVxdWly ZXM6IGxpYmFydF9sZ3BsLWRldmVsID49IDIuMS4wCi1CdWlsZFJlcXVpcmVzOiBhbHNhLWxpYi1k ZXZlbAotQnVpbGRSZXF1aXJlczogbGliWHRzdC1kZXZlbAotQnVpbGRSZXF1aXJlczogbGliWHQt ZGV2ZWwKLSVlbmRpZgotI09ic29sZXRlczogZ2NjLWxpYmdjagotI09ic29sZXRlczogbGliZ2Nq MwotI09ic29sZXRlczogbGliZ2NqMzQKLSNPYnNvbGV0ZXM6IGxpYmdjajQKLUF1dG9yZXE6IHRy dWUKLQotJWRlc2NyaXB0aW9uIC1uIGxpYmdjagotVGhlIEphdmEodG0pIHJ1bnRpbWUgbGlicmFy eS4gWW91IHdpbGwgbmVlZCB0aGlzIHBhY2thZ2UgdG8gcnVuIHlvdXIgSmF2YQotcHJvZ3JhbXMg Y29tcGlsZWQgdXNpbmcgdGhlIEphdmEgY29tcGlsZXIgZnJvbSBHTlUgQ29tcGlsZXIgQ29sbGVj dGlvbiAoZ2NqKS4KLQotJXBhY2thZ2UgLW4gbGliZ2NqLWRldmVsCi1TdW1tYXJ5OiBMaWJyYXJp ZXMgZm9yIEphdmEgZGV2ZWxvcG1lbnQgdXNpbmcgR0NDCi1Hcm91cDogRGV2ZWxvcG1lbnQvTGFu Z3VhZ2VzCi1SZXF1aXJlczogbGliZ2NqID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9LCAle19wcmVm aXh9LyV7X2xpYn0vbGliZ2NqLnNvLjkKLVJlcXVpcmVzOiB6bGliLWRldmVsLCAle19wcmVmaXh9 LyV7X2xpYn0vbGliei5zbwotUmVxdWlyZXM6IC9iaW4vYXdrCi0jT2Jzb2xldGVzOiBsaWJnY2oz LWRldmVsCi0jT2Jzb2xldGVzOiBsaWJnY2ozNC1kZXZlbAotI09ic29sZXRlczogbGliZ2NqNC1k ZXZlbAotQXV0b3JlcTogZmFsc2UKLUF1dG9wcm92OiBmYWxzZQotCi0lZGVzY3JpcHRpb24gLW4g bGliZ2NqLWRldmVsCi1UaGUgSmF2YSh0bSkgc3RhdGljIGxpYnJhcmllcyBhbmQgQyBoZWFkZXIg ZmlsZXMuIFlvdSB3aWxsIG5lZWQgdGhpcwotcGFja2FnZSB0byBjb21waWxlIHlvdXIgSmF2YSBw cm9ncmFtcyB1c2luZyB0aGUgR0NDIEphdmEgY29tcGlsZXIgKGdjaikuCi0KLSVwYWNrYWdlIC1u IGxpYmdjai1zcmMKLVN1bW1hcnk6IEphdmEgbGlicmFyeSBzb3VyY2VzIGZyb20gR0NDNCBwcmV2 aWV3Ci1Hcm91cDogU3lzdGVtIEVudmlyb25tZW50L0xpYnJhcmllcwotUmVxdWlyZXM6IGxpYmdj aiA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQotI09ic29sZXRlczogbGliZ2NqNC1zcmMKLUF1dG9y ZXE6IHRydWUKLQotJWRlc2NyaXB0aW9uIC1uIGxpYmdjai1zcmMKLVRoZSBKYXZhKHRtKSBydW50 aW1lIGxpYnJhcnkgc291cmNlcyBmb3IgdXNlIGluIEVjbGlwc2UuCi0KLSVwYWNrYWdlIC1uIGNw cAotU3VtbWFyeTogVGhlIEMgUHJlcHJvY2Vzc29yCi1Hcm91cDogRGV2ZWxvcG1lbnQvTGFuZ3Vh Z2VzCi1QcmVyZXE6IC9zYmluL2luc3RhbGwtaW5mbwotJWlmYXJjaCBpYTY0Ci0jT2Jzb2xldGVz OiBnbnVwcm8KLSVlbmRpZgotQXV0b3JlcTogdHJ1ZQotCi0lZGVzY3JpcHRpb24gLW4gY3BwCi1D cHAgaXMgdGhlIEdOVSBDLUNvbXBhdGlibGUgQ29tcGlsZXIgUHJlcHJvY2Vzc29yLgotQ3BwIGlz IGEgbWFjcm8gcHJvY2Vzc29yIHdoaWNoIGlzIHVzZWQgYXV0b21hdGljYWxseQotYnkgdGhlIEMg Y29tcGlsZXIgdG8gdHJhbnNmb3JtIHlvdXIgcHJvZ3JhbSBiZWZvcmUgYWN0dWFsCi1jb21waWxh dGlvbi4gSXQgaXMgY2FsbGVkIGEgbWFjcm8gcHJvY2Vzc29yIGJlY2F1c2UgaXQgYWxsb3dzCi15 b3UgdG8gZGVmaW5lIG1hY3JvcywgYWJicmV2aWF0aW9ucyBmb3IgbG9uZ2VyCi1jb25zdHJ1Y3Rz LgotCi1UaGUgQyBwcmVwcm9jZXNzb3IgcHJvdmlkZXMgZm91ciBzZXBhcmF0ZSBmdW5jdGlvbmFs aXRpZXM6IHRoZQotaW5jbHVzaW9uIG9mIGhlYWRlciBmaWxlcyAoZmlsZXMgb2YgZGVjbGFyYXRp b25zIHRoYXQgY2FuIGJlCi1zdWJzdGl0dXRlZCBpbnRvIHlvdXIgcHJvZ3JhbSk7IG1hY3JvIGV4 cGFuc2lvbiAoeW91IGNhbiBkZWZpbmUgbWFjcm9zLAotYW5kIHRoZSBDIHByZXByb2Nlc3NvciB3 aWxsIHJlcGxhY2UgdGhlIG1hY3JvcyB3aXRoIHRoZWlyIGRlZmluaXRpb25zCi10aHJvdWdob3V0 IHRoZSBwcm9ncmFtKTsgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gKHVzaW5nIHNwZWNpYWwKLXBy ZXByb2Nlc3NpbmcgZGlyZWN0aXZlcywgeW91IGNhbiBpbmNsdWRlIG9yIGV4Y2x1ZGUgcGFydHMg b2YgdGhlCi1wcm9ncmFtIGFjY29yZGluZyB0byB2YXJpb3VzIGNvbmRpdGlvbnMpOyBhbmQgbGlu ZSBjb250cm9sIChpZiB5b3UgdXNlCi1hIHByb2dyYW0gdG8gY29tYmluZSBvciByZWFycmFuZ2Ug c291cmNlIGZpbGVzIGludG8gYW4gaW50ZXJtZWRpYXRlCi1maWxlIHdoaWNoIGlzIHRoZW4gY29t cGlsZWQsIHlvdSBjYW4gdXNlIGxpbmUgY29udHJvbCB0byBpbmZvcm0gdGhlCi1jb21waWxlciBh Ym91dCB3aGVyZSBlYWNoIHNvdXJjZSBsaW5lIG9yaWdpbmF0ZWQpLgotCi1Zb3Ugc2hvdWxkIGlu c3RhbGwgdGhpcyBwYWNrYWdlIGlmIHlvdSBhcmUgYSBDIHByb2dyYW1tZXIgYW5kIHlvdSB1c2UK LW1hY3Jvcy4KLQotJXBhY2thZ2UgZ25hdAotU3VtbWFyeTogQWRhIDk1IHN1cHBvcnQgZm9yIEdD QwotR3JvdXA6IERldmVsb3BtZW50L0xhbmd1YWdlcwotUmVxdWlyZXM6IGdjYyA9ICV7dmVyc2lv bn0tJXtyZWxlYXNlfSwgbGliZ25hdCA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQotI09ic29sZXRl czogZ25hdC1kZXZlbCwgZ2NjMy1nbmF0Ci1QcmVyZXE6IC9zYmluL2luc3RhbGwtaW5mbwotQXV0 b3JlcTogdHJ1ZQotCi0lZGVzY3JpcHRpb24gZ25hdAotR05BVCBpcyBhIEdOVSBBZGEgOTUgZnJv bnQtZW5kIHRvIEdDQy4gVGhpcyBwYWNrYWdlIGluY2x1ZGVzIGRldmVsb3BtZW50IHRvb2xzLAot dGhlIGRvY3VtZW50cyBhbmQgQWRhIDk1IGNvbXBpbGVyLgotCi0lcGFja2FnZSAtbiBsaWJnbmF0 Ci1TdW1tYXJ5OiBHTlUgQWRhIDk1IHJ1bnRpbWUgc2hhcmVkIGxpYnJhcmllcwotR3JvdXA6IFN5 c3RlbSBFbnZpcm9ubWVudC9MaWJyYXJpZXMKLSNPYnNvbGV0ZXM6IGduYXQgbGliZ25hdDMKLUF1 dG9yZXE6IHRydWUKLQotJWRlc2NyaXB0aW9uIC1uIGxpYmduYXQKLUdOQVQgaXMgYSBHTlUgQWRh IDk1IGZyb250LWVuZCB0byBHQ0MuIFRoaXMgcGFja2FnZSBpbmNsdWRlcyBzaGFyZWQgbGlicmFy aWVzLAotd2hpY2ggYXJlIHJlcXVpcmVkIHRvIHJ1biBwcm9ncmFtcyBjb21waWxlZCB3aXRoIHRo ZSBHTkFULgotCi0lcHJlcAotJXNldHVwIC1xIC1uIGdjYy0le3ZlcnNpb259LSV7REFURX0KLSVw YXRjaDEgLXAwIC1iIC5idWlsZC1pZH4KLSVwYXRjaDIgLXAwIC1iIC5jKystYnVpbHRpbi1yZWRl Y2x+Ci0lcGF0Y2gzIC1wMCAtYiAuaWE2NC1saWJ1bndpbmR+Ci0lcGF0Y2g0IC1wMCAtYiAuamF2 YS1ub211bHRpfgotJXBhdGNoNSAtcDAgLWIgLnBwYzMyLXJldGFkZHJ+Ci0lcGF0Y2g2IC1wMCAt YiAucHBjNjQtaWE2NC1HTlUtc3RhY2t+Ci0lcGF0Y2g3IC1wMCAtYiAucHIyNzg5OH4KLSVwYXRj aDggLXAwIC1iIC5wcjMyMTM5fgotJXBhdGNoOSAtcDAgLWIgLnByMzM3NjN+Ci0lcGF0Y2gxMCAt cDAgLWIgLnJoMzMwNzcxfgotJXBhdGNoMTEgLXAwIC1iIC5yaDM0MTIyMX4KLSVwYXRjaDEyIC1w MCAtYiAuamF2YS1kZWJ1Zy1pZmFjZS10eXBlfgotJXBhdGNoMTMgLXAwIC1iIC5pMzg2LWxpYmdv bXB+Ci0lcGF0Y2gxNCAtcDAgLWIgLnJoMjUxNjgyfgotJXBhdGNoMTUgLXAwIC1iIC5zcGFyYy1j b25maWctZGV0ZWN0aW9ufgotJXBhdGNoMTYgLXAwIC1iIC5saWJnb21wLW9tcF9oLW11bHRpbGli fgotJXBhdGNoMTcgLXAwIC1iIC54ODZfNjQtdmFfc3RhcnR+Ci0lcGF0Y2gxOCAtcDAgLWIgLnBy MzcxODl+Ci0lcGF0Y2gxOSAtcDAgLWIgLmFsdGl2ZWMtdGVzdHN+Ci0lcGF0Y2gyMCAtcDAgLWIg LmxpYnRvb2wtbm8tcnBhdGh+Ci0lcGF0Y2gyMSAtcDAgLWIgLnByMzY3NDEtcmV2ZXJ0fgotJXBh dGNoMjIgLXAwIC1iIC5wcjM0MDM3fgotJXBhdGNoMjMgLXAwIC1iIC5wcjM3NzM4fgotJXBhdGNo MjQgLXAwIC1iIC5wcjI5NjA5fgotJXBhdGNoMjUgLXAwIC1iIC5hZXN+Ci0lcGF0Y2gyNiAtcDAg LWIgLnByMjk2MDktMn4KLSVwYXRjaDI3IC1wMCAtYiAucHIyOTYwOS0zfgotJXBhdGNoMjggLXAw IC1iIC5wcjM3ODcwfgotJXBhdGNoMjkgLXAwIC1iIC5wcjM3ODU4fgotJXBhdGNoMzAgLXAwIC1i IC5wcjM3ODc5fgotJXBhdGNoMzEgLXAwIC1iIC5wcjM3OTI0fgotCi10YXIgeHpmICV7U09VUkNF NH0KLQotJWlmICV7Ym9vdHN0cmFwX2phdmF9Ci10YXIgeGpmICV7U09VUkNFMTB9Ci0lZW5kaWYK LQotc2VkIC1pIC1lICdzLzRcLjNcLjMvNC4zLjIvJyBnY2MvQkFTRS1WRVIKLWVjaG8gJ1JlZCBI YXQgJXt2ZXJzaW9ufS0le2djY19yZWxlYXNlfScgPiBnY2MvREVWLVBIQVNFCi0KLWNwIC1hIGxp YnN0ZGMrKy12My9jb25maWcvY3B1L2l7NCwzfTg2L2F0b21pY2l0eS5oCi0KLSMgSGFjayB0byBh dm9pZCBidWlsZGluZyBtdWx0aWxpYiBsaWJqYXZhCi1wZXJsIC1waSAtZSAncy9eYWxsOiBhbGwt cmVkaXJlY3QvaWZlcSAoXCQoTVVMVElTVUJESVIpLClcbmFsbDogYWxsLXJlZGlyZWN0XG5lbHNl XG5hbGw6XG5cdGVjaG8gTXVsdGlsaWIgbGliamF2YSBidWlsZCBkaXNhYmxlZFxuZW5kaWYvJyBs aWJqYXZhL01ha2VmaWxlLmluCi1wZXJsIC1waSAtZSAncy9eaW5zdGFsbDogaW5zdGFsbC1yZWRp cmVjdC9pZmVxIChcJChNVUxUSVNVQkRJUiksKVxuaW5zdGFsbDogaW5zdGFsbC1yZWRpcmVjdFxu ZWxzZVxuaW5zdGFsbDpcblx0ZWNobyBNdWx0aWxpYiBsaWJqYXZhIGluc3RhbGwgZGlzYWJsZWRc bmVuZGlmLycgbGliamF2YS9NYWtlZmlsZS5pbgotcGVybCAtcGkgLWUgJ3MvXmNoZWNrOiBjaGVj ay1yZWRpcmVjdC9pZmVxIChcJChNVUxUSVNVQkRJUiksKVxuY2hlY2s6IGNoZWNrLXJlZGlyZWN0 XG5lbHNlXG5jaGVjazpcblx0ZWNobyBNdWx0aWxpYiBsaWJqYXZhIGNoZWNrIGRpc2FibGVkXG5l bmRpZi8nIGxpYmphdmEvTWFrZWZpbGUuaW4KLXBlcmwgLXBpIC1lICdzL15hbGw6IGFsbC1yZWN1 cnNpdmUvaWZlcSAoXCQoTVVMVElTVUJESVIpLClcbmFsbDogYWxsLXJlY3Vyc2l2ZVxuZWxzZVxu YWxsOlxuXHRlY2hvIE11bHRpbGliIGxpYmphdmEgYnVpbGQgZGlzYWJsZWRcbmVuZGlmLycgbGli amF2YS9NYWtlZmlsZS5pbgotcGVybCAtcGkgLWUgJ3MvXmluc3RhbGw6IGluc3RhbGwtcmVjdXJz aXZlL2lmZXEgKFwkKE1VTFRJU1VCRElSKSwpXG5pbnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZVxu ZWxzZVxuaW5zdGFsbDpcblx0ZWNobyBNdWx0aWxpYiBsaWJqYXZhIGluc3RhbGwgZGlzYWJsZWRc bmVuZGlmLycgbGliamF2YS9NYWtlZmlsZS5pbgotcGVybCAtcGkgLWUgJ3MvXmNoZWNrOiBjaGVj ay1yZWN1cnNpdmUvaWZlcSAoXCQoTVVMVElTVUJESVIpLClcbmNoZWNrOiBjaGVjay1yZWN1cnNp dmVcbmVsc2VcbmNoZWNrOlxuXHRlY2hvIE11bHRpbGliIGxpYmphdmEgY2hlY2sgZGlzYWJsZWRc bmVuZGlmLycgbGliamF2YS9NYWtlZmlsZS5pbgotCi0uL2NvbnRyaWIvZ2NjX3VwZGF0ZSAtLXRv dWNoCi0KLSMgVG8gbWFrZSBycG1saW50IGhhcHB5IChhcmdoKSwgZml4IHVwIG5hbWVzIGluIENo YW5nZUxvZyBlbnRyaWVzIHRvIHZhbGlkIFVURi04Ci1MQ19BTEw9QyBzZWQgLWkgXAotICAtZSAn cy9EXChvXHxceGY2XClubWV6L0RceGMzXHhiNm5tZXovJyBcCi0gIC1lICdzL1woQXZcfFx4ODFc eGMxdlx8XHhjMXZcfFx4ZWZceGJmXHhiZHZcP1x8XHg4MVx4YzNceDgxdlx8XHhjM3ZcKWlsYS9c eGMzXHg4MXZpbGEvJyBcCi0gIC1lICdzL0VzcFwoaW5cfFx4ODFceGVkblx8XHhlZG5cfFx4ZWZc eGJmXHhiZG5cP1x8XHhlZlx4YmZceGJkXHhhZG5cfFx4ODFceGMzXHhhZG5cfFx4YzNceGVmXHhi Zlx4YmRceGFkblwpZG9sYS9Fc3BceGMzXHhhZG5kb2xhLycgXAotICAtZSAncy9TY2hsXCh1XHxc eGVmXHhiZlx4YmRcfFx4ZmN1XD9cfFx4ODFceGZjXHxceDgxXHhjM1x4YmNcfFx4YzNceGFmXHhj Mlx4YmZceGMyXHhiZFx8XHhlZlx4YmZceGJkXHhlZlx4YmZceGJkXHhlZlx4YmZceGJkXHhjMlx4 YmNcKXRlci9TY2hsXHhjM1x4YmN0ZXIvJyBcCi0gIC1lICdzL0h1bWlcKGVcfFx4ZThcKXJlcy9I dW1pXHhjM1x4YThyZXMvJyBcCi0gIC1lICdzL0xcKG93XHxceGMzXHhhZlx4YzJceGJmXHhjMlx4 YmRcfG9ld1x8XHhmNndcKWlzL0xceGMzXHhiNndpcy8nIFwKLSAgLWUgJ3MvR1x4ZmN0bGVpbi9H XHhjM1x4YmN0bGVpbi8nIFwKLSAgLWUgJ3MvR1x4ZTFbYl1vci9HXHhjM1x4YTFib3IvJyBcCi0g IC1lICdzL0xceGYza2kvTFx4YzNceGIza2kvJyBcCi0gIC1lICdzL0ZhdXRyXHhjMyAvRmF1dHJc eGMzXHhhOSAvJyBcCi0gIC1lICdzL1NceGU5W2JdYXN0aWFuL1NceGMzXHhhOWJhc3RpYW4vJyBc Ci0gIC1lICdzL1RoXHhlZlx4YmZceGJkW2Rdb3JlL1RoXHhjM1x4YTlvZG9yZS8nIFwKLSAgLWUg J3MvQ29yc1x4YzNceGMyXHhhOXBpdXMvQ29yc1x4YzNceGE5cGl1cy8nIFwKLSAgLWUgJ3MvS1x4 ZmNobC9LXHhjM1x4YmNobC8nIFwKLSAgLWUgJ3MvUlx4ZjZubmVydXAvUlx4YzNceGI2bm5lcnVw LycgXAotICAtZSAncy9MXHhmOHZzZXQvTFx4YzNceGI4dnNldC8nIFwKLSAgLWUgJ3MvUGhceDgx XHhmYlx4ODFceGY0bmctVGhceDgxXHhlNW8vUGhceGMzXHhiYlx4YzNceGI0bmctVGhceGMzXHhh NW8vJyBcCi0gIC1lICdzL1ZceDgxXHhmNS9WXHhjM1x4YjUvJyBcCi0gIC1lICdzL0pceGY2bnNz b24vSlx4YzNceGI2bnNzb24vJyBcCi0gIC1lICdzL1ZceGVmXHhiZlx4YmRpc1x4ZWZceGJmXHhi ZG5lbi9WXHhjM1x4YTRpc1x4YzNceGE0bmVuLycgXAotICAtZSAncy9KXHhlZlx4YmZceGJkcmcv Slx4YzNceGI2cmcvJyBcCi0gIC1lICdzL01ceGVmXHhiZlx4YmRzbGkvTVx4YzNceGI2c2xpLycg XAotICAtZSAncy9SXHhlNHR5L1JceGMzXHhhNHR5LycgXAotICAtZSAncy8yMDAzXHhjMlx4YWQt LzIwMDMtLycgXAotICAtZSAncy9ceGMyXHhhMC8gL2cnIFwKLSAgLWUgJ3MvIFx4YTAvICAvZycg XAotICAtZSAncy9ceGEwIC8vJyBcCi0gIGBmaW5kIC4gLW5hbWUgXCpDaGFuZ2VMb2dcKmAKLUxD X0FMTD1DIHNlZCAtaSAtZSAncy9ceGEwLyAvJyBnY2MvZG9jL29wdGlvbnMudGV4aQotCi0laWZh cmNoIHBwYwotaWYgWyAtZCBsaWJzdGRjKystdjMvY29uZmlnL2FiaS9wb3N0L3Bvd2VycGM2NC1s aW51eC1nbnUgXTsgdGhlbgotICBta2RpciAtcCBsaWJzdGRjKystdjMvY29uZmlnL2FiaS9wb3N0 L3Bvd2VycGM2NC1saW51eC1nbnUvNjQKLSAgbXYgbGlic3RkYysrLXYzL2NvbmZpZy9hYmkvcG9z dC9wb3dlcnBjNjQtbGludXgtZ251L3ssNjQvfWJhc2VsaW5lX3N5bWJvbHMudHh0Ci0gIG12IGxp YnN0ZGMrKy12My9jb25maWcvYWJpL3Bvc3QvcG93ZXJwYzY0LWxpbnV4LWdudS97MzIvLH1iYXNl bGluZV9zeW1ib2xzLnR4dAotICBybSAtcmYgbGlic3RkYysrLXYzL2NvbmZpZy9hYmkvcG9zdC9w b3dlcnBjNjQtbGludXgtZ251LzMyCi1maQotJWVuZGlmCi0laWZhcmNoIHNwYXJjCi1pZiBbIC1k IGxpYnN0ZGMrKy12My9jb25maWcvYWJpL3Bvc3Qvc3BhcmM2NC1saW51eC1nbnUgXTsgdGhlbgot ICBta2RpciAtcCBsaWJzdGRjKystdjMvY29uZmlnL2FiaS9wb3N0L3NwYXJjNjQtbGludXgtZ251 LzY0Ci0gIG12IGxpYnN0ZGMrKy12My9jb25maWcvYWJpL3Bvc3Qvc3BhcmM2NC1saW51eC1nbnUv eyw2NC99YmFzZWxpbmVfc3ltYm9scy50eHQKLSAgbXYgbGlic3RkYysrLXYzL2NvbmZpZy9hYmkv cG9zdC9zcGFyYzY0LWxpbnV4LWdudS97MzIvLH1iYXNlbGluZV9zeW1ib2xzLnR4dAotICBybSAt cmYgbGlic3RkYysrLXYzL2NvbmZpZy9hYmkvcG9zdC9zcGFyYzY0LWxpbnV4LWdudS8zMgotZmkK LSVlbmRpZgotCi0lYnVpbGQKLQotJWlmICV7YnVpbGRfamF2YX0KLSMgZ2phciBpc24ndCB1c2Fi bGUsIHNvIGV2ZW4gd2hlbiBHQ0Mgc291cmNlIHRyZWUgbm8gbG9uZ2VyIGluY2x1ZGVzCi0jIGZh c3RqYXIsIGJ1aWxkIGl0IGFueXdheS4KLW1rZGlyIGZhc3RqYXItJXtmYXN0amFyX3Zlcn0vb2Jq LSV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0KLWNkIGZhc3RqYXItJXtmYXN0amFyX3Zlcn0vb2JqLSV7 Z2NjX3RhcmdldF9wbGF0Zm9ybX0KLS4uL2NvbmZpZ3VyZSBDRkxBR1M9IiRSUE1fT1BUX0ZMQUdT IiAtLXByZWZpeD0le19wcmVmaXh9IC0tbWFuZGlyPSV7X21hbmRpcn0gLS1pbmZvZGlyPSV7X2lu Zm9kaXJ9Ci1tYWtlICV7P19zbXBfbWZsYWdzfQotZXhwb3J0IFBBVEg9YHB3ZGAke1BBVEg6Kzok UEFUSH0KLWNkIC4uLy4uLwotJWVuZGlmCi0KLXJtIC1mciBvYmotJXtnY2NfdGFyZ2V0X3BsYXRm b3JtfQotbWtkaXIgb2JqLSV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0KLWNkIG9iai0le2djY190YXJn ZXRfcGxhdGZvcm19Ci0KLSVpZiAle2J1aWxkX2phdmF9Ci0laWYgISV7Ym9vdHN0cmFwX2phdmF9 Ci0jIElmIHdlIGRvbid0IGhhdmUgZ2phdmFoIGluICRQQVRILCB0cnkgdG8gYnVpbGQgaXQgd2l0 aCB0aGUgb2xkIGdpagotbWtkaXIgamF2YV9oYWNrcwotY2QgamF2YV9oYWNrcwotaWYgWyAhIC14 IC91c3IvYmluL2dqYXZhaCBdOyB0aGVuCi0gIGNwIC1hIC4uLy4uL2xpYmphdmEvY2xhc3NwYXRo L3Rvb2xzL2V4dGVybmFsIGV4dGVybmFsCi0gIG1rZGlyIC1wIGdudS9jbGFzc3BhdGgvdG9vbHMK LSAgY3AgLWEgLi4vLi4vbGliamF2YS9jbGFzc3BhdGgvdG9vbHMvZ251L2NsYXNzcGF0aC90b29s cy97Y29tbW9uLGphdmFoLGdldG9wdH0gZ251L2NsYXNzcGF0aC90b29scy8KLSAgY3AgLWEgLi4v Li4vbGliamF2YS9jbGFzc3BhdGgvcmVzb3VyY2UvZ251L2NsYXNzcGF0aC90b29scy9jb21tb24v TWVzc2FnZXMucHJvcGVydGllcyBnbnUvY2xhc3NwYXRoL3Rvb2xzL2NvbW1vbgotICBjZCBleHRl cm5hbC9hc207IGZvciBpIGluIGBmaW5kIC4gLW5hbWUgXCouamF2YWA7IGRvIGdjaiAtLWVuY29k aW5nIElTTy04ODU5LTEgLUMgJGkgLUkuOyBkb25lOyBjZCAuLi8uLgotICBmb3IgaSBpbiBgZmlu ZCBnbnUgLW5hbWUgXCouamF2YWA7IGRvIGdjaiAtQyAkaSAtSS4gLUlleHRlcm5hbC9hc20vOyBk b25lCi0gIGdjaiAtZmluZGlyZWN0LWRpc3BhdGNoIC1PMiAtZm1haW49Z251LmNsYXNzcGF0aC50 b29scy5qYXZhaC5NYWluIC1JLiAtSWV4dGVybmFsL2FzbS8gYGZpbmQgLiAtbmFtZSBcKi5jbGFz c2AgLW8gZ2phdmFoLnJlYWwKLSAgY2F0ID4gZ2phdmFoIDw8RU9GCi0jIS9iaW4vc2gKLWV4cG9y dCBDTEFTU1BBVEg9YHB3ZGAke0NMQVNTUEFUSDorOiRDTEFTU1BBVEh9Ci1leGVjIGBwd2RgL2dq YXZhaC5yZWFsICJcJEAiCi1FT0YKLSAgY2htb2QgK3ggYHB3ZGAvZ2phdmFoCi1maQotY2F0ID4g ZWNqMSA8PEVPRgotIyEvYmluL3NoCi1leGVjIGdpaiAtY3AgL3Vzci9zaGFyZS9qYXZhL2VjbGlw c2UtZWNqLmphciBvcmcuZWNsaXBzZS5qZHQuaW50ZXJuYWwuY29tcGlsZXIuYmF0Y2guR0NDTWFp biAiXCRAIgotRU9GCi1jaG1vZCAreCBgcHdkYC9lY2oxCi1leHBvcnQgUEFUSD1gcHdkYCR7UEFU SDorOiRQQVRIfQotY2QgLi4KLSVlbmRpZgotJWVuZGlmCi0KLUNDPWdjYwotT1BUX0ZMQUdTPWBl Y2hvICRSUE1fT1BUX0ZMQUdTfHNlZCAtZSAncy9cKC1XcCxcKVw/LURfRk9SVElGWV9TT1VSQ0U9 WzEyXS8vZydgCi1PUFRfRkxBR1M9YGVjaG8gJE9QVF9GTEFHU3xzZWQgLWUgJ3MvLW02NC8vZztz Ly1tMzIvL2c7cy8tbTMxLy9nJ2AKLSVpZmFyY2ggc3BhcmMKLU9QVF9GTEFHUz1gZWNobyAkT1BU X0ZMQUdTfHNlZCAtZSAncy8tbWNwdT11bHRyYXNwYXJjLy1tdHVuZT11bHRyYXNwYXJjL2c7cy8t bWNwdT12Wzc4XS8vZydgCi0lZW5kaWYKLSVpZmFyY2ggJXtpeDg2fQotT1BUX0ZMQUdTPWBlY2hv ICRPUFRfRkxBR1N8c2VkIC1lICdzLy1tYXJjaD1pMzg2Ly9nJ2AKLSVlbmRpZgotJWlmYXJjaCBz cGFyYzY0Ci1jYXQgPiBnY2M2NCA8PCJFT0YiCi0jIS9iaW4vc2gKLWV4ZWMgL3Vzci9iaW4vZ2Nj IC1tNjQgIiRAIgotRU9GCi1jaG1vZCAreCBnY2M2NAotQ0M9YHB3ZGAvZ2NjNjQKLSVlbmRpZgot JWlmYXJjaCBwcGM2NAotaWYgZ2NjIC1tNjQgLXhjIC1TIC9kZXYvbnVsbCAtbyAtID4gL2Rldi9u dWxsIDI+JjE7IHRoZW4KLSAgY2F0ID4gZ2NjNjQgPDwiRU9GIgotIyEvYmluL3NoCi1leGVjIC91 c3IvYmluL2djYyAtbTY0ICIkQCIKLUVPRgotICBjaG1vZCAreCBnY2M2NAotICBDQz1gcHdkYC9n Y2M2NAotZmkKLSVlbmRpZgotT1BUX0ZMQUdTPWBlY2hvICIkT1BUX0ZMQUdTIiB8IHNlZCAtZSAn cy9bWzpibGFuazpdXVwrLyAvZydgCi1jYXNlICIkT1BUX0ZMQUdTIiBpbgotICAqLWZhc3luY2hy b25vdXMtdW53aW5kLXRhYmxlcyopCi0gICAgc2VkIC1pIC1lICdzLy1mbm8tZXhjZXB0aW9ucyAv LWZuby1leGNlcHRpb25zIC1mbm8tYXN5bmNocm9ub3VzLXVud2luZC10YWJsZXMvJyBcCi0gICAg ICAuLi9nY2MvTWFrZWZpbGUuaW4KLSAgICA7OwotZXNhYwotQ0M9IiRDQyIgQ0ZMQUdTPSIkT1BU X0ZMQUdTIiBDWFhGTEFHUz0iYGVjaG8gJE9QVF9GTEFHUyB8IHNlZCAncy8gLVdhbGwgLyAvZydg IiBYQ0ZMQUdTPSIkT1BUX0ZMQUdTIiBUQ0ZMQUdTPSIkT1BUX0ZMQUdTIiBcCi0JR0NKRkxBR1M9 IiRPUFRfRkxBR1MiIFwKLQkuLi9jb25maWd1cmUgLS1wcmVmaXg9JXtfcHJlZml4fSAtLW1hbmRp cj0le19tYW5kaXJ9IC0taW5mb2Rpcj0le19pbmZvZGlyfSBcCi0JLS13aXRoLWJ1Z3VybD1odHRw Oi8vYnVnemlsbGEucmVkaGF0LmNvbS9idWd6aWxsYSAtLWVuYWJsZS1ib290c3RyYXAgXAotCS0t ZW5hYmxlLXNoYXJlZCAtLWVuYWJsZS10aHJlYWRzPXBvc2l4IC0tZW5hYmxlLWNoZWNraW5nPXJl bGVhc2UgXAotCS0td2l0aC1zeXN0ZW0temxpYiAtLWVuYWJsZS1fX2N4YV9hdGV4aXQgLS1kaXNh YmxlLWxpYnVud2luZC1leGNlcHRpb25zIFwKLSVpZiAhJXtidWlsZF9hZGF9Ci0JLS1lbmFibGUt bGFuZ3VhZ2VzPWMsYysrLG9iamMsb2JqLWMrKyxqYXZhLGZvcnRyYW4gXAotJWVsc2UKLQktLWVu YWJsZS1sYW5ndWFnZXM9YyxjKyssb2JqYyxvYmotYysrLGphdmEsZm9ydHJhbixhZGEgXAotJWVu ZGlmCi0laWYgISV7YnVpbGRfamF2YX0KLQktLWRpc2FibGUtbGliZ2NqIFwKLSVlbHNlCi0JLS1l bmFibGUtamF2YS1hd3Q9Z3RrIC0tZGlzYWJsZS1kc3NpIC0tZW5hYmxlLXBsdWdpbiBcCi0JLS13 aXRoLWphdmEtaG9tZT0le19wcmVmaXh9L2xpYi9qdm0vamF2YS0xLjUuMC1nY2otMS41LjAuMC9q cmUgXAotCS0tZW5hYmxlLWxpYmdjai1tdWx0aWZpbGUgXAotJWlmICEle2Jvb3RzdHJhcF9qYXZh fQotCS0tZW5hYmxlLWphdmEtbWFpbnRhaW5lci1tb2RlIFwKLSVlbmRpZgotCS0td2l0aC1lY2ot amFyPS91c3Ivc2hhcmUvamF2YS9lY2xpcHNlLWVjai5qYXIgXAotCS0tZGlzYWJsZS1saWJqYXZh LW11bHRpbGliIFwKLSVlbmRpZgotJWlmYXJjaCAle2FybX0KLQktLWRpc2FibGUtc2psai1leGNl cHRpb25zIFwKLSVlbmRpZgotJWlmYXJjaCBwcGMgcHBjNjQKLQktLWVuYWJsZS1zZWN1cmVwbHQg XAotJWVuZGlmCi0laWZhcmNoIHNwYXJjIHNwYXJjdjkgc3BhcmM2NCBwcGMgcHBjNjQgczM5MCBz MzkweCBhbHBoYQotCS0td2l0aC1sb25nLWRvdWJsZS0xMjggXAotJWVuZGlmCi0laWZhcmNoIHNw YXJjCi0JLS1kaXNhYmxlLWxpbnV4LWZ1dGV4IFwKLSVlbmRpZgotJWlmYXJjaCBzcGFyYzY0Ci0J LS13aXRoLWNwdT11bHRyYXNwYXJjIFwKLSVlbmRpZgotJWlmYXJjaCBzcGFyYyBzcGFyY3Y5Ci0J LS1ob3N0PSV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0gLS1idWlsZD0le2djY190YXJnZXRfcGxhdGZv cm19IC0tdGFyZ2V0PSV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0gLS13aXRoLWNwdT12NwotJWVuZGlm Ci0laWZhcmNoIHBwYwotCS0tYnVpbGQ9JXtnY2NfdGFyZ2V0X3BsYXRmb3JtfSAtLXRhcmdldD0l e2djY190YXJnZXRfcGxhdGZvcm19IC0td2l0aC1jcHU9ZGVmYXVsdDMyCi0lZW5kaWYKLSVpZmFy Y2ggJXtpeDg2fSB4ODZfNjQKLQktLXdpdGgtY3B1PWdlbmVyaWMgXAotJWVuZGlmCi0laWZhcmNo IHMzOTAgczM5MHgKLQktLXdpdGgtdHVuZT16OS0xMDkgXAotJWVuZGlmCi0laWZuYXJjaCBzcGFy YyBzcGFyY3Y5IHBwYwotCS0tYnVpbGQ9JXtnY2NfdGFyZ2V0X3BsYXRmb3JtfQotJWVuZGlmCi0K LUdDSkZMQUdTPSIkT1BUX0ZMQUdTIiBtYWtlICV7P19zbXBfbWZsYWdzfSBCT09UX0NGTEFHUz0i JE9QVF9GTEFHUyIgYm9vdHN0cmFwCi0jR0NKRkxBR1M9IiRPUFRfRkxBR1MiIG1ha2UgJXs/X3Nt cF9tZmxhZ3N9IEJPT1RfQ0ZMQUdTPSIkT1BUX0ZMQUdTIiBwcm9maWxlZGJvb3RzdHJhcAotCi0j IHJ1biB0aGUgdGVzdHMuCi1tYWtlICV7P19zbXBfbWZsYWdzfSAtayBjaGVjayBSVU5URVNURkxB R1M9IkFMVF9DQ19VTkRFUl9URVNUPWdjYyBBTFRfQ1hYX1VOREVSX1RFU1Q9ZysrIiB8fCA6Ci1j ZCBnY2MKLW12IHRlc3RzdWl0ZXssLm5vcm1hbH0KLW1ha2UgJXs/X3NtcF9tZmxhZ3N9IC1rIFwK LSAgYHNlZCAtbiAncy9jaGVjay1hZGEvLztzL15DSEVDS19UQVJHRVRTW1s6Ymxhbms6XV0qPVtb OmJsYW5rOl1dKi8vcCcgTWFrZWZpbGVgIFwKLSAgUlVOVEVTVEZMQUdTPSItLXRhcmdldF9ib2Fy ZD11bml4Ly1mc3RhY2stcHJvdGVjdG9yIEFMVF9DQ19VTkRFUl9URVNUPWdjYyBBTFRfQ1hYX1VO REVSX1RFU1Q9ZysrIiB8fCA6Ci1tdiB0ZXN0c3VpdGV7LC5zc3B9Ci1tdiB0ZXN0c3VpdGV7Lm5v cm1hbCx9Ci1jZCAuLgotZWNobyA9PT09PT09PT09PT09PT09PT09PVRFU1RJTkc9PT09PT09PT09 PT09PT09PT09PT09PT09Ci0oIC4uL2NvbnRyaWIvdGVzdF9zdW1tYXJ5IHx8IDogKSAyPiYxIHwg c2VkIC1uICcvXmNhdC4qRU9GLywvXkVPRi97L15jYXQuKkVPRi9kOy9eRU9GL2Q7L15MQVNUX1VQ REFURUQ6L2Q7cDt9JwotZWNobyA9PT09PT09PT09PT09PT09PT09PVRFU1RJTkcgRU5EPT09PT09 PT09PT09PT09PT09PT09Ci1ta2RpciB0ZXN0bG9ncy0le190YXJnZXRfcGxhdGZvcm19LSV7dmVy c2lvbn0tJXtyZWxlYXNlfQotZm9yIGkgaW4gYGZpbmQgLiAtbmFtZSBcKi5sb2cgfCBncmVwIC1G IHRlc3RzdWl0ZS8gfCBncmVwIC12ICdjb25maWcubG9nXHxhY2F0c1x8YWRhJ2A7IGRvCi0gIGxu ICRpIHRlc3Rsb2dzLSV7X3RhcmdldF9wbGF0Zm9ybX0tJXt2ZXJzaW9ufS0le3JlbGVhc2V9LyB8 fCA6Ci1kb25lCi1mb3IgaSBpbiBgZmluZCAuIC1uYW1lIFwqLmxvZyB8IGdyZXAgLUYgdGVzdHN1 aXRlLnNzcC8gfCBncmVwIC12ICdjb25maWcubG9nXHxhY2F0c1x8YWRhJ2A7IGRvCi0gIGxuICRp IHRlc3Rsb2dzLSV7X3RhcmdldF9wbGF0Zm9ybX0tJXt2ZXJzaW9ufS0le3JlbGVhc2V9L3NzcC1g YmFzZW5hbWUgJGlgIHx8IDoKLWRvbmUKLXRhciBjZiAtIHRlc3Rsb2dzLSV7X3RhcmdldF9wbGF0 Zm9ybX0tJXt2ZXJzaW9ufS0le3JlbGVhc2V9IHwgYnppcDIgLTljIFwKLSAgfCB1dWVuY29kZSB0 ZXN0bG9ncy0le190YXJnZXRfcGxhdGZvcm19LnRhci5iejIgfHwgOgotcm0gLXJmIHRlc3Rsb2dz LSV7X3RhcmdldF9wbGF0Zm9ybX0tJXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci0KLSMgTWFrZSBwcm90 b2l6ZQotbWFrZSAtQyBnY2MgQ0M9Ii4veGdjYyAtQiAuLyAtTzIiIHByb3RvCi0KLSMgTWFrZSBn ZW5lcmF0ZWQgbWFuIHBhZ2VzIGV2ZW4gaWYgUG9kOjpNYW4gaXMgbm90IG5ldyBlbm91Z2gKLXBl cmwgLXBpIC1lICdzL2hlYWQzL2hlYWQyLycgLi4vY29udHJpYi90ZXhpMnBvZC5wbAotZm9yIGkg aW4gLi4vZ2NjL2RvYy8qLnRleGk7IGRvCi0gIGNwIC1hICRpICRpLm9yaWc7IHNlZCAncy9mdGFi bGUvdGFibGUvJyAkaS5vcmlnID4gJGkKLWRvbmUKLW1ha2UgLUMgZ2NjIGdlbmVyYXRlZC1tYW5w YWdlcwotZm9yIGkgaW4gLi4vZ2NjL2RvYy8qLnRleGk7IGRvIG12IC1mICRpLm9yaWcgJGk7IGRv bmUKLQotIyBDb3B5IHZhcmlvdXMgZG9jIGZpbGVzIGhlcmUgYW5kIHRoZXJlCi1jZCAuLgotbWtk aXIgLXAgcnBtLmRvYy9nZm9ydHJhbiBycG0uZG9jL29iamMKLW1rZGlyIC1wIHJwbS5kb2MvYm9l aG0tZ2MgcnBtLmRvYy9mYXN0amFyIHJwbS5kb2MvbGliZmZpIHJwbS5kb2MvbGliamF2YQotbWtk aXIgLXAgcnBtLmRvYy9jaGFuZ2Vsb2dzL3tnY2MvY3AsZ2NjL2phdmEsZ2NjL2FkYSxsaWJzdGRj KystdjMsbGlib2JqYyxsaWJtdWRmbGFwLGxpYmdvbXB9Ci1zZWQgLWUgJ3MsQFZFUlNJT05ALCV7 Z2NjX3ZlcnNpb259LCcgJXtTT1VSQ0UyfSA+IHJwbS5kb2MvUkVBRE1FLmxpYmdjandlYnBsdWdp bi5zbwotCi1mb3IgaSBpbiB7Z2NjLGdjYy9jcCxnY2MvamF2YSxnY2MvYWRhLGxpYnN0ZGMrKy12 MyxsaWJvYmpjLGxpYm11ZGZsYXAsbGliZ29tcH0vQ2hhbmdlTG9nKjsgZG8KLQljcCAtcCAkaSBy cG0uZG9jL2NoYW5nZWxvZ3MvJGkKLWRvbmUKLQotKGNkIGdjYy9mb3J0cmFuOyBmb3IgaSBpbiBD aGFuZ2VMb2cqOyBkbwotCWNwIC1wICRpIC4uLy4uL3JwbS5kb2MvZ2ZvcnRyYW4vJGkKLWRvbmUp Ci0oY2QgbGliZ2ZvcnRyYW47IGZvciBpIGluIENoYW5nZUxvZyo7IGRvCi0JY3AgLXAgJGkgLi4v cnBtLmRvYy9nZm9ydHJhbi8kaS5saWJnZm9ydHJhbgotZG9uZSkKLShjZCBnY2Mvb2JqYzsgZm9y IGkgaW4gUkVBRE1FKjsgZG8KLQljcCAtcCAkaSAuLi8uLi9ycG0uZG9jL29iamMvJGkub2JqYwot ZG9uZSkKLShjZCBsaWJvYmpjOyBmb3IgaSBpbiBSRUFETUUqOyBkbwotCWNwIC1wICRpIC4uL3Jw bS5kb2Mvb2JqYy8kaS5saWJvYmpjCi1kb25lKQotKGNkIGJvZWhtLWdjOyBmb3IgaSBpbiBDaGFu Z2VMb2cqOyBkbwotCWNwIC1wICRpIC4uL3JwbS5kb2MvYm9laG0tZ2MvJGkuZ2MKLWRvbmUpCi0o Y2QgZmFzdGphci0le2Zhc3RqYXJfdmVyfTsgZm9yIGkgaW4gQ2hhbmdlTG9nKiBSRUFETUUqOyBk bwotCWNwIC1wICRpIC4uL3JwbS5kb2MvZmFzdGphci8kaS5mYXN0amFyCi1kb25lKQotKGNkIGxp YmZmaTsgZm9yIGkgaW4gQ2hhbmdlTG9nKiBSRUFETUUqIExJQ0VOU0U7IGRvCi0JY3AgLXAgJGkg Li4vcnBtLmRvYy9saWJmZmkvJGkubGliZmZpCi1kb25lKQotKGNkIGxpYmphdmE7IGZvciBpIGlu IENoYW5nZUxvZyogUkVBRE1FKjsgZG8KLQljcCAtcCAkaSAuLi9ycG0uZG9jL2xpYmphdmEvJGku bGliamF2YQotZG9uZSkKLWNwIC1wIGxpYmphdmEvTElCR0NKX0xJQ0VOU0UgcnBtLmRvYy9saWJq YXZhLwotCi1ybSAtZiBycG0uZG9jL2NoYW5nZWxvZ3MvZ2NjL0NoYW5nZUxvZy5bMS05XQotZmlu ZCBycG0uZG9jIC1uYW1lIFwqQ2hhbmdlTG9nXCogfCB4YXJncyBiemlwMiAtOQotCi0laWYgJXti dWlsZF9qYXZhX3Rhcn0KLWZpbmQgbGliamF2YSAtbmFtZSBcKi5oIC10eXBlIGYgfCB4YXJncyBn cmVwIC1sICcvLyBETyBOT1QgRURJVCBUSElTIEZJTEUgLSBpdCBpcyBtYWNoaW5lIGdlbmVyYXRl ZCcgPiBsaWJqYXZhLWNsYXNzZXMubGlzdAotZmluZCBsaWJqYXZhIC1uYW1lIFwqLmNsYXNzIC10 eXBlIGYgPj4gbGliamF2YS1jbGFzc2VzLmxpc3QKLWZpbmQgbGliamF2YS90ZXN0c3VpdGUgLW5h bWUgXCouamFyIC10eXBlIGYgPj4gbGliamF2YS1jbGFzc2VzLmxpc3QKLXRhciBjZiAtIC1UIGxp YmphdmEtY2xhc3Nlcy5saXN0IHwgYnppcDIgLTkgPiAkUlBNX1NPVVJDRV9ESVIvbGliamF2YS1j bGFzc2VzLSV7dmVyc2lvbn0tJXtyZWxlYXNlfS50YXIuYnoyCi0lZW5kaWYKLQotJWluc3RhbGwK LXJtIC1mciAkUlBNX0JVSUxEX1JPT1QKLQotcGVybCAtcGkgLWUgXAotICAnc35ocmVmPSJsKGli c3RkY3xhdGVzdCl+aHJlZj0iaHR0cDovL2djYy5nbnUub3JnL29ubGluZWRvY3MvbGlic3RkYysr L2xcMX4nIFwKLSAgbGlic3RkYysrLXYzL2RvYy9odG1sL2FwaS5odG1sCi0KLWNkIG9iai0le2dj Y190YXJnZXRfcGxhdGZvcm19Ci0KLSVpZiAle2J1aWxkX2phdmF9Ci1leHBvcnQgUEFUSD1gcHdk YC8uLi9mYXN0amFyLSV7ZmFzdGphcl92ZXJ9L29iai0le2djY190YXJnZXRfcGxhdGZvcm19JHtQ QVRIOis6JFBBVEh9Ci0laWYgISV7Ym9vdHN0cmFwX2phdmF9Ci1leHBvcnQgUEFUSD1gcHdkYC9q YXZhX2hhY2tzJHtQQVRIOis6JFBBVEh9Ci0lZW5kaWYKLSVlbmRpZgotCi1UQVJHRVRfUExBVEZP Uk09JXtnY2NfdGFyZ2V0X3BsYXRmb3JtfQotCi0jIFRoZXJlIGFyZSBzb21lIE1QIGJ1Z3MgaW4g bGlic3RkYysrIE1ha2VmaWxlcwotbWFrZSAtQyAle2djY190YXJnZXRfcGxhdGZvcm19L2xpYnN0 ZGMrKy12MwotCi1tYWtlIHByZWZpeD0kUlBNX0JVSUxEX1JPT1Qle19wcmVmaXh9IG1hbmRpcj0k UlBNX0JVSUxEX1JPT1Qle19tYW5kaXJ9IFwKLSAgaW5mb2Rpcj0kUlBNX0JVSUxEX1JPT1Qle19p bmZvZGlyfSBpbnN0YWxsCi0laWYgJXtidWlsZF9qYXZhfQotbWFrZSBERVNURElSPSRSUE1fQlVJ TERfUk9PVCAtQyAle2djY190YXJnZXRfcGxhdGZvcm19L2xpYmphdmEgaW5zdGFsbC1zcmMuemlw Ci0lZW5kaWYKLSVpZiAle2J1aWxkX2FkYX0KLWNobW9kIDY0NCAkUlBNX0JVSUxEX1JPT1Qle19p bmZvZGlyfS9nbmF0KgotJWVuZGlmCi0KLUZVTExQQVRIPSRSUE1fQlVJTERfUk9PVCV7X3ByZWZp eH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259Ci1GVUxMRVBB VEg9JFJQTV9CVUlMRF9ST09UJXtfcHJlZml4fS9saWJleGVjL2djYy8le2djY190YXJnZXRfcGxh dGZvcm19LyV7Z2NjX3ZlcnNpb259Ci0KLSMgZml4IHNvbWUgdGhpbmdzCi1sbiAtc2YgZ2NjICRS UE1fQlVJTERfUk9PVCV7X3ByZWZpeH0vYmluL2NjCi1ta2RpciAtcCAkUlBNX0JVSUxEX1JPT1Qv bGliCi1sbiAtc2YgLi4le19wcmVmaXh9L2Jpbi9jcHAgJFJQTV9CVUlMRF9ST09UL2xpYi9jcHAK LWxuIC1zZiBnZm9ydHJhbiAkUlBNX0JVSUxEX1JPT1Qle19wcmVmaXh9L2Jpbi9mOTUKLXJtIC1m ICRSUE1fQlVJTERfUk9PVCV7X2luZm9kaXJ9L2RpcgotZ3ppcCAtOSAkUlBNX0JVSUxEX1JPT1Ql e19pbmZvZGlyfS8qLmluZm8qCi1sbiAtc2YgZ2NjICRSUE1fQlVJTERfUk9PVCV7X3ByZWZpeH0v YmluL2duYXRnY2MKLQotY3h4Y29uZmlnPSJgZmluZCAle2djY190YXJnZXRfcGxhdGZvcm19L2xp YnN0ZGMrKy12My9pbmNsdWRlIC1uYW1lIGMrK2NvbmZpZy5oYCIKLWZvciBpIGluIGBmaW5kICV7 Z2NjX3RhcmdldF9wbGF0Zm9ybX0vWzM2XSovbGlic3RkYysrLXYzL2luY2x1ZGUgLW5hbWUgYysr Y29uZmlnLmggMj4vZGV2L251bGxgOyBkbwotICBpZiAhIGRpZmYgLXVwICRjeHhjb25maWcgJGk7 IHRoZW4KLSAgICBjYXQgPiAkUlBNX0JVSUxEX1JPT1Qle19wcmVmaXh9L2luY2x1ZGUvYysrLyV7 Z2NjX3ZlcnNpb259LyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vYml0cy9jKytjb25maWcuaCA8PEVP RgotI2lmbmRlZiBfQ1BQX0NQUENPTkZJR19XUkFQUEVSCi0jZGVmaW5lIF9DUFBfQ1BQQ09ORklH X1dSQVBQRVIgMQotI2luY2x1ZGUgPGJpdHMvd29yZHNpemUuaD4KLSNpZiBfX1dPUkRTSVpFID09 IDMyCi0laWZhcmNoICV7bXVsdGlsaWJfNjRfYXJjaHN9Ci1gY2F0ICQoZmluZCAle2djY190YXJn ZXRfcGxhdGZvcm19LzMyL2xpYnN0ZGMrKy12My9pbmNsdWRlIC1uYW1lIGMrK2NvbmZpZy5oKWAK LSVlbHNlCi1gY2F0ICQoZmluZCAle2djY190YXJnZXRfcGxhdGZvcm19L2xpYnN0ZGMrKy12My9p bmNsdWRlIC1uYW1lIGMrK2NvbmZpZy5oKWAKLSVlbmRpZgotI2Vsc2UKLSVpZmFyY2ggJXttdWx0 aWxpYl82NF9hcmNoc30KLWBjYXQgJChmaW5kICV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vbGlic3Rk YysrLXYzL2luY2x1ZGUgLW5hbWUgYysrY29uZmlnLmgpYAotJWVsc2UKLWBjYXQgJChmaW5kICV7 Z2NjX3RhcmdldF9wbGF0Zm9ybX0vNjQvbGlic3RkYysrLXYzL2luY2x1ZGUgLW5hbWUgYysrY29u ZmlnLmgpYAotJWVuZGlmCi0jZW5kaWYKLSNlbmRpZgotRU9GCi0gICAgYnJlYWsKLSAgZmkKLWRv bmUKLQotIyBOdWtlIGJpdHMvc3RkYysrLmguZ2NoIGRpcnMKLSMgMSkgdGhlcmUgaXMgbm8gYml0 cy9zdGRjKysuaCBoZWFkZXIgaW5zdGFsbGVkLCBzbyB3aGVuIGdjaCBmaWxlIGNhbid0IGJlCi0j ICAgIHVzZWQsIGNvbXBpbGF0aW9uIGZhaWxzCi0jIDIpIHNvbWV0aW1lcyBpdCBpcyBoYXJkIHRv IG1hdGNoIHRoZSBleGFjdCBvcHRpb25zIHVzZWQgZm9yIGJ1aWxkaW5nCi0jICAgIGxpYnN0ZGMr Ky12MyBvciB0aGV5IGFyZW4ndCBkZXNpcmFibGUKLSMgMykgdGhlcmUgYXJlIG11bHRpbGliIGlz c3VlcywgY29uZmxpY3RzIGV0Yy4gd2l0aCB0aGlzCi0jIDQpIGl0IGlzIGh1Z2UKLSMgUGVvcGxl IGNhbiBhbHdheXMgcHJlY29tcGlsZSBvbiB0aGVpciBvd24gd2hhdGV2ZXIgdGhleSB3YW50LCBi dXQKLSMgc2hpcHBpbmcgdGhpcyBmb3IgZXZlcnlib2R5IGlzIHVubmVjZXNzYXJ5Lgotcm0gLXJm ICRSUE1fQlVJTERfUk9PVCV7X3ByZWZpeH0vaW5jbHVkZS9jKysvJXtnY2NfdmVyc2lvbn0vJXtn Y2NfdGFyZ2V0X3BsYXRmb3JtfS9iaXRzL3N0ZGMrKy5oLmdjaAotCi0laWZhcmNoIHNwYXJjdjkg c3BhcmM2NAotbG4gLWYgJFJQTV9CVUlMRF9ST09UJXtfcHJlZml4fS9iaW4vJXtnY2NfdGFyZ2V0 X3BsYXRmb3JtfS1nY2MgXAotICAkUlBNX0JVSUxEX1JPT1Qle19wcmVmaXh9L2Jpbi9zcGFyYy0l e192ZW5kb3J9LSV7X3RhcmdldF9vc30tZ2NjCi0lZW5kaWYKLSVpZmFyY2ggcHBjIHBwYzY0Ci1s biAtZiAkUlBNX0JVSUxEX1JPT1Qle19wcmVmaXh9L2Jpbi8le2djY190YXJnZXRfcGxhdGZvcm19 LWdjYyBcCi0gICRSUE1fQlVJTERfUk9PVCV7X3ByZWZpeH0vYmluL3BwYy0le192ZW5kb3J9LSV7 X3RhcmdldF9vc30tZ2NjCi0lZW5kaWYKLQotJWlmYXJjaCBzcGFyY3Y5IHBwYwotRlVMTExQQVRI PSRGVUxMUEFUSC9saWIzMgotJWVuZGlmCi0laWZhcmNoIHNwYXJjNjQgcHBjNjQKLUZVTExMUEFU SD0kRlVMTFBBVEgvbGliNjQKLSVlbmRpZgotaWYgWyAtbiAiJEZVTExMUEFUSCIgXTsgdGhlbgot ICBta2RpciAtcCAkRlVMTExQQVRICi1lbHNlCi0gIEZVTExMUEFUSD0kRlVMTFBBVEgKLWZpCi0K LWZpbmQgJFJQTV9CVUlMRF9ST09UIC1uYW1lIFwqLmxhIHwgeGFyZ3Mgcm0gLWYKLSVpZiAle2J1 aWxkX2phdmF9Ci0jIGdjaiAtc3RhdGljIGRvZXNuJ3Qgd29yayBwcm9wZXJseSBhbnl3YXksIHVu bGVzcyB1c2luZyAtLXdob2xlLWFyY2hpdmUKLSMgYW5kIHNhdmluZyAzNU1CIGlzIG5vdCBiYWQu Ci1maW5kICRSUE1fQlVJTERfUk9PVCAtbmFtZSBsaWJnY2ouYSAtbyAtbmFtZSBsaWJndGtwZWVy LmEgXAotCQkgICAgIC1vIC1uYW1lIGxpYmdqc21hbHNhLmEgLW8gLW5hbWUgbGliZ2NqLXRvb2xz LmEgLW8gLW5hbWUgbGlianZtLmEgXAotCQkgICAgIC1vIC1uYW1lIGxpYmdpai5hIC1vIC1uYW1l IGxpYmdjal9iYy5hIHwgeGFyZ3Mgcm0gLWYKLQotbXYgJFJQTV9CVUlMRF9ST09UJXtfcHJlZml4 fS9saWIvbGliZ2NqLnNwZWMgJEZVTExQQVRILwotc2VkIC1pIC1lICdzL2xpYjogLyYlJXtzdGF0 aWM6JSVlSmF2YSBwcm9ncmFtcyBjYW5ub3QgYmUgbGlua2VkIHN0YXRpY2FsbHl9LycgXAotICAk RlVMTFBBVEgvbGliZ2NqLnNwZWMKLSVlbmRpZgotCi1ta2RpciAtcCAkUlBNX0JVSUxEX1JPT1Qv JXtfbGlifQotbXYgLWYgJFJQTV9CVUlMRF9ST09UJXtfcHJlZml4fS8le19saWJ9L2xpYmdjY19z LnNvLjEgJFJQTV9CVUlMRF9ST09ULyV7X2xpYn0vbGliZ2NjX3MtJXtnY2NfdmVyc2lvbn0tJXtE QVRFfS5zby4xCi1jaG1vZCA3NTUgJFJQTV9CVUlMRF9ST09ULyV7X2xpYn0vbGliZ2NjX3MtJXtn Y2NfdmVyc2lvbn0tJXtEQVRFfS5zby4xCi1sbiAtc2YgbGliZ2NjX3MtJXtnY2NfdmVyc2lvbn0t JXtEQVRFfS5zby4xICRSUE1fQlVJTERfUk9PVC8le19saWJ9L2xpYmdjY19zLnNvLjEKLWxuIC1z ZiAvJXtfbGlifS9saWJnY2Nfcy5zby4xICRGVUxMUEFUSC9saWJnY2Nfcy5zbwotJWlmYXJjaCBz cGFyY3Y5IHBwYwotbG4gLXNmIC9saWI2NC9saWJnY2Nfcy5zby4xICRGVUxMUEFUSC82NC9saWJn Y2Nfcy5zbwotJWVuZGlmCi0laWZhcmNoICV7bXVsdGlsaWJfNjRfYXJjaHN9Ci1sbiAtc2YgL2xp Yi9saWJnY2Nfcy5zby4xICRGVUxMUEFUSC8zMi9saWJnY2Nfcy5zbwotJWVuZGlmCi0KLW12IC1m ICRSUE1fQlVJTERfUk9PVCV7X3ByZWZpeH0vJXtfbGlifS9saWJnb21wLnNwZWMgJEZVTExQQVRI LwotCi0laWYgJXtidWlsZF9hZGF9Ci1tdiAtZiAkRlVMTFBBVEgvYWRhbGliL2xpYmduYXJsLSou c28gJFJQTV9CVUlMRF9ST09UJXtfcHJlZml4fS8le19saWJ9LwotbXYgLWYgJEZVTExQQVRIL2Fk YWxpYi9saWJnbmF0LSouc28gJFJQTV9CVUlMRF9ST09UJXtfcHJlZml4fS8le19saWJ9Lwotcm0g LWYgJEZVTExQQVRIL2FkYWxpYi9saWJnbmFybC5zbyogJEZVTExQQVRIL2FkYWxpYi9saWJnbmF0 LnNvKgotJWVuZGlmCi0KLW1rZGlyIC1wICRSUE1fQlVJTERfUk9PVCV7X3ByZWZpeH0vbGliZXhl Yy9nZXRjb25mCi1pZiBnY2MveGdjYyAtQiBnY2MvIC1FIC1kRCAteGMgL2Rldi9udWxsIHwgZ3Jl cCBfX0xPTkdfTUFYX18uKjIxNDc0ODM2NDc7IHRoZW4KLSAgbG4gLXNmIFBPU0lYX1Y2X0lMUDMy X09GRjMyICRSUE1fQlVJTERfUk9PVCV7X3ByZWZpeH0vbGliZXhlYy9nZXRjb25mL2RlZmF1bHQK LWVsc2UKLSAgbG4gLXNmIFBPU0lYX1Y2X0xQNjRfT0ZGNjQgJFJQTV9CVUlMRF9ST09UJXtfcHJl Zml4fS9saWJleGVjL2dldGNvbmYvZGVmYXVsdAotZmkKLQotJWlmICV7YnVpbGRfamF2YX0KLXB1 c2hkIC4uL2Zhc3RqYXItJXtmYXN0amFyX3Zlcn0vb2JqLSV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0K LW1ha2UgaW5zdGFsbCBERVNURElSPSRSUE1fQlVJTERfUk9PVAotcG9wZAotCi1pZiBbICIle19s aWJ9IiAhPSAibGliIiBdOyB0aGVuCi0gIG1rZGlyIC1wICRSUE1fQlVJTERfUk9PVCV7X3ByZWZp eH0vJXtfbGlifS9wa2djb25maWcKLSAgc2VkICcvXmxpYmRpci9zL2xpYiQvJXtfbGlifS8nICRS UE1fQlVJTERfUk9PVCV7X3ByZWZpeH0vbGliL3BrZ2NvbmZpZy9saWJnY2otKi5wYyBcCi0gICAg PiAkUlBNX0JVSUxEX1JPT1Qle19wcmVmaXh9LyV7X2xpYn0vcGtnY29uZmlnL2BiYXNlbmFtZSAk UlBNX0JVSUxEX1JPT1Qle19wcmVmaXh9L2xpYi9wa2djb25maWcvbGliZ2NqLSoucGNgCi1maQot JWVuZGlmCi0KLXB1c2hkICRGVUxMUEFUSAotaWYgWyAiJXtfbGlifSIgPSAibGliIiBdOyB0aGVu Ci1sbiAtc2YgLi4vLi4vLi4vbGlib2JqYy5zby4yIGxpYm9iamMuc28KLWxuIC1zZiAuLi8uLi8u Li9saWJzdGRjKysuc28uNi4qIGxpYnN0ZGMrKy5zbwotbG4gLXNmIC4uLy4uLy4uL2xpYmdmb3J0 cmFuLnNvLjMuKiBsaWJnZm9ydHJhbi5zbwotbG4gLXNmIC4uLy4uLy4uL2xpYmdvbXAuc28uMS4q IGxpYmdvbXAuc28KLWxuIC1zZiAuLi8uLi8uLi9saWJtdWRmbGFwLnNvLjAuKiBsaWJtdWRmbGFw LnNvCi1sbiAtc2YgLi4vLi4vLi4vbGlibXVkZmxhcHRoLnNvLjAuKiBsaWJtdWRmbGFwdGguc28K LSVpZiAle2J1aWxkX2phdmF9Ci1sbiAtc2YgLi4vLi4vLi4vbGliZ2NqLnNvLjkuKiBsaWJnY2ou c28KLWxuIC1zZiAuLi8uLi8uLi9saWJnY2otdG9vbHMuc28uOS4qIGxpYmdjai10b29scy5zbwot bG4gLXNmIC4uLy4uLy4uL2xpYmdpai5zby45LiogbGliZ2lqLnNvCi0lZW5kaWYKLSVpZiAle2J1 aWxkX2FkYX0KLWNkIGFkYWxpYgotbG4gLXNmIC4uLy4uLy4uLy4uL2xpYmduYXJsLSouc28gbGli Z25hcmwuc28KLWxuIC1zZiAuLi8uLi8uLi8uLi9saWJnbmFybC0qLnNvIGxpYmduYXJsLTQuMy5z bwotbG4gLXNmIC4uLy4uLy4uLy4uL2xpYmduYXQtKi5zbyBsaWJnbmF0LnNvCi1sbiAtc2YgLi4v Li4vLi4vLi4vbGliZ25hdC0qLnNvIGxpYmduYXQtNC4zLnNvCi1jZCAuLgotJWVuZGlmCi1lbHNl Ci1sbiAtc2YgLi4vLi4vLi4vLi4vJXtfbGlifS9saWJvYmpjLnNvLjIgbGlib2JqYy5zbwotbG4g LXNmIC4uLy4uLy4uLy4uLyV7X2xpYn0vbGlic3RkYysrLnNvLjYuKiBsaWJzdGRjKysuc28KLWxu IC1zZiAuLi8uLi8uLi8uLi8le19saWJ9L2xpYmdmb3J0cmFuLnNvLjMuKiBsaWJnZm9ydHJhbi5z bwotbG4gLXNmIC4uLy4uLy4uLy4uLyV7X2xpYn0vbGliZ29tcC5zby4xLiogbGliZ29tcC5zbwot bG4gLXNmIC4uLy4uLy4uLy4uLyV7X2xpYn0vbGlibXVkZmxhcC5zby4wLiogbGlibXVkZmxhcC5z bwotbG4gLXNmIC4uLy4uLy4uLy4uLyV7X2xpYn0vbGlibXVkZmxhcHRoLnNvLjAuKiBsaWJtdWRm bGFwdGguc28KLSVpZiAle2J1aWxkX2phdmF9Ci1sbiAtc2YgLi4vLi4vLi4vLi4vJXtfbGlifS9s aWJnY2ouc28uOS4qIGxpYmdjai5zbwotbG4gLXNmIC4uLy4uLy4uLy4uLyV7X2xpYn0vbGliZ2Nq LXRvb2xzLnNvLjkuKiBsaWJnY2otdG9vbHMuc28KLWxuIC1zZiAuLi8uLi8uLi8uLi8le19saWJ9 L2xpYmdpai5zby45LiogbGliZ2lqLnNvCi0lZW5kaWYKLSVpZiAle2J1aWxkX2FkYX0KLWNkIGFk YWxpYgotbG4gLXNmIC4uLy4uLy4uLy4uLy4uLyV7X2xpYn0vbGliZ25hcmwtKi5zbyBsaWJnbmFy bC5zbwotbG4gLXNmIC4uLy4uLy4uLy4uLy4uLyV7X2xpYn0vbGliZ25hcmwtKi5zbyBsaWJnbmFy bC00LjMuc28KLWxuIC1zZiAuLi8uLi8uLi8uLi8uLi8le19saWJ9L2xpYmduYXQtKi5zbyBsaWJn bmF0LnNvCi1sbiAtc2YgLi4vLi4vLi4vLi4vLi4vJXtfbGlifS9saWJnbmF0LSouc28gbGliZ25h dC00LjMuc28KLWNkIC4uCi0lZW5kaWYKLWZpCi0laWYgJXtidWlsZF9qYXZhfQotbXYgLWYgJFJQ TV9CVUlMRF9ST09UJXtfcHJlZml4fS8le19saWJ9L2xpYmdjal9iYy5zbyAkRlVMTExQQVRILwot JWVuZGlmCi1tdiAtZiAkUlBNX0JVSUxEX1JPT1Qle19wcmVmaXh9LyV7X2xpYn0vbGlic3RkYysr LiphICRGVUxMTFBBVEgvCi1tdiAtZiAkUlBNX0JVSUxEX1JPT1Qle19wcmVmaXh9LyV7X2xpYn0v bGlic3VwYysrLiphIC4KLW12IC1mICRSUE1fQlVJTERfUk9PVCV7X3ByZWZpeH0vJXtfbGlifS9s aWJnZm9ydHJhbi4qYSAuCi1tdiAtZiAkUlBNX0JVSUxEX1JPT1Qle19wcmVmaXh9LyV7X2xpYn0v bGlib2JqYy4qYSAuCi1tdiAtZiAkUlBNX0JVSUxEX1JPT1Qle19wcmVmaXh9LyV7X2xpYn0vbGli Z29tcC4qYSAuCi1tdiAtZiAkUlBNX0JVSUxEX1JPT1Qle19wcmVmaXh9LyV7X2xpYn0vbGlibXVk ZmxhcHssdGh9LiphICRGVUxMTFBBVEgvCi0KLSVpZmFyY2ggc3BhcmN2OSBwcGMKLWxuIC1zZiAu Li8uLi8uLi8uLi8uLi9saWI2NC9saWJvYmpjLnNvLjIgNjQvbGlib2JqYy5zbwotbG4gLXNmIC4u L2BlY2hvIC4uLy4uLy4uLy4uL2xpYi9saWJzdGRjKysuc28uNi4qIHwgc2VkIHN+L2xpYi9+L2xp YjY0L35gIDY0L2xpYnN0ZGMrKy5zbwotbG4gLXNmIC4uL2BlY2hvIC4uLy4uLy4uLy4uL2xpYi9s aWJnZm9ydHJhbi5zby4zLiogfCBzZWQgc34vbGliL34vbGliNjQvfmAgNjQvbGliZ2ZvcnRyYW4u c28KLWxuIC1zZiAuLi9gZWNobyAuLi8uLi8uLi8uLi9saWIvbGliZ29tcC5zby4xLiogfCBzZWQg c34vbGliL34vbGliNjQvfmAgNjQvbGliZ29tcC5zbwotcm0gLWYgbGlibXVkZmxhcC5zbyBsaWJt dWRmbGFwdGguc28KLWVjaG8gJ0lOUFVUICggJXtfcHJlZml4fS9saWIvJ2BlY2hvIC4uLy4uLy4u Ly4uL2xpYi9saWJtdWRmbGFwLnNvLjAuKiB8IHNlZCAncyxeLipsaWJtLGxpYm0sJ2AnICknID4g bGlibXVkZmxhcC5zbwotZWNobyAnSU5QVVQgKCAle19wcmVmaXh9L2xpYi8nYGVjaG8gLi4vLi4v Li4vLi4vbGliL2xpYm11ZGZsYXB0aC5zby4wLiogfCBzZWQgJ3MsXi4qbGlibSxsaWJtLCdgJyAp JyA+IGxpYm11ZGZsYXB0aC5zbwotZWNobyAnSU5QVVQgKCAle19wcmVmaXh9L2xpYjY0LydgZWNo byAuLi8uLi8uLi8uLi9saWIvbGlibXVkZmxhcC5zby4wLiogfCBzZWQgJ3MsXi4qbGlibSxsaWJt LCdgJyApJyA+IDY0L2xpYm11ZGZsYXAuc28KLWVjaG8gJ0lOUFVUICggJXtfcHJlZml4fS9saWI2 NC8nYGVjaG8gLi4vLi4vLi4vLi4vbGliL2xpYm11ZGZsYXB0aC5zby4wLiogfCBzZWQgJ3MsXi4q bGlibSxsaWJtLCdgJyApJyA+IDY0L2xpYm11ZGZsYXB0aC5zbwotJWlmICV7YnVpbGRfamF2YX0K LWxuIC1zZiAuLi9gZWNobyAuLi8uLi8uLi8uLi9saWIvbGliZ2NqLnNvLjkuKiB8IHNlZCBzfi9s aWIvfi9saWI2NC9+YCA2NC9saWJnY2ouc28KLWxuIC1zZiAuLi9gZWNobyAuLi8uLi8uLi8uLi9s aWIvbGliZ2NqLXRvb2xzLnNvLjkuKiB8IHNlZCBzfi9saWIvfi9saWI2NC9+YCA2NC9saWJnY2ot dG9vbHMuc28KLWxuIC1zZiAuLi9gZWNobyAuLi8uLi8uLi8uLi9saWIvbGliZ2lqLnNvLjkuKiB8 IHNlZCBzfi9saWIvfi9saWI2NC9+YCA2NC9saWJnaWouc28KLWxuIC1zZiBsaWIzMi9saWJnY2pf YmMuc28gbGliZ2NqX2JjLnNvCi1sbiAtc2YgLi4vbGliNjQvbGliZ2NqX2JjLnNvIDY0L2xpYmdj al9iYy5zbwotJWVuZGlmCi1tdiAtZiAkUlBNX0JVSUxEX1JPT1Qle19wcmVmaXh9L2xpYjY0L2xp YnN1cGMrKy4qYSA2NC8KLW12IC1mICRSUE1fQlVJTERfUk9PVCV7X3ByZWZpeH0vbGliNjQvbGli Z2ZvcnRyYW4uKmEgNjQvCi1tdiAtZiAkUlBNX0JVSUxEX1JPT1Qle19wcmVmaXh9L2xpYjY0L2xp Ym9iamMuKmEgNjQvCi1tdiAtZiAkUlBNX0JVSUxEX1JPT1Qle19wcmVmaXh9L2xpYjY0L2xpYmdv bXAuKmEgNjQvCi1sbiAtc2YgbGliMzIvbGlic3RkYysrLmEgbGlic3RkYysrLmEKLWxuIC1zZiAu Li9saWI2NC9saWJzdGRjKysuYSA2NC9saWJzdGRjKysuYQotbG4gLXNmIGxpYjMyL2xpYm11ZGZs YXAuYSBsaWJtdWRmbGFwLmEKLWxuIC1zZiAuLi9saWI2NC9saWJtdWRmbGFwLmEgNjQvbGlibXVk ZmxhcC5hCi1sbiAtc2YgbGliMzIvbGlibXVkZmxhcHRoLmEgbGlibXVkZmxhcHRoLmEKLWxuIC1z ZiAuLi9saWI2NC9saWJtdWRmbGFwdGguYSA2NC9saWJtdWRmbGFwdGguYQotJWVuZGlmCi0laWZh cmNoICV7bXVsdGlsaWJfNjRfYXJjaHN9Ci1ta2RpciAtcCAzMgotbG4gLXNmIC4uLy4uLy4uLy4u L2xpYm9iamMuc28uMiAzMi9saWJvYmpjLnNvCi1sbiAtc2YgLi4vYGVjaG8gLi4vLi4vLi4vLi4v bGliNjQvbGlic3RkYysrLnNvLjYuKiB8IHNlZCBzfi8uLi9saWI2NC9+L35gIDMyL2xpYnN0ZGMr Ky5zbwotbG4gLXNmIC4uL2BlY2hvIC4uLy4uLy4uLy4uL2xpYjY0L2xpYmdmb3J0cmFuLnNvLjMu KiB8IHNlZCBzfi8uLi9saWI2NC9+L35gIDMyL2xpYmdmb3J0cmFuLnNvCi1sbiAtc2YgLi4vYGVj aG8gLi4vLi4vLi4vLi4vbGliNjQvbGliZ29tcC5zby4xLiogfCBzZWQgc34vLi4vbGliNjQvfi9+ YCAzMi9saWJnb21wLnNvCi1ybSAtZiBsaWJtdWRmbGFwLnNvIGxpYm11ZGZsYXB0aC5zbwotZWNo byAnSU5QVVQgKCAle19wcmVmaXh9L2xpYjY0LydgZWNobyAuLi8uLi8uLi8uLi9saWI2NC9saWJt dWRmbGFwLnNvLjAuKiB8IHNlZCAncyxeLipsaWJtLGxpYm0sJ2AnICknID4gbGlibXVkZmxhcC5z bwotZWNobyAnSU5QVVQgKCAle19wcmVmaXh9L2xpYjY0LydgZWNobyAuLi8uLi8uLi8uLi9saWI2 NC9saWJtdWRmbGFwdGguc28uMC4qIHwgc2VkICdzLF4uKmxpYm0sbGlibSwnYCcgKScgPiBsaWJt dWRmbGFwdGguc28KLWVjaG8gJ0lOUFVUICggJXtfcHJlZml4fS9saWIvJ2BlY2hvIC4uLy4uLy4u Ly4uL2xpYjY0L2xpYm11ZGZsYXAuc28uMC4qIHwgc2VkICdzLF4uKmxpYm0sbGlibSwnYCcgKScg PiAzMi9saWJtdWRmbGFwLnNvCi1lY2hvICdJTlBVVCAoICV7X3ByZWZpeH0vbGliLydgZWNobyAu Li8uLi8uLi8uLi9saWI2NC9saWJtdWRmbGFwdGguc28uMC4qIHwgc2VkICdzLF4uKmxpYm0sbGli bSwnYCcgKScgPiAzMi9saWJtdWRmbGFwdGguc28KLSVpZiAle2J1aWxkX2phdmF9Ci1sbiAtc2Yg Li4vYGVjaG8gLi4vLi4vLi4vLi4vbGliNjQvbGliZ2NqLnNvLjkuKiB8IHNlZCBzfi8uLi9saWI2 NC9+L35gIDMyL2xpYmdjai5zbwotbG4gLXNmIC4uL2BlY2hvIC4uLy4uLy4uLy4uL2xpYjY0L2xp Ymdjai10b29scy5zby45LiogfCBzZWQgc34vLi4vbGliNjQvfi9+YCAzMi9saWJnY2otdG9vbHMu c28KLWxuIC1zZiAuLi9gZWNobyAuLi8uLi8uLi8uLi9saWI2NC9saWJnaWouc28uOS4qIHwgc2Vk IHN+Ly4uL2xpYjY0L34vfmAgMzIvbGliZ2lqLnNvCi0lZW5kaWYKLW12IC1mICRSUE1fQlVJTERf Uk9PVCV7X3ByZWZpeH0vbGliL2xpYnN1cGMrKy4qYSAzMi8KLW12IC1mICRSUE1fQlVJTERfUk9P VCV7X3ByZWZpeH0vbGliL2xpYmdmb3J0cmFuLiphIDMyLwotbXYgLWYgJFJQTV9CVUlMRF9ST09U JXtfcHJlZml4fS9saWIvbGlib2JqYy4qYSAzMi8KLW12IC1mICRSUE1fQlVJTERfUk9PVCV7X3By ZWZpeH0vbGliL2xpYmdvbXAuKmEgMzIvCi0lZW5kaWYKLSVpZmFyY2ggc3BhcmM2NCBwcGM2NAot bG4gLXNmIC4uL2xpYjMyL2xpYnN0ZGMrKy5hIDMyL2xpYnN0ZGMrKy5hCi1sbiAtc2YgbGliNjQv bGlic3RkYysrLmEgbGlic3RkYysrLmEKLWxuIC1zZiAuLi9saWIzMi9saWJtdWRmbGFwLmEgMzIv bGlibXVkZmxhcC5hCi1sbiAtc2YgbGliNjQvbGlibXVkZmxhcC5hIGxpYm11ZGZsYXAuYQotbG4g LXNmIC4uL2xpYjMyL2xpYm11ZGZsYXB0aC5hIDMyL2xpYm11ZGZsYXB0aC5hCi1sbiAtc2YgbGli NjQvbGlibXVkZmxhcHRoLmEgbGlibXVkZmxhcHRoLmEKLSVpZiAle2J1aWxkX2phdmF9Ci1sbiAt c2YgLi4vbGliMzIvbGliZ2NqX2JjLnNvIDMyL2xpYmdjal9iYy5zbwotbG4gLXNmIGxpYjY0L2xp Ymdjal9iYy5zbyBsaWJnY2pfYmMuc28KLSVlbmRpZgotJWVsc2UKLSVpZmFyY2ggJXttdWx0aWxp Yl82NF9hcmNoc30KLWxuIC1zZiAuLi8uLi8uLi8le211bHRpbGliXzMyX2FyY2h9LSV7X3ZlbmRv cn0tJXtfdGFyZ2V0X29zfS8le2djY192ZXJzaW9ufS9saWJzdGRjKysuYSAzMi9saWJzdGRjKysu YQotbG4gLXNmIC4uLy4uLy4uLyV7bXVsdGlsaWJfMzJfYXJjaH0tJXtfdmVuZG9yfS0le190YXJn ZXRfb3N9LyV7Z2NjX3ZlcnNpb259L2xpYm11ZGZsYXAuYSAzMi9saWJtdWRmbGFwLmEKLWxuIC1z ZiAuLi8uLi8uLi8le211bHRpbGliXzMyX2FyY2h9LSV7X3ZlbmRvcn0tJXtfdGFyZ2V0X29zfS8l e2djY192ZXJzaW9ufS9saWJtdWRmbGFwdGguYSAzMi9saWJtdWRmbGFwdGguYQotJWlmICV7YnVp bGRfamF2YX0KLWxuIC1zZiAuLi8uLi8uLi8le211bHRpbGliXzMyX2FyY2h9LSV7X3ZlbmRvcn0t JXtfdGFyZ2V0X29zfS8le2djY192ZXJzaW9ufS9saWJnY2pfYmMuc28gMzIvbGliZ2NqX2JjLnNv Ci0lZW5kaWYKLSVlbmRpZgotJWVuZGlmCi0KLSMgU3RyaXAgZGVidWcgaW5mbyBmcm9tIEZvcnRy YW4vT2JqQy9KYXZhIHN0YXRpYyBsaWJyYXJpZXMKLXN0cmlwIC1nIGBmaW5kIC4gXCggLW5hbWUg bGliZ2ZvcnRyYW4uYSAtbyAtbmFtZSBsaWJvYmpjLmEgLW8gLW5hbWUgbGliZ29tcC5hIFwKLQkJ ICAgIC1vIC1uYW1lIGxpYm11ZGZsYXAuYSAtbyAtbmFtZSBsaWJtdWRmbGFwdGguYSBcCi0JCSAg ICAtbyAtbmFtZSBsaWJnY2MuYSAtbyAtbmFtZSBsaWJnY292LmEgXCkgLWEgLXR5cGUgZmAKLXBv cGQKLWNobW9kIDc1NSAkUlBNX0JVSUxEX1JPT1Qle19wcmVmaXh9LyV7X2xpYn0vbGliZ2ZvcnRy YW4uc28uMy4qCi1jaG1vZCA3NTUgJFJQTV9CVUlMRF9ST09UJXtfcHJlZml4fS8le19saWJ9L2xp YmdvbXAuc28uMS4qCi1jaG1vZCA3NTUgJFJQTV9CVUlMRF9ST09UJXtfcHJlZml4fS8le19saWJ9 L2xpYm11ZGZsYXB7LHRofS5zby4wLioKLWNobW9kIDc1NSAkUlBNX0JVSUxEX1JPT1Qle19wcmVm aXh9LyV7X2xpYn0vbGlib2JqYy5zby4yLioKLQotJWlmICV7YnVpbGRfYWRhfQotY2htb2QgNzU1 ICRSUE1fQlVJTERfUk9PVCV7X3ByZWZpeH0vJXtfbGlifS9saWJnbmFybCpzbyoKLWNobW9kIDc1 NSAkUlBNX0JVSUxEX1JPT1Qle19wcmVmaXh9LyV7X2xpYn0vbGliZ25hdCpzbyoKLSVlbmRpZgot Ci1tdiAkRlVMTFBBVEgvaW5jbHVkZS1maXhlZC9zeXNsaW1pdHMuaCAkRlVMTFBBVEgvaW5jbHVk ZS9zeXNsaW1pdHMuaAotbXYgJEZVTExQQVRIL2luY2x1ZGUtZml4ZWQvbGltaXRzLmggJEZVTExQ QVRIL2luY2x1ZGUvbGltaXRzLmgKLWZvciBoIGluIGBmaW5kICRGVUxMUEFUSC9pbmNsdWRlIC1u YW1lIFwqLmhgOyBkbwotICBpZiBncmVwIC1xICdJdCBoYXMgYmVlbiBhdXRvLWVkaXRlZCBieSBm aXhpbmNsdWRlcyBmcm9tJyAkaDsgdGhlbgotICAgIHJoPWBncmVwIC1BMiAnSXQgaGFzIGJlZW4g YXV0by1lZGl0ZWQgYnkgZml4aW5jbHVkZXMgZnJvbScgJGggfCB0YWlsIC0xIHwgc2VkICdzfF4u KiJcKC4qXCkiLiokfFwxfCdgCi0gICAgZGlmZiAtdXAgJHJoICRoIHx8IDoKLSAgICBybSAtZiAk aAotICBmaQotZG9uZQotCi1jYXQgPiAkUlBNX0JVSUxEX1JPT1Qle19wcmVmaXh9L2Jpbi9jODkg PDwiRU9GIgotIyEvYmluL3NoCi1mbD0iLXN0ZD1jODkiCi1mb3Igb3B0OyBkbwotICBjYXNlICIk b3B0IiBpbgotICAgIC1hbnNpfC1zdGQ9Yzg5fC1zdGQ9aXNvOTg5OToxOTkwKSBmbD0iIjs7Ci0g ICAgLXN0ZD0qKSBlY2hvICJgYmFzZW5hbWUgJDBgIGNhbGxlZCB3aXRoIG5vbiBBTlNJL0lTTyBD IG9wdGlvbiAkb3B0IiA+JjIKLQkgICAgZXhpdCAxOzsKLSAgZXNhYwotZG9uZQotZXhlYyBnY2Mg JGZsICR7MSsiJEAifQotRU9GCi1jYXQgPiAkUlBNX0JVSUxEX1JPT1Qle19wcmVmaXh9L2Jpbi9j OTkgPDwiRU9GIgotIyEvYmluL3NoCi1mbD0iLXN0ZD1jOTkiCi1mb3Igb3B0OyBkbwotICBjYXNl ICIkb3B0IiBpbgotICAgIC1zdGQ9Yzk5fC1zdGQ9aXNvOTg5OToxOTk5KSBmbD0iIjs7Ci0gICAg LXN0ZD0qKSBlY2hvICJgYmFzZW5hbWUgJDBgIGNhbGxlZCB3aXRoIG5vbiBJU08gQzk5IG9wdGlv biAkb3B0IiA+JjIKLQkgICAgZXhpdCAxOzsKLSAgZXNhYwotZG9uZQotZXhlYyBnY2MgJGZsICR7 MSsiJEAifQotRU9GCi1jaG1vZCA3NTUgJFJQTV9CVUlMRF9ST09UJXtfcHJlZml4fS9iaW4vYz85 Ci0KLW1rZGlyIC1wICRSUE1fQlVJTERfUk9PVCV7X3ByZWZpeH0vc2JpbgotZ2NjIC1zdGF0aWMg LU9zICV7U09VUkNFMX0gLW8gJFJQTV9CVUlMRF9ST09UJXtfcHJlZml4fS9zYmluL2xpYmdjY19w b3N0X3VwZ3JhZGUKLXN0cmlwICRSUE1fQlVJTERfUk9PVCV7X3ByZWZpeH0vc2Jpbi9saWJnY2Nf cG9zdF91cGdyYWRlCi0KLWNkIC4uCi0lZmluZF9sYW5nICV7bmFtZX0KLSVmaW5kX2xhbmcgY3Bw bGliCi0KLSMgUmVtb3ZlIGJpbmFyaWVzIHdlIHdpbGwgbm90IGJlIGluY2x1ZGluZywgc28gdGhh dCB0aGV5IGRvbid0IGVuZCB1cCBpbgotIyBnY2MtZGVidWdpbmZvCi1ybSAtZiAkUlBNX0JVSUxE X1JPT1Qle19wcmVmaXh9LyV7X2xpYn0ve2xpYmZmaSosbGliaWJlcnR5LmF9Ci1ybSAtZiAkRlVM TEVQQVRIL2luc3RhbGwtdG9vbHMve21raGVhZGVycyxmaXhpbmNsfQotcm0gLWYgJFJQTV9CVUlM RF9ST09UJXtfcHJlZml4fS9saWIvezMyLDY0fS9saWJpYmVydHkuYQotcm0gLWYgJFJQTV9CVUlM RF9ST09UJXtfcHJlZml4fS8le19saWJ9L2xpYnNzcCoKLXJtIC1mICRSUE1fQlVJTERfUk9PVCV7 X3ByZWZpeH0vYmluL2duYXRpdmUyYXNjaWkKLQotJWlmYXJjaCAle211bHRpbGliXzY0X2FyY2hz fQotIyBSZW1vdmUgbGlicmFyaWVzIGZvciB0aGUgb3RoZXIgYXJjaCBvbiBtdWx0aWxpYiBhcmNo ZXMKLXJtIC1mICRSUE1fQlVJTERfUk9PVCV7X3ByZWZpeH0vbGliL2xpYiouc28qCi1ybSAtZiAk UlBNX0JVSUxEX1JPT1Qle19wcmVmaXh9L2xpYi9saWIqLmEKLSVlbHNlCi0laWZhcmNoIHNwYXJj djkgcHBjCi1ybSAtZiAkUlBNX0JVSUxEX1JPT1Qle19wcmVmaXh9L2xpYjY0L2xpYiouc28qCi1y bSAtZiAkUlBNX0JVSUxEX1JPT1Qle19wcmVmaXh9L2xpYjY0L2xpYiouYQotJWVuZGlmCi0lZW5k aWYKLQotJWlmICV7YnVpbGRfamF2YX0KLW1rZGlyIC1wICRSUE1fQlVJTERfUk9PVCV7X3ByZWZp eH0vc2hhcmUvamF2YS9nY2otZW5kb3JzZWQgXAotCSAkUlBNX0JVSUxEX1JPT1Qle19wcmVmaXh9 LyV7X2xpYn0vZ2NqLSV7dmVyc2lvbn0vY2xhc3NtYXAuZGIuZAotY2htb2QgNzU1ICRSUE1fQlVJ TERfUk9PVCV7X3ByZWZpeH0vc2hhcmUvamF2YS9nY2otZW5kb3JzZWQgXAotCSAgJFJQTV9CVUlM RF9ST09UJXtfcHJlZml4fS8le19saWJ9L2djai0le3ZlcnNpb259IFwKLQkgICRSUE1fQlVJTERf Uk9PVCV7X3ByZWZpeH0vJXtfbGlifS9nY2otJXt2ZXJzaW9ufS9jbGFzc21hcC5kYi5kCi10b3Vj aCAkUlBNX0JVSUxEX1JPT1Qle19wcmVmaXh9LyV7X2xpYn0vZ2NqLSV7dmVyc2lvbn0vY2xhc3Nt YXAuZGIKLSVlbmRpZgotCi1pbnN0YWxsIC1tNjQ0ICV7U09VUkNFM30gJFJQTV9CVUlMRF9ST09U JXtfbWFuZGlyfS9tYW4xL3Byb3RvaXplLjEKLWVjaG8gJy5zbyBtYW4xL3Byb3RvaXplLjEnID4g JFJQTV9CVUlMRF9ST09UJXtfbWFuZGlyfS9tYW4xL3VucHJvdG9pemUuMQotY2htb2QgNjQ0ICRS UE1fQlVJTERfUk9PVCV7X21hbmRpcn0vbWFuMS91bnByb3RvaXplLjEKLQotJWNsZWFuCi1ybSAt cmYgJFJQTV9CVUlMRF9ST09UCi0KLSVwb3N0Ci0vc2Jpbi9pbnN0YWxsLWluZm8gXAotICAtLWlu Zm8tZGlyPSV7X2luZm9kaXJ9ICV7X2luZm9kaXJ9L2djYy5pbmZvLmd6IHx8IDoKLQotJXByZXVu Ci1pZiBbICQxID0gMCBdOyB0aGVuCi0gIC9zYmluL2luc3RhbGwtaW5mbyAtLWRlbGV0ZSBcCi0g ICAgLS1pbmZvLWRpcj0le19pbmZvZGlyfSAle19pbmZvZGlyfS9nY2MuaW5mby5neiB8fCA6Ci1m aQotCi0lcG9zdCAtbiBjcHAKLS9zYmluL2luc3RhbGwtaW5mbyBcCi0gIC0taW5mby1kaXI9JXtf aW5mb2Rpcn0gJXtfaW5mb2Rpcn0vY3BwLmluZm8uZ3ogfHwgOgotCi0lcHJldW4gLW4gY3BwCi1p ZiBbICQxID0gMCBdOyB0aGVuCi0gIC9zYmluL2luc3RhbGwtaW5mbyAtLWRlbGV0ZSBcCi0gICAg LS1pbmZvLWRpcj0le19pbmZvZGlyfSAle19pbmZvZGlyfS9jcHAuaW5mby5neiB8fCA6Ci1maQot Ci0lcG9zdCBnZm9ydHJhbgotL3NiaW4vaW5zdGFsbC1pbmZvIFwKLSAgLS1pbmZvLWRpcj0le19p bmZvZGlyfSAle19pbmZvZGlyfS9nZm9ydHJhbi5pbmZvLmd6IHx8IDoKLQotJXByZXVuIGdmb3J0 cmFuCi1pZiBbICQxID0gMCBdOyB0aGVuCi0gIC9zYmluL2luc3RhbGwtaW5mbyAtLWRlbGV0ZSBc Ci0gICAgLS1pbmZvLWRpcj0le19pbmZvZGlyfSAle19pbmZvZGlyfS9nZm9ydHJhbi5pbmZvLmd6 IHx8IDoKLWZpCi0KLSVwb3N0IGphdmEKLS9zYmluL2luc3RhbGwtaW5mbyBcCi0gIC0taW5mby1k aXI9JXtfaW5mb2Rpcn0gJXtfaW5mb2Rpcn0vZ2NqLmluZm8uZ3ogfHwgOgotCi0lcHJldW4gamF2 YQotaWYgWyAkMSA9IDAgXTsgdGhlbgotICAvc2Jpbi9pbnN0YWxsLWluZm8gLS1kZWxldGUgXAot ICAgIC0taW5mby1kaXI9JXtfaW5mb2Rpcn0gJXtfaW5mb2Rpcn0vZ2NqLmluZm8uZ3ogfHwgOgot ZmkKLQotJXBvc3QgZ25hdAotL3NiaW4vaW5zdGFsbC1pbmZvIFwKLSAgLS1pbmZvLWRpcj0le19p bmZvZGlyfSAle19pbmZvZGlyfS9nbmF0X3JtLmluZm8uZ3ogfHwgOgotL3NiaW4vaW5zdGFsbC1p bmZvIFwKLSAgLS1pbmZvLWRpcj0le19pbmZvZGlyfSAle19pbmZvZGlyfS9nbmF0X3Vnbl91bncu aW5mby5neiB8fCA6Ci0vc2Jpbi9pbnN0YWxsLWluZm8gXAotICAtLWluZm8tZGlyPSV7X2luZm9k aXJ9ICV7X2luZm9kaXJ9L2duYXQtc3R5bGUuaW5mby5neiB8fCA6Ci0KLSVwcmV1biBnbmF0Ci1p ZiBbICQxID0gMCBdOyB0aGVuCi0gIC9zYmluL2luc3RhbGwtaW5mbyAtLWRlbGV0ZSBcCi0gICAg LS1pbmZvLWRpcj0le19pbmZvZGlyfSAle19pbmZvZGlyfS9nbmF0X3JtLmluZm8uZ3ogfHwgOgot ICAvc2Jpbi9pbnN0YWxsLWluZm8gLS1kZWxldGUgXAotICAgIC0taW5mby1kaXI9JXtfaW5mb2Rp cn0gJXtfaW5mb2Rpcn0vZ25hdF91Z25fdW53LmluZm8uZ3ogfHwgOgotICAvc2Jpbi9pbnN0YWxs LWluZm8gLS1kZWxldGUgXAotICAgIC0taW5mby1kaXI9JXtfaW5mb2Rpcn0gJXtfaW5mb2Rpcn0v Z25hdC1zdHlsZS5pbmZvLmd6IHx8IDoKLWZpCi0KLSMgQmVjYXVzZSBnbGliYyBQcmVyZXEncyBs aWJnY2MgYW5kIC9zYmluL2xkY29uZmlnCi0jIGNvbWVzIGZyb20gZ2xpYmMsIGl0IG1pZ2h0IG5v dCBleGlzdCB5ZXQgd2hlbgotIyBsaWJnY2MgaXMgaW5zdGFsbGVkCi0lcG9zdCAtbiBsaWJnY2Mg LXAgJXtfcHJlZml4fS9zYmluL2xpYmdjY19wb3N0X3VwZ3JhZGUKLQotJXBvc3QgLW4gbGlic3Rk YysrIC1wIC9zYmluL2xkY29uZmlnCi0KLSVwb3N0dW4gLW4gbGlic3RkYysrIC1wIC9zYmluL2xk Y29uZmlnCi0KLSVwb3N0IC1uIGxpYm9iamMgLXAgL3NiaW4vbGRjb25maWcKLQotJXBvc3R1biAt biBsaWJvYmpjIC1wIC9zYmluL2xkY29uZmlnCi0KLSVwb3N0IC1uIGxpYmdjagotL3NiaW4vbGRj b25maWcKLS9zYmluL2luc3RhbGwtaW5mbyBcCi0gIC0taW5mby1kaXI9JXtfaW5mb2Rpcn0gJXtf aW5mb2Rpcn0vY3AtdG9vbHMuaW5mby5neiB8fCA6Ci0vc2Jpbi9pbnN0YWxsLWluZm8gXAotICAt LWluZm8tZGlyPSV7X2luZm9kaXJ9ICV7X2luZm9kaXJ9L2Zhc3RqYXIuaW5mby5neiB8fCA6Ci0K LSVwcmV1biAtbiBsaWJnY2oKLWlmIFsgJDEgPSAwIF07IHRoZW4KLSAgL3NiaW4vaW5zdGFsbC1p bmZvIC0tZGVsZXRlIFwKLSAgICAtLWluZm8tZGlyPSV7X2luZm9kaXJ9ICV7X2luZm9kaXJ9L2Nw LXRvb2xzLmluZm8uZ3ogfHwgOgotICAvc2Jpbi9pbnN0YWxsLWluZm8gLS1kZWxldGUgXAotICAg IC0taW5mby1kaXI9JXtfaW5mb2Rpcn0gJXtfaW5mb2Rpcn0vZmFzdGphci5pbmZvLmd6IHx8IDoK LWZpCi0KLSVwb3N0dW4gLW4gbGliZ2NqIC1wIC9zYmluL2xkY29uZmlnCi0KLSVwb3N0IC1uIGxp Ymdmb3J0cmFuIC1wIC9zYmluL2xkY29uZmlnCi0KLSVwb3N0dW4gLW4gbGliZ2ZvcnRyYW4gLXAg L3NiaW4vbGRjb25maWcKLQotJXBvc3QgLW4gbGliZ25hdCAtcCAvc2Jpbi9sZGNvbmZpZwotCi0l cG9zdHVuIC1uIGxpYmduYXQgLXAgL3NiaW4vbGRjb25maWcKLQotJXBvc3QgLW4gbGliZ29tcAot L3NiaW4vbGRjb25maWcKLS9zYmluL2luc3RhbGwtaW5mbyBcCi0gIC0taW5mby1kaXI9JXtfaW5m b2Rpcn0gJXtfaW5mb2Rpcn0vbGliZ29tcC5pbmZvLmd6IHx8IDoKLQotJXByZXVuIC1uIGxpYmdv bXAKLWlmIFsgJDEgPSAwIF07IHRoZW4KLSAgL3NiaW4vaW5zdGFsbC1pbmZvIC0tZGVsZXRlIFwK LSAgICAtLWluZm8tZGlyPSV7X2luZm9kaXJ9ICV7X2luZm9kaXJ9L2xpYmdvbXAuaW5mby5neiB8 fCA6Ci1maQotCi0lcG9zdHVuIC1uIGxpYmdvbXAgLXAgL3NiaW4vbGRjb25maWcKLQotJXBvc3Qg LW4gbGlibXVkZmxhcCAtcCAvc2Jpbi9sZGNvbmZpZwotCi0lcG9zdHVuIC1uIGxpYm11ZGZsYXAg LXAgL3NiaW4vbGRjb25maWcKLQotJWZpbGVzIC1mICV7bmFtZX0ubGFuZwotJWRlZmF0dHIoLSxy b290LHJvb3QpCi0le19wcmVmaXh9L2Jpbi9jYwotJXtfcHJlZml4fS9iaW4vYzg5Ci0le19wcmVm aXh9L2Jpbi9jOTkKLSV7X3ByZWZpeH0vYmluL2djYwotJXtfcHJlZml4fS9iaW4vZ2NvdgotJXtf cHJlZml4fS9iaW4vcHJvdG9pemUKLSV7X3ByZWZpeH0vYmluL3VucHJvdG9pemUKLSVpZmFyY2gg cHBjCi0le19wcmVmaXh9L2Jpbi8le190YXJnZXRfcGxhdGZvcm19LWdjYwotJWVuZGlmCi0laWZh cmNoIHNwYXJjNjQgc3BhcmN2OQotJXtfcHJlZml4fS9iaW4vc3BhcmMtJXtfdmVuZG9yfS0le190 YXJnZXRfb3N9LWdjYwotJWVuZGlmCi0laWZhcmNoIHBwYzY0Ci0le19wcmVmaXh9L2Jpbi9wcGMt JXtfdmVuZG9yfS0le190YXJnZXRfb3N9LWdjYwotJWVuZGlmCi0le19wcmVmaXh9L2Jpbi8le2dj Y190YXJnZXRfcGxhdGZvcm19LWdjYwotJXtfbWFuZGlyfS9tYW4xL2djYy4xKgotJXtfbWFuZGly fS9tYW4xL2djb3YuMSoKLSV7X21hbmRpcn0vbWFuMS9wcm90b2l6ZS4xKgotJXtfbWFuZGlyfS9t YW4xL3VucHJvdG9pemUuMSoKLSV7X2luZm9kaXJ9L2djYyoKLSVkaXIgJXtfcHJlZml4fS9saWIv Z2NjCi0lZGlyICV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19Ci0lZGly ICV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259 Ci0lZGlyICV7X3ByZWZpeH0vbGliZXhlYy9nY2MKLSVkaXIgJXtfcHJlZml4fS9saWJleGVjL2dj Yy8le2djY190YXJnZXRfcGxhdGZvcm19Ci0lZGlyICV7X3ByZWZpeH0vbGliZXhlYy9nY2MvJXtn Y2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufQotJWRpciAle19wcmVmaXh9L2xpYi9n Y2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9pbmNsdWRlCi0le19wcmVm aXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9TWVNDQUxM Uy5jLlgKLSV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3Zl cnNpb259L2luY2x1ZGUvc3RkZGVmLmgKLSV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRf cGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2luY2x1ZGUvc3RkYXJnLmgKLSV7X3ByZWZpeH0vbGli L2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2luY2x1ZGUvdmFyYXJn cy5oCi0le19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJz aW9ufS9pbmNsdWRlL2Zsb2F0LmgKLSV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxh dGZvcm19LyV7Z2NjX3ZlcnNpb259L2luY2x1ZGUvbGltaXRzLmgKLSV7X3ByZWZpeH0vbGliL2dj Yy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2luY2x1ZGUvc3RkYm9vbC5o Ci0le19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9u fS9pbmNsdWRlL2lzbzY0Ni5oCi0le19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRm b3JtfS8le2djY192ZXJzaW9ufS9pbmNsdWRlL3N5c2xpbWl0cy5oCi0le19wcmVmaXh9L2xpYi9n Y2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9pbmNsdWRlL3Vud2luZC5o Ci0le19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9u fS9pbmNsdWRlL29tcC5oCi0laWZhcmNoICV7aXg4Nn0geDg2XzY0Ci0le19wcmVmaXh9L2xpYi9n Y2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9pbmNsdWRlL21taW50cmlu LmgKLSV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNp b259L2luY2x1ZGUveG1taW50cmluLmgKLSV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRf cGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2luY2x1ZGUvZW1taW50cmluLmgKLSV7X3ByZWZpeH0v bGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2luY2x1ZGUvcG1t aW50cmluLmgKLSV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2Nj X3ZlcnNpb259L2luY2x1ZGUvdG1taW50cmluLmgKLSV7X3ByZWZpeH0vbGliL2djYy8le2djY190 YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2luY2x1ZGUvYW1taW50cmluLmgKLSV7X3By ZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2luY2x1 ZGUvc21taW50cmluLmgKLSV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19 LyV7Z2NjX3ZlcnNpb259L2luY2x1ZGUvbm1taW50cmluLmgKLSV7X3ByZWZpeH0vbGliL2djYy8l e2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2luY2x1ZGUvYm1taW50cmluLmgK LSV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259 L2luY2x1ZGUvd21taW50cmluLmgKLSV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxh dGZvcm19LyV7Z2NjX3ZlcnNpb259L2luY2x1ZGUvbW1pbnRyaW4tY29tbW9uLmgKLSV7X3ByZWZp eH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2luY2x1ZGUv bW1fbWFsbG9jLmgKLSV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7 Z2NjX3ZlcnNpb259L2luY2x1ZGUvbW0zZG5vdy5oCi0le19wcmVmaXh9L2xpYi9nY2MvJXtnY2Nf dGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9pbmNsdWRlL2NwdWlkLmgKLSVlbmRpZgot JWlmYXJjaCBpYTY0Ci0le19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8l e2djY192ZXJzaW9ufS9pbmNsdWRlL2lhNjRpbnRyaW4uaAotJWVuZGlmCi0laWZhcmNoIHBwYyBw cGM2NAotJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVy c2lvbn0vaW5jbHVkZS9wcGMtYXNtLmgKLSV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRf cGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2luY2x1ZGUvYWx0aXZlYy5oCi0le19wcmVmaXh9L2xp Yi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9pbmNsdWRlL3NwZS5o Ci0le19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9u fS9pbmNsdWRlL3BhaXJlZC5oCi0le19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRm b3JtfS8le2djY192ZXJzaW9ufS9pbmNsdWRlL3BwdV9pbnRyaW5zaWNzLmgKLSV7X3ByZWZpeH0v bGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2luY2x1ZGUvc2ky dm14LmgKLSV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3Zl cnNpb259L2luY2x1ZGUvc3B1MnZteC5oCi0lZW5kaWYKLSV7X3ByZWZpeH0vbGliZXhlYy9nY2Mv JXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9jb2xsZWN0MgotJXtfcHJlZml4 fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vY3J0Ki5vCi0l e19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9s aWJnY2MuYQotJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2Nf dmVyc2lvbn0vbGliZ2Nvdi5hCi0le19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRm b3JtfS8le2djY192ZXJzaW9ufS9saWJnY2NfZWguYQotJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2Nj X3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vbGliZ2NjX3Muc28KLSV7X3ByZWZpeH0v bGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2xpYmdvbXAuc3Bl YwotJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lv bn0vbGliZ29tcC5hCi0le19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8l e2djY192ZXJzaW9ufS9saWJnb21wLnNvCi0laWZhcmNoIHNwYXJjdjkgcHBjCi0lZGlyICV7X3By ZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259LzY0Ci0l e19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS82 NC9jcnQqLm8KLSV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2Nj X3ZlcnNpb259LzY0L2xpYmdjYy5hCi0le19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3Bs YXRmb3JtfS8le2djY192ZXJzaW9ufS82NC9saWJnY292LmEKLSV7X3ByZWZpeH0vbGliL2djYy8l e2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259LzY0L2xpYmdjY19laC5hCi0le19w cmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS82NC9s aWJnY2Nfcy5zbwotJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtn Y2NfdmVyc2lvbn0vNjQvbGliZ29tcC5hCi0le19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0 X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS82NC9saWJnb21wLnNvCi0le19wcmVmaXh9L2xpYi9n Y2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS82NC9saWJtdWRmbGFwLmEK LSV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259 LzY0L2xpYm11ZGZsYXB0aC5hCi0le19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRm b3JtfS8le2djY192ZXJzaW9ufS82NC9saWJtdWRmbGFwLnNvCi0le19wcmVmaXh9L2xpYi9nY2Mv JXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS82NC9saWJtdWRmbGFwdGguc28K LSVlbmRpZgotJWlmYXJjaCAle211bHRpbGliXzY0X2FyY2hzfQotJWRpciAle19wcmVmaXh9L2xp Yi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS8zMgotJXtfcHJlZml4 fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vMzIvY3J0Ki5v Ci0le19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9u fS8zMi9saWJnY2MuYQotJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0v JXtnY2NfdmVyc2lvbn0vMzIvbGliZ2Nvdi5hCi0le19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFy Z2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS8zMi9saWJnY2NfZWguYQotJXtfcHJlZml4fS9s aWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vMzIvbGliZ2NjX3Mu c28KLSV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNp b259LzMyL2xpYmdvbXAuYQotJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9y bX0vJXtnY2NfdmVyc2lvbn0vMzIvbGliZ29tcC5zbwotJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2Nj X3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vMzIvbGlibXVkZmxhcC5hCi0le19wcmVm aXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS8zMi9saWJt dWRmbGFwdGguYQotJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtn Y2NfdmVyc2lvbn0vMzIvbGlibXVkZmxhcC5zbwotJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3Rh cmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vMzIvbGlibXVkZmxhcHRoLnNvCi0lZW5kaWYK LSVpZmFyY2ggc3BhcmN2OSBzcGFyYzY0IHBwYyBwcGM2NAotJXtfcHJlZml4fS9saWIvZ2NjLyV7 Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vbGlibXVkZmxhcC5hCi0le19wcmVm aXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9saWJtdWRm bGFwdGguYQotJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2Nf dmVyc2lvbn0vbGlibXVkZmxhcC5zbwotJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9w bGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vbGlibXVkZmxhcHRoLnNvCi0lZW5kaWYKLSVkaXIgJXtf cHJlZml4fS9saWJleGVjL2dldGNvbmYKLSV7X3ByZWZpeH0vbGliZXhlYy9nZXRjb25mL2RlZmF1 bHQKLSVkb2MgZ2NjL1JFQURNRSogcnBtLmRvYy9jaGFuZ2Vsb2dzL2djYy9DaGFuZ2VMb2cqIGdj Yy9DT1BZSU5HKgotCi0lZmlsZXMgLW4gY3BwIC1mIGNwcGxpYi5sYW5nCi0lZGVmYXR0cigtLHJv b3Qscm9vdCkKLS9saWIvY3BwCi0le19wcmVmaXh9L2Jpbi9jcHAKLSV7X21hbmRpcn0vbWFuMS9j cHAuMSoKLSV7X2luZm9kaXJ9L2NwcCoKLSVkaXIgJXtfcHJlZml4fS9saWJleGVjL2djYwotJWRp ciAle19wcmVmaXh9L2xpYmV4ZWMvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0KLSVkaXIgJXtf cHJlZml4fS9saWJleGVjL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259 Ci0le19wcmVmaXh9L2xpYmV4ZWMvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVy c2lvbn0vY2MxCi0KLSVmaWxlcyAtbiBsaWJnY2MKLSVkZWZhdHRyKC0scm9vdCxyb290KQotLyV7 X2xpYn0vbGliZ2NjX3MtJXtnY2NfdmVyc2lvbn0tJXtEQVRFfS5zby4xCi0vJXtfbGlifS9saWJn Y2Nfcy5zby4xCi0le19wcmVmaXh9L3NiaW4vbGliZ2NjX3Bvc3RfdXBncmFkZQotJWRvYyBnY2Mv Q09QWUlORy5MSUIKLQotJWZpbGVzIGMrKwotJWRlZmF0dHIoLSxyb290LHJvb3QpCi0le19wcmVm aXh9L2Jpbi8le2djY190YXJnZXRfcGxhdGZvcm19LSorKwotJXtfcHJlZml4fS9iaW4vZysrCi0l e19wcmVmaXh9L2Jpbi9jKysKLSV7X21hbmRpcn0vbWFuMS9nKysuMSoKLSVkaXIgJXtfcHJlZml4 fS9saWIvZ2NjCi0lZGlyICV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19 Ci0lZGlyICV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3Zl cnNpb259Ci0lZGlyICV7X3ByZWZpeH0vbGliZXhlYy9nY2MKLSVkaXIgJXtfcHJlZml4fS9saWJl eGVjL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19Ci0lZGlyICV7X3ByZWZpeH0vbGliZXhlYy9n Y2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufQotJXtfcHJlZml4fS9saWJl eGVjL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2NjMXBsdXMKLSVp ZmFyY2ggc3BhcmN2OSBwcGMKLSVkaXIgJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9w bGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vNjQKLSV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJn ZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259LzY0L2xpYnN0ZGMrKy5zbwotJXtfcHJlZml4fS9s aWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vNjQvbGlic3RkYysr LmEKLSV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNp b259LzY0L2xpYnN1cGMrKy5hCi0lZW5kaWYKLSVpZmFyY2ggJXttdWx0aWxpYl82NF9hcmNoc30K LSVkaXIgJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVy c2lvbn0vMzIKLSV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2Nj X3ZlcnNpb259LzMyL2xpYnN0ZGMrKy5zbwotJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3Rhcmdl dF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vMzIvbGlic3RkYysrLmEKLSV7X3ByZWZpeH0vbGli L2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259LzMyL2xpYnN1cGMrKy5h Ci0lZW5kaWYKLSVpZmFyY2ggc3BhcmN2OSBwcGMgJXttdWx0aWxpYl82NF9hcmNoc30KLSV7X3By ZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2xpYnN0 ZGMrKy5zbwotJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2Nf dmVyc2lvbn0vbGlic3VwYysrLmEKLSVlbmRpZgotJWlmYXJjaCBzcGFyY3Y5IHNwYXJjNjQgcHBj IHBwYzY0Ci0le19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192 ZXJzaW9ufS9saWJzdGRjKysuYQotJWVuZGlmCi0lZG9jIHJwbS5kb2MvY2hhbmdlbG9ncy9nY2Mv Y3AvQ2hhbmdlTG9nKgotCi0lZmlsZXMgLW4gbGlic3RkYysrCi0lZGVmYXR0cigtLHJvb3Qscm9v dCkKLSV7X3ByZWZpeH0vJXtfbGlifS9saWJzdGRjKysuc28uNioKLQotJWZpbGVzIC1uIGxpYnN0 ZGMrKy1kZXZlbAotJWRlZmF0dHIoLSxyb290LHJvb3QpCi0lZGlyICV7X3ByZWZpeH0vaW5jbHVk ZS9jKysKLSVkaXIgJXtfcHJlZml4fS9pbmNsdWRlL2MrKy8le2djY192ZXJzaW9ufQotJXtfcHJl Zml4fS9pbmNsdWRlL2MrKy8le2djY192ZXJzaW9ufS9bXmdqb3NdKgotJXtfcHJlZml4fS9pbmNs dWRlL2MrKy8le2djY192ZXJzaW9ufS9vcyoKLSV7X3ByZWZpeH0vaW5jbHVkZS9jKysvJXtnY2Nf dmVyc2lvbn0vc1tedV0qCi0lZGlyICV7X3ByZWZpeH0vbGliL2djYwotJWRpciAle19wcmVmaXh9 L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfQotJWRpciAle19wcmVmaXh9L2xpYi9nY2Mv JXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufQotJWlmYXJjaCBzcGFyY3Y5IHBw YwotJWRpciAle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192 ZXJzaW9ufS9saWIzMgotJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0v JXtnY2NfdmVyc2lvbn0vbGliMzIvbGlic3RkYysrLmEKLSVlbmRpZgotJWlmYXJjaCBzcGFyYzY0 IHBwYzY0Ci0lZGlyICV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7 Z2NjX3ZlcnNpb259L2xpYjY0Ci0le19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRm b3JtfS8le2djY192ZXJzaW9ufS9saWI2NC9saWJzdGRjKysuYQotJWVuZGlmCi0laWZuYXJjaCBz cGFyY3Y5IHNwYXJjNjQgcHBjIHBwYzY0Ci0le19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0 X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9saWJzdGRjKysuYQotJWVuZGlmCi0laWZuYXJjaCBz cGFyY3Y5IHBwYyAle211bHRpbGliXzY0X2FyY2hzfQotJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2Nj X3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vbGlic3RkYysrLnNvCi0le19wcmVmaXh9 L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9saWJzdXBjKysu YQotJWVuZGlmCi0lZG9jIHJwbS5kb2MvY2hhbmdlbG9ncy9saWJzdGRjKystdjMvQ2hhbmdlTG9n KiBsaWJzdGRjKystdjMvUkVBRE1FKiBsaWJzdGRjKystdjMvZG9jL2h0bWwvCi0KLSVmaWxlcyBv YmpjCi0lZGVmYXR0cigtLHJvb3Qscm9vdCkKLSVkaXIgJXtfcHJlZml4fS9saWIvZ2NjCi0lZGly ICV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19Ci0lZGlyICV7X3ByZWZp eH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259Ci0lZGlyICV7 X3ByZWZpeH0vbGliZXhlYy9nY2MKLSVkaXIgJXtfcHJlZml4fS9saWJleGVjL2djYy8le2djY190 YXJnZXRfcGxhdGZvcm19Ci0lZGlyICV7X3ByZWZpeH0vbGliZXhlYy9nY2MvJXtnY2NfdGFyZ2V0 X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufQotJWRpciAle19wcmVmaXh9L2xpYi9nY2MvJXtnY2Nf dGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9pbmNsdWRlCi0le19wcmVmaXh9L2xpYi9n Y2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9pbmNsdWRlL29iamMKLSV7 X3ByZWZpeH0vbGliZXhlYy9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9u fS9jYzFvYmoKLSV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2Nj X3ZlcnNpb259L2xpYm9iamMuYQotJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0 Zm9ybX0vJXtnY2NfdmVyc2lvbn0vbGlib2JqYy5zbwotJWlmYXJjaCBzcGFyY3Y5IHBwYwotJWRp ciAle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9u fS82NAotJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVy c2lvbn0vNjQvbGlib2JqYy5hCi0le19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRm b3JtfS8le2djY192ZXJzaW9ufS82NC9saWJvYmpjLnNvCi0lZW5kaWYKLSVpZmFyY2ggJXttdWx0 aWxpYl82NF9hcmNoc30KLSVkaXIgJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0 Zm9ybX0vJXtnY2NfdmVyc2lvbn0vMzIKLSV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRf cGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259LzMyL2xpYm9iamMuYQotJXtfcHJlZml4fS9saWIvZ2Nj LyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vMzIvbGlib2JqYy5zbwotJWVu ZGlmCi0lZG9jIHJwbS5kb2Mvb2JqYy8qCi0lZG9jIGxpYm9iamMvVEhSRUFEUyogcnBtLmRvYy9j aGFuZ2Vsb2dzL2xpYm9iamMvQ2hhbmdlTG9nKgotCi0lZmlsZXMgb2JqYysrCi0lZGVmYXR0cigt LHJvb3Qscm9vdCkKLSVkaXIgJXtfcHJlZml4fS9saWJleGVjL2djYwotJWRpciAle19wcmVmaXh9 L2xpYmV4ZWMvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0KLSVkaXIgJXtfcHJlZml4fS9saWJl eGVjL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259Ci0le19wcmVmaXh9 L2xpYmV4ZWMvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vY2Mxb2Jq cGx1cwotCi0lZmlsZXMgLW4gbGlib2JqYwotJWRlZmF0dHIoLSxyb290LHJvb3QpCi0le19wcmVm aXh9LyV7X2xpYn0vbGlib2JqYy5zby4yKgotCi0lZmlsZXMgZ2ZvcnRyYW4KLSVkZWZhdHRyKC0s cm9vdCxyb290KQotJXtfcHJlZml4fS9iaW4vZ2ZvcnRyYW4KLSV7X3ByZWZpeH0vYmluL2Y5NQot JXtfbWFuZGlyfS9tYW4xL2dmb3J0cmFuLjEqCi0le19pbmZvZGlyfS9nZm9ydHJhbioKLSVkaXIg JXtfcHJlZml4fS9saWIvZ2NjCi0lZGlyICV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRf cGxhdGZvcm19Ci0lZGlyICV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19 LyV7Z2NjX3ZlcnNpb259Ci0lZGlyICV7X3ByZWZpeH0vbGliZXhlYy9nY2MKLSVkaXIgJXtfcHJl Zml4fS9saWJleGVjL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19Ci0lZGlyICV7X3ByZWZpeH0v bGliZXhlYy9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufQotJWRpciAl e19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9m aW5jbHVkZQotJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2Nf dmVyc2lvbn0vZmluY2x1ZGUvb21wX2xpYi5oCi0le19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFy Z2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9maW5jbHVkZS9vbXBfbGliLmY5MAotJXtfcHJl Zml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vZmluY2x1 ZGUvb21wX2xpYi5tb2QKLSV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19 LyV7Z2NjX3ZlcnNpb259L2ZpbmNsdWRlL29tcF9saWJfa2luZHMubW9kCi0le19wcmVmaXh9L2xp YmV4ZWMvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vZjk1MQotJXtf cHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vbGli Z2ZvcnRyYW5iZWdpbi5hCi0le19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3Jt fS8le2djY192ZXJzaW9ufS9saWJnZm9ydHJhbi5hCi0le19wcmVmaXh9L2xpYi9nY2MvJXtnY2Nf dGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9saWJnZm9ydHJhbi5zbwotJWlmYXJjaCBz cGFyY3Y5IHBwYwotJWRpciAle19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3Jt fS8le2djY192ZXJzaW9ufS82NAotJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0 Zm9ybX0vJXtnY2NfdmVyc2lvbn0vNjQvbGliZ2ZvcnRyYW5iZWdpbi5hCi0le19wcmVmaXh9L2xp Yi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS82NC9saWJnZm9ydHJh bi5hCi0le19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJz aW9ufS82NC9saWJnZm9ydHJhbi5zbwotJWVuZGlmCi0laWZhcmNoICV7bXVsdGlsaWJfNjRfYXJj aHN9Ci0lZGlyICV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2Nj X3ZlcnNpb259LzMyCi0le19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8l e2djY192ZXJzaW9ufS8zMi9saWJnZm9ydHJhbmJlZ2luLmEKLSV7X3ByZWZpeH0vbGliL2djYy8l e2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259LzMyL2xpYmdmb3J0cmFuLmEKLSV7 X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259LzMy L2xpYmdmb3J0cmFuLnNvCi0lZW5kaWYKLSVkb2MgcnBtLmRvYy9nZm9ydHJhbi8qCi0KLSVmaWxl cyAtbiBsaWJnZm9ydHJhbgotJWRlZmF0dHIoLSxyb290LHJvb3QpCi0le19wcmVmaXh9LyV7X2xp Yn0vbGliZ2ZvcnRyYW4uc28uMyoKLQotJWlmICV7YnVpbGRfamF2YX0KLSVmaWxlcyBqYXZhCi0l ZGVmYXR0cigtLHJvb3Qscm9vdCkKLSV7X3ByZWZpeH0vYmluL2djagotJXtfcHJlZml4fS9iaW4v Z2phdmFoCi0le19wcmVmaXh9L2Jpbi9nY2poCi0le19wcmVmaXh9L2Jpbi9qY2YtZHVtcAotJXtf bWFuZGlyfS9tYW4xL2djai4xKgotJXtfbWFuZGlyfS9tYW4xL2pjZi1kdW1wLjEqCi0le19tYW5k aXJ9L21hbjEvZ2phdmFoLjEqCi0le19tYW5kaXJ9L21hbjEvZ2NqaC4xKgotJXtfaW5mb2Rpcn0v Z2NqKgotJWRpciAle19wcmVmaXh9L2xpYmV4ZWMvZ2NjCi0lZGlyICV7X3ByZWZpeH0vbGliZXhl Yy9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfQotJWRpciAle19wcmVmaXh9L2xpYmV4ZWMvZ2Nj LyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0KLSVkaXIgJXtfcHJlZml4fS9s aWIvZ2NjCi0lZGlyICV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19Ci0l ZGlyICV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNp b259Ci0le19wcmVmaXh9L2xpYmV4ZWMvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2Nf dmVyc2lvbn0vamMxCi0le19wcmVmaXh9L2xpYmV4ZWMvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9y bX0vJXtnY2NfdmVyc2lvbn0vZWNqMQotJXtfcHJlZml4fS9saWJleGVjL2djYy8le2djY190YXJn ZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2p2Z2VubWFpbgotJXtfcHJlZml4fS9saWIvZ2Nj LyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vbGliZ2NqLnNvCi0le19wcmVm aXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9saWJnY2ot dG9vbHMuc28KLSVpZmFyY2ggc3BhcmN2OSBzcGFyYzY0IHBwYyBwcGM2NAotJXtfcHJlZml4fS9s aWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vbGliZ2NqX2JjLnNv Ci0lZW5kaWYKLSV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2Nj X3ZlcnNpb259L2xpYmdpai5zbwotJWlmYXJjaCBzcGFyY3Y5IHBwYwotJWRpciAle19wcmVmaXh9 L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS82NAotJXtfcHJl Zml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vNjQvbGli Z2NqLnNvCi0le19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192 ZXJzaW9ufS82NC9saWJnY2otdG9vbHMuc28KLSV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJn ZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259LzY0L2xpYmdjal9iYy5zbwotJXtfcHJlZml4fS9s aWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vNjQvbGliZ2lqLnNv Ci0lZW5kaWYKLSVpZmFyY2ggJXttdWx0aWxpYl82NF9hcmNoc30KLSVkaXIgJXtfcHJlZml4fS9s aWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vMzIKLSV7X3ByZWZp eH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259LzMyL2xpYmdj ai5zbwotJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVy c2lvbn0vMzIvbGliZ2NqLXRvb2xzLnNvCi0le19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0 X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS8zMi9saWJnY2pfYmMuc28KLSV7X3ByZWZpeH0vbGli L2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259LzMyL2xpYmdpai5zbwot JWVuZGlmCi0lZG9jIHJwbS5kb2MvY2hhbmdlbG9ncy9nY2MvamF2YS9DaGFuZ2VMb2cqCi0KLSVm aWxlcyAtbiBsaWJnY2oKLSVkZWZhdHRyKC0scm9vdCxyb290KQotJXtfcHJlZml4fS9iaW4vanYt Y29udmVydAotJXtfcHJlZml4fS9iaW4vZ2lqCi0le19wcmVmaXh9L2Jpbi9namFyCi0le19wcmVm aXh9L2Jpbi9mYXN0amFyCi0le19wcmVmaXh9L2Jpbi9ncmVwamFyCi0le19wcmVmaXh9L2Jpbi9n cm1pYwotJXtfcHJlZml4fS9iaW4vZ3JtaWQKLSV7X3ByZWZpeH0vYmluL2dybWlyZWdpc3RyeQot JXtfcHJlZml4fS9iaW4vZ3RuYW1lc2VydgotJXtfcHJlZml4fS9iaW4vZ2tleXRvb2wKLSV7X3By ZWZpeH0vYmluL2dvcmJkCi0le19wcmVmaXh9L2Jpbi9nc2VyaWFsdmVyCi0le19wcmVmaXh9L2Jp bi9nY2otZGJ0b29sCi0laWYgJXtpbmNsdWRlX2dhcHBsZXR2aWV3ZXJ9Ci0le19wcmVmaXh9L2Jp bi9nYXBwbGV0dmlld2VyCi0le19tYW5kaXJ9L21hbjEvZ2FwcGxldHZpZXdlci4xKgotJWVuZGlm Ci0le19wcmVmaXh9L2Jpbi9namFyc2lnbmVyCi0le19tYW5kaXJ9L21hbjEvZmFzdGphci4xKgot JXtfbWFuZGlyfS9tYW4xL2dyZXBqYXIuMSoKLSV7X21hbmRpcn0vbWFuMS9namFyLjEqCi0le19t YW5kaXJ9L21hbjEvZ2phcnNpZ25lci4xKgotJXtfbWFuZGlyfS9tYW4xL2p2LWNvbnZlcnQuMSoK LSV7X21hbmRpcn0vbWFuMS9naWouMSoKLSV7X21hbmRpcn0vbWFuMS9ncm1pYy4xKgotJXtfbWFu ZGlyfS9tYW4xL2dybWlyZWdpc3RyeS4xKgotJXtfbWFuZGlyfS9tYW4xL2djai1kYnRvb2wuMSoK LSV7X21hbmRpcn0vbWFuMS9na2V5dG9vbC4xKgotJXtfbWFuZGlyfS9tYW4xL2dvcmJkLjEqCi0l e19tYW5kaXJ9L21hbjEvZ3JtaWQuMSoKLSV7X21hbmRpcn0vbWFuMS9nc2VyaWFsdmVyLjEqCi0l e19tYW5kaXJ9L21hbjEvZ3RuYW1lc2Vydi4xKgotJXtfaW5mb2Rpcn0vZmFzdGphci5pbmZvKgot JXtfaW5mb2Rpcn0vY3AtdG9vbHMuaW5mbyoKLSV7X3ByZWZpeH0vJXtfbGlifS9saWJnY2ouc28u KgotJXtfcHJlZml4fS8le19saWJ9L2xpYmdjai10b29scy5zby4qCi0le19wcmVmaXh9LyV7X2xp Yn0vbGliZ2NqX2JjLnNvLioKLSV7X3ByZWZpeH0vJXtfbGlifS9saWJnaWouc28uKgotJWRpciAl e19wcmVmaXh9LyV7X2xpYn0vZ2NqLSV7dmVyc2lvbn0KLSV7X3ByZWZpeH0vJXtfbGlifS9nY2ot JXt2ZXJzaW9ufS9saWJndGtwZWVyLnNvCi0le19wcmVmaXh9LyV7X2xpYn0vZ2NqLSV7dmVyc2lv bn0vbGliZ2pzbWFsc2Euc28KLSV7X3ByZWZpeH0vJXtfbGlifS9nY2otJXt2ZXJzaW9ufS9saWJq YXd0LnNvCi0laWYgJXtpbmNsdWRlX2dhcHBsZXR2aWV3ZXJ9Ci0le19wcmVmaXh9LyV7X2xpYn0v Z2NqLSV7dmVyc2lvbn0vbGliZ2Nqd2VicGx1Z2luLnNvCi0lZW5kaWYKLSV7X3ByZWZpeH0vJXtf bGlifS9nY2otJXt2ZXJzaW9ufS9saWJqdm0uc28KLSVkaXIgJXtfcHJlZml4fS9zaGFyZS9qYXZh Ci0le19wcmVmaXh9L3NoYXJlL2phdmEvW15zbF0qCi0le19wcmVmaXh9L3NoYXJlL2phdmEvbGli Z2NqLSV7dmVyc2lvbn0uamFyCi0lZGlyICV7X3ByZWZpeH0vJXtfbGlifS9zZWN1cml0eQotJWNv bmZpZyhub3JlcGxhY2UpICV7X3ByZWZpeH0vJXtfbGlifS9zZWN1cml0eS9jbGFzc3BhdGguc2Vj dXJpdHkKLSV7X3ByZWZpeH0vJXtfbGlifS9sb2dnaW5nLnByb3BlcnRpZXMKLSVkaXIgJXtfcHJl Zml4fS8le19saWJ9L2djai0le3ZlcnNpb259L2NsYXNzbWFwLmRiLmQKLSVhdHRyKDA2NDQscm9v dCxyb290KSAldmVyaWZ5KG5vdCBtZDUgc2l6ZSBtdGltZSkgJWdob3N0ICVjb25maWcobWlzc2lu Z29rLG5vcmVwbGFjZSkgJXtfcHJlZml4fS8le19saWJ9L2djai0le3ZlcnNpb259L2NsYXNzbWFw LmRiCi0laWYgJXtpbmNsdWRlX2dhcHBsZXR2aWV3ZXJ9Ci0lZG9jIHJwbS5kb2MvUkVBRE1FLmxp YmdjandlYnBsdWdpbi5zbwotJWVuZGlmCi0KLSVmaWxlcyAtbiBsaWJnY2otZGV2ZWwKLSVkZWZh dHRyKC0scm9vdCxyb290KQotJXtfcHJlZml4fS9iaW4vYWRkcjJuYW1lLmF3awotJWRpciAle19w cmVmaXh9L2xpYi9nY2MKLSVkaXIgJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0 Zm9ybX0KLSVkaXIgJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtn Y2NfdmVyc2lvbn0KLSVkaXIgJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9y bX0vJXtnY2NfdmVyc2lvbn0vaW5jbHVkZQotJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3Rhcmdl dF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vaW5jbHVkZS9nY2oKLSV7X3ByZWZpeH0vbGliL2dj Yy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2luY2x1ZGUvamF3dC5oCi0l e19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9p bmNsdWRlL2phd3RfbWQuaAotJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9y bX0vJXtnY2NfdmVyc2lvbn0vaW5jbHVkZS9qbmkuaAotJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2Nj X3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vaW5jbHVkZS9qbmlfbWQuaAotJXtfcHJl Zml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vaW5jbHVk ZS9qdm1waS5oCi0le19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2dj Y192ZXJzaW9ufS9saWJnY2ouc3BlYwotJWlmYXJjaCBzcGFyY3Y5IHBwYwotJWRpciAle19wcmVm aXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9saWIzMgot JXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0v bGliMzIvbGliZ2NqX2JjLnNvCi0lZW5kaWYKLSVpZmFyY2ggc3BhcmM2NCBwcGM2NAotJWRpciAl e19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufS9s aWI2NAotJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVy c2lvbn0vbGliNjQvbGliZ2NqX2JjLnNvCi0lZW5kaWYKLSVpZm5hcmNoIHNwYXJjdjkgc3BhcmM2 NCBwcGMgcHBjNjQKLSV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7 Z2NjX3ZlcnNpb259L2xpYmdjal9iYy5zbwotJWVuZGlmCi0lZGlyICV7X3ByZWZpeH0vaW5jbHVk ZS9jKysKLSVkaXIgJXtfcHJlZml4fS9pbmNsdWRlL2MrKy8le2djY192ZXJzaW9ufQotJXtfcHJl Zml4fS9pbmNsdWRlL2MrKy8le2djY192ZXJzaW9ufS9bZ2pdKgotJXtfcHJlZml4fS9pbmNsdWRl L2MrKy8le2djY192ZXJzaW9ufS9vcmcKLSV7X3ByZWZpeH0vaW5jbHVkZS9jKysvJXtnY2NfdmVy c2lvbn0vc3VuCi0le19wcmVmaXh9LyV7X2xpYn0vcGtnY29uZmlnL2xpYmdjai0qLnBjCi0lZG9j IHJwbS5kb2MvYm9laG0tZ2MvKiBycG0uZG9jL2Zhc3RqYXIvKiBycG0uZG9jL2xpYmZmaS8qCi0l ZG9jIHJwbS5kb2MvbGliamF2YS8qCi0KLSVmaWxlcyAtbiBsaWJnY2otc3JjCi0lZGVmYXR0cigt LHJvb3Qscm9vdCkKLSVkaXIgJXtfcHJlZml4fS9zaGFyZS9qYXZhCi0le19wcmVmaXh9L3NoYXJl L2phdmEvc3JjKi56aXAKLSV7X3ByZWZpeH0vc2hhcmUvamF2YS9saWJnY2otdG9vbHMtJXt2ZXJz aW9ufS5qYXIKLSVlbmRpZgotCi0laWYgJXtidWlsZF9hZGF9Ci0lZmlsZXMgZ25hdAotJWRlZmF0 dHIoLSxyb290LHJvb3QpCi0le19wcmVmaXh9L2Jpbi9nbmF0KgotJXtfaW5mb2Rpcn0vZ25hdCoK LSVkaXIgJXtfcHJlZml4fS9saWIvZ2NjCi0lZGlyICV7X3ByZWZpeH0vbGliL2djYy8le2djY190 YXJnZXRfcGxhdGZvcm19Ci0lZGlyICV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxh dGZvcm19LyV7Z2NjX3ZlcnNpb259Ci0lZGlyICV7X3ByZWZpeH0vbGliZXhlYy9nY2MKLSVkaXIg JXtfcHJlZml4fS9saWJleGVjL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19Ci0lZGlyICV7X3By ZWZpeH0vbGliZXhlYy9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2djY192ZXJzaW9ufQot JXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0v YWRhaW5jbHVkZQotJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtn Y2NfdmVyc2lvbn0vYWRhbGliCi0le19wcmVmaXh9L2xpYmV4ZWMvZ2NjLyV7Z2NjX3RhcmdldF9w bGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vZ25hdDEKLSVkb2MgcnBtLmRvYy9jaGFuZ2Vsb2dzL2dj Yy9hZGEvQ2hhbmdlTG9nKgotCi0lZmlsZXMgLW4gbGliZ25hdAotJWRlZmF0dHIoLSxyb290LHJv b3QpCi0le19wcmVmaXh9LyV7X2xpYn0vbGliZ25hdC0qLnNvCi0le19wcmVmaXh9LyV7X2xpYn0v bGliZ25hcmwtKi5zbwotJWVuZGlmCi0KLSVmaWxlcyAtbiBsaWJnb21wCi0lZGVmYXR0cigtLHJv b3Qscm9vdCkKLSV7X3ByZWZpeH0vJXtfbGlifS9saWJnb21wLnNvLjEqCi0le19pbmZvZGlyfS9s aWJnb21wLmluZm8qCi0lZG9jIHJwbS5kb2MvY2hhbmdlbG9ncy9saWJnb21wL0NoYW5nZUxvZyoK LQotJWZpbGVzIC1uIGxpYm11ZGZsYXAKLSVkZWZhdHRyKC0scm9vdCxyb290KQotJXtfcHJlZml4 fS8le19saWJ9L2xpYm11ZGZsYXAuc28uMCoKLSV7X3ByZWZpeH0vJXtfbGlifS9saWJtdWRmbGFw dGguc28uMCoKLQotJWZpbGVzIC1uIGxpYm11ZGZsYXAtZGV2ZWwKLSVkZWZhdHRyKC0scm9vdCxy b290KQotJWRpciAle19wcmVmaXh9L2xpYi9nY2MKLSVkaXIgJXtfcHJlZml4fS9saWIvZ2NjLyV7 Z2NjX3RhcmdldF9wbGF0Zm9ybX0KLSVkaXIgJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3Rhcmdl dF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0KLSVkaXIgJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2Nj X3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vaW5jbHVkZQotJXtfcHJlZml4fS9saWIv Z2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vaW5jbHVkZS9tZi1ydW50 aW1lLmgKLSVpZmFyY2ggc3BhcmN2OSBwcGMKLSVkaXIgJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2Nj X3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vbGliMzIKLSV7X3ByZWZpeH0vbGliL2dj Yy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2xpYjMyL2xpYm11ZGZsYXAu YQotJXtfcHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lv bn0vbGliMzIvbGlibXVkZmxhcHRoLmEKLSVlbmRpZgotJWlmYXJjaCBzcGFyYzY0IHBwYzY0Ci0l ZGlyICV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNp b259L2xpYjY0Ci0le19wcmVmaXh9L2xpYi9nY2MvJXtnY2NfdGFyZ2V0X3BsYXRmb3JtfS8le2dj Y192ZXJzaW9ufS9saWI2NC9saWJtdWRmbGFwLmEKLSV7X3ByZWZpeH0vbGliL2djYy8le2djY190 YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2xpYjY0L2xpYm11ZGZsYXB0aC5hCi0lZW5k aWYKLSVpZm5hcmNoIHNwYXJjdjkgc3BhcmM2NCBwcGMgcHBjNjQKLSV7X3ByZWZpeH0vbGliL2dj Yy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2xpYm11ZGZsYXAuYQotJXtf cHJlZml4fS9saWIvZ2NjLyV7Z2NjX3RhcmdldF9wbGF0Zm9ybX0vJXtnY2NfdmVyc2lvbn0vbGli bXVkZmxhcHRoLmEKLSV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJnZXRfcGxhdGZvcm19LyV7 Z2NjX3ZlcnNpb259L2xpYm11ZGZsYXAuc28KLSV7X3ByZWZpeH0vbGliL2djYy8le2djY190YXJn ZXRfcGxhdGZvcm19LyV7Z2NjX3ZlcnNpb259L2xpYm11ZGZsYXB0aC5zbwotJWVuZGlmCi0lZG9j IHJwbS5kb2MvY2hhbmdlbG9ncy9saWJtdWRmbGFwL0NoYW5nZUxvZyoKLQotJWNoYW5nZWxvZwot KiBXZWQgTm92ICA1IDIwMDggSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4gNC4zLjIt NwotLSB1cGRhdGUgZnJvbSBnY2MtNF8zLWJyYW5jaAotICAtIFBScyBjLzM1NDM3LCBmb3J0cmFu LzM1NjgwLCBmb3J0cmFuLzM3NzIzLCBmb3J0cmFuLzM3NzQ5LCBmb3J0cmFuLzM3Nzg3LAotCWZv cnRyYW4vMzc3OTQsIGZvcnRyYW4vMzc5MDMsIGxpYmZvcnRyYW4vMzc3MDcsIGxpYmZvcnRyYW4v Mzc4NjMsCi0JbWlkZGxlLWVuZC8zNzg4Miwgb3RoZXIvMzc4OTcsIHJ0bC1vcHRpbWl6YXRpb24v Mzc3NjksIHRhcmdldC8zNzkwOSwKLQl0YXJnZXQvMzc5MzksIHRyZWUtb3B0aW1pemF0aW9uLzM3 MTAyCi0tIGZpeCBJQ0UgaW4gZXh0cmFjdF9iaXRfZmllbGRfMSAoUFIgbWlkZGxlLWVuZC8zNzg3 MCkKLS0gY29tYmluZXIgZml4IGZvciBzaGlmdHMgKFBSIGMvMzc5MjQpCi0tIGZpeCAtZmR1bXAt aXBhLWFsbCAtZHYgKFBSIG1pZGRsZS1lbmQvMzc4NTgpCi0tIGZpeCBJQ0Ugd2l0aCB3cm9uZyB1 c2Ugb2Ygbm9yZXR1cm4gYXR0cmlidXRlIChQUiB0cmVlLW9wdGltaXphdGlvbi8zNzg3OSkKLS0g Zml4IHVwIC0td2l0aC1qYXZhX2Jvb3RzdHJhcCBidWlsZAotCi0qIFRodSBPY3QgIDkgMjAwOCBK YWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA0LjMuMi02Ci0tIGZpeCBmYWxsb3V0cyBm cm9tIHRoZSAtZyAtTzAgZGVidWdnaW5nIHBhdGNoICgjNDY2MTY5LCAjNDY2MTk4KQotCi0qIFdl ZCBPY3QgIDggMjAwOCBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA0LjMuMi01Ci0t IHVwZGF0ZSBmcm9tIGdjYy00XzMtYnJhbmNoCi0gIC0gUFJzIGMrKy8zNzU1NSwgYy8zNTcxMiwg Yy8zNzY0NSwgZm9ydHJhbi8zNTc3MCwgZm9ydHJhbi8zNTk0NSwKLQlmb3J0cmFuLzM2Mzc0LCBm b3J0cmFuLzM2NDU0LCBmb3J0cmFuLzM2NzAwLCBmb3J0cmFuLzM3Mjc0LAotCWZvcnRyYW4vMzc1 MDQsIGZvcnRyYW4vMzc1ODAsIGZvcnRyYW4vMzc1ODMsIGZvcnRyYW4vMzc2MjYsCi0JZm9ydHJh bi8zNzcwNiwgbWlkZGxlLWVuZC8zNjU3NSwgbWlkZGxlLWVuZC8zNzIzNiwgbWlkZGxlLWVuZC8z NzczMSwKLQlydGwtb3B0aW1pemF0aW9uLzM3NTQ0LCB0YXJnZXQvMzU2MjAsIHRhcmdldC8zNTcx MywgdGFyZ2V0LzM3NjAzLAotCXRyZWUtb3B0LzM1NzM3LCB0cmVlLW9wdGltaXphdGlvbi8zNjM0 MywgdHJlZS1vcHRpbWl6YXRpb24vMzc1MzkKLS0gZW5zdXJlIG9uZSBjYW4gcHV0IGJyZWFrcG9p bnRzIG9uIGJyZWFrLCBjb250aW51ZSBhbmQgZ290byBzdGF0ZW1lbnRzCi0gIHdpdGggLWcgLU8w ICgjNDY1ODI0LCBQUnMgZGVidWcvMjk2MDksIGRlYnVnLzM2NjkwLCBkZWJ1Zy8zNzYxNikKLS0g ZW1pdCBvbmUgRFdfVEFHX2NvbW1vbl9ibG9jayBmb3IgZWFjaCBjb21tb24gYmxvY2sgaW4gZWFj aCBzY29wZSwgbm90Ci0gIG9uZSBmb3IgZWFjaCBjb21tb24gYmxvY2sgaW4gb25lIENVICgjNDY1 OTc0LCBQUiBkZWJ1Zy8zNzczOCkKLS0gSW50ZWwgLW1hZXMgYW5kIC1tcGNsbXVsIHN1cHBvcnQK LQotKiBXZWQgU2VwIDE3IDIwMDggSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4gNC4z LjItNAotLSB1cGRhdGUgZnJvbSBnY2MtNF8zLWJyYW5jaAotICAtIFBScyBjKysvMzczODksIGZv cnRyYW4vMzU4MzcsIGZvcnRyYW4vMzYyMTQsIGZvcnRyYW4vMzcwOTksIGZvcnRyYW4vMzcxOTks Ci0JcnRsLW9wdGltaXphdGlvbi8zNzQwOCwgdGFyZ2V0LzM3NDY2LCB0cmVlLW9wdGltaXphdGlv bi8zNjYzMAotLSByZXZlcnQgUFIgYysrLzM2NzQxIGZpeAotLSBmaXggVkxBIGRlYnVnaW5mbyBh dCAtTzAgKFBSIGRlYnVnLzM0MDM3KQotCi0qIFNhdCBTZXAgIDYgMjAwOCBKYWt1YiBKZWxpbmVr IDxqYWt1YkByZWRoYXQuY29tPiA0LjMuMi0zCi0tIGRvbid0IHJ1biB0ZXN0cyB0aGF0IHJlcXVp cmUgQWx0aXZlYyBodyBvbiBub24tQWx0aXZlYyBwb3dlcnBjcwotLSBtYWtlIHN1cmUgbm9uZSBv ZiBsaWJnY2ogYmluYXJpZXMvbGlicmFyaWVzIGNvbnRhaW5zIC91c3IvJXtsaWJ9IGluCi0gIFJQ QVRICi0tIGZpeCB1cCBCdWlsZFJvb3QKLQotKiBGcmkgU2VwICA1IDIwMDggSmFrdWIgSmVsaW5l ayA8amFrdWJAcmVkaGF0LmNvbT4gNC4zLjItMgotLSB1cGRhdGUgZnJvbSBnY2MtNF8zLWJyYW5j aAotICAtIFBScyBjKysvMzczNDgsIGMvMzcyNjEsIGZvcnRyYW4vMzYzNzEsIGZvcnRyYW4vMzcx OTMsIG1pZGRsZS1lbmQvMzY0NDksCi0JdGFyZ2V0LzM2MzMyLCB0YXJnZXQvMzcxNjgKLS0gbWFr ZSBDaGFuZ2VMb2cgZmlsZXMgYW5kIGdjYy5pbmZvIHZhbGlkIFVURi04LCByZW1vdmUgZ25hdGl2 ZTJhc2NpaSBmcm9tCi0gIGdjYy1nbmF0LCBjb21tZW50IG91dCBtb3N0IG9mIHRoZSBPYnNvbGV0 ZXMgKCMyMjU3NzgpCi0tIG9uIHg4Nl82NCBkZWNyZWFzZSBmcmFtZSBzaXplIGluIHZhcmFyZ3Mg ZnVuY3Rpb25zIHRoYXQgZG9uJ3QgbmVlZCBzYXZpbmcKLSAgZ3ByIG9yIGZwciByZWdpc3RlcnMK LS0gZml4IElDRSBvbiBpbXBsaWNpdGx5IGRldGVybWluZWQgZmlyc3Rwcml2YXRlIHdoZXJlIGNv cHkgY3RvciBvciBkdG9yCi0gIG5lZWRzIHN5bnRoZXRpemF0aW9uIChQUiBjKysvMzcxODkpCi0t IGRvY3VtZW50IGhvdyB0byByZWNyZWFzZSB0aGUgdGFyYmFsbAotCi0qIEZyaSBBdWcgMjkgMjAw OCBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA0LjMuMi0xCi0tIHVwZGF0ZSBmcm9t IGdjYy00XzMtYnJhbmNoCi0gIC0gNC4zLjIgcmVsZWFzZQotICAtIFBScyBjKysvMzY3NDEsIG1p ZGRsZS1lbmQvMzY1NDgsIG1pZGRsZS1lbmQvMzY4MTcsIG1pZGRsZS1lbmQvMzcxMjUsCi0JdGFy Z2V0LzM3MTg0LCB0YXJnZXQvMzcxOTEsIHRhcmdldC8zNzE5NwotLSBiYWNrcG9ydCBmdXJ0aGVy IEZvcnRyYW4gZGVidWdpbmZvIGltcHJvdmVtZW50cyAoIzQ2MDM3OCwgIzQ1OTM3NSkKLS0gcmV2 ZXJ0IHJlbW92YWwgb2YgYWRqYWNlbnQgYml0ZmllbGQgY29tcGFyaXNvbgotICBvcHRpbWl6YXRp b24gKFBSIG1pZGRsZS1lbmQvMzcyNDgpCi0tIG9uIHBwYy9wcGM2NCBhZGQgcGFpcmVkLmgsIHBw dV9pbnN0cmluc2ljcy5oLCBzaTJ2bXguaCBhbmQgc3B1MnZteC5oCi0gIGhlYWRlcnMgKCM0NjA0 OTcpCi0KLSogTW9uIEF1ZyAyNSAyMDA4IEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+ IDQuMy4xLTgKLS0gdXBkYXRlIGZyb20gZ2NjLTRfMy1icmFuY2gKLSAgLSBQUnMgZGVidWcvMzcx NTYsIGxpYmdjai84OTk1LCBsaWJzdGRjKysvMzcxMDAsIHRhcmdldC8zNzEwMQotLSBiYWNrcG9y dCBGb3J0cmFuIGRlYnVnaW5mbyBpbXByb3ZlbWVudHMgKFBScyBkZWJ1Zy8zNTg5NiwgZm9ydHJh bi8zNTE1NCwKLSAgZm9ydHJhbi8zNTcyNCwgZm9ydHJhbi8zNTg5MiwgZm9ydHJhbi8yOTYzNSwg Zm9ydHJhbi8yMzA1NwotICBmb3J0cmFuLzI0NzkwLCAjNDU3NzkyLCAjNDU3NzkzLCAjNDU5Mzc0 LCAjNDU5Mzc2LCAjNDU5Mzc4KQotCi0qIFRodSBBdWcgMTQgMjAwOCBKYWt1YiBKZWxpbmVrIDxq YWt1YkByZWRoYXQuY29tPiA0LjMuMS03Ci0tIHVwZGF0ZSBmcm9tIGdjYy00XzMtYnJhbmNoCi0g IC0gUFJzIGJvb3RzdHJhcC8zNTc1MiwgYysrLzM2Njg4LCBjKysvMzY5OTksIGMrKy8zNzAxNiwg Yy8zNTc0NiwKLQlmb3J0cmFuLzM2NTgyLCBsaWJnY2ovMzE4OTAsIG1pZGRsZS1lbmQvMzU0MzIs IG1pZGRsZS1lbmQvMzY2OTEsCi0JbWlkZGxlLWVuZC8zNzAxNCwgbWlkZGxlLWVuZC8zNzAyNiwg bWlkZGxlLWVuZC8zNzA0MiwKLQlydGwtb3B0aW1pemF0aW9uLzM1NTQyLCBydGwtb3B0aW1pemF0 aW9uLzM2OTk4LCB0YXJnZXQvMzU2NTksCi0JdGFyZ2V0LzM2NjEzLCB0cmVlLW9wdGltaXphdGlv bi8zNjk5MQotLSBmaXggZm9sZGluZyBvZiB3aWRlbmVkIGNvbXBhcmlzb25zIChQUiBtaWRkbGUt ZW5kLzM3MTAzKQotCi0qIEZyaSBBdWcgIDEgMjAwOCBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRo YXQuY29tPiA0LjMuMS02Ci0tIHVwZGF0ZSBmcm9tIGdjYy00XzMtYnJhbmNoCi0gIC0gUFJzIGMr Ky8zNjQwNSwgYysrLzM2NzY3LCBjKysvMzY4NTIsIGRlYnVnLzM2Mjc4LCBwcmVwcm9jZXNzb3Iv MzY2NDksCi0JcnRsLW9wdGltaXphdGlvbi8zNjkyOQotICAtIGZpeCB0aGUgbGFzdCAtT3MgLWZh c3luY2hyb25vdXMtdW53aW5kLXRhYmxlcyBrbm93biBpc3N1ZSAoIzQ0NzkxMiwKLSAgICBQUiBy dGwtb3B0aW1pemF0aW9uLzM2NDE5KQotLSBkb24ndCBsb29wID4gMjMwMDAwIHRpbWVzIGluIG1h a2VfdGVtcF9maWxlIGlmIC90bXAgaXMgZnVsbCAoIzIwMzIzMSkKLQotKiBNb24gSnVsIDI4IDIw MDggSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4gNC4zLjEtNQotLSB1cGRhdGUgZnJv bSBnY2MtNF8zLWJyYW5jaAotICAtIFBScyBjKysvMzY0MDcsIGZvcnRyYW4vMzYxMzIsIGZvcnRy YW4vMzYzNjYsIGZvcnRyYW4vMzY4MjQsIGZvcnRyYW4vMzY4NTIsCi0JbGliZm9ydHJhbi8zNjg1 MiwgbGlic3RkYysrLzM2NTUyLCBsaWJzdGRjKysvMzY3MjksIGxpYnN0ZGMrKy8zNjgzMiwKLQlt aWRkbGUtZW5kLzM2MzY5LCBtaWRkbGUtZW5kLzM2ODExLCBtaWRkbGUtZW5kLzM2ODc3LAotCXJ0 bC1vcHRpbWl6YXRpb24vMzUyODEsIHJ0bC1vcHRpbWl6YXRpb24vMzY0MTksCi0JcnRsLW9wdGlt aXphdGlvbi8zNjc1MywgdGFyZ2V0LzM1NDkyLCB0YXJnZXQvMzU4MDIsIHRhcmdldC8zNjc4MCwK LQl0YXJnZXQvMzY3ODIsIHRhcmdldC8zNjc4NCwgdGFyZ2V0LzM2ODI3LCB0cmVlLW9wdGltaXph dGlvbi8zNjgzMAotLSBPcGVuTVAgMy4wIGJ1Z2ZpeGVzIGZyb20gdHJ1bmsKLSAgLSBmaXggb2Nj YXNzaW9uYWwgaGFuZ3Mgb2YgbGliZ29tcC5jL29yZGVyZWQtMy5jCi0gIC0gUFIgbWlkZGxlLWVu ZC8zNjc5MAotCi0qIFR1ZSBKdWwgIDggMjAwOCBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQu Y29tPiA0LjMuMS00Ci0tIHVwZGF0ZSBmcm9tIGdjYy00XzMtYnJhbmNoCi0gIC0gUFJzIGMrKy8z NDk2MywgYysrLzM2NjYyLCBmb3J0cmFuLzM2NTQ2LCBmb3J0cmFuLzM2NjU3LCBmb3J0cmFuLzM2 Njc2LAotCWxpYnN0ZGMrKy8zNjYxMiwgbGlic3RkYysrLzM2NjE2LCBydGwtb3B0aW1pemF0aW9u LzM0NzQ0LAotCXRhcmdldC8zNDc4MCwgdGFyZ2V0LzM0ODU2LCB0YXJnZXQvMzY1MTAsIHRhcmdl dC8zNjYzNCwKLQl0YXJnZXQvMzY2ODQsIHRhcmdldC8zNjY5OCwgdGFyZ2V0LzM2NzM2LCB0ZXN0 c3VpdGUvMzY2MjAsCi0JdHJlZS1vcHRpbWl6YXRpb24vMzY2NDgKLSAgLSBmaXggLWZyZXBvICgj NDQ4MzkwLCBQUiBjKysvMzYzNjQpCi0tIGltcHJvdmUgT3Blbk1QIGRlYnVnIGluZm8gKFBScyBk ZWJ1Zy8zNjYxNywgbWlkZGxlLWVuZC8zNjcyNikKLQotKiBUdWUgSnVuIDI0IDIwMDggSmFrdWIg SmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4gNC4zLjEtMwotLSB1cGRhdGUgZnJvbSBnY2MtNF8z LWJyYW5jaAotICAtIFBScyBjKysvMzUzMTcsIGMrKy8zNTMyMCwgZG9jdW1lbnRhdGlvbi8zMDcz OSwgZm9ydHJhbi8zNDkwOCwKLQlmb3J0cmFuLzM2Mjc2LCBmb3J0cmFuLzM2NTM4LCBqYXZhLzM2 MjQ3LCBtaWRkbGUtZW5kLzM2NTg0LAotCXJ0bC1vcHRpbWl6YXRpb24vMzU2MDQsIHRhcmdldC8z NjMzNiwgdGFyZ2V0LzM2NDI0LAotCXRyZWUtb3B0aW1pemF0aW9uLzM2NDkzLCB0cmVlLW9wdGlt aXphdGlvbi8zNjQ5OCwKLQl0cmVlLW9wdGltaXphdGlvbi8zNjUwNCwgdHJlZS1vcHRpbWl6YXRp b24vMzY1MTkKLSAgLSBkb24ndCBtYXJrIGhhcmQgcmVnaXN0ZXJzIGFzIHJlZyBwb2ludGVycyAo IzQ1MTA2OCwgdGFyZ2V0LzM2NTMzKQotICAtIGFsbG93IG1vcmUgY29tcHV0ZV9hbnRpYyBpdGVy YXRpb25zICgjNDUwODg5LCB0cmVlLW9wdGltaXphdGlvbi8zNjUwOCkKLS0gZml4ICNwcmFnbWEg b21wIHRhc2sgY29weWZuIHJlZ2lzdHJhdGlvbiB3aXRoIGNncmFwaCAoYysrLzM2NTIzKQotCi0q IFRodSBKdW4gMTIgMjAwOCBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA0LjMuMS0y Ci0tIHVwZGF0ZSBmcm9tIGdjYy00XzMtYnJhbmNoCi0gIC0gUFJzIGMrKy8zNjQwOCwgbWlkZGxl LWVuZC8zNTMzNiwgbWlkZGxlLWVuZC8zNjUwNiwgdGVzdHN1aXRlLzM2NDQzLAotCXRyZWUtb3B0 aW1pemF0aW9uLzM2NDc0Ci0tIE9wZW5NUCAzLjAgYnVnZml4ZXMgZnJvbSB0cnVuawotICAtIGZp eCBhIHRoaW5rbyBpbiB0YXNrIGRpc3BhdGNoaW5nIG9uIGJhcnJpZXJzCi0gIC0gUFJzIGxpYmdv bXAvMzY0NjksIGxpYmdvbXAvMzY0NzEKLS0gZml4IG5lc3RlZCBpbmxpbmUgZnVuY3Rpb25zIGlu IC1zdGQ9Z251OTkgbW9kZSAoIzQ1MDk2NywgUFIgYy8zNjUwNykKLQotKiBNb24gSnVuICA5IDIw MDggSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4gNC4zLjEtMQotLSB1cGRhdGUgZnJv bSBnY2MtNF8zLWJyYW5jaAotICAtIDQuMy4xIHJlbGVhc2UKLSAgLSBQUnMgYWRhLzI0ODgwLCBh ZGEvMjY2MzUsIGJvb3RzdHJhcC8zNTE2OSwgYm9vdHN0cmFwLzM2NDUyLCBjKysvMzU1NzgsCi0J YysrLzM1OTg2LCBjKysvMzYwMjMsIGMrKy8zNjIzNywgYysrLzM2MzA4LCBmb3J0cmFuLzM1MTg0 LAotCWZvcnRyYW4vMzU3NDMsIGZvcnRyYW4vMzU3NDUsIGZvcnRyYW4vMzU3NTYsIGZvcnRyYW4v MzU3NTksCi0JZm9ydHJhbi8zNTc4MCwgZm9ydHJhbi8zNTg2NCwgZm9ydHJhbi8zNTk5NywgZm9y dHJhbi8zNjE3NiwKLQlmb3J0cmFuLzM2MjMzLCBsaWJmb3J0cmFuLzM1OTkwLCBsaWJmb3J0cmFu LzM1OTkzLCBsaWJmb3J0cmFuLzM1OTk1LAotCWxpYmdjai8zNjI1MiwgbGlic3RkYysrLzM1OTIy LCBtaWRkbGUtZW5kLzM0OTczLCBtaWRkbGUtZW5kLzM2MDEzLAotCW1pZGRsZS1lbmQvMzYwNzcs IG1pZGRsZS1lbmQvMzYwOTMsIG1pZGRsZS1lbmQvMzYxMDYsCi0JbWlkZGxlLWVuZC8zNjEzNywg bWlkZGxlLWVuZC8zNjE1NCwgbWlkZGxlLWVuZC8zNjE3MiwKLQltaWRkbGUtZW5kLzM2MTk0LCBt aWRkbGUtZW5kLzM2MjI3LCBtaWRkbGUtZW5kLzM2MjQ0LAotCW1pZGRsZS1lbmQvMzYzMDAsIG1p ZGRsZS1lbmQvUFIyODY5MCwgcnRsLW9wdGltaXphdGlvbi8zNjExMSwKLQlydGwtb3B0aW1pemF0 aW9uLzM2NDE5LCB0YXJnZXQvMjczODYsIHRhcmdldC8zMDI0MywgdGFyZ2V0LzM0OTMyLAotCXRh cmdldC8zNTY2MSwgdGFyZ2V0LzM1OTIxLCB0YXJnZXQvMzYwNzksIHRhcmdldC8zNjA5MCwgdGFy Z2V0LzM2MDk1LAotCXRhcmdldC8zNjE4MiwgdGFyZ2V0LzM2MjI0LCB0YXJnZXQvMzYzMjEsIHRh cmdldC8zNjM2MiwKLQl0cmVlLW9wdGltaXphdGlvbi8zNDI0NCwgdHJlZS1vcHRpbWl6YXRpb24v MzQzMzAsCi0JdHJlZS1vcHRpbWl6YXRpb24vMzQ5NzYsIHRyZWUtb3B0aW1pemF0aW9uLzM1MjA0 LAotCXRyZWUtb3B0aW1pemF0aW9uLzM2MDk4LCB0cmVlLW9wdGltaXphdGlvbi8zNjExOSwKLQl0 cmVlLW9wdGltaXphdGlvbi8zNjEyOSwgdHJlZS1vcHRpbWl6YXRpb24vMzYxODEsCi0JdHJlZS1v cHRpbWl6YXRpb24vMzYxODcsIHRyZWUtb3B0aW1pemF0aW9uLzM2MjQ1LAotCXRyZWUtb3B0aW1p emF0aW9uLzM2MjYyLCB0cmVlLW9wdGltaXphdGlvbi8zNjI5MSwKLQl0cmVlLW9wdGltaXphdGlv bi8zNjI5MywgdHJlZS1vcHRpbWl6YXRpb24vMzYzMzkKLS0gT3Blbk1QIDMuMCBzdXBwb3J0Ci0K LSogVHVlIE1heSAyMCAyMDA4IFRvbSAic3BvdCIgQ2FsbGF3YXkgPHRjYWxsYXdhQHJlZGhhdC5j b20+IDQuMy4wLTExCi0tIGZpeCBtaXNzaW5nIGZpbGUgd2l0aCBzcGFyY3Y5Ci0KLSogU3VuIE1h eSAxOCAyMDA4IFRvbSAic3BvdCIgQ2FsbGF3YXkgPHRjYWxsYXdhQHJlZGhhdC5jb20+IDQuMy4w LTEwCi0tIG1ha2Ugc3BhcmN2OSB0aGUgbXVsdGlsaWJfMzJfYXJjaCBmb3Igc3BhcmM2NAotCi0q IFN1biBNYXkgMTggMjAwOCBUb20gInNwb3QiIENhbGxhd2F5IDx0Y2FsbGF3YUByZWRoYXQuY29t PiA0LjMuMC05Ci0tIHNwYXJjdjkgc3VwcG9ydCBhbmQgZGV0ZWN0aW9uCi0KLSogTW9uIEFwciAy OCAyMDA4IEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuMy4wLTgKLS0gdXBkYXRl IGZyb20gZ2NjLTRfMy1icmFuY2gKLSAgLSBkZWNyZWFzZSBjb21waWxlIHRpbWUgc3RhY2sgdXNh Z2UgZHVyaW5nIEdDICgjNDQzNzM5LCBQUiBkZWJ1Zy8zNjA2MCkKLSAgLSBmaXggLW1yZWdwYXJt PVggd2l0aCBLJlIgZnVuY3Rpb24gZGVjbHMgKCM0NDM1ODMsIFBSIHRhcmdldC8zNjAxNSkKLSAg LSBmaXggdGFpbCBjYWxsZWQgc3FydCBhbmQgbWF0aCBidWlsdGlucyAoIzQzNTI5NywKLSAgICBQ UiBydGwtb3B0aW1pemF0aW9uLzM2MDE3KQotICAtIFBScyBjKysvMzM0ODYsIGMrKy8zNTMxNiwg YysrLzM1MzI1LCBjKysvMzU2NzgsIGMrKy8zNTc0NywgYysrLzM1NzU4LAotCWMrKy8zNTc3Mywg Yy8zNTQzNiwgYy8zNTc0NCwgZm9ydHJhbi8zNTkzMiwgZm9ydHJhbi8zNTk0NCwKLQlmb3J0cmFu LzM1OTQ2LCBmb3J0cmFuLzM1OTQ3LCBmb3J0cmFuLzM1OTU5LCBmb3J0cmFuLzM1OTk0LAotCWxp Ymdjai8zNTk1MCwgbGlic3RkYysrLzM1NTk3LCBsaWJzdGRjKysvMzU4ODcsIGxpYnN0ZGMrKy8z NTk1NCwKLQltaWRkbGUtZW5kLzM2MDIxLCB0YXJnZXQvMzU5NDQsIHRlc3RzdWl0ZS8zNjA1NiwK LQl0cmVlLW9wdGltaXphdGlvbi8zNTk4MiwgdHJlZS1vcHRpbWl6YXRpb24vMzYwMDgsCi0JdHJl ZS1vcHRpbWl6YXRpb24vMzYwMzQKLS0gZml4IEMrKyBjb25zdCByZWZlcmVuY2VzIHRvIGJpdGZp ZWxkcyAoUFIgYysrLzM1OTA5KQotLSBmaXggQysrICsrdmFyID0gdmFsIGVycm9yIHJlY292ZXJ5 IChQUiBjKysvMzU5ODcpCi0tIGZpeCBDKysgcmVmZXJlbmNlIGJpbmRpbmcgdG8gZnVuY3Rpb24g dGhyb3VnaCB1c2luZy1kZWNsIChQUiBjKysvMzU2NTApCi0KLSogV2VkIEFwciAxNiAyMDA4IEph a3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuMy4wLTcKLS0gdXBkYXRlIGZyb20gZ2Nj LTRfMy1icmFuY2gKLSAgLSBQUnMgYysrLzM1NzA4LCBjKysvMzU3MzQsIGxpYnN0ZGMrKy8zNTgx NiwgbWlkZGxlLWVuZC8zNTUxOSwKLQlydGwtb3B0aW1pemF0aW9uLzM0OTE2LCB0YXJnZXQvMzUz NjQsIHRhcmdldC8zNTY5NSwKLQl0cmVlLW9wdGltaXphdGlvbi8zNTgyMSwgdHJlZS1vcHRpbWl6 YXRpb24vMzU4MzMKLSAgLSBmaXggbGliZ2ZvcnRyYW4gYnVmZmVyIG92ZXJmbG93cwotLSBmaXgg cmVzdG9yaW5nIG9mIEFsdGl2ZWMgcmVnaXN0ZXJzIHdoZW4gYWxsb2NhIGlzIHVzZWQgKFBSIHRh cmdldC8zNTkwNykKLS0gbWlzYyBmaXhlcyAoUFJzIHRyZWUtb3B0aW1pemF0aW9uLzM1ODk5LCB0 YXJnZXQvMzU2NjIsIGMvMzU3MzkpCi0KLSogRnJpIEFwciAgNCAyMDA4IEpha3ViIEplbGluZWsg PGpha3ViQHJlZGhhdC5jb20+IDQuMy4wLTYKLS0gdXBkYXRlIGZyb20gZ2NjLTRfMy1icmFuY2gK LSAgLSBQUnMgYWRhLzMzODU3LCBjKysvMzUyNDUsIGMrKy8zNTc0MSwgYy8zNTczOCwgZm9ydHJh bi8zNTY5OCwKLQlmb3J0cmFuLzM1Njk5LCBmb3J0cmFuLzM1NzAyLCBmb3J0cmFuLzM1NzI0LCBm b3J0cmFuLzM1NzQwLAotCWZvcnRyYW4vMzU3ODYsIGxpYmZvcnRyYW4vMzU2OTksIGxpYnN0ZGMr Ky8zNTcyNSwgbWlkZGxlLWVuZC8zNTQyOSwKLQltaWRkbGUtZW5kLzM1NzA1LCBtaWRkbGUtZW5k LzM1ODE4LCB0YXJnZXQvMzExMTAsIHRhcmdldC8zMTIzMiwKLQl0YXJnZXQvMzU2NTcsIHRyZWUt b3B0LzM1NDMxCi0tIGZpeCBPcGVuTVAgSUNFIG9uIGludmFsaWQgZXh0ZXJuL3N0YXRpYyBWTEEg KFBSIGMvMzU3NTEpCi0tIGZpeCBQQ0ggZmFpbHVyZSBpZiBhIHByZWNvbXBpbGVkIGhlYWRlciBp cyBpbmNsdWRlZCBtb3JlIHRoYW4KLSAgb25jZSAoIzI1MTY4MiwgUFIgcGNoLzEzNjc1KQotCi0q IFRodSBNYXIgMjcgMjAwOCBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA0LjMuMC01 Ci0tIGZpeCBsaWJnb21wIHdoZW4gc3luYyBidWlsdGlucyBhcmVuJ3QgYXZhaWxhYmxlCi0tIG9u IGkzODYgYnVpbGQgbGliZ29tcCBhbmQgX19jeGFfZ3VhcmRfKiBhcyBpNDg2KywKLSAgTlBUTCBk b2Vzbid0IHN1cHBvcnQgcHJlLWk0ODYgYW55d2F5IGFuZCBhdG9taWMgYnVpbHRpbnMgZ2l2ZQot ICBzaWduaWZpY2FudCBzcGVlZHVwcwotCi0qIFdlZCBNYXIgMjYgMjAwOCBKYWt1YiBKZWxpbmVr IDxqYWt1YkByZWRoYXQuY29tPiA0LjMuMC00Ci0tIHVwZGF0ZSBmcm9tIGdjYy00XzMtYnJhbmNo Ci0gIC0gUFJzIGMrKy8zNTMzMiwgYysrLzM1NTQ4LCBkZWJ1Zy8zMTUxMCwgZm9ydHJhbi8zMzI5 NSwgZm9ydHJhbi8zNDgxMywKLQlsaWJmb3J0cmFuLzM1NjE3LCBsaWJmb3J0cmFuLzM1NjI3LCBs aWJnb21wLzM1NjI1LCBsaWJzdGRjKysvMzUyNTYsCi0JbGlic3RkYysrLzM1NjM3LCBtaWRkbGUt ZW5kLzM1NTkzLCBtaWRkbGUtZW5kLzM1NjA5LAotCW1pZGRsZS1lbmQvMzU2MTEsIG1pZGRsZS1l bmQvMzU2MTYsIHRhcmdldC8zNTUwNCwgdGVzdHN1aXRlLzM0MTY4LAotCXRlc3RzdWl0ZS8zNTYy MQotLSBiYWNrcG9ydCBsaWJnb21wIHNwZWVkdXBzIGZyb20gZ29tcC0zXzAtYnJhbmNoICgjNDM3 MjY4KQotLSBmaXggZGlhZ25vc3RpY3Mgd2l0aCBjb21wb3VuZCBsaXRlcmFscyAoUFIgYy8zNTQ0 MCkKLS0gZml4IEMrKyBoYW5kbGluZyBvZiBsYXRlIHRlbXBsYXRlIGF0dHJpYnV0ZXMgKFBSIGMr Ky8zNTU0NikKLS0gUHJlcmVxIGluc3RhbGwtaW5mbyBpbiBsaWJnb21wICgjNDM3NTIzKQotCi0q IEZyaSBNYXIgMTQgMjAwOCBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA0LjMuMC0z Ci0tIHVwZGF0ZSBmcm9tIGdjYy00XzMtYnJhbmNoCi0gIC0gUFJzIGMrKy8zMzg4NywgYysrLzM1 MzI4LCBjKysvMzUzMzcsIGMrKy8zNTQ2OSwgYy8zNTQzOCwgYy8zNTQzOSwKLQlmb3J0cmFuLzM1 NDc0LCBsaWJzdGRjKysvMzU1NDEsIGxpYnN0ZGMrKy8zNTU2NiwgbWlkZGxlLWVuZC8zNTA5OSwK LQltaWRkbGUtZW5kLzM1MTg1LCBtaWRkbGUtZW5kLzM1NDU2LCBtaWRkbGUtZW5kLzM1NTI2LAot CW1pZGRsZS1lbmQvMzU1NDksIHRhcmdldC8zNDAwMCwgdGFyZ2V0LzM1MTkwLCB0YXJnZXQvMzUy MjUsCi0JdGFyZ2V0LzM1MzUwLCB0YXJnZXQvMzU0OTYsIHRhcmdldC8zNTU0MCwgdGFyZ2V0LzM1 NTUzLAotCXRyZWUtb3B0aW1pemF0aW9uLzM0OTg5LCB0cmVlLW9wdGltaXphdGlvbi8zNTQ3Mgot ICAtIGZpeCBlY2xpcHNlIGJ1aWxkICgjNDM0MzU2KQotLSBsaWJzdGRjKysgZG9jIGZpeCAoIzQz NjY4NykKLQotKiBGcmkgTWFyICA3IDIwMDggSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNv bT4gNC4zLjAtMgotLSBmaXggcHBjL3BwYzY0IDgvMTYgYml0IHN5bmMgYnVpbHRpbnMgKFBSIHRh cmdldC8zNTQ5OCkKLQotKiBGcmkgTWFyICA3IDIwMDggSmFrdWIgSmVsaW5layA8amFrdWJAcmVk aGF0LmNvbT4gNC4zLjAtMQotLSBnY2MgNC4zLjAgcmVsZWFzZQotICAtIFBScyBjKysvMzUyNDQs IGMrKy8zNTMxNSwgYysrLzM1MzIzLCBjKysvMzUzMzMsIGMrKy8zNTMzOCwgZHJpdmVyLzM1NDIw LAotCWxpYmZvcnRyYW4vMzUzNTUsIGxpYnN0ZGMrKy8zNTQ4MCwgdGFyZ2V0LzMzOTYzLCB0YXJn ZXQvMzUxODksCi0JdGFyZ2V0LzM1MjIyLCB0YXJnZXQvMzU0MDEsIHRhcmdldC8zNTQ1MwotCi0q IEZyaSBGZWIgMjkgMjAwOCBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA0LjMuMC0w LjEzCi0tIHVwZGF0ZSBmcm9tIGdjYy00XzMtYnJhbmNoCi0gIC0gUFJzIG1pZGRsZS1lbmQvMTk5 ODQsIHRhcmdldC8yNTQ3NwotICAtIHJlbW92ZSA8c3lzdGVtX2Vycm9yPiwgZml4IHBwYy9wcGM2 NAotICAgIHN0ZDo6eyx0cjE6On1oYXNoPGxvbmcgZG91YmxlPjo6b3BlcmF0b3IoKSBBQkkKLQot KiBUaHUgRmViIDI4IDIwMDggSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4gNC4zLjAt MC4xMgotLSB1cGRhdGUgZnJvbSBnY2MtNF8zLWJyYW5jaAotICAtIFBScyBjKysvMzQ3MTUsIGMr Ky8zNTM2OCwgbGliZm9ydHJhbi8yNDY4NSwgbWlkZGxlLWVuZC8zNDk3MSwKLQltaWRkbGUtZW5k LzM1MzkwLCB0YXJnZXQvMjU0NzcKLQotKiBGcmkgRmViIDIyIDIwMDggSmFrdWIgSmVsaW5layA8 amFrdWJAcmVkaGF0LmNvbT4gNC4zLjAtMC4xMQotLSB1cGRhdGUgZnJvbSBnY2MtNF8zLWJyYW5j aAotICAtIDQuMy4wIHJjMQotICAtIFBScyBib290c3RyYXAvMzUyMTgsIGJvb3RzdHJhcC8zNTI3 MywgYysrLzM0OTUwLCBjKysvMzUyODIsCi0JbWlkZGxlLWVuZC8zNTI2NSwgcnRsLW9wdGltaXph dGlvbi8zNTIzMiwgdGFyZ2V0LzM0NTI2LAotCXRhcmdldC8zNTA3MSwgdGFyZ2V0LzM1MjM5LCB0 YXJnZXQvMzUyNjQKLQotKiBNb24gRmViIDE4IDIwMDggSmFrdWIgSmVsaW5layA8amFrdWJAcmVk aGF0LmNvbT4gNC4zLjAtMC4xMAotLSB1cGRhdGUgdG8gdHJ1bmsKLSAgLSBQUnMgYysrLzExMTU5 LCBjKysvMjg3NDMsIGMrKy8zNDA1MCwgYysrLzM1MDIzLCBjKysvMzUwMjQsIGMrKy8zNTAyNiwK LQljKysvNTY0NSwgYy8yODM2OCwgZG9jdW1lbnRhdGlvbi8xNTQ3OSwgZm9ydHJhbi8zNDk1MiwK LQlmb3J0cmFuLzM1MTUwLCBsaWJnY2ovMzMwODUsIGxpYnN0ZGMrKy8zNDc5NywgbGlic3RkYysr LzM1MjA5LAotCWxpYnN0ZGMrKy8zNTIyMSwgbWlkZGxlLWVuZC8zNDYyMSwgbWlkZGxlLWVuZC8z NTE0OSwgbWlkZGxlLWVuZC8zNTE5NiwKLQltaWRkbGUtZW5kLzM1MjI3LCBwcmVwcm9jZXNzb3Iv MzUwNjEsIHRhcmdldC8zNDkzMCwgdGFyZ2V0LzM1MDg4LAotCXRlc3RzdWl0ZS8zNTExOSwgdGVz dHN1aXRlLzM1MjA4LCB0cmVlLW9wdGltaXphdGlvbi8zNTE2NCwKLQl0cmVlLW9wdGltaXphdGlv bi8zNTIzMQotLSBzb21lIE9wZW5NUCBmaXhlcyAoUFJzIGMrKy8zNDk2NCwgYysrLzM1MDI4LCBj KysvMzUwNzgpCi0tIGZpeCBjcC10b29scy5pbmZvKiBAZGlyZW50cnkgKCM0MzMyMjIpCi0KLSog VGh1IEZlYiAxNCAyMDA4IEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuMy4wLTAu OQotLSB1cGRhdGUgdG8gdHJ1bmsKLSAgLSBQUnMgbWlkZGxlLWVuZC8yOTY3MywgYWRhLzM1MTQz LCBjKysvMzQ3NzQsIGMrKy8zNDgyNCwgYysrLzM0OTYyLCBjKysvMzQ5MzcsCi0JYysrLzM0OTM5 LCBkZWJ1Zy8zNTA2NSwgb3RoZXIvMzUxNDgsIHRhcmdldC8zNDM5MwotLSBmaXggaWE2NCBidWls ZCAoIzQzMjA2OCkKLQotKiBUdWUgRmViIDEyIDIwMDggSmFrdWIgSmVsaW5layA8amFrdWJAcmVk aGF0LmNvbT4gNC4zLjAtMC44Ci0tIHVwZGF0ZSB0byB0cnVuawotICAtIFBScyBib290c3RyYXAv MzM3ODEsIGJvb3RzdHJhcC8zNDkyMiwgYm9vdHN0cmFwLzM1MDUxLCBib290c3RyYXAvMzUxMTUs Ci0JYysrLzI5MDQ4LCBjKysvMzM1NTMsIGMrKy8zMzkxNiwgYysrLzMzOTY0LCBjKysvMzQwNTIs IGMrKy8zNDA5NCwKLQljKysvMzQzMTQsIGMrKy8zNDc3NiwgYysrLzM0ODYyLCBjKysvMzQ4OTEs IGMrKy8zNDkzNSwgYysrLzM0OTM2LAotCWMrKy8zNTA0OSwgYysrLzM1MDU2LCBjKysvMzUwNzQs IGMrKy8zNTA3NywgYysrLzM1MDk2LCBjKysvMzUwOTcsCi0JYysrLzM1MTEzLCBjKysvMzUxMTYs IGMvMjkzMjYsIGMvMzQ5OTMsIGRvY3VtZW50YXRpb24vMzAzMzAsCi0JZm9ydHJhbi8zMjMxNSwg Zm9ydHJhbi8zMjc2MCwgZm9ydHJhbi8zNDkxMCwgZm9ydHJhbi8zNDk0NSwKLQlmb3J0cmFuLzM1 MDM3LCBmb3J0cmFuLzM1MDkzLCBqYXZhLzM1MDM1LCBsaWJmZmkvMzQ2MTIsCi0JbGliZm9ydHJh bi8zNTAwMSwgbGliZm9ydHJhbi8zNTA2MywgbGliZ2NqLzMwMDcxLCBsaWJzdGRjKysvMTYyNTEs Ci0JbWlkZGxlLWVuZC8zMzYzMSwgbWlkZGxlLWVuZC8zNDYyNywgbWlkZGxlLWVuZC8zNTA0MywK LQltaWRkbGUtZW5kLzM1MTM2LCBtaWRkbGUtZW5kLzM1MTYzLCBtaWRkbGVfZW5kLzM0MTUwLCBv YmpjKysvMzQxOTMsCi0Jb3RoZXIvMjk5NzIsIG90aGVyLzMxNDA1LCBvdGhlci8zMjc1NCwgb3Ro ZXIvMzUwNDIsIG90aGVyLzM1MDcwLAotCW90aGVyLzM1MTA3LCBydGwtb3B0LzMzNDEwLCBydGwt b3B0aW1pemF0aW9uLzM0NzczLAotCXJ0bC1vcHRpbWl6YXRpb24vMzQ5OTUsIHJ0bC1vcHRpbWl6 YXRpb24vMzQ5OTgsIHRhcmdldC8yMzMyMiwKLQl0YXJnZXQvMzQ5MDAsIHRhcmdldC8zNDk4Miwg dGFyZ2V0LzM1MDQ1LCB0YXJnZXQvMzUwODMsCi0JdGFyZ2V0LzM1MDg0LCB0ZXN0c3VpdGUvMzM5 NDYsIHRlc3RzdWl0ZS8zNTA0NywKLQl0cmVlLW9wdGltaXphdGlvbi8zMzk5MiwgdHJlZS1vcHRp bWl6YXRpb24vMzUwODUsIHRyZWUtb3B0aW1pemF0aW9uLzM1MTcxCi0gIC0gaW5saW5lIGFzbSBv cHRpbWl6YXRpb24gZml4ICgjNDMyMTQ2LCBQUiBpbmxpbmUtYXNtLzM1MTYwKQotICAtIFNSQSBm aXggKCM0MzIwOTAsIFBSIGMrKy8zNTE0NCkKLS0gZml4ICNwcmFnbWEgb21wIHBhcmFsbGVsIGJv ZHkgY2FsbGluZyBuZXN0ZWQgZnVuY3Rpb25zIHdoaWNoIHN0b3JlCi0gIGludG8gc2hhcmVkIHBh cmVudCB2YXJpYWJsZXMgKFBSIG1pZGRsZS1lbmQvMzUxMzApCi0tIC4vLT4gYWZ0ZXIgZGVwZW5k ZW50IGV4cHIgcGFyc2luZyBmaXggKFBSIGMrKy8zNTEzOCkKLQotKiBXZWQgSmFuIDMwIDIwMDgg SmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4gNC4zLjAtMC43Ci0tIHVwZGF0ZSBmcm9t IHRydW5rCi0gIC0gZml4IElTTyBDOTkgNi43LjRwMyBkaWFnbm9zdGljcyAoIzQyNzYzNCwgUFIg Yy8zNTAxNykKLQotKiBGcmkgSmFuIDI1IDIwMDggSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0 LmNvbT4gNC4zLjAtMC42Ci0tIHVwZGF0ZSBmcm9tIHRoZSB0cnVuawotCi0qIFRodSBKYW4gMTAg MjAwOCBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA0LjMuMC0wLjUKLS0gdXBkYXRl IGZyb20gdGhlIHRydW5rCi0tIGRvbid0IHJlcXVpcmUgb24gcHBjL3BwYzY0IGxpYm11ZGZsYXAg aW4gZ2NjIHN1YnBhY2thZ2UKLQotKiBUaHUgRGVjIDIwIDIwMDcgSmFrdWIgSmVsaW5layA8amFr dWJAcmVkaGF0LmNvbT4gNC4zLjAtMC40Ci0tIHVwZGF0ZSBmcm9tIHRoZSB0cnVuawotLSBhZGp1 c3RtZW50cyB0byBidWlsZCBhZ2FpbnN0IHh1bHJ1bm5lci1kZXZlbAotCi0qIEZyaSBEZWMgMTQg MjAwNyBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA0LjMuMC0wLjMKLS0gYnVpbGQg ZmFzdGphciwgZ2phciBpcyB1bmNvbXBhcmFibHkgd29yc2UKLS0gZml4IHByb2ZpbGVkYm9vdHN0 cmFwIGFuZCB1c2UgaXQKLQotKiBXZWQgRGVjIDEyIDIwMDcgSmFrdWIgSmVsaW5layA8amFrdWJA cmVkaGF0LmNvbT4gNC4zLjAtMC4yCi0tIHVwZGF0ZSBmcm9tIHRoZSB0cnVuawotCi0qIFN1biBE ZWMgIDkgMjAwNyBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiA0LjMuMC0wLjEKLS0g aW5pdGlhbCA0LjMgcGFja2FnZSwgdXNpbmcgbmV3bHkgY3JlYXRlZCByZWRoYXQvZ2NjLTRfMy1i cmFuY2gKCmRpZmYgLS1naXQgYS9nY2M0NC1idWlsZC1pZC5wYXRjaCBiL2djYzQ0LWJ1aWxkLWlk LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3NmY5MzkKLS0tIC9k ZXYvbnVsbAorKysgYi9nY2M0NC1idWlsZC1pZC5wYXRjaApAQCAtMCwwICsxLDUyIEBACisyMDA3 LTA3LTIyICBSb2xhbmQgTWNHcmF0aCAgPHJvbGFuZEByZWRoYXQuY29tPgorCisJKiBjb25maWcv cnM2MDAwL3N5c3Y0LmggKExJTktfRUhfU1BFQyk6IEFkZCAtLWJ1aWxkLWlkIGZvcgorCW5vbi1y ZWxvY2F0YWJsZSBsaW5rLgorCSogY29uZmlnL2xpbnV4LmggKExJTktfRUhfU1BFQyk6IExpa2V3 aXNlLgorCSogY29uZmlnL2FscGhhL2VsZi5oIChMSU5LX0VIX1NQRUMpOiBMaWtld2lzZS4KKwkq IGNvbmZpZy9pYTY0L2xpbnV4LmggKExJTktfRUhfU1BFQyk6IExpa2V3aXNlLgorCistLS0gZ2Nj L2NvbmZpZy9yczYwMDAvc3lzdjQuaC5+MX4KKysrKyBnY2MvY29uZmlnL3JzNjAwMC9zeXN2NC5o CitAQCAtOTA2LDcgKzkwNiw3IEBAIGV4dGVybiBpbnQgZml4dXBsYWJlbG5vOworICAgJXshZHlu YW1pYy1saW5rZXI6LWR5bmFtaWMtbGlua2VyICIgTElOVVhfRFlOQU1JQ19MSU5LRVIgIn19fSIK KyAKKyAjaWYgZGVmaW5lZChIQVZFX0xEX0VIX0ZSQU1FX0hEUikKKy0jIGRlZmluZSBMSU5LX0VI X1NQRUMgIiV7IXN0YXRpYzotLWVoLWZyYW1lLWhkcn0gIgorKyMgZGVmaW5lIExJTktfRUhfU1BF QyAiJXshc3RhdGljOi0tZWgtZnJhbWUtaGRyfSAleyFyOi0tYnVpbGQtaWR9ICIKKyAjZW5kaWYK KyAKKyAjZGVmaW5lIENQUF9PU19MSU5VWF9TUEVDICItRF9fdW5peF9fIC1EX19nbnVfbGludXhf XyAtRF9fbGludXhfXyBcCistLS0gZ2NjL2NvbmZpZy9saW51eC5oLn4xfgorKysrIGdjYy9jb25m aWcvbGludXguaAorQEAgLTg1LDcgKzg1LDcgQEAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu ICAqLworICAgICB9IHdoaWxlICgwKQorIAorICNpZiBkZWZpbmVkKEhBVkVfTERfRUhfRlJBTUVf SERSKQorLSNkZWZpbmUgTElOS19FSF9TUEVDICIleyFzdGF0aWM6LS1laC1mcmFtZS1oZHJ9ICIK KysjZGVmaW5lIExJTktfRUhfU1BFQyAiJXshc3RhdGljOi0tZWgtZnJhbWUtaGRyfSAleyFyOi0t YnVpbGQtaWR9ICIKKyAjZW5kaWYKKyAKKyAvKiBEZWZpbmUgdGhpcyBzbyB3ZSBjYW4gY29tcGls ZSBNUyBjb2RlIGZvciB1c2Ugd2l0aCBXSU5FLiAgKi8KKy0tLSBnY2MvY29uZmlnL2FscGhhL2Vs Zi5oLn4xfgorKysrIGdjYy9jb25maWcvYWxwaGEvZWxmLmgKK0BAIC00MjEsNyArNDIxLDcgQEAg ZXh0ZXJuIGludCBhbHBoYV90aGlzX2dwZGlzcF9zZXF1ZW5jZV9udQorICAgIEkgaW1hZ2luZSB0 aGF0IG90aGVyIHN5c3RlbXMgd2lsbCBjYXRjaCB1cC4gIEluIHRoZSBtZWFudGltZSwgaXQKKyAg ICBkb2Vzbid0IGhhcm0gdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGRhdGEgZXhpc3RzIHRvIGJlIHVz ZWQgbGF0ZXIuICAqLworICNpZiBkZWZpbmVkKEhBVkVfTERfRUhfRlJBTUVfSERSKQorLSNkZWZp bmUgTElOS19FSF9TUEVDICIleyFzdGF0aWM6LS1laC1mcmFtZS1oZHJ9ICIKKysjZGVmaW5lIExJ TktfRUhfU1BFQyAiJXshc3RhdGljOi0tZWgtZnJhbWUtaGRyfSAleyFyOi0tYnVpbGQtaWR9ICIK KyAjZW5kaWYKKyAKKyAvKiBBIEMgc3RhdGVtZW50IChzYW5zIHNlbWljb2xvbikgdG8gb3V0cHV0 IHRvIHRoZSBzdGRpbyBzdHJlYW0gU1RSRUFNCistLS0gZ2NjL2NvbmZpZy9pYTY0L2xpbnV4Lmgu fjF+CisrKysgZ2NjL2NvbmZpZy9pYTY0L2xpbnV4LmgKK0BAIC01Niw3ICs1Niw3IEBAIGRvIHsJ CQkJCQlcCisgICAgU2lnbmFsaXplIHRoYXQgYmVjYXVzZSB3ZSBoYXZlIGZkZS1nbGliYywgd2Ug ZG9uJ3QgbmVlZCBhbGwgQyBzaGFyZWQgbGlicworICAgIGxpbmtlZCBhZ2FpbnN0IC1sZ2NjX3Mu ICAqLworICN1bmRlZiBMSU5LX0VIX1NQRUMKKy0jZGVmaW5lIExJTktfRUhfU1BFQyAiIgorKyNk ZWZpbmUgTElOS19FSF9TUEVDICIleyFyOi0tYnVpbGQtaWR9ICIKKyAKKyAjZGVmaW5lIE1EX1VO V0lORF9TVVBQT1JUICJjb25maWcvaWE2NC9saW51eC11bndpbmQuaCIKKyAKCmRpZmYgLS1naXQg YS9nY2M0NC1jKystYnVpbHRpbi1yZWRlY2wucGF0Y2ggYi9nY2M0NC1jKystYnVpbHRpbi1yZWRl Y2wucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzc2NTVhZAotLS0g L2Rldi9udWxsCisrKyBiL2djYzQ0LWMrKy1idWlsdGluLXJlZGVjbC5wYXRjaApAQCAtMCwwICsx LDEwMiBAQAorMjAwNy0xMC0wMiAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CisK KwkqIGRlY2wuYyAoZHVwbGljYXRlX2RlY2xzKTogV2hlbiByZWRlY2xhcmluZyBhIGJ1aWx0aW4g ZnVuY3Rpb24sCisJa2VlcCB0aGUgbWVyZ2VkIGRlY2wgYnVpbHRpbiB3aGVuZXZlciB0eXBlcyBt YXRjaCwgZXZlbiBpZiBuZXcKKwlkZWNsIGRlZmluZXMgYSBmdW5jdGlvbi4KKworCSogZ2NjLmRn L2J1aWx0aW5zLTY1LmM6IE5ldyB0ZXN0LgorCSogZysrLmRnL2V4dC9idWlsdGluMTAuQzogTmV3 IHRlc3QuCisKKy0tLSBnY2MvY3AvZGVjbC5jLmpqCTIwMDctMTAtMDEgMjI6MTE6MDkuMDAwMDAw MDAwICswMjAwCisrKysgZ2NjL2NwL2RlY2wuYwkyMDA3LTEwLTAyIDExOjM5OjQ2LjAwMDAwMDAw MCArMDIwMAorQEAgLTE5ODgsMjMgKzE5ODgsMjEgQEAgZHVwbGljYXRlX2RlY2xzICh0cmVlIG5l d2RlY2wsIHRyZWUgb2xkZAorIAkgIERFQ0xfQVJHVU1FTlRTIChvbGRkZWNsKSA9IERFQ0xfQVJH VU1FTlRTIChuZXdkZWNsKTsKKyAJICBERUNMX1JFU1VMVCAob2xkZGVjbCkgPSBERUNMX1JFU1VM VCAobmV3ZGVjbCk7CisgCX0KKysgICAgICAvKiBJZiByZWRlY2xhcmluZyBhIGJ1aWx0aW4gZnVu Y3Rpb24sIGl0IHN0YXlzIGJ1aWx0IGluLiAgKi8KKysgICAgICBpZiAodHlwZXNfbWF0Y2ggJiYg REVDTF9CVUlMVF9JTiAob2xkZGVjbCkpCisrCXsKKysJICBERUNMX0JVSUxUX0lOX0NMQVNTIChu ZXdkZWNsKSA9IERFQ0xfQlVJTFRfSU5fQ0xBU1MgKG9sZGRlY2wpOworKwkgIERFQ0xfRlVOQ1RJ T05fQ09ERSAobmV3ZGVjbCkgPSBERUNMX0ZVTkNUSU9OX0NPREUgKG9sZGRlY2wpOworKwkgIC8q IElmIHdlJ3JlIGtlZXBpbmcgdGhlIGJ1aWx0LWluIGRlZmluaXRpb24sIGtlZXAgdGhlIHJ0bCwK KysJICAgICByZWdhcmRsZXNzIG9mIGRlY2xhcmF0aW9uIG1hdGNoZXMuICAqLworKwkgIENPUFlf REVDTF9SVEwgKG9sZGRlY2wsIG5ld2RlY2wpOworKwl9CisgICAgICAgaWYgKG5ld19kZWZpbmVz X2Z1bmN0aW9uKQorIAkvKiBJZiBkZWZpbmluZyBhIGZ1bmN0aW9uIGRlY2xhcmVkIHdpdGggb3Ro ZXIgbGFuZ3VhZ2UKKyAJICAgbGlua2FnZSwgdXNlIHRoZSBwcmV2aW91c2x5IGRlY2xhcmVkIGxh bmd1YWdlIGxpbmthZ2UuICAqLworIAlTRVRfREVDTF9MQU5HVUFHRSAobmV3ZGVjbCwgREVDTF9M QU5HVUFHRSAob2xkZGVjbCkpOworICAgICAgIGVsc2UgaWYgKHR5cGVzX21hdGNoKQorIAl7Cist CSAgLyogSWYgcmVkZWNsYXJpbmcgYSBidWlsdGluIGZ1bmN0aW9uLCBhbmQgbm90IGEgZGVmaW5p dGlvbiwKKy0JICAgICBpdCBzdGF5cyBidWlsdCBpbi4gICovCistCSAgaWYgKERFQ0xfQlVJTFRf SU4gKG9sZGRlY2wpKQorLQkgICAgeworLQkgICAgICBERUNMX0JVSUxUX0lOX0NMQVNTIChuZXdk ZWNsKSA9IERFQ0xfQlVJTFRfSU5fQ0xBU1MgKG9sZGRlY2wpOworLQkgICAgICBERUNMX0ZVTkNU SU9OX0NPREUgKG5ld2RlY2wpID0gREVDTF9GVU5DVElPTl9DT0RFIChvbGRkZWNsKTsKKy0JICAg ICAgLyogSWYgd2UncmUga2VlcGluZyB0aGUgYnVpbHQtaW4gZGVmaW5pdGlvbiwga2VlcCB0aGUg cnRsLAorLQkJIHJlZ2FyZGxlc3Mgb2YgZGVjbGFyYXRpb24gbWF0Y2hlcy4gICovCistCSAgICAg IENPUFlfREVDTF9SVEwgKG9sZGRlY2wsIG5ld2RlY2wpOworLQkgICAgfQorLQorIAkgIERFQ0xf UkVTVUxUIChuZXdkZWNsKSA9IERFQ0xfUkVTVUxUIChvbGRkZWNsKTsKKyAJICAvKiBEb24ndCBj bGVhciBvdXQgdGhlIGFyZ3VtZW50cyBpZiB3ZSdyZSByZWRlZmluaW5nIGEgZnVuY3Rpb24uICAq LworIAkgIGlmIChERUNMX0FSR1VNRU5UUyAob2xkZGVjbCkpCistLS0gZ2NjL3Rlc3RzdWl0ZS9n Y2MuZGcvYnVpbHRpbnMtNjUuYy5qagkyMDA3LTEwLTAyIDExOjIzOjUxLjAwMDAwMDAwMCArMDIw MAorKysrIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL2J1aWx0aW5zLTY1LmMJMjAwNy0xMC0wMiAxMToy NDoxMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMjUgQEAKKysvKiB7IGRnLWRvIGNvbXBp bGUgfSAqLworKy8qIHsgZGctb3B0aW9ucyAiLU8yIiB9ICovCisrCisrdHlwZWRlZiBfX1NJWkVf VFlQRV9fIHNpemVfdDsKKytleHRlcm4gdm9pZCBfX2Noa19mYWlsICh2b2lkKTsKKytleHRlcm4g aW50IHNucHJpbnRmIChjaGFyICosIHNpemVfdCwgY29uc3QgY2hhciAqLCAuLi4pOworK2V4dGVy biBpbmxpbmUgX19hdHRyaWJ1dGVfXygoZ251X2lubGluZSwgYWx3YXlzX2lubGluZSkpIGludCBz bnByaW50ZiAoY2hhciAqYSwgc2l6ZV90IGIsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQorK3sKKysg IGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKGEsIDApICE9IC0xVUwgJiYgX19idWlsdGluX29i amVjdF9zaXplIChhLCAwKSA8IGIpCisrICAgIF9fY2hrX2ZhaWwgKCk7CisrICByZXR1cm4gX19i dWlsdGluX3NucHJpbnRmIChhLCBiLCBmbXQsIF9fYnVpbHRpbl92YV9hcmdfcGFjayAoKSk7Cisr fQorK2V4dGVybiBpbnQgc25wcmludGYgKGNoYXIgKiwgc2l6ZV90LCBjb25zdCBjaGFyICosIC4u LikgX19hc20gKCJteXNucHJpbnRmIik7CisrCisrY2hhciBidWZbMTBdOworKworK2ludAorK21h aW4gKHZvaWQpCisreworKyAgc25wcmludGYgKGJ1ZiwgMTAsICIlZCVkXG4iLCAxMCwgMTApOwor KyAgcmV0dXJuIDA7CisrfQorKworKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAibXlz bnByaW50ZiIgfSB9ICovCisrLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCAiX19j aGtfZmFpbCIgfSB9ICovCistLS0gZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvZXh0L2J1aWx0aW4xMC5D LmpqCTIwMDctMTAtMDIgMTE6MTk6NDUuMDAwMDAwMDAwICswMjAwCisrKysgZ2NjL3Rlc3RzdWl0 ZS9nKysuZGcvZXh0L2J1aWx0aW4xMC5DCTIwMDctMTAtMDIgMTE6MjM6MjYuMDAwMDAwMDAwICsw MjAwCitAQCAtMCwwICsxLDI3IEBACisrLy8geyBkZy1kbyBjb21waWxlIH0KKysvLyB7IGRnLW9w dGlvbnMgIi1PMiIgfQorKworK3R5cGVkZWYgX19TSVpFX1RZUEVfXyBzaXplX3Q7CisrZXh0ZXJu ICJDIiB7CisrZXh0ZXJuIHZvaWQgX19jaGtfZmFpbCAodm9pZCk7CisrZXh0ZXJuIGludCBzbnBy aW50ZiAoY2hhciAqLCBzaXplX3QsIGNvbnN0IGNoYXIgKiwgLi4uKTsKKytleHRlcm4gaW5saW5l IF9fYXR0cmlidXRlX18oKGdudV9pbmxpbmUsIGFsd2F5c19pbmxpbmUpKSBpbnQgc25wcmludGYg KGNoYXIgKmEsIHNpemVfdCBiLCBjb25zdCBjaGFyICpmbXQsIC4uLikKKyt7CisrICBpZiAoX19i dWlsdGluX29iamVjdF9zaXplIChhLCAwKSAhPSAtMVVMICYmIF9fYnVpbHRpbl9vYmplY3Rfc2l6 ZSAoYSwgMCkgPCBiKQorKyAgICBfX2Noa19mYWlsICgpOworKyAgcmV0dXJuIF9fYnVpbHRpbl9z bnByaW50ZiAoYSwgYiwgZm10LCBfX2J1aWx0aW5fdmFfYXJnX3BhY2sgKCkpOworK30KKytleHRl cm4gaW50IHNucHJpbnRmIChjaGFyICosIHNpemVfdCwgY29uc3QgY2hhciAqLCAuLi4pIF9fYXNt ICgibXlzbnByaW50ZiIpOworK30KKysKKytjaGFyIGJ1ZlsxMF07CisrCisraW50CisrbWFpbiAo dm9pZCkKKyt7CisrICBzbnByaW50ZiAoYnVmLCAxMCwgIiVkJWRcbiIsIDEwLCAxMCk7CisrICBy ZXR1cm4gMDsKKyt9CisrCisrLy8geyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJteXNucHJp bnRmIiB9IH0KKysvLyB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90ICJfX2Noa19mYWls IiB9IH0KCmRpZmYgLS1naXQgYS9nY2M0NC1oYWNrLnBhdGNoIGIvZ2NjNDQtaGFjay5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ODgwYjEyCi0tLSAvZGV2L251bGwK KysrIGIvZ2NjNDQtaGFjay5wYXRjaApAQCAtMCwwICsxLDExMyBAQAorLS0tIGxpYmFkYS9NYWtl ZmlsZS5pbi5qagkyMDA5LTAxLTE0IDEyOjA3OjM1LjAwMDAwMDAwMCArMDEwMAorKysrIGxpYmFk YS9NYWtlZmlsZS5pbgkyMDA5LTAxLTE1IDE0OjI1OjMzLjAwMDAwMDAwMCArMDEwMAorQEAgLTY2 LDE3ICs2NiwzOSBAQCB0YXJnZXRfbm9uY2Fub25pY2FsOj1AdGFyZ2V0X25vbmNhbm9uaWNhCisg dmVyc2lvbiA6PSAkKHNoZWxsIGNhdCAkKHNyY2RpcikvLi4vZ2NjL0JBU0UtVkVSKQorIGxpYnN1 YmRpciA6PSAkKGxpYmRpcikvZ2NjLyQodGFyZ2V0X25vbmNhbm9uaWNhbCkvJCh2ZXJzaW9uKSQo TVVMVElTVUJESVIpCisgCisrREVGQVVMVE1VTFRJRkxBR1MgOj0KKytpZmVxICgkKE1VTFRJU1VC RElSKSwpCisrdGFyZzo9JChzdWJzdCAtLCAsJCh0YXJnZXQpKQorK2FyY2g6PSQod29yZCAxLCQo dGFyZykpCisraWZlcSAoJCh3b3JkcyAkKHRhcmcpKSwyKQorK29zeXM6PSQod29yZCAyLCQodGFy ZykpCisrZWxzZQorK29zeXM6PSQod29yZCAzLCQodGFyZykpCisrZW5kaWYKKytpZmVxICgkKHN0 cmlwICQoZmlsdGVyLW91dCBpJTg2IHg4Nl82NCBwb3dlcnBjJSBwcGMlIHMzOTAlIHNwYXJjJSBs aW51eCUsICQoYXJjaCkgJChvc3lzKSkpLCkKKytpZmVxICgkKHNoZWxsICQoQ0MpICQoQ0ZMQUdT KSAtcHJpbnQtbXVsdGktb3MtZGlyZWN0b3J5KSwuLi9saWI2NCkKKytERUZBVUxUTVVMVElGTEFH UyA6PSAtbTY0CisrZWxzZQorK2lmZXEgKCQoc3RyaXAgJChmaWx0ZXItb3V0IHMzOTAlLCAkKGFy Y2gpKSksKQorK0RFRkFVTFRNVUxUSUZMQUdTIDo9IC1tMzEKKytlbHNlCisrREVGQVVMVE1VTFRJ RkxBR1MgOj0gLW0zMgorK2VuZGlmCisrZW5kaWYKKytlbmRpZgorK2VuZGlmCisrCisgIyBleGVl eHQgc2hvdWxkIG5vdCBiZSB1c2VkIGJlY2F1c2UgaXQncyB0aGUgKmhvc3QqIGV4ZWV4dC4gIFdl J3JlIGJ1aWxkaW5nCisgIyBhICp0YXJnZXQqIGxpYnJhcnksIGFyZW4ndCB3ZT8hPyAgTGlrZXdp c2UgZm9yIENDLiAgU3RpbGwsIHByb3ZpZGUgYm9ndXMKKyAjIGRlZmluaXRpb25zIGp1c3QgaW4g Y2FzZSBzb21ldGhpbmcgc2xpcHMgdGhyb3VnaCB0aGUgc2FmZXR5IG5ldCBwcm92aWRlZAorICMg YnkgcmVjdXJzaXZlIG1ha2UgaW52b2NhdGlvbnMgaW4gZ2NjL2FkYS9NYWtlZmlsZS5pbgorIExJ QkFEQV9GTEFHU19UT19QQVNTID0gXAorICAgICAgICAgIk1BS0VPVkVSUklERVM9IiBcCistICAg ICAgICAiTERGTEFHUz0kKExERkxBR1MpIiBcCisrICAgICAgICAiTERGTEFHUz0kKHN0cmlwICQo TERGTEFHUykgJChERUZBVUxUTVVMVElGTEFHUykpIiBcCisgICAgICAgICAiTE5fUz0kKExOX1Mp IiBcCisgICAgICAgICAiU0hFTEw9JChTSEVMTCkiIFwKKy0gICAgICAgICJHTkFUTElCRkxBR1M9 JChHTkFUTElCRkxBR1MpICQoTVVMVElGTEFHUykiIFwKKy0gICAgICAgICJHTkFUTElCQ0ZMQUdT PSQoR05BVExJQkNGTEFHUykgJChNVUxUSUZMQUdTKSIgXAorKyAgICAgICAgIkdOQVRMSUJGTEFH Uz0kKHN0cmlwICQoR05BVExJQkZMQUdTKSAkKE1VTFRJRkxBR1MpICQoREVGQVVMVE1VTFRJRkxB R1MpKSIgXAorKyAgICAgICAgIkdOQVRMSUJDRkxBR1M9JChzdHJpcCAkKEdOQVRMSUJDRkxBR1Mp ICQoTVVMVElGTEFHUykgJChERUZBVUxUTVVMVElGTEFHUykpIiBcCisgICAgICAgICAiVEFSR0VU X0xJQkdDQzJfQ0ZMQUdTPSQoVEFSR0VUX0xJQkdDQzJfQ0ZMQUdTKSIgXAorICAgICAgICAgIlRI UkVBRF9LSU5EPSQoVEhSRUFEX0tJTkQpIiBcCisgICAgICAgICAiVFJBQ0U9JChUUkFDRSkiIFwK K0BAIC04Nyw3ICsxMDksNyBAQCBMSUJBREFfRkxBR1NfVE9fUEFTUyA9IFwKKyAgICAgICAgICJl eGVleHQ9LmV4ZWV4dC5zaG91bGQubm90LmJlLnVzZWQgIiBcCisgCSdDQz10aGUuaG9zdC5jb21w aWxlci5zaG91bGQubm90LmJlLm5lZWRlZCcgXAorIAkiR0NDX0ZPUl9UQVJHRVQ9JChDQykiIFwK Ky0gICAgICAgICJDRkxBR1M9JChDRkxBR1MpICQoV0FSTl9DRkxBR1MpIgorKyAgICAgICAgIkNG TEFHUz0kKHN0cmlwICQoQ0ZMQUdTKSAkKERFRkFVTFRNVUxUSUZMQUdTKSAkKFdBUk5fQ0ZMQUdT KSkiCisgCisgIyBSdWxlcyB0byBidWlsZCBnbmF0bGliLgorIC5QSE9OWTogZ25hdGxpYiBnbmF0 bGliLXBsYWluIGduYXRsaWItc2psaiBnbmF0bGliLXpjeCBnbmF0bGliLXNoYXJlZCBvc2NvbnMK Ky0tLSBsaWJqYXZhL2NsYXNzcGF0aC9uYXRpdmUvcGx1Z2luL2djandlYnBsdWdpbi5jYy5qagky MDA5LTAxLTE0IDEyOjA4OjM0LjAwMDAwMDAwMCArMDEwMAorKysrIGxpYmphdmEvY2xhc3NwYXRo L25hdGl2ZS9wbHVnaW4vZ2Nqd2VicGx1Z2luLmNjCTIwMDktMDEtMTUgMjE6MjA6MTcuMDAwMDAw MDAwICswMTAwCitAQCAtNDUsNyArNDUsNyBAQCBleGNlcHRpb24gc3RhdGVtZW50IGZyb20geW91 ciB2ZXJzaW9uLiAqCisgCisgLy8gTmV0c2NhcGUgcGx1Z2luIEFQSSBpbmNsdWRlcy4KKyAjaW5j bHVkZSA8bnBhcGkuaD4KKy0jaW5jbHVkZSA8bnB1cHAuaD4KKysjaW5jbHVkZSA8bnBmdW5jdGlv bnMuaD4KKyAKKyAvLyBHTGliIGluY2x1ZGVzLgorICNpbmNsdWRlIDxnbGliLmg+CitAQCAtODI3 LDcgKzgyNyw3IEBAIEdDSl9VUkxOb3RpZnkgKE5QUCBpbnN0YW5jZSwgY29uc3QgY2hhcioKKyAg IFBMVUdJTl9ERUJVRyAoIkdDSl9VUkxOb3RpZnkgcmV0dXJuIik7CisgfQorIAorLWpyZWYKKyt2 b2lkICoKKyBHQ0pfR2V0SmF2YUNsYXNzICh2b2lkKQorIHsKKyAgIFBMVUdJTl9ERUJVRyAoIkdD Sl9HZXRKYXZhQ2xhc3MiKTsKK0BAIC0xNjY5LDE3ICsxNjY5LDE3IEBAIE5QX0luaXRpYWxpemUg KE5QTmV0c2NhcGVGdW5jcyogYnJvd3NlclQKKyAgIC8vIFJldHVybiB0byB0aGUgYnJvd3NlciB0 aGUgcGx1Z2luIGZ1bmN0aW9ucyB0aGF0IHdlIGltcGxlbWVudC4KKyAgIHBsdWdpblRhYmxlLT52 ZXJzaW9uID0gKE5QX1ZFUlNJT05fTUFKT1IgPDwgOCkgKyBOUF9WRVJTSU9OX01JTk9SOworICAg cGx1Z2luVGFibGUtPnNpemUgPSBzaXplb2YgKE5QUGx1Z2luRnVuY3MpOworLSAgcGx1Z2luVGFi bGUtPm5ld3AgPSBOZXdOUFBfTmV3UHJvYyAoR0NKX05ldyk7CistICBwbHVnaW5UYWJsZS0+ZGVz dHJveSA9IE5ld05QUF9EZXN0cm95UHJvYyAoR0NKX0Rlc3Ryb3kpOworLSAgcGx1Z2luVGFibGUt PnNldHdpbmRvdyA9IE5ld05QUF9TZXRXaW5kb3dQcm9jIChHQ0pfU2V0V2luZG93KTsKKy0gIHBs dWdpblRhYmxlLT5uZXdzdHJlYW0gPSBOZXdOUFBfTmV3U3RyZWFtUHJvYyAoR0NKX05ld1N0cmVh bSk7CistICBwbHVnaW5UYWJsZS0+ZGVzdHJveXN0cmVhbSA9IE5ld05QUF9EZXN0cm95U3RyZWFt UHJvYyAoR0NKX0Rlc3Ryb3lTdHJlYW0pOworLSAgcGx1Z2luVGFibGUtPmFzZmlsZSA9IE5ld05Q UF9TdHJlYW1Bc0ZpbGVQcm9jIChHQ0pfU3RyZWFtQXNGaWxlKTsKKy0gIHBsdWdpblRhYmxlLT53 cml0ZXJlYWR5ID0gTmV3TlBQX1dyaXRlUmVhZHlQcm9jIChHQ0pfV3JpdGVSZWFkeSk7CistICBw bHVnaW5UYWJsZS0+d3JpdGUgPSBOZXdOUFBfV3JpdGVQcm9jIChHQ0pfV3JpdGUpOworLSAgcGx1 Z2luVGFibGUtPnByaW50ID0gTmV3TlBQX1ByaW50UHJvYyAoR0NKX1ByaW50KTsKKy0gIHBsdWdp blRhYmxlLT51cmxub3RpZnkgPSBOZXdOUFBfVVJMTm90aWZ5UHJvYyAoR0NKX1VSTE5vdGlmeSk7 CistICBwbHVnaW5UYWJsZS0+Z2V0dmFsdWUgPSBOZXdOUFBfR2V0VmFsdWVQcm9jIChHQ0pfR2V0 VmFsdWUpOworKyAgcGx1Z2luVGFibGUtPm5ld3AgPSAoTlBQX05ld1Byb2NQdHIpIChHQ0pfTmV3 KTsKKysgIHBsdWdpblRhYmxlLT5kZXN0cm95ID0gKE5QUF9EZXN0cm95UHJvY1B0cikgKEdDSl9E ZXN0cm95KTsKKysgIHBsdWdpblRhYmxlLT5zZXR3aW5kb3cgPSAoTlBQX1NldFdpbmRvd1Byb2NQ dHIpIChHQ0pfU2V0V2luZG93KTsKKysgIHBsdWdpblRhYmxlLT5uZXdzdHJlYW0gPSAoTlBQX05l d1N0cmVhbVByb2NQdHIpIChHQ0pfTmV3U3RyZWFtKTsKKysgIHBsdWdpblRhYmxlLT5kZXN0cm95 c3RyZWFtID0gKE5QUF9EZXN0cm95U3RyZWFtUHJvY1B0cikgKEdDSl9EZXN0cm95U3RyZWFtKTsK KysgIHBsdWdpblRhYmxlLT5hc2ZpbGUgPSAoTlBQX1N0cmVhbUFzRmlsZVByb2NQdHIpIChHQ0pf U3RyZWFtQXNGaWxlKTsKKysgIHBsdWdpblRhYmxlLT53cml0ZXJlYWR5ID0gKE5QUF9Xcml0ZVJl YWR5UHJvY1B0cikgKEdDSl9Xcml0ZVJlYWR5KTsKKysgIHBsdWdpblRhYmxlLT53cml0ZSA9IChO UFBfV3JpdGVQcm9jUHRyKSAoR0NKX1dyaXRlKTsKKysgIHBsdWdpblRhYmxlLT5wcmludCA9IChO UFBfUHJpbnRQcm9jUHRyKSAoR0NKX1ByaW50KTsKKysgIHBsdWdpblRhYmxlLT51cmxub3RpZnkg PSAoTlBQX1VSTE5vdGlmeVByb2NQdHIpIChHQ0pfVVJMTm90aWZ5KTsKKysgIHBsdWdpblRhYmxl LT5nZXR2YWx1ZSA9IChOUFBfR2V0VmFsdWVQcm9jUHRyKSAoR0NKX0dldFZhbHVlKTsKKyAgIAor ICAgaW5pdGlhbGl6ZWQgPSB0cnVlOworIAorLS0tIGdjYy9hZGEvbWFrZS5hZGIJMjAwOC0xMS0w NyAyMzowMDozMi4wMDAwMDAwMDAgKzAxMDAKKysrKyBnY2MvYWRhL21ha2UuYWRiCTIwMDktMDEt MTYgMTc6NTU6MDIuMDAwMDAwMDAwICswMTAwCitAQCAtODAzOSw2ICs4MDM5LDcgQEAgcGFja2Fn ZSBib2R5IE1ha2UgaXMKKyAgICAgICAgICAgICAgb3IgZWxzZSBBcmd2ICgyIC4uIEFyZ3YnTGFz dCkgPSAicGciCisgICAgICAgICAgICAgIG9yIGVsc2UgKEFyZ3YgKDIpID0gJ20nIGFuZCB0aGVu IEFyZ3YnTGFzdCA+IDIpCisgICAgICAgICAgICAgIG9yIGVsc2UgKEFyZ3YgKDIpID0gJ2YnIGFu ZCB0aGVuIEFyZ3YnTGFzdCA+IDIpCisrICAgICAgICAgICAgIG9yIGVsc2UgKEFyZ3YnTGFzdCA+ PSA4IGFuZCB0aGVuIEFyZ3YgKDIgLi4gOCkgPSAiLXBhcmFtPSIpCisgICAgICAgICAgdGhlbgor ICAgICAgICAgICAgIEFkZF9Td2l0Y2ggKEFyZ3YsIENvbXBpbGVyLCBBbmRfU2F2ZSA9PiBBbmRf U2F2ZSk7CisgICAgICAgICAgICAgQWRkX1N3aXRjaCAoQXJndiwgTGlua2VyLCBBbmRfU2F2ZSA9 PiBBbmRfU2F2ZSk7CgpkaWZmIC0tZ2l0IGEvZ2NjNDQtaTM4Ni1saWJnb21wLnBhdGNoIGIvZ2Nj NDQtaTM4Ni1saWJnb21wLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjVkMWVlYTgKLS0tIC9kZXYvbnVsbAorKysgYi9nY2M0NC1pMzg2LWxpYmdvbXAucGF0Y2gKQEAg LTAsMCArMSw2MSBAQAorQnVpbGQgaTM4Ni5ycG0gbGliZ29tcCBhbmQgbGlic3VwYysrLmEoZ3Vh cmQubykgYXMgaTQ4NissIHByZS1pNDg2CitoYXJkd2FyZSBpc24ndCBzdXBwb3J0ZWQgYmVjYXVz ZSBOUFRMIGRvZXNuJ3Qgc3VwcG9ydCBpdCBhbnl3YXkuCisKKy0tLSBsaWJnb21wL2NvbmZpZ3Vy ZS50Z3QuamoJMjAwOC0wMS0xMCAyMDo1Mzo0OC4wMDAwMDAwMDAgKzAxMDAKKysrKyBsaWJnb21w L2NvbmZpZ3VyZS50Z3QJMjAwOC0wMy0yNyAxMjo0NDo1MS4wMDAwMDAwMDAgKzAxMDAKK0BAIC00 NCwxNCArNDQsMTQgQEAgaWYgdGVzdCAkZW5hYmxlX2xpbnV4X2Z1dGV4ID0geWVzOyB0aGVuCisg CTs7CisgCisgICAgICMgTm90ZSB0aGF0IGJhcmUgaTM4NiBpcyBub3QgaW5jbHVkZWQgaGVyZS4g IFdlIG5lZWQgY21weGNoZy4KKy0gICAgaVs0NTZdODYtKi1saW51eCopCisrICAgIGlbMzQ1Nl04 Ni0qLWxpbnV4KikKKyAJY29uZmlnX3BhdGg9ImxpbnV4L3g4NiBsaW51eCBwb3NpeCIKKyAJY2Fz ZSAiICR7Q0N9ICR7Q0ZMQUdTfSAiIGluCisgCSAgKiIgLW02NCAiKikKKyAJICAgIDs7CisgCSAg KikKKyAJICAgIGlmIHRlc3QgLXogIiR3aXRoX2FyY2giOyB0aGVuCistCSAgICAgIFhDRkxBR1M9 IiR7WENGTEFHU30gLW1hcmNoPWk0ODYgLW10dW5lPSR7dGFyZ2V0X2NwdX0iCisrCSAgICAgIFhD RkxBR1M9IiR7WENGTEFHU30gLW1hcmNoPWk0ODYgLW10dW5lPWdlbmVyaWMiCisgCSAgICBmaQor IAllc2FjCisgCTs7CitAQCAtNjMsNyArNjMsNyBAQCBpZiB0ZXN0ICRlbmFibGVfbGludXhfZnV0 ZXggPSB5ZXM7IHRoZW4KKyAJY29uZmlnX3BhdGg9ImxpbnV4L3g4NiBsaW51eCBwb3NpeCIKKyAJ Y2FzZSAiICR7Q0N9ICR7Q0ZMQUdTfSAiIGluCisgCSAgKiIgLW0zMiAiKikKKy0JICAgIFhDRkxB R1M9IiR7WENGTEFHU30gLW1hcmNoPWk0ODYgLW10dW5lPWk2ODYiCisrCSAgICBYQ0ZMQUdTPSIk e1hDRkxBR1N9IC1tYXJjaD1pNDg2IC1tdHVuZT1nZW5lcmljIgorIAkgICAgOzsKKyAJZXNhYwor IAk7OworLS0tIGxpYnN0ZGMrKy12My9saWJzdXBjKysvZ3VhcmQuY2MuamoJMjAwOC0wMy0wMSAw MDo1ODoyNC4wMDAwMDAwMDAgKzAxMDAKKysrKyBsaWJzdGRjKystdjMvbGlic3VwYysrL2d1YXJk LmNjCTIwMDgtMDMtMjcgMTQ6MDg6NDQuMDAwMDAwMDAwICswMTAwCitAQCAtMzUsNiArMzUsMjcg QEAKKyAjaW5jbHVkZSA8bmV3PgorICNpbmNsdWRlIDxleHQvYXRvbWljaXR5Lmg+CisgI2luY2x1 ZGUgPGV4dC9jb25jdXJyZW5jZS5oPgorKyNpZiBkZWZpbmVkIF9faTM4Nl9fICYmICFkZWZpbmVk IF9HTElCQ1hYX0FUT01JQ19CVUlMVElOU180CisrIyBkZWZpbmUgX0dMSUJDWFhfQVRPTUlDX0JV SUxUSU5TXzQgMQorKyMgZGVmaW5lIF9fc3luY192YWxfY29tcGFyZV9hbmRfc3dhcChhLCBiLCBj KSBcCisrICAoewkJCQkJCQkJXAorKyAgICAgdHlwZWRlZiBjaGFyIHNsdGFzdFtzaXplb2YgKCph KSA9PSBzaXplb2YgKGludCkgPyAxIDogLTFdOwlcCisrICAgICBpbnQgc2x0YXM7CQkJCQkJCVwK KysgICAgIF9fYXNtIF9fdm9sYXRpbGUgKCJsb2NrOyBjbXB4Y2hnbCAlMywgKCUxKSIJCVwKKysJ CSAgICAgICA6ICI9YSIgKHNsdGFzKQkJCQlcCisrCQkgICAgICAgOiAiciIgKGEpLCAiMCIgKGIp LCAiciIgKGMpIDogIm1lbW9yeSIpOwlcCisrICAgICBzbHRhczsJCQkJCQkJXAorKyAgIH0pCisr IyBkZWZpbmUgX19zeW5jX2xvY2tfdGVzdF9hbmRfc2V0KGEsIGIpIFwKKysgICh7CQkJCQkJCQlc CisrICAgICB0eXBlZGVmIGNoYXIgc2x0YXN0W3NpemVvZiAoKmEpID09IHNpemVvZiAoaW50KSA/ IDEgOiAtMV07CVwKKysgICAgIGludCBzbHRhczsJCQkJCQkJXAorKyAgICAgX19hc20gX192b2xh dGlsZSAoInhjaGdsICglMSksICUwIgkJCQlcCisrCQkgICAgICAgOiAiPXIiIChzbHRhcykJCQkJ XAorKwkJICAgICAgIDogInIiIChhKSwgIjAiIChiKSA6ICJtZW1vcnkiKTsJCVwKKysgICAgIHNs dGFzOwkJCQkJCQlcCisrICAgfSkKKysjZW5kaWYKKyAjaWYgZGVmaW5lZChfX0dUSFJFQURTKSAm JiBkZWZpbmVkKF9fR1RIUkVBRF9IQVNfQ09ORCkgXAorICAgICAmJiBkZWZpbmVkKF9HTElCQ1hY X0FUT01JQ19CVUlMVElOU180KSAmJiBkZWZpbmVkKF9HTElCQ1hYX0hBVkVfTElOVVhfRlVURVgp CisgIyBpbmNsdWRlIDxjbGltaXRzPgoKZGlmZiAtLWdpdCBhL2djYzQ0LWlhNjQtbGlidW53aW5k LnBhdGNoIGIvZ2NjNDQtaWE2NC1saWJ1bndpbmQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uOGUxMDk3OQotLS0gL2Rldi9udWxsCisrKyBiL2djYzQ0LWlhNjQtbGli dW53aW5kLnBhdGNoCkBAIC0wLDAgKzEsNTM4IEBACisyMDA0LTExLTI3ICBKYWt1YiBKZWxpbmVr ICA8amFrdWJAcmVkaGF0LmNvbT4KKworCSogY29uZmlnLmdjYyAoaWE2NCotKi1saW51eCopOiBJ ZiBuYXRpdmUgYW5kIGxpYmVsZiBpcyBpbnN0YWxsZWQsCisJdXNlIGlhNjQvdC1nbGliYy1uby1s aWJ1bndpbmQgaW5zdGVhZCBvZiB0aGUgb3RoZXIgdC0qdW53aW5kKgorCWZyYWdtZW50cy4KKwkq IGNvbmZpZy9pYTY0L3QtZ2xpYmMtbm8tbGlidW53aW5kOiBOZXcgZmlsZS4KKwkqIGNvbmZpZy9p YTY0L2NoYW5nZS1zeW12ZXIuYzogTmV3IGZpbGUuCisJKiBjb25maWcvaWE2NC91bndpbmQtaWE2 NC5jOiBJZiBVU0VfU1lNVkVSX0dMT0JBTCBhbmQgU0hBUkVELAorCWRlZmluZSBfVW53aW5kXyog dG8gX19zeW12ZXJnbG9iYWxfVW53aW5kXyouCisJKGFsaWFzKTogVW5kZWZpbmUuCisJKHN5bXZl cmdsb2JhbCk6IERlZmluZS4gIFVzZSBpdCBvbiBfVW53aW5kXyouCisJKiBjb25maWcvaWE2NC9t a21hcC1zeW12ZXItbXVsdGkuYXdrOiBOZXcgZmlsZS4KKwkqIGNvbmZpZy9pYTY0L2xpYmdjYy1p YTY0LW5vLWxpYnVud2luZC52ZXI6IE5ldyBmaWxlLgorCistLS0gZ2NjL2NvbmZpZy5nY2MuamoJ MjAwNC0xMC0wNCAwODo1NTo0NC4wMDAwMDAwMDAgLTA0MDAKKysrKyBnY2MvY29uZmlnLmdjYwky MDA0LTExLTEzIDA1OjIzOjUwLjAwMDAwMDAwMCAtMDUwMAorQEAgLTExODUsOSArMTE4NSwxNiBA QCBpYTY0Ki0qLWZyZWVic2QqKQorIAk7OworIGlhNjQqLSotbGludXgqKQorIAl0bV9maWxlPSIk e3RtX2ZpbGV9IGRieGVsZi5oIGVsZm9zLmggc3ZyNC5oIGxpbnV4LmggaWE2NC9zeXN2NC5oIGlh NjQvbGludXguaCIKKy0JdG1ha2VfZmlsZT0iJHt0bWFrZV9maWxlfSBpYTY0L3QtaWE2NCB0LWxp YnVud2luZCBpYTY0L3QtZ2xpYmMiCistCWlmIHRlc3QgeCR3aXRoX3N5c3RlbV9saWJ1bndpbmQg IT0geHllcyA7IHRoZW4KKy0JCXRtYWtlX2ZpbGU9IiR7dG1ha2VfZmlsZX0gdC1saWJ1bndpbmQt ZWxmIGlhNjQvdC1nbGliYy1saWJ1bndpbmQiCisrCXRtYWtlX2ZpbGU9IiR7dG1ha2VfZmlsZX0g aWE2NC90LWlhNjQiCisrCWlmIHRlc3QgeCR7dGFyZ2V0fSA9IHgke2hvc3R9ICYmIHRlc3QgeCR7 dGFyZ2V0fSA9IHgke2J1aWxkfSBcCisrCSAgICYmIGdyZXAgZ2VsZl9nZXR2ZXJkZWYgL3Vzci9p bmNsdWRlL2dlbGYuaCA+IC9kZXYvbnVsbCAyPiYxIFwKKysJICAgJiYgdGVzdCAtZiAvdXNyL2xp Yi9saWJlbGYuc287IHRoZW4KKysJCXRtYWtlX2ZpbGU9IiR7dG1ha2VfZmlsZX0gaWE2NC90LWds aWJjLW5vLWxpYnVud2luZCIKKysJZWxzZQorKwkJdG1ha2VfZmlsZT0iJHt0bWFrZV9maWxlfSB0 LWxpYnVud2luZCBpYTY0L3QtZ2xpYmMiCisrCQlpZiB0ZXN0IHgkd2l0aF9zeXN0ZW1fbGlidW53 aW5kICE9IHh5ZXMgOyB0aGVuCisrCQkJdG1ha2VfZmlsZT0iJHt0bWFrZV9maWxlfSB0LWxpYnVu d2luZC1lbGYgaWE2NC90LWdsaWJjLWxpYnVud2luZCIKKysJCWZpCisgCWZpCisgCXRhcmdldF9j cHVfZGVmYXVsdD0iTUFTS19HTlVfQVN8TUFTS19HTlVfTEQiCisgCWV4dHJhX3BhcnRzPSJjcnRi ZWdpbi5vIGNydGVuZC5vIGNydGJlZ2luUy5vIGNydGVuZFMubyBjcnRmYXN0bWF0aC5vIgorLS0t IGdjYy9jb25maWcvaWE2NC90LWdsaWJjLW5vLWxpYnVud2luZC5qagkyMDA0LTAyLTE4IDEwOjI3 OjM2LjAwMDAwMDAwMCAtMDUwMAorKysrIGdjYy9jb25maWcvaWE2NC90LWdsaWJjLW5vLWxpYnVu d2luZAkyMDA0LTExLTE1IDA5OjU2OjMzLjAwMDAwMDAwMCAtMDUwMAorQEAgLTAsMCArMSwzMCBA QAorKyMgRG9uJ3QgdXNlIHN5c3RlbSBsaWJ1bndpbmQgbGlicmFyeSBvbiBJQS02NCBHTElCQyBi YXNlZCBzeXN0ZW0sCisrIyBidXQgbWFrZSBfVW53aW5kXyogc3ltYm9scyB1bnZlcnNpb25lZCwg c28gdGhhdCBjcmVhdGVkIHByb2dyYW1zCisrIyBhcmUgdXNhYmxlIGV2ZW4gd2hlbiBsaWJnY2Nf cyB1c2VzIGxpYnVud2luZC4KKytMSUIyQURERUggKz0gJChzcmNkaXIpL2NvbmZpZy9pYTY0L2Zk ZS1nbGliYy5jCisrU0hMSUJfTUFQRklMRVMgKz0gJChzcmNkaXIpL2NvbmZpZy9pYTY0L2xpYmdj Yy1pYTY0LW5vLWxpYnVud2luZC52ZXIKKytTSExJQl9NS01BUCA9ICQoc3JjZGlyKS9jb25maWcv aWE2NC9ta21hcC1zeW12ZXItbXVsdGkuYXdrCisrCisrU0hMSUJfTElOSyA9ICQoR0NDX0ZPUl9U QVJHRVQpICQoTElCR0NDMl9DRkxBR1MpIC1zaGFyZWQgLW5vZGVmYXVsdGxpYnMgXAorKwktV2ws LS1zb25hbWU9JChTSExJQl9TT05BTUUpIFwKKysJLVdsLC0tdmVyc2lvbi1zY3JpcHQ9JChTSExJ Ql9NQVApIFwKKysJLW8gJChTSExJQl9ESVIpLyQoU0hMSUJfU09OQU1FKS50bXAgQG11bHRpbGli X2ZsYWdzQCAkKFNITElCX09CSlMpIC1sYyAmJiBcCisrCXJtIC1mICQoU0hMSUJfRElSKS8kKFNI TElCX1NPTElOSykgJiYgXAorKwlpZiBbIC1mICQoU0hMSUJfRElSKS8kKFNITElCX1NPTkFNRSkg XTsgdGhlbiBcCisrCSAgbXYgLWYgJChTSExJQl9ESVIpLyQoU0hMSUJfU09OQU1FKSBcCisrCQkk KFNITElCX0RJUikvJChTSExJQl9TT05BTUUpLmJhY2t1cDsgXAorKwllbHNlIHRydWU7IGZpICYm IFwKKysJZ2NjIC1PMiAtbyAkKFNITElCX0RJUikvJChTSExJQl9TT05BTUUpLnR3ZWFrIFwKKysJ ICAkJChnY2Nfc3JjZGlyKS9jb25maWcvaWE2NC9jaGFuZ2Utc3ltdmVyLmMgLWxlbGYgJiYgXAor KwkkKFNITElCX0RJUikvJChTSExJQl9TT05BTUUpLnR3ZWFrICQoU0hMSUJfRElSKS8kKFNITElC X1NPTkFNRSkudG1wIFwKKysJR0NDXzMuNC4yIF9HTE9CQUxfIFwKKysJX1Vud2luZF9HZXRHUiBf VW53aW5kX1JhaXNlRXhjZXB0aW9uIF9VbndpbmRfR2V0UmVnaW9uU3RhcnQgX1Vud2luZF9TZXRJ UCBcCisrCV9VbndpbmRfR2V0SVAgX1Vud2luZF9HZXRMYW5ndWFnZVNwZWNpZmljRGF0YSBfVW53 aW5kX1Jlc3VtZSBcCisrCV9VbndpbmRfRGVsZXRlRXhjZXB0aW9uIF9VbndpbmRfU2V0R1IgX1Vu d2luZF9Gb3JjZWRVbndpbmQgXAorKwlfVW53aW5kX0JhY2t0cmFjZSBfVW53aW5kX0ZpbmRFbmNs b3NpbmdGdW5jdGlvbiBfVW53aW5kX0dldENGQSBcCisrCV9VbndpbmRfUmVzdW1lX29yX1JldGhy b3cgX1Vud2luZF9HZXRCU1AgJiYgXAorKwlybSAtZiAkKFNITElCX0RJUikvJChTSExJQl9TT05B TUUpLnR3ZWFrICYmIFwKKysJbXYgJChTSExJQl9ESVIpLyQoU0hMSUJfU09OQU1FKS50bXAgJChT SExJQl9ESVIpLyQoU0hMSUJfU09OQU1FKSAmJiBcCisrCSQoTE5fUykgJChTSExJQl9TT05BTUUp ICQoU0hMSUJfRElSKS8kKFNITElCX1NPTElOSykKKysKKytUQVJHRVRfTElCR0NDMl9DRkxBR1Mg Kz0gLURVU0VfU1lNVkVSX0dMT0JBTAorLS0tIGdjYy9jb25maWcvaWE2NC9jaGFuZ2Utc3ltdmVy LmMuamoJMjAwNC0wMi0xOCAxMDoyNzozNi4wMDAwMDAwMDAgLTA1MDAKKysrKyBnY2MvY29uZmln L2lhNjQvY2hhbmdlLXN5bXZlci5jCTIwMDQtMTEtMTMgMDU6MjM6NTAuMDAwMDAwMDAwIC0wNTAw CitAQCAtMCwwICsxLDIxMSBAQAorKyNkZWZpbmUgX0dOVV9TT1VSQ0UgMQorKyNkZWZpbmUgX0ZJ TEVfT0ZGU0VUX0JJVFMgNjQKKysjaW5jbHVkZSA8ZW5kaWFuLmg+CisrI2luY2x1ZGUgPGVycm5v Lmg+CisrI2luY2x1ZGUgPGVycm9yLmg+CisrI2luY2x1ZGUgPGZjbnRsLmg+CisrI2luY2x1ZGUg PGZubWF0Y2guaD4KKysjaW5jbHVkZSA8Z2VsZi5oPgorKyNpbmNsdWRlIDxzdGRsaWIuaD4KKysj aW5jbHVkZSA8c3RyaW5nLmg+CisrI2luY2x1ZGUgPHVuaXN0ZC5oPgorKworK2ludAorK2NvbXB1 dGVfdmVyaWR4IChjb25zdCBjaGFyICpuYW1lLCBFbGYgKmVsZiwgRWxmX0RhdGEgKnZlcmQsIEdF bGZfU2hkciAqdmVyZF9zaGRyKQorK3sKKysgIGlmIChzdHJjbXAgKG5hbWUsICJfR0xPQkFMXyIp ID09IDApCisrICAgIHJldHVybiAxOworKworKyAgaW50IGNudDsKKysgIHNpemVfdCBvZmZzZXQg PSAwOworKyAgZm9yIChjbnQgPSB2ZXJkX3NoZHItPnNoX2luZm87IC0tY250ID49IDA7ICkKKysg ICAgeworKyAgICAgIEdFbGZfVmVyZGVmIGRlZm1lbTsKKysgICAgICBHRWxmX1ZlcmRlZiAqZGVm OworKyAgICAgIEdFbGZfVmVyZGF1eCBhdXhtZW07CisrICAgICAgR0VsZl9WZXJkYXV4ICphdXg7 CisrICAgICAgdW5zaWduZWQgaW50IGF1eG9mZnNldDsKKysKKysgICAgICAvKiBHZXQgdGhlIGRh dGEgYXQgdGhlIG5leHQgb2Zmc2V0LiAgKi8KKysgICAgICBkZWYgPSBnZWxmX2dldHZlcmRlZiAo dmVyZCwgb2Zmc2V0LCAmZGVmbWVtKTsKKysgICAgICBpZiAoZGVmID09IE5VTEwpCisrCWJyZWFr OworKworKyAgICAgIGF1eG9mZnNldCA9IG9mZnNldCArIGRlZi0+dmRfYXV4OworKyAgICAgIGF1 eCA9IGdlbGZfZ2V0dmVyZGF1eCAodmVyZCwgYXV4b2Zmc2V0LCAmYXV4bWVtKTsKKysgICAgICBp ZiAoYXV4ID09IE5VTEwpCisrCWJyZWFrOworKworKyAgICAgIGlmIChzdHJjbXAgKG5hbWUsIGVs Zl9zdHJwdHIgKGVsZiwgdmVyZF9zaGRyLT5zaF9saW5rLAorKwkJICBhdXgtPnZkYV9uYW1lKSkg PT0gMCkKKysJcmV0dXJuIGRlZi0+dmRfbmR4OworKworKyAgICAgIC8qIEZpbmQgdGhlIG5leHQg b2Zmc2V0LiAgKi8KKysgICAgICBvZmZzZXQgKz0gZGVmLT52ZF9uZXh0OworKyAgICB9CisrCisr ICByZXR1cm4gLTE7CisrfQorKworK2ludAorK21haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikK Kyt7CisrICBpZiAoYXJnYyA8IDQpCisrICAgIGVycm9yICgxLCAwLCAiVXNhZ2U6IGNoYW5nZV9z eW12ZXIgbGlicmFyeSBmcm9tX3N5bXZlciB0b19zeW12ZXIgc3ltYm9sLi4uXG5FeGFtcGxlOiBj aGFuZ2Vfc3ltdmVyIGxpYmZvby5zbyBGT09fMS4wICpnbG9iYWwqIGJhciBiYXoiKTsKKysKKysg IGNvbnN0IGNoYXIgKmZuYW1lID0gYXJndlsxXTsKKysKKysgIC8qIE9wZW4gdGhlIGZpbGUuICAq LworKyAgaW50IGZkOworKyAgZmQgPSBvcGVuIChmbmFtZSwgT19SRFdSKTsKKysgIGlmIChmZCA9 PSAtMSkKKysgICAgZXJyb3IgKDEsIGVycm5vLCBmbmFtZSk7CisrCisrICBlbGZfdmVyc2lvbiAo RVZfQ1VSUkVOVCk7CisrCisrICAvKiBOb3cgZ2V0IHRoZSBFTEYgZGVzY3JpcHRvci4gICovCisr ICBFbGYgKmVsZiA9IGVsZl9iZWdpbiAoZmQsIEVMRl9DX1JFQURfTU1BUCwgTlVMTCk7CisrICBp ZiAoZWxmID09IE5VTEwgfHwgZWxmX2tpbmQgKGVsZikgIT0gRUxGX0tfRUxGKQorKyAgICBlcnJv ciAoMSwgMCwgIkNvdWxkbid0IG9wZW4gJXM6ICVzIiwgZm5hbWUsIGVsZl9lcnJtc2cgKC0xKSk7 CisrCisrICBzaXplX3Qgc2hzdHJuZHg7CisrICAvKiBHZXQgdGhlIHNlY3Rpb24gaGVhZGVyIHN0 cmluZyB0YWJsZSBpbmRleC4gICovCisrICBpZiAoZWxmX2dldHNoc3RybmR4IChlbGYsICZzaHN0 cm5keCkgPCAwKQorKyAgICBlcnJvciAoMSwgMCwgImNhbm5vdCBnZXQgc2hzdHJuZHggZnJvbSAl cyIsIGZuYW1lKTsKKysKKysgIEdFbGZfRWhkciBlaGRyX21lbTsKKysgIEdFbGZfRWhkciAqZWhk cjsKKysKKysgIC8qIFdlIG5lZWQgdGhlIEVMRiBoZWFkZXIgaW4gYSBmZXcgcGxhY2VzLiAgKi8K KysgIGVoZHIgPSBnZWxmX2dldGVoZHIgKGVsZiwgJmVoZHJfbWVtKTsKKysgIGlmIChlaGRyID09 IE5VTEwpCisrICAgIGVycm9yICgxLCAwLCAiY291bGRuJ3QgZ2V0IEVMRiBoZWFkZXJzICVzOiAl cyIsIGZuYW1lLCBlbGZfZXJybXNnICgtMSkpOworKworKyAgRWxmX1NjbiAqc2NuID0gTlVMTDsK KysgIEdFbGZfU2hkciBzaGRyX21lbSwgdmVyZF9zaGRyLCB2ZXJfc2hkciwgZHluc3ltX3NoZHI7 CisrICBFbGZfRGF0YSAqdmVyID0gTlVMTCwgKnZlcmQgPSBOVUxMLCAqZHluc3ltID0gTlVMTDsK KysKKysgIHdoaWxlICgoc2NuID0gZWxmX25leHRzY24gKGVsZiwgc2NuKSkgIT0gTlVMTCkKKysg ICAgeworKyAgICAgIEdFbGZfU2hkciAqc2hkciA9IGdlbGZfZ2V0c2hkciAoc2NuLCAmc2hkcl9t ZW0pOworKworKyAgICAgIGlmIChzaGRyID09IE5VTEwpCisrCWVycm9yICgxLCAwLCAiY291bGRu J3QgZ2V0IHNoZHIgZnJvbSAlcyIsIGZuYW1lKTsKKysKKysgICAgICBpZiAoKHNoZHItPnNoX2Zs YWdzICYgU0hGX0FMTE9DKSAhPSAwKQorKwl7CisrCSAgY29uc3QgY2hhciAqbmFtZSA9IGVsZl9z dHJwdHIgKGVsZiwgc2hzdHJuZHgsIHNoZHItPnNoX25hbWUpOworKwkgIEVsZl9EYXRhICoqcDsK KysKKysJICBpZiAoc3RyY21wIChuYW1lLCAiLmdudS52ZXJzaW9uIikgPT0gMCkKKysJICAgIHsK KysJICAgICAgcCA9ICZ2ZXI7CisrCSAgICAgIHZlcl9zaGRyID0gKnNoZHI7CisrCSAgICB9Cisr CSAgZWxzZSBpZiAoc3RyY21wIChuYW1lLCAiLmdudS52ZXJzaW9uX2QiKSA9PSAwKQorKwkgICAg eworKwkgICAgICBwID0gJnZlcmQ7CisrCSAgICAgIHZlcmRfc2hkciA9ICpzaGRyOworKwkgICAg fQorKwkgIGVsc2UgaWYgKHN0cmNtcCAobmFtZSwgIi5keW5zeW0iKSA9PSAwKQorKwkgICAgewor KwkgICAgICBwID0gJmR5bnN5bTsKKysJICAgICAgZHluc3ltX3NoZHIgPSAqc2hkcjsKKysJICAg IH0KKysJICBlbHNlCisrCSAgICBjb250aW51ZTsKKysKKysJICBpZiAoKnAgIT0gTlVMTCkKKysJ ICAgIGVycm9yICgxLCAwLCAiVHdvICVzIHNlY3Rpb25zIGluICVzIiwgbmFtZSwgZm5hbWUpOwor KwkgICpwID0gZWxmX2dldGRhdGEgKHNjbiwgTlVMTCk7CisrCSAgaWYgKCpwID09IE5VTEwgfHwg ZWxmX2dldGRhdGEgKHNjbiwgKnApICE9IE5VTEwpCisrCSAgICBlcnJvciAoMSwgMCwgIk5vIGRh dGEgb3Igbm9uLWNvbnRpZ3VvdXMgZGF0YSBpbiAlcyBzZWN0aW9uIGluICVzIiwKKysJCSAgIG5h bWUsIGZuYW1lKTsKKysJfQorKyAgICB9CisrCisrICBpZiAodmVyID09IE5VTEwgfHwgdmVyZCA9 PSBOVUxMIHx8IGR5bnN5bSA9PSBOVUxMKQorKyAgICBlcnJvciAoMSwgMCwgIkNvdWxkbid0IGZp bmQgb25lIG9mIHRoZSBuZWVkZWQgc2VjdGlvbnMgaW4gJXMiLCBmbmFtZSk7CisrCisrICBpbnQg ZnJvbV9pZHggPSBjb21wdXRlX3ZlcmlkeCAoYXJndlsyXSwgZWxmLCB2ZXJkLCAmdmVyZF9zaGRy KTsKKysgIGlmIChmcm9tX2lkeCA9PSAtMSkKKysgICAgZXJyb3IgKDEsIDAsICJDb3VsZCBub3Qg ZmluZCBzeW1ib2wgdmVyc2lvbiAlcyBpbiAlcyIsIGFyZ3ZbMl0sIGZuYW1lKTsKKysKKysgIGlu dCB0b19pZHggPSBjb21wdXRlX3ZlcmlkeCAoYXJndlszXSwgZWxmLCB2ZXJkLCAmdmVyZF9zaGRy KTsKKysgIGlmICh0b19pZHggPT0gLTEpCisrICAgIGVycm9yICgxLCAwLCAiQ291bGQgbm90IGZp bmQgc3ltYm9sIHZlcnNpb24gJXMgaW4gJXMiLCBhcmd2WzNdLCBmbmFtZSk7CisrCisrICBpZiAo ZHluc3ltX3NoZHIuc2hfZW50c2l6ZSAhPSBnZWxmX2ZzaXplIChlbGYsIEVMRl9UX1NZTSwgMSwg ZWhkci0+ZV92ZXJzaW9uKQorKyAgICAgIHx8IGR5bnN5bV9zaGRyLnNoX3NpemUgJSBkeW5zeW1f c2hkci5zaF9lbnRzaXplCisrICAgICAgfHwgdmVyX3NoZHIuc2hfZW50c2l6ZSAhPSAyCisrICAg ICAgfHwgKHZlcl9zaGRyLnNoX3NpemUgJiAxKQorKyAgICAgIHx8IGR5bnN5bV9zaGRyLnNoX3Np emUgLyBkeW5zeW1fc2hkci5zaF9lbnRzaXplICE9IHZlcl9zaGRyLnNoX3NpemUgLyAyKQorKyAg ICBlcnJvciAoMSwgMCwgIlVuZXhwZWN0ZWQgc2hfc2l6ZSBvciBzaF9lbnRzaXplIGluICVzIiwg Zm5hbWUpOworKworKyAgc2l6ZV90IG5lbnRyaWVzID0gdmVyX3NoZHIuc2hfc2l6ZSAvIDI7Cisr ICBzaXplX3QgY250OworKyAgR0VsZl9WZXJzeW0gYXJyYXlbbmVudHJpZXNdOworKyAgZm9yIChj bnQgPSAwOyBjbnQgPCBuZW50cmllczsgKytjbnQpCisrICAgIHsKKysgICAgICBHRWxmX1ZlcnN5 bSB2c3ltbWVtOworKyAgICAgIEdFbGZfVmVyc3ltICp2c3ltOworKworKyAgICAgIHZzeW0gPSBn ZWxmX2dldHZlcnN5bSAodmVyLCBjbnQsICZ2c3ltbWVtKTsKKysgICAgICBpZiAodnN5bSA9PSBO VUxMKQorKwllcnJvciAoMSwgMCwgImdlbHRfZ2V0dmVyc3ltIGZhaWxlZCBpbiAlczogJXMiLCBm bmFtZSwgZWxmX2Vycm1zZyAoLTEpKTsKKysKKysgICAgICBhcnJheVtjbnRdID0gKnZzeW07Cisr ICAgICAgaWYgKCp2c3ltICE9IGZyb21faWR4KQorKwljb250aW51ZTsKKysKKysgICAgICBHRWxm X1N5bSBzeW1fbWVtOworKyAgICAgIEdFbGZfU3ltICpzeW07CisrICAgICAgc3ltID0gZ2VsZl9n ZXRzeW0gKGR5bnN5bSwgY250LCAmc3ltX21lbSk7CisrICAgICAgaWYgKHN5bSA9PSBOVUxMKQor KwllcnJvciAoMSwgMCwgImdlbHRfZ2V0c3ltIGZhaWxlZCBpbiAlczogJXMiLCBmbmFtZSwgZWxm X2Vycm1zZyAoLTEpKTsKKysKKysgICAgICBjb25zdCBjaGFyICpuYW1lID0gZWxmX3N0cnB0ciAo ZWxmLCBkeW5zeW1fc2hkci5zaF9saW5rLCBzeW0tPnN0X25hbWUpOworKworKyAgICAgIGludCBh cmduOworKyAgICAgIGZvciAoYXJnbiA9IDQ7IGFyZ24gPCBhcmdjOyArK2FyZ24pCisrCWlmIChm bm1hdGNoIChhcmd2W2FyZ25dLCBuYW1lLCAwKSA9PSAwKQorKwkgIHsKKysJICAgIGFycmF5W2Nu dF0gPSB0b19pZHg7CisrCSAgICBicmVhazsKKysJICB9CisrICAgIH0KKysKKysgIGlmIChzaXpl b2YgKGFycmF5WzBdKSAhPSAyKQorKyAgICBhYm9ydCAoKTsKKysKKysjaWYgX19CWVRFX09SREVS ID09IF9fTElUVExFX0VORElBTgorKyAgaWYgKGVoZHItPmVfaWRlbnRbRUlfREFUQV0gPT0gRUxG REFUQTJMU0IpCisrICAgIDsKKysgIGVsc2UgaWYgKGVoZHItPmVfaWRlbnRbRUlfREFUQV0gPT0g RUxGREFUQTJNU0IpCisrI2VsaWYgX19CWVRFX09SREVSID09IF9fQklHX0VORElBTgorKyAgaWYg KGVoZHItPmVfaWRlbnRbRUlfREFUQV0gPT0gRUxGREFUQTJNU0IpCisrICAgIDsKKysgIGVsc2Ug aWYgKGVoZHItPmVfaWRlbnRbRUlfREFUQV0gPT0gRUxGREFUQTJMU0IpCisrI2Vsc2UKKysjIGVy cm9yIFVuc3VwcG9ydGVkIGVuZGlhbml0eQorKyNlbmRpZgorKyAgICB7CisrICAgICAgZm9yIChj bnQgPSAwOyBjbnQgPCBuZW50cmllczsgKytjbnQpCisrCWFycmF5W2NudF0gPSAoKGFycmF5W2Nu dF0gJiAweGZmKSA8PCA4KSB8ICgoYXJyYXlbY250XSAmIDB4ZmYwMCkgPj4gOCk7CisrICAgIH0K KysgIGVsc2UKKysgICAgZXJyb3IgKDEsIDAsICJVbmtub3duIEVJX0RBVEEgJWQgaW4gJXMiLCBl aGRyLT5lX2lkZW50W0VJX0RBVEFdLCBmbmFtZSk7CisrCisrICBpZiAoZWxmX2VuZCAoZWxmKSAh PSAwKQorKyAgICBlcnJvciAoMSwgMCwgImNvdWxkbid0IGNsb3NlICVzOiAlcyIsIGZuYW1lLCBl bGZfZXJybXNnICgtMSkpOworKworKyAgaWYgKGxzZWVrIChmZCwgdmVyX3NoZHIuc2hfb2Zmc2V0 LCBTRUVLX1NFVCkgIT0gKG9mZl90KSB2ZXJfc2hkci5zaF9vZmZzZXQpCisrICAgIGVycm9yICgx LCAwLCAiZmFpbGVkIHRvIHNlZWsgdG8gJXpkIGluICVzIiwgKHNpemVfdCkgdmVyX3NoZHIuc2hf b2Zmc2V0LAorKwkgICBmbmFtZSk7CisrCisrICBpZiAod3JpdGUgKGZkLCBhcnJheSwgMiAqIG5l bnRyaWVzKSAhPSAoc3NpemVfdCkgKDIgKiBuZW50cmllcykpCisrICAgIGVycm9yICgxLCAwLCAi ZmFpbGVkIHRvIHdyaXRlIC5nbnUudmVyc2lvbiBzZWN0aW9uIGludG8gJXMiLCBmbmFtZSk7Cisr CisrICBjbG9zZSAoZmQpOworKyAgcmV0dXJuIDA7CisrfQorLS0tIGdjYy9jb25maWcvaWE2NC91 bndpbmQtaWE2NC5jLmpqCTIwMDQtMTAtMDQgMDg6NTU6NTcuMDAwMDAwMDAwIC0wNDAwCisrKysg Z2NjL2NvbmZpZy9pYTY0L3Vud2luZC1pYTY0LmMJMjAwNC0xMS0xNSAwOTowNzo0NS4wMDAwMDAw MDAgLTA1MDAKK0BAIC01MSw2ICs1MSw1MSBAQAorICNkZWZpbmUgVU5XX0ZMQUdfVUhBTkRMRVIo eCkJKCh4KSAmIDB4MDAwMDAwMDIwMDAwMDAwMEwpCisgI2RlZmluZSBVTldfTEVOR1RIKHgpCQko KHgpICYgMHgwMDAwMDAwMGZmZmZmZmZmTCkKKyAKKysjaWYgZGVmaW5lZCAoVVNFX1NZTVZFUl9H TE9CQUwpICYmIGRlZmluZWQgKFNIQVJFRCkKKytleHRlcm4gX1Vud2luZF9SZWFzb25fQ29kZSBf X3N5bXZlcmdsb2JhbF9VbndpbmRfQmFja3RyYWNlCisrICAoX1Vud2luZF9UcmFjZV9Gbiwgdm9p ZCAqKTsKKytleHRlcm4gdm9pZCBfX3N5bXZlcmdsb2JhbF9VbndpbmRfRGVsZXRlRXhjZXB0aW9u CisrICAoc3RydWN0IF9VbndpbmRfRXhjZXB0aW9uICopOworK2V4dGVybiB2b2lkICogX19zeW12 ZXJnbG9iYWxfVW53aW5kX0ZpbmRFbmNsb3NpbmdGdW5jdGlvbiAodm9pZCAqKTsKKytleHRlcm4g X1Vud2luZF9SZWFzb25fQ29kZSBfX3N5bXZlcmdsb2JhbF9VbndpbmRfRm9yY2VkVW53aW5kCisr ICAoc3RydWN0IF9VbndpbmRfRXhjZXB0aW9uICosIF9VbndpbmRfU3RvcF9Gbiwgdm9pZCAqKTsK KytleHRlcm4gX1Vud2luZF9Xb3JkIF9fc3ltdmVyZ2xvYmFsX1Vud2luZF9HZXRDRkEKKysgIChz dHJ1Y3QgX1Vud2luZF9Db250ZXh0ICopOworK2V4dGVybiBfVW53aW5kX1dvcmQgX19zeW12ZXJn bG9iYWxfVW53aW5kX0dldEJTUAorKyAgKHN0cnVjdCBfVW53aW5kX0NvbnRleHQgKik7CisrZXh0 ZXJuIF9VbndpbmRfV29yZCBfX3N5bXZlcmdsb2JhbF9VbndpbmRfR2V0R1IKKysgIChzdHJ1Y3Qg X1Vud2luZF9Db250ZXh0ICosIGludCApOworK2V4dGVybiBfVW53aW5kX1B0ciBfX3N5bXZlcmds b2JhbF9VbndpbmRfR2V0SVAgKHN0cnVjdCBfVW53aW5kX0NvbnRleHQgKik7CisrZXh0ZXJuIHZv aWQgKl9fc3ltdmVyZ2xvYmFsX1Vud2luZF9HZXRMYW5ndWFnZVNwZWNpZmljRGF0YQorKyAgKHN0 cnVjdCBfVW53aW5kX0NvbnRleHQgKik7CisrZXh0ZXJuIF9VbndpbmRfUHRyIF9fc3ltdmVyZ2xv YmFsX1Vud2luZF9HZXRSZWdpb25TdGFydAorKyAgKHN0cnVjdCBfVW53aW5kX0NvbnRleHQgKik7 CisrZXh0ZXJuIF9VbndpbmRfUmVhc29uX0NvZGUgX19zeW12ZXJnbG9iYWxfVW53aW5kX1JhaXNl RXhjZXB0aW9uCisrICAoc3RydWN0IF9VbndpbmRfRXhjZXB0aW9uICopOworK2V4dGVybiB2b2lk IF9fc3ltdmVyZ2xvYmFsX1Vud2luZF9SZXN1bWUgKHN0cnVjdCBfVW53aW5kX0V4Y2VwdGlvbiAq KTsKKytleHRlcm4gX1Vud2luZF9SZWFzb25fQ29kZSBfX3N5bXZlcmdsb2JhbF9VbndpbmRfUmVz dW1lX29yX1JldGhyb3cKKysgICAoc3RydWN0IF9VbndpbmRfRXhjZXB0aW9uICopOworK2V4dGVy biB2b2lkIF9fc3ltdmVyZ2xvYmFsX1Vud2luZF9TZXRHUgorKyAgKHN0cnVjdCBfVW53aW5kX0Nv bnRleHQgKiwgaW50LCBfVW53aW5kX1dvcmQpOworK2V4dGVybiB2b2lkIF9fc3ltdmVyZ2xvYmFs X1Vud2luZF9TZXRJUAorKyAgKHN0cnVjdCBfVW53aW5kX0NvbnRleHQgKiwgX1Vud2luZF9QdHIp OworKyNkZWZpbmUgX1Vud2luZF9CYWNrdHJhY2UgX19zeW12ZXJnbG9iYWxfVW53aW5kX0JhY2t0 cmFjZQorKyNkZWZpbmUgX1Vud2luZF9EZWxldGVFeGNlcHRpb24gX19zeW12ZXJnbG9iYWxfVW53 aW5kX0RlbGV0ZUV4Y2VwdGlvbgorKyNkZWZpbmUgX1Vud2luZF9GaW5kRW5jbG9zaW5nRnVuY3Rp b24gX19zeW12ZXJnbG9iYWxfVW53aW5kX0ZpbmRFbmNsb3NpbmdGdW5jdGlvbgorKyNkZWZpbmUg X1Vud2luZF9Gb3JjZWRVbndpbmQgX19zeW12ZXJnbG9iYWxfVW53aW5kX0ZvcmNlZFVud2luZAor KyNkZWZpbmUgX1Vud2luZF9HZXRCU1AgX19zeW12ZXJnbG9iYWxfVW53aW5kX0dldEJTUAorKyNk ZWZpbmUgX1Vud2luZF9HZXRDRkEgX19zeW12ZXJnbG9iYWxfVW53aW5kX0dldENGQQorKyNkZWZp bmUgX1Vud2luZF9HZXRHUiBfX3N5bXZlcmdsb2JhbF9VbndpbmRfR2V0R1IKKysjZGVmaW5lIF9V bndpbmRfR2V0SVAgX19zeW12ZXJnbG9iYWxfVW53aW5kX0dldElQCisrI2RlZmluZSBfVW53aW5k X0dldExhbmd1YWdlU3BlY2lmaWNEYXRhIF9fc3ltdmVyZ2xvYmFsX1Vud2luZF9HZXRMYW5ndWFn ZVNwZWNpZmljRGF0YQorKyNkZWZpbmUgX1Vud2luZF9HZXRSZWdpb25TdGFydCBfX3N5bXZlcmds b2JhbF9VbndpbmRfR2V0UmVnaW9uU3RhcnQKKysjZGVmaW5lIF9VbndpbmRfUmFpc2VFeGNlcHRp b24gX19zeW12ZXJnbG9iYWxfVW53aW5kX1JhaXNlRXhjZXB0aW9uCisrI2RlZmluZSBfVW53aW5k X1Jlc3VtZSBfX3N5bXZlcmdsb2JhbF9VbndpbmRfUmVzdW1lCisrI2RlZmluZSBfVW53aW5kX1Jl c3VtZV9vcl9SZXRocm93IF9fc3ltdmVyZ2xvYmFsX1Vud2luZF9SZXN1bWVfb3JfUmV0aHJvdwor KyNkZWZpbmUgX1Vud2luZF9TZXRHUiBfX3N5bXZlcmdsb2JhbF9VbndpbmRfU2V0R1IKKysjZGVm aW5lIF9VbndpbmRfU2V0SVAgX19zeW12ZXJnbG9iYWxfVW53aW5kX1NldElQCisrI2VuZGlmCisr CisgZW51bSB1bndfYXBwbGljYXRpb25fcmVnaXN0ZXIKKyB7CisgICBVTldfQVJfQlNQLAorQEAg LTI0MDIsNCArMjQ0Nyw0NCBAQCBhbGlhcyAoX1Vud2luZF9TZXRHUik7CisgYWxpYXMgKF9Vbndp bmRfU2V0SVApOworICNlbmRpZgorIAorKyNpZiBkZWZpbmVkIChVU0VfU1lNVkVSX0dMT0JBTCkg JiYgZGVmaW5lZCAoU0hBUkVEKQorKyN1bmRlZiBhbGlhcworKyNkZWZpbmUgc3ltdmVyZ2xvYmFs KG5hbWUsIHZlcnNpb24pIFwKKytfX3R5cGVvZiAoX19zeW12ZXJnbG9iYWwjI25hbWUpIF9fc3lt dmVybG9jYWwjI25hbWUJCVwKKysgIF9fYXR0cmlidXRlX18gKChhbGlhcyAoIl9fc3ltdmVyZ2xv YmFsIiAjbmFtZSkpKTsJCVwKKytfX2FzbV9fICgiLnN5bXZlciBfX3N5bXZlcmdsb2JhbCIgI25h bWUiLCIgI25hbWUgIkBAR0NDXzMuNC4yIik7XAorK19fYXNtX18gKCIuc3ltdmVyIF9fc3ltdmVy bG9jYWwiICNuYW1lIiwiICNuYW1lICJAIiAjdmVyc2lvbikKKysKKysjdW5kZWYgX1Vud2luZF9C YWNrdHJhY2UKKysjdW5kZWYgX1Vud2luZF9EZWxldGVFeGNlcHRpb24KKysjdW5kZWYgX1Vud2lu ZF9GaW5kRW5jbG9zaW5nRnVuY3Rpb24KKysjdW5kZWYgX1Vud2luZF9Gb3JjZWRVbndpbmQKKysj dW5kZWYgX1Vud2luZF9HZXRCU1AKKysjdW5kZWYgX1Vud2luZF9HZXRDRkEKKysjdW5kZWYgX1Vu d2luZF9HZXRHUgorKyN1bmRlZiBfVW53aW5kX0dldElQCisrI3VuZGVmIF9VbndpbmRfR2V0TGFu Z3VhZ2VTcGVjaWZpY0RhdGEKKysjdW5kZWYgX1Vud2luZF9HZXRSZWdpb25TdGFydAorKyN1bmRl ZiBfVW53aW5kX1JhaXNlRXhjZXB0aW9uCisrI3VuZGVmIF9VbndpbmRfUmVzdW1lCisrI3VuZGVm IF9VbndpbmRfUmVzdW1lX29yX1JldGhyb3cKKysjdW5kZWYgX1Vud2luZF9TZXRHUgorKyN1bmRl ZiBfVW53aW5kX1NldElQCisrc3ltdmVyZ2xvYmFsIChfVW53aW5kX0JhY2t0cmFjZSwgR0NDXzMu Myk7Cisrc3ltdmVyZ2xvYmFsIChfVW53aW5kX0RlbGV0ZUV4Y2VwdGlvbiwgR0NDXzMuMCk7Cisr c3ltdmVyZ2xvYmFsIChfVW53aW5kX0ZpbmRFbmNsb3NpbmdGdW5jdGlvbiwgR0NDXzMuMyk7Cisr c3ltdmVyZ2xvYmFsIChfVW53aW5kX0ZvcmNlZFVud2luZCwgR0NDXzMuMCk7Cisrc3ltdmVyZ2xv YmFsIChfVW53aW5kX0dldEJTUCwgR0NDXzMuMy4yKTsKKytzeW12ZXJnbG9iYWwgKF9VbndpbmRf R2V0Q0ZBLCBHQ0NfMy4zKTsKKytzeW12ZXJnbG9iYWwgKF9VbndpbmRfR2V0R1IsIEdDQ18zLjAp OworK3N5bXZlcmdsb2JhbCAoX1Vud2luZF9HZXRJUCwgR0NDXzMuMCk7Cisrc3ltdmVyZ2xvYmFs IChfVW53aW5kX0dldExhbmd1YWdlU3BlY2lmaWNEYXRhLCBHQ0NfMy4wKTsKKytzeW12ZXJnbG9i YWwgKF9VbndpbmRfR2V0UmVnaW9uU3RhcnQsIEdDQ18zLjApOworK3N5bXZlcmdsb2JhbCAoX1Vu d2luZF9SYWlzZUV4Y2VwdGlvbiwgR0NDXzMuMCk7Cisrc3ltdmVyZ2xvYmFsIChfVW53aW5kX1Jl c3VtZSwgR0NDXzMuMCk7Cisrc3ltdmVyZ2xvYmFsIChfVW53aW5kX1Jlc3VtZV9vcl9SZXRocm93 LCBHQ0NfMy4zKTsKKytzeW12ZXJnbG9iYWwgKF9VbndpbmRfU2V0R1IsIEdDQ18zLjApOworK3N5 bXZlcmdsb2JhbCAoX1Vud2luZF9TZXRJUCwgR0NDXzMuMCk7CisrI2VuZGlmCisrCisgI2VuZGlm CistLS0gZ2NjL2NvbmZpZy9pYTY0L21rbWFwLXN5bXZlci1tdWx0aS5hd2suamoJMjAwNC0wMi0x OCAxMDoyNzozNi4wMDAwMDAwMDAgLTA1MDAKKysrKyBnY2MvY29uZmlnL2lhNjQvbWttYXAtc3lt dmVyLW11bHRpLmF3awkyMDA0LTExLTE1IDA5OjQ2OjUwLjAwMDAwMDAwMCAtMDUwMAorQEAgLTAs MCArMSwxMzMgQEAKKysjIEdlbmVyYXRlIGFuIEVMRiBzeW1ib2wgdmVyc2lvbiBtYXAgYS1sYSBT b2xhcmlzIGFuZCBHTlUgbGQuCisrIwlDb250cmlidXRlZCBieSBSaWNoYXJkIEhlbmRlcnNvbiA8 cnRoQGN5Z251cy5jb20+CisrIworKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR0NDLgorKyMKKysj IEdDQyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9k aWZ5IGl0IHVuZGVyCisrIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZQorKyMgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0 aGVyIHZlcnNpb24gMiwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIKKysjIHZlcnNpb24u CisrIworKyMgR0NDIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsIGJ1dCBXSVRIT1VUCisrIyBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkKKysjIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKysjIExpY2Vuc2Ug Zm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCBHQ0M7IHNl ZSB0aGUgZmlsZSBDT1BZSU5HLiAgSWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZQorKyMgU29mdHdh cmUgRm91bmRhdGlvbiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBN QQorKyMgMDIxMTAtMTMwMSwgVVNBLgorKworK0JFR0lOIHsKKysgIHN0YXRlID0gIm5tIjsKKysg IHNhd3N5bWJvbCA9IDA7CisrfQorKworKyMgUmVtb3ZlIGNvbW1lbnQgYW5kIGJsYW5rIGxpbmVz LgorKy9eICojLyB8fCAvXiAqJC8geworKyAgbmV4dDsKKyt9CisrCisrIyBXZSBiZWdpbiB3aXRo IG5tIGlucHV0LiAgQ29sbGVjdCB0aGUgc2V0IG9mIHN5bWJvbHMgdGhhdCBhcmUgcHJlc2VudAor KyMgc28gdGhhdCB3ZSBjYW4gbm90IGVtaXQgdGhlbSBpbnRvIHRoZSBmaW5hbCB2ZXJzaW9uIHNj cmlwdCAtLSBTb2xhcmlzCisrIyBjb21wbGFpbnMgYXQgdXMgaWYgd2UgZG8uCisrCisrc3RhdGUg PT0gIm5tIiAmJiAvXiUlLyB7CisrICBzdGF0ZSA9ICJ2ZXIiOworKyAgbmV4dDsKKyt9CisrCisr c3RhdGUgPT0gIm5tIiAmJiAoJDEgPT0gIlUiIHx8ICQyID09ICJVIikgeworKyAgbmV4dDsKKyt9 CisrCisrc3RhdGUgPT0gIm5tIiAmJiBORiA9PSAzIHsKKysgIGlmICgkMyB+IC9eW15AXSpAR0ND X1swLTkuXSokLykgeworKyAgICBkZWZbJDNdID0gMQorKyAgICB0bD0kMworKyAgICBzdWIoL14u KkAvLCIiLHRsKQorKyAgICB2ZXJbJDNdID0gdGwKKysgIH0gZWxzZSB7CisrICAgIHN1YigvQEA/ R0NDX1swLTkuXSokLywiIiwkMykKKysgICAgZGVmWyQzXSA9IDE7CisrICB9CisrICBzYXdzeW1i b2wgPSAxOworKyAgbmV4dDsKKyt9CisrCisrc3RhdGUgPT0gIm5tIiB7CisrICBuZXh0OworK30K KysKKysjIE5vdyB3ZSBwcm9jZXNzIGEgc2ltcGxpZmllZCB2YXJpYW50IG9mIHRoZSBTb2xhcmlz IHN5bWJvbCB2ZXJzaW9uCisrIyBzY3JpcHQuICBXZSBoYXZlIG9uZSBzeW1ib2wgcGVyIGxpbmUs IG5vIHNlbWljb2xvbnMsIHNpbXBsZSBtYXJrZXJzCisrIyBmb3IgYmVnaW5uaW5nIGFuZCBlbmRp bmcgZWFjaCBzZWN0aW9uLCBhbmQgJWluaGVyaXQgbWFya2VycyBmb3IKKysjIGRlc2NyaWJpbmcg dmVyc2lvbiBpbmhlcml0ZW5jZS4gIEEgc3ltYm9sIG1heSBhcHBlYXIgaW4gbW9yZSB0aGFuCisr IyBvbmUgc3ltYm9sIHZlcnNpb24sIGFuZCB0aGUgbGFzdCBzZWVuIHRha2VzIGVmZmVjdC4KKysK KytORiA9PSAzICYmICQxID09ICIlaW5oZXJpdCIgeworKyAgaW5oZXJpdFskMl0gPSAkMzsKKysg IG5leHQ7CisrfQorKworK05GID09IDIgJiYgJDIgPT0gInsiIHsKKysgIGxpYnNbJDFdID0gMTsK KysgIHRoaXNsaWIgPSAkMTsKKysgIG5leHQ7CisrfQorKworKyQxID09ICJ9IiB7CisrICB0aGlz bGliID0gIiI7CisrICBuZXh0OworK30KKysKKyt7CisrICB2ZXJbJDFdID0gdGhpc2xpYjsKKysg IG5leHQ7CisrfQorKworK0VORCB7CisrICBpZiAoIXNhd3N5bWJvbCkKKysgICAgeworKyAgICAg IHByaW50ICJObyBzeW1ib2xzIHNlZW4gLS0gYnJva2VuIG9yIG1pcy1pbnN0YWxsZWQgbm0/IiB8 ICJjYXQgMT4mMiI7CisrICAgICAgZXhpdCAxOworKyAgICB9CisrICBmb3IgKGwgaW4gbGlicykK KysgICAgb3V0cHV0KGwpOworK30KKysKKytmdW5jdGlvbiBvdXRwdXQobGliKSB7CisrICBpZiAo ZG9uZVtsaWJdKQorKyAgICByZXR1cm47CisrICBkb25lW2xpYl0gPSAxOworKyAgaWYgKGluaGVy aXRbbGliXSkKKysgICAgb3V0cHV0KGluaGVyaXRbbGliXSk7CisrCisrICBlbXB0eT0xCisrICBm b3IgKHN5bSBpbiB2ZXIpCisrICAgIGlmICgodmVyW3N5bV0gPT0gbGliKSAmJiAoc3ltIGluIGRl ZikpCisrICAgICAgeworKwlpZiAoZW1wdHkpCisrCSAgeworKwkgICAgcHJpbnRmKCIlcyB7XG4i LCBsaWIpOworKwkgICAgcHJpbnRmKCIgIGdsb2JhbDpcbiIpOworKwkgICAgZW1wdHkgPSAwOwor KwkgIH0KKysJc3ltcCA9IHN5bTsKKysJc3ViKC9AR0NDX1swLTkuXSokLywiIixzeW1wKTsKKysJ cHJpbnRmKCJcdCVzO1xuIiwgc3ltcCk7CisrCWlmIChkb3RzeW1zKQorKwkgIHByaW50ZigiXHQu JXM7XG4iLCBzeW1wKTsKKysgICAgICB9CisrCisrICBpZiAoZW1wdHkpCisrICAgIHsKKysgICAg ICBmb3IgKGwgaW4gbGlicykKKysJaWYgKGluaGVyaXRbbF0gPT0gbGliKQorKwkgIGluaGVyaXRb bF0gPSBpbmhlcml0W2xpYl07CisrICAgIH0KKysgIGVsc2UgaWYgKGluaGVyaXRbbGliXSkKKysg ICAgcHJpbnRmKCJ9ICVzO1xuIiwgaW5oZXJpdFtsaWJdKTsKKysgIGVsc2UKKysgICAgcHJpbnRm ICgiXG4gIGxvY2FsOlxuXHQqO1xufTtcbiIpOworK30KKy0tLSBnY2MvY29uZmlnL2lhNjQvbGli Z2NjLWlhNjQtbm8tbGlidW53aW5kLnZlci5qagkyMDA0LTAyLTE4IDEwOjI3OjM2LjAwMDAwMDAw MCAtMDUwMAorKysrIGdjYy9jb25maWcvaWE2NC9saWJnY2MtaWE2NC1uby1saWJ1bndpbmQudmVy CTIwMDQtMTEtMTUgMDk6MTk6NTYuMDAwMDAwMDAwIC0wNTAwCitAQCAtMCwwICsxLDE3IEBACisr R0NDXzMuNC4yIHsKKysgIF9VbndpbmRfR2V0R1IKKysgIF9VbndpbmRfUmFpc2VFeGNlcHRpb24K KysgIF9VbndpbmRfR2V0UmVnaW9uU3RhcnQKKysgIF9VbndpbmRfU2V0SVAKKysgIF9VbndpbmRf R2V0SVAKKysgIF9VbndpbmRfR2V0TGFuZ3VhZ2VTcGVjaWZpY0RhdGEKKysgIF9VbndpbmRfUmVz dW1lCisrICBfVW53aW5kX0RlbGV0ZUV4Y2VwdGlvbgorKyAgX1Vud2luZF9TZXRHUgorKyAgX1Vu d2luZF9Gb3JjZWRVbndpbmQKKysgIF9VbndpbmRfQmFja3RyYWNlCisrICBfVW53aW5kX0ZpbmRF bmNsb3NpbmdGdW5jdGlvbgorKyAgX1Vud2luZF9HZXRDRkEKKysgIF9VbndpbmRfUmVzdW1lX29y X1JldGhyb3cKKysgIF9VbndpbmRfR2V0QlNQCisrfQoKZGlmZiAtLWdpdCBhL2djYzQ0LWphdmEt ZGVidWctaWZhY2UtdHlwZS5wYXRjaCBiL2djYzQ0LWphdmEtZGVidWctaWZhY2UtdHlwZS5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42M2ExYjUwCi0tLSAvZGV2L251 bGwKKysrIGIvZ2NjNDQtamF2YS1kZWJ1Zy1pZmFjZS10eXBlLnBhdGNoCkBAIC0wLDAgKzEsMTcg QEAKKzIwMDgtMDEtMjUgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgorCisJKiBs YW5nLmMgKGphdmFfY2xhc3NpZnlfcmVjb3JkKTogUmV2ZXJ0IDIwMDctMTItMjAgY2hhbmdlLgor CistLS0gZ2NjL2phdmEvbGFuZy5jCTIwMDctMTItMjcgMDk6MDk6NDkuMDAwMDAwMDAwICswMTAw CisrKysgZ2NjL2phdmEvbGFuZy5jCTIwMDgtMDEtMjUgMTc6NDM6NTcuMDAwMDAwMDAwICswMTAw CitAQCAtOTY1LDkgKzk2NSw3IEBAIGphdmFfY2xhc3NpZnlfcmVjb3JkICh0cmVlIHR5cGUpCisg ICBpZiAoISBDTEFTU19QICh0eXBlKSkKKyAgICAgcmV0dXJuIFJFQ09SRF9JU19TVFJVQ1Q7Cisg CistICAvKiA/Pz8gR0RCIGRvZXMgbm90IHN1cHBvcnQgRFdfVEFHX2ludGVyZmFjZV90eXBlIGFz IG9mIERlY2VtYmVyLAorLSAgICAgMjAwNy4gIFJlLWVuYWJsZSB0aGlzIGF0IGEgbGF0ZXIgdGlt ZS4gICovCistICBpZiAoMCAmJiBDTEFTU19JTlRFUkZBQ0UgKFRZUEVfTkFNRSAodHlwZSkpKQor KyAgaWYgKENMQVNTX0lOVEVSRkFDRSAoVFlQRV9OQU1FICh0eXBlKSkpCisgICAgIHJldHVybiBS RUNPUkRfSVNfSU5URVJGQUNFOworIAorICAgcmV0dXJuIFJFQ09SRF9JU19DTEFTUzsKCmRpZmYg LS1naXQgYS9nY2M0NC1qYXZhLW5vbXVsdGkucGF0Y2ggYi9nY2M0NC1qYXZhLW5vbXVsdGkucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTczMzRhYQotLS0gL2Rldi9u dWxsCisrKyBiL2djYzQ0LWphdmEtbm9tdWx0aS5wYXRjaApAQCAtMCwwICsxLDQ0IEBACistLS0g bGliamF2YS9jb25maWd1cmUuYWMuamoJMjAwNy0xMi0wNyAxNzo1NTo1MC4wMDAwMDAwMDAgKzAx MDAKKysrKyBsaWJqYXZhL2NvbmZpZ3VyZS5hYwkyMDA3LTEyLTA3IDE4OjM2OjU2LjAwMDAwMDAw MCArMDEwMAorQEAgLTgyLDYgKzgyLDEzIEBAIEFDX0FSR19FTkFCTEUoamF2YS1tYWludGFpbmVy LW1vZGUsCisgCVthbGxvdyByZWJ1aWxkaW5nIG9mIC5jbGFzcyBhbmQgLmggZmlsZXNdKSkKKyBB TV9DT05ESVRJT05BTChKQVZBX01BSU5UQUlORVJfTU9ERSwgdGVzdCAiJGVuYWJsZV9qYXZhX21h aW50YWluZXJfbW9kZSIgPSB5ZXMpCisgCisrQUNfQVJHX0VOQUJMRShsaWJqYXZhLW11bHRpbGli LAorKwlBU19IRUxQX1NUUklORyhbLS1lbmFibGUtbGliamF2YS1tdWx0aWxpYl0sIFtidWlsZCBs aWJqYXZhIGFzIG11bHRpbGliXSkpCisraWYgdGVzdCAiJGVuYWJsZV9saWJqYXZhX211bHRpbGli IiA9IG5vOyB0aGVuCisrICBtdWx0aWxpYj1ubworKyAgYWNfY29uZmlndXJlX2FyZ3M9IiRhY19j b25maWd1cmVfYXJncyAtLWRpc2FibGUtbXVsdGlsaWIiCisrZmkKKysKKyAjIEl0IG1heSBub3Qg YmUgc2FmZSB0byBydW4gbGlua2luZyB0ZXN0cyBpbiBBQ19QUk9HX0NDL0FDX1BST0dfQ1hYLgor IEdDQ19OT19FWEVDVVRBQkxFUworIAorLS0tIGxpYmphdmEvY29uZmlndXJlLmpqCTIwMDctMTIt MDcgMTc6NTU6NTAuMDAwMDAwMDAwICswMTAwCisrKysgbGliamF2YS9jb25maWd1cmUJMjAwNy0x Mi0wNyAxODozOTo1OC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xMDIxLDYgKzEwMjEsOCBAQCBPcHRp b25hbCBGZWF0dXJlczoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9eWVzCisg ICAtLWVuYWJsZS1qYXZhLW1haW50YWluZXItbW9kZQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgYWxsb3cgcmVidWlsZGluZyBvZiAuY2xhc3MgYW5kIC5oIGZpbGVzCisrICAtLWVuYWJsZS1s aWJqYXZhLW11bHRpbGliCisrICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZCBsaWJqYXZh IGFzIG11bHRpbGliCisgICAtLWRpc2FibGUtZGVwZW5kZW5jeS10cmFja2luZyAgc3BlZWRzIHVw IG9uZS10aW1lIGJ1aWxkCisgICAtLWVuYWJsZS1kZXBlbmRlbmN5LXRyYWNraW5nICAgZG8gbm90 IHJlamVjdCBzbG93IGRlcGVuZGVuY3kgZXh0cmFjdG9ycworICAgLS1lbmFibGUtbWFpbnRhaW5l ci1tb2RlICBlbmFibGUgbWFrZSBydWxlcyBhbmQgZGVwZW5kZW5jaWVzIG5vdCB1c2VmdWwKK0BA IC0xOTczLDYgKzE5NzUsMTYgQEAgZWxzZQorIGZpCisgCisgCisrIyBDaGVjayB3aGV0aGVyIC0t ZW5hYmxlLWxpYmphdmEtbXVsdGlsaWIgd2FzIGdpdmVuLgorK2lmIHRlc3QgIiR7ZW5hYmxlX2xp YmphdmFfbXVsdGlsaWIrc2V0fSIgPSBzZXQ7IHRoZW4KKysgIGVuYWJsZXZhbD0kZW5hYmxlX2xp YmphdmFfbXVsdGlsaWI7CisrZmkKKysKKytpZiB0ZXN0ICIkZW5hYmxlX2xpYmphdmFfbXVsdGls aWIiID0gbm87IHRoZW4KKysgIG11bHRpbGliPW5vCisrICBhY19jb25maWd1cmVfYXJncz0iJGFj X2NvbmZpZ3VyZV9hcmdzIC0tZGlzYWJsZS1tdWx0aWxpYiIKKytmaQorKworICMgSXQgbWF5IG5v dCBiZSBzYWZlIHRvIHJ1biBsaW5raW5nIHRlc3RzIGluIEFDX1BST0dfQ0MvQUNfUFJPR19DWFgu CisgCisgCgpkaWZmIC0tZ2l0IGEvZ2NjNDQtbGliZ29tcC1vbXBfaC1tdWx0aWxpYi5wYXRjaCBi L2djYzQ0LWxpYmdvbXAtb21wX2gtbXVsdGlsaWIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uZDBlOThkMQotLS0gL2Rldi9udWxsCisrKyBiL2djYzQ0LWxpYmdvbXAt b21wX2gtbXVsdGlsaWIucGF0Y2gKQEAgLTAsMCArMSwxNyBAQAorMjAwOC0wNi0wOSAgSmFrdWIg SmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CisKKwkqIG9tcC5oLmluIChvbXBfbmVzdF9sb2Nr X3QpOiBGaXggdXAgZm9yIExpbnV4IG11bHRpbGlicy4KKworLS0tIGxpYmdvbXAvb21wLmguaW4u amoJMjAwOC0wNi0wOSAxMzozNDowNS4wMDAwMDAwMDAgKzAyMDAKKysrKyBsaWJnb21wL29tcC5o LmluCTIwMDgtMDYtMDkgMTM6MzQ6NDguMDAwMDAwMDAwICswMjAwCitAQCAtNDIsOCArNDIsOCBA QCB0eXBlZGVmIHN0cnVjdAorIAorIHR5cGVkZWYgc3RydWN0CisgeworLSAgdW5zaWduZWQgY2hh ciBfeFtAT01QX05FU1RfTE9DS19TSVpFQF0gCistICAgIF9fYXR0cmlidXRlX18oKF9fYWxpZ25l ZF9fKEBPTVBfTkVTVF9MT0NLX0FMSUdOQCkpKTsKKysgIHVuc2lnbmVkIGNoYXIgX3hbOCArIHNp emVvZiAodm9pZCAqKV0gCisrICAgIF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fKHNpemVvZiAo dm9pZCAqKSkpKTsKKyB9IG9tcF9uZXN0X2xvY2tfdDsKKyAjZW5kaWYKKyAKCmRpZmYgLS1naXQg YS9nY2M0NC1saWJ0b29sLW5vLXJwYXRoLnBhdGNoIGIvZ2NjNDQtbGlidG9vbC1uby1ycGF0aC5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NjZjNjYxCi0tLSAvZGV2 L251bGwKKysrIGIvZ2NjNDQtbGlidG9vbC1uby1ycGF0aC5wYXRjaApAQCAtMCwwICsxLDI3IEBA CitsaWJ0b29sIHN1Y2tzLgorLS0tIGx0bWFpbi5zaC5qagkyMDA3LTEyLTA3IDE0OjUzOjIxLjAw MDAwMDAwMCArMDEwMAorKysrIGx0bWFpbi5zaAkyMDA4LTA5LTA1IDIxOjUxOjQ4LjAwMDAwMDAw MCArMDIwMAorQEAgLTUzOTQsNiArNTM5NCw3IEBAIEVPRgorIAkgIHJwYXRoPSIkZmluYWxpemVf cnBhdGgiCisgCSAgdGVzdCAiJG1vZGUiICE9IHJlbGluayAmJiBycGF0aD0iJGNvbXBpbGVfcnBh dGgkcnBhdGgiCisgCSAgZm9yIGxpYmRpciBpbiAkcnBhdGg7IGRvCisrCSAgICBjYXNlICIkbGli ZGlyIiBpbiAvdXNyL2xpYnwvdXNyL2xpYjY0fC91c3IvbGliLy4uL2xpYnwvdXNyL2xpYi8uLi9s aWI2NCkgY29udGludWU7OyBlc2FjCisgCSAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlYyI7IHRoZW4KKyAJICAgICAgaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9z ZXBhcmF0b3IiOyB0aGVuCisgCQlpZiB0ZXN0IC16ICIkaGFyZGNvZGVfbGliZGlycyI7IHRoZW4K K0BAIC02MDcxLDYgKzYwNzIsNyBAQCBFT0YKKyAgICAgICBycGF0aD0KKyAgICAgICBoYXJkY29k ZV9saWJkaXJzPQorICAgICAgIGZvciBsaWJkaXIgaW4gJGNvbXBpbGVfcnBhdGggJGZpbmFsaXpl X3JwYXRoOyBkbworKwljYXNlICIkbGliZGlyIiBpbiAvdXNyL2xpYnwvdXNyL2xpYjY0fC91c3Iv bGliLy4uL2xpYnwvdXNyL2xpYi8uLi9saWI2NCkgY29udGludWU7OyBlc2FjCisgCWlmIHRlc3Qg LW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIjsgdGhlbgorIAkgIGlmIHRlc3QgLW4gIiRo YXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIjsgdGhlbgorIAkgICAgaWYgdGVzdCAteiAiJGhhcmRj b2RlX2xpYmRpcnMiOyB0aGVuCitAQCAtNjEyMCw2ICs2MTIyLDcgQEAgRU9GCisgICAgICAgcnBh dGg9CisgICAgICAgaGFyZGNvZGVfbGliZGlycz0KKyAgICAgICBmb3IgbGliZGlyIGluICRmaW5h bGl6ZV9ycGF0aDsgZG8KKysJY2FzZSAiJGxpYmRpciIgaW4gL3Vzci9saWJ8L3Vzci9saWI2NHwv dXNyL2xpYi8uLi9saWJ8L3Vzci9saWIvLi4vbGliNjQpIGNvbnRpbnVlOzsgZXNhYworIAlpZiB0 ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyI7IHRoZW4KKyAJICBpZiB0ZXN0IC1u ICIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciI7IHRoZW4KKyAJICAgIGlmIHRlc3QgLXogIiRo YXJkY29kZV9saWJkaXJzIjsgdGhlbgoKZGlmZiAtLWdpdCBhL2djYzQ0LXBwYzMyLXJldGFkZHIu cGF0Y2ggYi9nY2M0NC1wcGMzMi1yZXRhZGRyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmU5YWUxYmMKLS0tIC9kZXYvbnVsbAorKysgYi9nY2M0NC1wcGMzMi1yZXRh ZGRyLnBhdGNoCkBAIC0wLDAgKzEsODYgQEAKKzIwMDUtMTEtMjggIEpha3ViIEplbGluZWsgIDxq YWt1YkByZWRoYXQuY29tPgorCisJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChyczYwMDBfcmV0 dXJuX2FkZHIpOiBJZiBDT1VOVCA9PSAwLAorCXJlYWQgd29yZCBSRVRVUk5fQUREUkVTU19PRkZT RVQgYnl0ZXMgYWJvdmUgYXJnX3BvaW50ZXJfcnR4CisJaW5zdGVhZCBvZiBkb2luZyBhbiBleHRy YW4gaW5kaXJlY3Rpb24gZnJvbSBmcmFtZV9wb2ludGVyX3J0eC4KKworCSogZ2NjLmRnLzIwMDUx MTI4LTEuYzogTmV3IHRlc3QuCisKKy0tLSBnY2MvY29uZmlnL3JzNjAwMC9yczYwMDAuYy5qagky MDA1LTExLTI2IDE0OjM4OjAxLjAwMDAwMDAwMCArMDEwMAorKysrIGdjYy9jb25maWcvcnM2MDAw L3JzNjAwMC5jCTIwMDUtMTEtMjggMjA6MzI6MTguMDAwMDAwMDAwICswMTAwCitAQCAtMTMxNjYs MTcgKzEzMTY2LDIyIEBAIHJzNjAwMF9yZXR1cm5fYWRkciAoaW50IGNvdW50LCBydHggZnJhbWUK KyAgICAgIGRvbid0IHRyeSB0byBiZSB0b28gY2xldmVyIGhlcmUuICAqLworICAgaWYgKGNvdW50 ICE9IDAgfHwgKERFRkFVTFRfQUJJICE9IEFCSV9BSVggJiYgZmxhZ19waWMpKQorICAgICB7Cisr ICAgICAgcnR4IHg7CisgICAgICAgY2Z1bi0+bWFjaGluZS0+cmFfbmVlZHNfZnVsbF9mcmFtZSA9 IDE7CisgCistICAgICAgcmV0dXJuCistCWdlbl9ydHhfTUVNCistCSAgKFBtb2RlLAorLQkgICBt ZW1vcnlfYWRkcmVzcworLQkgICAoUG1vZGUsCistCSAgICBwbHVzX2NvbnN0YW50IChjb3B5X3Rv X3JlZworLQkJCSAgIChnZW5fcnR4X01FTSAoUG1vZGUsCistCQkJCQkgbWVtb3J5X2FkZHJlc3Mg KFBtb2RlLCBmcmFtZSkpKSwKKy0JCQkgICBSRVRVUk5fQUREUkVTU19PRkZTRVQpKSk7CisrICAg ICAgaWYgKGNvdW50ID09IDApCisrCXsKKysJICBnY2NfYXNzZXJ0IChmcmFtZSA9PSBmcmFtZV9w b2ludGVyX3J0eCk7CisrCSAgeCA9IGFyZ19wb2ludGVyX3J0eDsKKysJfQorKyAgICAgIGVsc2UK KysJeworKwkgIHggPSBtZW1vcnlfYWRkcmVzcyAoUG1vZGUsIGZyYW1lKTsKKysJICB4ID0gY29w eV90b19yZWcgKGdlbl9ydHhfTUVNIChQbW9kZSwgeCkpOworKwl9CisrCisrICAgICAgeCA9IHBs dXNfY29uc3RhbnQgKHgsIFJFVFVSTl9BRERSRVNTX09GRlNFVCk7CisrICAgICAgcmV0dXJuIGdl bl9ydHhfTUVNIChQbW9kZSwgbWVtb3J5X2FkZHJlc3MgKFBtb2RlLCB4KSk7CisgICAgIH0KKyAK KyAgIGNmdW4tPm1hY2hpbmUtPnJhX25lZWRfbHIgPSAxOworLS0tIGdjYy90ZXN0c3VpdGUvZ2Nj LmRnLzIwMDUxMTI4LTEuYy5qagkyMDA1LTEwLTEwIDExOjIxOjQxLjA5Njk5OTAwMCArMDIwMAor KysrIGdjYy90ZXN0c3VpdGUvZ2NjLmRnLzIwMDUxMTI4LTEuYwkyMDA1LTExLTI4IDEyOjMwOjU3 LjAwMDAwMDAwMCArMDEwMAorQEAgLTAsMCArMSw0MSBAQAorKy8qIHsgZGctZG8gcnVuIH0gKi8K KysvKiB7IGRnLW9wdGlvbnMgIi1PMiAtZnBpYyIgfSAqLworKworK2V4dGVybiB2b2lkIGV4aXQg KGludCk7CisrZXh0ZXJuIHZvaWQgYWJvcnQgKHZvaWQpOworKworK2ludCBiOworKworK3N0cnVj dCBBCisreworKyAgdm9pZCAqcGFkWzE0N107CisrICB2b2lkICpyYSwgKmg7CisrICBsb25nIG87 CisrfTsKKysKKyt2b2lkCisrX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorK2ZvbyAoc3RydWN0 IEEgKmEsIHZvaWQgKngpCisreworKyAgX19idWlsdGluX21lbXNldCAoYSwgMCwgc2l6ZW9mIChh KSk7CisrICBpZiAoIWIpCisrICAgIGV4aXQgKDApOworK30KKysKKyt2b2lkCisrX19hdHRyaWJ1 dGVfXygobm9pbmxpbmUpKQorK2JhciAodm9pZCkKKyt7CisrICBzdHJ1Y3QgQSBhOworKworKyAg X19idWlsdGluX3Vud2luZF9pbml0ICgpOworKyAgZm9vICgmYSwgX19idWlsdGluX3JldHVybl9h ZGRyZXNzICgwKSk7CisrfQorKworK2ludAorK21haW4gKHZvaWQpCisreworKyAgYmFyICgpOwor KyAgYWJvcnQgKCk7CisrICByZXR1cm4gMDsKKyt9CgpkaWZmIC0tZ2l0IGEvZ2NjNDQtcHIyNzg5 OC5wYXRjaCBiL2djYzQ0LXByMjc4OTgucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uMTcyYmI4MQotLS0gL2Rldi9udWxsCisrKyBiL2djYzQ0LXByMjc4OTgucGF0Y2gK QEAgLTAsMCArMSwxNiBAQAorMjAwNi0wOC0xOCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhh dC5jb20+CisKKwlQUiBjLzI3ODk4CisJKiBnY2MuZGcvcHIyNzg5OC5jOiBOZXcgdGVzdC4KKwor LS0tIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL3ByMjc4OTguYy5qagkyMDA2LTA4LTE4IDA5OjE5OjMz LjAwMDAwMDAwMCArMDIwMAorKysrIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL3ByMjc4OTguYwkyMDA2 LTA4LTE4IDA5OjE5OjI3LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw4IEBACisrLyogUFIg Yy8yNzg5OCAqLworKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisrLyogeyBkZy1vcHRpb25zICIt LWNvbWJpbmUiIH0gKi8KKysvKiB7IGRnLWFkZGl0aW9uYWwtc291cmNlcyAicHIyNzg5OC5jIiB9 ICovCisrCisrdW5pb24gdSB7IHN0cnVjdCB7IGludCBpOyB9OyB9OworKworK2V4dGVybiBpbnQg Zm9vICh1bmlvbiB1ICopOwoKZGlmZiAtLWdpdCBhL2djYzQ0LXByMzIxMzkucGF0Y2ggYi9nY2M0 NC1wcjMyMTM5LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYzNTY5 NjcKLS0tIC9kZXYvbnVsbAorKysgYi9nY2M0NC1wcjMyMTM5LnBhdGNoCkBAIC0wLDAgKzEsMTkg QEAKKzIwMDctMDYtMDEgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgorCisJUFIg dHJlZS1vcHRpbWl6YXRpb24vMzIxMzkKKwkqIGdjYy5jLXRvcnR1cmUvY29tcGlsZS8yMDA3MDUz MS0xLmM6IE5ldyB0ZXN0LgorCistLS0gZ2NjL3Rlc3RzdWl0ZS9nY2MuYy10b3J0dXJlL2NvbXBp bGUvMjAwNzA1MzEtMS5jLmpqCTIwMDctMDUtMzEgMTM6NDc6MjIuMDAwMDAwMDAwICswMjAwCisr KysgZ2NjL3Rlc3RzdWl0ZS9nY2MuYy10b3J0dXJlL2NvbXBpbGUvMjAwNzA1MzEtMS5jCTIwMDct MDYtMDEgMTA6NTc6MTUuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDExIEBACisrLyogUFIg dHJlZS1vcHRpbWl6YXRpb24vMzIxMzkgKi8KKytpbnQgZm9vICh2b2lkKTsKKytpbnQgYmFyICh2 b2lkKSBfX2F0dHJpYnV0ZV9fICgoY29uc3QpKTsKKysKKytpbnQKKyt0ZXN0IChpbnQgeCkKKyt7 CisrICBpbnQgYSA9ICh4ID09IDEwMDAwID8gZm9vIDogYmFyKSAoKTsKKysgIGludCBiID0gKHgg PT0gMTAwMDAgPyBmb28gOiBiYXIpICgpOworKyAgcmV0dXJuIGEgKyBiOworK30KCmRpZmYgLS1n aXQgYS9nY2M0NC1wcjMzNzYzLnBhdGNoIGIvZ2NjNDQtcHIzMzc2My5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NmM4YWM3Ci0tLSAvZGV2L251bGwKKysrIGIvZ2Nj NDQtcHIzMzc2My5wYXRjaApAQCAtMCwwICsxLDE1MyBAQAorMjAwNy0xMS0wNiAgSmFrdWIgSmVs aW5layAgPGpha3ViQHJlZGhhdC5jb20+CisKKwlQUiB0cmVlLW9wdGltaXphdGlvbi8zMzc2Mwor CSogZ2NjLmRnL3ByMzM3NjMuYzogTmV3IHRlc3QuCisJKiBnKysuZGcvb3B0L2lubGluZTEzLkM6 IE5ldyB0ZXN0LgorCisyMDA3LTExLTA2ICBKYW4gSHViaWNrYSAgPGpoQHN1c2UuY3o+CisKKwlQ UiB0cmVlLW9wdGltaXphdGlvbi8zMzc2MworCSogdHJlZS1pbmxpbmUuYyAoZXhwYW5kX2NhbGxf aW5saW5lKTogU2lsZW50bHkgaWdub3JlIGFsd2F5c19pbmxpbmUKKwlhdHRyaWJ1dGUgZm9yIHJl ZGVmaW5lZCBleHRlcm4gaW5saW5lIGZ1bmN0aW9ucy4KKworLS0tIGdjYy90cmVlLWlubGluZS5j LmpqCTIwMDctMTEtMDYgMDk6Mjk6MDQuMDAwMDAwMDAwICswMTAwCisrKysgZ2NjL3RyZWUtaW5s aW5lLmMJMjAwNy0xMS0wNiAxNjoxOToxMi4wMDAwMDAwMDAgKzAxMDAKK0BAIC0zMTU3LDYgKzMx NTcsMTIgQEAgZXhwYW5kX2NhbGxfaW5saW5lIChiYXNpY19ibG9jayBiYiwgZ2ltcAorIAlnb3Rv IGVncmVzczsKKyAKKyAgICAgICBpZiAobG9va3VwX2F0dHJpYnV0ZSAoImFsd2F5c19pbmxpbmUi LCBERUNMX0FUVFJJQlVURVMgKGZuKSkKKysJLyogRm9yIGV4dGVybiBpbmxpbmUgZnVuY3Rpb25z IHRoYXQgZ2V0IHJlZGVmaW5lZCB3ZSBhbHdheXMKKysJICAgc2lsZW50bHkgaWdub3JlZCBhbHdh eV9pbmxpbmUgZmxhZy4gQmV0dGVyIGJlaGF2aW91ciB3b3VsZAorKwkgICBiZSB0byBiZSBhYmxl IHRvIGtlZXAgYm90aCBib2RpZXMgYW5kIHVzZSBleHRlcm4gaW5saW5lIGJvZHkKKysJICAgZm9y IGlubGluaW5nLCBidXQgd2UgY2FuJ3QgZG8gdGhhdCBiZWNhdXNlIGZyb250ZW5kcyBvdmVyd3Jp dGUKKysJICAgdGhlIGJvZHkuICAqLworKwkgICYmICFjZ19lZGdlLT5jYWxsZWUtPmxvY2FsLnJl ZGVmaW5lZF9leHRlcm5faW5saW5lCisgCSAgLyogQXZvaWQgd2FybmluZ3MgZHVyaW5nIGVhcmx5 IGlubGluZSBwYXNzLiAqLworIAkgICYmIGNncmFwaF9nbG9iYWxfaW5mb19yZWFkeSkKKyAJewor LS0tIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL3ByMzM3NjMuYy5qagkyMDA3LTExLTA2IDE2OjE5OjEy LjAwMDAwMDAwMCArMDEwMAorKysrIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL3ByMzM3NjMuYwkyMDA3 LTExLTA2IDE2OjE5OjEyLjAwMDAwMDAwMCArMDEwMAorQEAgLTAsMCArMSw2MCBAQAorKy8qIFBS IHRyZWUtb3B0aW1pemF0aW9uLzMzNzYzICovCisrLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKysv KiB7IGRnLW9wdGlvbnMgIi1PMiIgfSAqLworKworK3R5cGVkZWYgc3RydWN0CisreworKyAgdm9p ZCAqYTsKKysgIHZvaWQgKmI7CisrfSBUOworK2V4dGVybiB2b2lkICpmb28gKGNvbnN0IGNoYXIg KiwgY29uc3QgY2hhciAqKTsKKytleHRlcm4gdm9pZCAqYmFyICh2b2lkICosIGNvbnN0IGNoYXIg KiwgVCk7CisrZXh0ZXJuIGludCBiYXogKGNvbnN0IGNoYXIgKiwgaW50KTsKKysKKytleHRlcm4g aW5saW5lIF9fYXR0cmlidXRlX18gKChhbHdheXNfaW5saW5lLCBnbnVfaW5saW5lKSkgaW50Cisr YmF6IChjb25zdCBjaGFyICp4LCBpbnQgeSkKKyt7CisrICByZXR1cm4gMjsKKyt9CisrCisraW50 CisrYmF6IChjb25zdCBjaGFyICp4LCBpbnQgeSkKKyt7CisrICByZXR1cm4gMTsKKyt9CisrCisr aW50IHhhLCB4YjsKKysKKytzdGF0aWMgdm9pZCAqCisraW5sIChjb25zdCBjaGFyICp4LCBjb25z dCBjaGFyICp5KQorK3sKKysgIFQgdCA9IHsgJnhhLCAmeGIgfTsKKysgIGludCAqZiA9IChpbnQg KikgX19idWlsdGluX21hbGxvYyAoc2l6ZW9mIChpbnQpKTsKKysgIGNvbnN0IGNoYXIgKno7Cisr ICBpbnQgbyA9IDA7CisrICB2b2lkICpyID0gMDsKKysKKysgIGZvciAoeiA9IHk7ICp6OyB6Kysp CisrICAgIHsKKysgICAgICBpZiAoKnogPT0gJ3InKQorKwlvIHw9IDE7CisrICAgICAgaWYgKCp6 ID09ICd3JykKKysJbyB8PSAyOworKyAgICB9CisrICBpZiAobyA9PSAxKQorKyAgICAqZiA9IGJh eiAoeCwgMCk7CisrICBpZiAobyA9PSAyKQorKyAgICAqZiA9IGJheiAoeCwgMSk7CisrICBpZiAo byA9PSAzKQorKyAgICAqZiA9IGJheiAoeCwgMik7CisrCisrICBpZiAobyAmJiAqZiA+IDApCisr ICAgIHIgPSBiYXIgKGYsICJ3IiwgdCk7CisrICByZXR1cm4gcjsKKyt9CisrCisrdm9pZCAqCisr Zm9vIChjb25zdCBjaGFyICp4LCBjb25zdCBjaGFyICp5KQorK3sKKysgIHJldHVybiBpbmwgKHgs IHkpOworK30KKy0tLSBnY2MvdGVzdHN1aXRlL2crKy5kZy9vcHQvaW5saW5lMTMuQy5qagkyMDA3 LTExLTA2IDE2OjIwOjIwLjAwMDAwMDAwMCArMDEwMAorKysrIGdjYy90ZXN0c3VpdGUvZysrLmRn L29wdC9pbmxpbmUxMy5DCTIwMDctMTEtMDYgMTY6MjE6MzAuMDAwMDAwMDAwICswMTAwCitAQCAt MCwwICsxLDYwIEBACisrLy8gUFIgdHJlZS1vcHRpbWl6YXRpb24vMzM3NjMKKysvLyB7IGRnLWRv IGNvbXBpbGUgfQorKy8vIHsgZGctb3B0aW9ucyAiLU8yIiB9CisrCisrdHlwZWRlZiBzdHJ1Y3QK Kyt7CisrICB2b2lkICphOworKyAgdm9pZCAqYjsKKyt9IFQ7CisrZXh0ZXJuIHZvaWQgKmZvbyAo Y29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopOworK2V4dGVybiB2b2lkICpiYXIgKHZvaWQgKiwg Y29uc3QgY2hhciAqLCBUKTsKKytleHRlcm4gaW50IGJheiAoY29uc3QgY2hhciAqLCBpbnQpOwor KworK2V4dGVybiBpbmxpbmUgX19hdHRyaWJ1dGVfXyAoKGFsd2F5c19pbmxpbmUsIGdudV9pbmxp bmUpKSBpbnQKKytiYXogKGNvbnN0IGNoYXIgKngsIGludCB5KQorK3sKKysgIHJldHVybiAyOwor K30KKysKKytpbnQKKytiYXogKGNvbnN0IGNoYXIgKngsIGludCB5KQorK3sKKysgIHJldHVybiAx OworK30KKysKKytpbnQgeGEsIHhiOworKworK3N0YXRpYyB2b2lkICoKKytpbmwgKGNvbnN0IGNo YXIgKngsIGNvbnN0IGNoYXIgKnkpCisreworKyAgVCB0ID0geyAmeGEsICZ4YiB9OworKyAgaW50 ICpmID0gKGludCAqKSBfX2J1aWx0aW5fbWFsbG9jIChzaXplb2YgKGludCkpOworKyAgY29uc3Qg Y2hhciAqejsKKysgIGludCBvID0gMDsKKysgIHZvaWQgKnIgPSAwOworKworKyAgZm9yICh6ID0g eTsgKno7IHorKykKKysgICAgeworKyAgICAgIGlmICgqeiA9PSAncicpCisrCW8gfD0gMTsKKysg ICAgICBpZiAoKnogPT0gJ3cnKQorKwlvIHw9IDI7CisrICAgIH0KKysgIGlmIChvID09IDEpCisr ICAgICpmID0gYmF6ICh4LCAwKTsKKysgIGlmIChvID09IDIpCisrICAgICpmID0gYmF6ICh4LCAx KTsKKysgIGlmIChvID09IDMpCisrICAgICpmID0gYmF6ICh4LCAyKTsKKysKKysgIGlmIChvICYm ICpmID4gMCkKKysgICAgciA9IGJhciAoZiwgInciLCB0KTsKKysgIHJldHVybiByOworK30KKysK Kyt2b2lkICoKKytmb28gKGNvbnN0IGNoYXIgKngsIGNvbnN0IGNoYXIgKnkpCisreworKyAgcmV0 dXJuIGlubCAoeCwgeSk7CisrfQoKZGlmZiAtLWdpdCBhL2djYzQ0LXJoMzMwNzcxLnBhdGNoIGIv Z2NjNDQtcmgzMzA3NzEucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u ZjUyYjkxOQotLS0gL2Rldi9udWxsCisrKyBiL2djYzQ0LXJoMzMwNzcxLnBhdGNoCkBAIC0wLDAg KzEsMzQgQEAKKzIwMDctMTAtMTYgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgor CisJKiBNYWtlZmlsZS5hbSAobGliZ2NqX3Rvb2xzX2xhX0xJQkFERCk6IEFkZC4KKwkqIE1ha2Vm aWxlLmluOiBSZWdlbmVyYXRlZC4KKworLS0tIGxpYmphdmEvTWFrZWZpbGUuYW0uamoJMjAwNy0w My0xNyAwOToyMDozMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBsaWJqYXZhL01ha2VmaWxlLmFtCTIw MDctMTAtMTYgMTU6NDU6MTQuMDAwMDAwMDAwICswMjAwCitAQCAtMjc3LDYgKzI3Nyw4IEBAIEVY VFJBX2xpYmdjal9sYV9TT1VSQ0VTID0gamF2YS9sYW5nL09iamUKKyAKKyBsaWJnY2pfdG9vbHNf bGFfU09VUkNFUyA9IGNsYXNzcGF0aC90b29scy90b29scy56aXAKKyBsaWJnY2pfdG9vbHNfbGFf R0NKRkxBR1MgPSAkKEFNX0dDSkZMQUdTKSAtZmluZGlyZWN0LWRpc3BhdGNoIC1mbm8taW5kaXJl Y3QtY2xhc3NlcyAgLWZzb3VyY2UtZmlsZW5hbWU9JChoZXJlKS9jbGFzc3BhdGgvdG9vbHMvYWxs LWNsYXNzZXMubHN0CisrIyMgU2VlIGp2X2NvbnZlcnRfTERBREQuCisrbGliZ2NqX3Rvb2xzX2xh X0xJQkFERCA9IC1MJChoZXJlKS8ubGlicyBsaWJnY2oubGEKKyBsaWJnY2pfdG9vbHNfbGFfTERG TEFHUyA9IC1ycGF0aCAkKHRvb2xleGVjbGliZGlyKSBcCisgIC12ZXJzaW9uLWluZm8gYGdyZXAg LXYgJ15cIycgJChzcmNkaXIpL2xpYnRvb2wtdmVyc2lvbmAgXAorICAkKExJQkdDSl9MRF9TWU1C T0xJQ19GVU5DVElPTlMpCistLS0gbGliamF2YS9NYWtlZmlsZS5pbi5qagkyMDA3LTA3LTA0IDIx OjExOjExLjAwMDAwMDAwMCArMDIwMAorKysrIGxpYmphdmEvTWFrZWZpbGUuaW4JMjAwNy0xMC0x NiAxNTo1NjowNy4wMDAwMDAwMDAgKzAyMDAKK0BAIC0xNTMsNyArMTUzLDYgQEAgYW1fX29iamVj dHNfMSA9IGdudS9nY2oveGxpYi9saWJfZ251X2F3dAorIGFtX2xpYl9nbnVfYXd0X3hsaWJfbGFf T0JKRUNUUyA9ICQoYW1fX29iamVjdHNfMSkKKyBsaWJfZ251X2F3dF94bGliX2xhX09CSkVDVFMg PSAkKGFtX2xpYl9nbnVfYXd0X3hsaWJfbGFfT0JKRUNUUykKKyBAWExJQl9BV1RfVFJVRUBhbV9s aWJfZ251X2F3dF94bGliX2xhX3JwYXRoID0gLXJwYXRoICQodG9vbGV4ZWNsaWJkaXIpCistbGli Z2NqX3Rvb2xzX2xhX0xJQkFERCA9CisgYW1fbGliZ2NqX3Rvb2xzX2xhX09CSkVDVFMgPSBjbGFz c3BhdGgvdG9vbHMvbGliZ2NqX3Rvb2xzX2xhLXRvb2xzLmxvCisgbGliZ2NqX3Rvb2xzX2xhX09C SkVDVFMgPSAkKGFtX2xpYmdjal90b29sc19sYV9PQkpFQ1RTKQorIEBJTlRFUlBSRVRFUl9UUlVF QGFtX19ERVBFTkRFTkNJRVNfMSA9IGdudS9jbGFzc3BhdGgvamR3cC5sbyBcCitAQCAtOTQxLDYg Kzk0MCw3IEBAIGxpYmdjal9sYV9MSU5LID0gJChMSUJMSU5LKQorIEVYVFJBX2xpYmdjal9sYV9T T1VSQ0VTID0gamF2YS9sYW5nL09iamVjdC5qYXZhCisgbGliZ2NqX3Rvb2xzX2xhX1NPVVJDRVMg PSBjbGFzc3BhdGgvdG9vbHMvdG9vbHMuemlwCisgbGliZ2NqX3Rvb2xzX2xhX0dDSkZMQUdTID0g JChBTV9HQ0pGTEFHUykgLWZpbmRpcmVjdC1kaXNwYXRjaCAtZm5vLWluZGlyZWN0LWNsYXNzZXMg IC1mc291cmNlLWZpbGVuYW1lPSQoaGVyZSkvY2xhc3NwYXRoL3Rvb2xzL2FsbC1jbGFzc2VzLmxz dAorK2xpYmdjal90b29sc19sYV9MSUJBREQgPSAtTCQoaGVyZSkvLmxpYnMgbGliZ2NqLmxhCisg bGliZ2NqX3Rvb2xzX2xhX0xERkxBR1MgPSAtcnBhdGggJCh0b29sZXhlY2xpYmRpcikgXAorICAt dmVyc2lvbi1pbmZvIGBncmVwIC12ICdeXCMnICQoc3JjZGlyKS9saWJ0b29sLXZlcnNpb25gIFwK KyAgJChMSUJHQ0pfTERfU1lNQk9MSUNfRlVOQ1RJT05TKQoKZGlmZiAtLWdpdCBhL2djYzQ0LXJo MzQxMjIxLnBhdGNoIGIvZ2NjNDQtcmgzNDEyMjEucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uMWY1ZmY5MQotLS0gL2Rldi9udWxsCisrKyBiL2djYzQ0LXJoMzQxMjIx LnBhdGNoCkBAIC0wLDAgKzEsMjggQEAKKzIwMDctMTAtMjEgIEpha3ViIEplbGluZWsgIDxqYWt1 YkByZWRoYXQuY29tPgorCisJKiBkb2MvTWFrZWZpbGUuYW0gKFBPRDJNQU4pOiBTZXQgZGF0ZSBm cm9tIGNwLXRvb2xzLnRleGluZm8KKwl0aW1lc3RhbXAgcmF0aGVyIHRoYW4gZnJvbSBjdXJyZW50 IGRhdGUuCisJKiBkb2MvTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGVkLgorCistLS0gbGliamF2YS9j bGFzc3BhdGgvZG9jL01ha2VmaWxlLmFtLmpqCTIwMDctMTItMDcgMTc6NTU6MDAuMDAwMDAwMDAw ICswMTAwCisrKysgbGliamF2YS9jbGFzc3BhdGgvZG9jL01ha2VmaWxlLmFtCTIwMDctMTItMDcg MTg6NTU6MjguMDAwMDAwMDAwICswMTAwCitAQCAtMzEsNyArMzEsNyBAQCBUT09MU19NQU5GSUxF UyA9IFwKKyAJZ3RuYW1lc2Vydi4xIFwKKyAJZ2pkb2MuMQorIAorLVBPRDJNQU4gPSBwb2QybWFu IC0tY2VudGVyPSJHTlUiIC0tcmVsZWFzZT0iJChWRVJTSU9OKSIKKytQT0QyTUFOID0gcG9kMm1h biAtLWNlbnRlcj0iR05VIiAtLXJlbGVhc2U9IiQoVkVSU0lPTikiIC0tZGF0ZT0iJChzaGVsbCBs cyAtLXRpbWUtc3R5bGU9KyVGIC1sICQoc3JjZGlyKS9jcC10b29scy50ZXhpbmZvIHwgYXdrICd7 cHJpbnQgJCQ2fScpIgorIFRFWEkyUE9EID0gcGVybCAkKHNyY2RpcikvdGV4aTJwb2QucGwKKyBT VEFNUCA9IGVjaG8gdGltZXN0YW1wID4KKyAKKy0tLSBsaWJqYXZhL2NsYXNzcGF0aC9kb2MvTWFr ZWZpbGUuaW4uamoJMjAwNy0xMi0wNyAxNzo1NTowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBsaWJq YXZhL2NsYXNzcGF0aC9kb2MvTWFrZWZpbGUuaW4JMjAwNy0xMi0wNyAxODo1NTo0My4wMDAwMDAw MDAgKzAxMDAKK0BAIC0zODIsNyArMzgyLDcgQEAgVE9PTFNfTUFORklMRVMgPSBcCisgCWd0bmFt ZXNlcnYuMSBcCisgCWdqZG9jLjEKKyAKKy1QT0QyTUFOID0gcG9kMm1hbiAtLWNlbnRlcj0iR05V IiAtLXJlbGVhc2U9IiQoVkVSU0lPTikiCisrUE9EMk1BTiA9IHBvZDJtYW4gLS1jZW50ZXI9IkdO VSIgLS1yZWxlYXNlPSIkKFZFUlNJT04pIiAtLWRhdGU9IiQoc2hlbGwgbHMgLS10aW1lLXN0eWxl PSslRiAtbCAkKHNyY2RpcikvY3AtdG9vbHMudGV4aW5mbyB8IGF3ayAne3ByaW50ICQkNn0nKSIK KyBURVhJMlBPRCA9IHBlcmwgJChzcmNkaXIpL3RleGkycG9kLnBsCisgU1RBTVAgPSBlY2hvIHRp bWVzdGFtcCA+CisgQEdFTklOU1JDX0ZBTFNFQFNUQU1QX0dFTklOU1JDID0gCgpkaWZmIC0tZ2l0 IGEvZ2NjNDQtc3BhcmMtY29uZmlnLWRldGVjdGlvbi5wYXRjaCBiL2djYzQ0LXNwYXJjLWNvbmZp Zy1kZXRlY3Rpb24ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2Mz Y2I0MQotLS0gL2Rldi9udWxsCisrKyBiL2djYzQ0LXNwYXJjLWNvbmZpZy1kZXRlY3Rpb24ucGF0 Y2gKQEAgLTAsMCArMSw0MCBAQAorLS0tIGdjYy9jb25maWcuZ2NjLmpqCTIwMDgtMDQtMjQgMTU6 NDI6NDYuMDAwMDAwMDAwIC0wNTAwCisrKysgZ2NjL2NvbmZpZy5nY2MJMjAwOC0wNC0yNCAxNTo0 NDo1MS4wMDAwMDAwMDAgLTA1MDAKK0BAIC0yMTc1LDcgKzIxNzUsNyBAQCBzcGFyYy0qLWVsZiop CisgCXRtYWtlX2ZpbGU9InNwYXJjL3QtZWxmIHNwYXJjL3QtY3J0Zm0iCisgCWV4dHJhX3BhcnRz PSJjcnRpLm8gY3J0bi5vIGNydGJlZ2luLm8gY3J0ZW5kLm8iCisgCTs7Cistc3BhcmMtKi1saW51 eCopCQkjIFNQQVJDJ3MgcnVubmluZyBHTlUvTGludXgsIGxpYmM2Cisrc3BhcmMtKi1saW51eCog fCBzcGFyY3Y5Ki0qLWxpbnV4KikJCSMgU1BBUkMncyBydW5uaW5nIEdOVS9MaW51eCwgbGliYzYK KyAJdG1fZmlsZT0iJHt0bV9maWxlfSBkYnhlbGYuaCBlbGZvcy5oIHN2cjQuaCBzcGFyYy9zeXN2 NC5oIGxpbnV4LmgiCisgCWV4dHJhX29wdGlvbnM9IiR7ZXh0cmFfb3B0aW9uc30gc3BhcmMvbG9u Zy1kb3VibGUtc3dpdGNoLm9wdCIKKyAJdG1ha2VfZmlsZT0iJHt0bWFrZV9maWxlfSBzcGFyYy90 LWxpbnV4IgorQEAgLTIyODcsNyArMjI4Nyw3IEBAIHNwYXJjNjQtKi1mcmVlYnNkKnx1bHRyYXNw YXJjLSotZnJlZWJzZCoKKyAJCSopIGVjaG8gIiR3aXRoX2NwdSBub3Qgc3VwcG9ydGVkIGZvciBm cmVlYnNkIHRhcmdldCI7IGV4aXQgMSA7OworIAllc2FjCisgCTs7Cistc3BhcmM2NC0qLWxpbnV4 KikJCSMgNjQtYml0IFNQQVJDJ3MgcnVubmluZyBHTlUvTGludXgKKytzcGFyYzY0Ki0qLWxpbnV4 KikJCSMgNjQtYml0IFNQQVJDJ3MgcnVubmluZyBHTlUvTGludXgKKyAJdG1fZmlsZT0ic3BhcmMv YmlhcmNoNjQuaCAke3RtX2ZpbGV9IGRieGVsZi5oIGVsZm9zLmggc3ZyNC5oIHNwYXJjL3N5c3Y0 LmggbGludXguaCBzcGFyYy9saW51eDY0LmgiCisgCWV4dHJhX29wdGlvbnM9IiR7ZXh0cmFfb3B0 aW9uc30gc3BhcmMvbG9uZy1kb3VibGUtc3dpdGNoLm9wdCIKKyAJdG1ha2VfZmlsZT0iJHt0bWFr ZV9maWxlfSBzcGFyYy90LWxpbnV4IHNwYXJjL3QtbGludXg2NCBzcGFyYy90LWNydGZtIgorLS0t IGxpYmdjYy9jb25maWcuaG9zdC5qagkyMDA4LTA0LTI0IDE1OjQ2OjE5LjAwMDAwMDAwMCAtMDUw MAorKysrIGxpYmdjYy9jb25maWcuaG9zdAkyMDA4LTA0LTI0IDE1OjQ2OjQ5LjAwMDAwMDAwMCAt MDUwMAorQEAgLTU3Miw3ICs1NzIsNyBAQCBzcGFyYzY0LSotb3BlbmJzZCopCisgCTs7Cisgc3Bh cmMtKi1lbGYqKQorIAk7OworLXNwYXJjLSotbGludXgqKQkJIyBTUEFSQydzIHJ1bm5pbmcgR05V L0xpbnV4LCBsaWJjNgorK3NwYXJjLSotbGludXgqIHwgc3BhcmN2OSotKi1saW51eCopCQkjIFNQ QVJDJ3MgcnVubmluZyBHTlUvTGludXgsIGxpYmM2CisgCWV4dHJhX3BhcnRzPSIkZXh0cmFfcGFy dHMgY3J0ZmFzdG1hdGgubyIKKyAJdG1ha2VfZmlsZT0iJHt0bWFrZV9maWxlfSBzcGFyYy90LWNy dGZtIgorIAk7OworQEAgLTU5MCw3ICs1OTAsNyBAQCBzcGFyYy13cnMtdnh3b3JrcykKKyAJOzsK KyBzcGFyYzY0LSotZnJlZWJzZCp8dWx0cmFzcGFyYy0qLWZyZWVic2QqKQorIAk7OworLXNwYXJj NjQtKi1saW51eCopCQkjIDY0LWJpdCBTUEFSQydzIHJ1bm5pbmcgR05VL0xpbnV4Cisrc3BhcmM2 NCotKi1saW51eCopCQkjIDY0LWJpdCBTUEFSQydzIHJ1bm5pbmcgR05VL0xpbnV4CisgCWV4dHJh X3BhcnRzPSIkZXh0cmFfcGFydHMgY3J0ZmFzdG1hdGgubyIKKyAJdG1ha2VfZmlsZT0iJHt0bWFr ZV9maWxlfSBzcGFyYy90LWNydGZtIgorIAk7OwoKZGlmZiAtLWdpdCBhL2ltcG9ydC5sb2cgYi9p bXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyMDQwYTMKLS0t IC9kZXYvbnVsbAorKysgYi9pbXBvcnQubG9nCkBAIC0wLDAgKzEgQEAKK2djYy00XzRfMC0wXzM6 SEVBRDpnY2MtNC40LjAtMC4zLnNyYy5ycG06MTIzMjEzMDg0MQoKZGlmZiAtLWdpdCBhL3NvdXJj ZXMgYi9zb3VyY2VzCmluZGV4IDA0Mjc0MmYuLjI3MjY0YWYgMTAwNjQ0Ci0tLSBhL3NvdXJjZXMK KysrIGIvc291cmNlcwpAQCAtMSwyICsxLDIgQEAKLWViOWNlOGM2ZjkyOTI4M2JjOTFjOTNhNjA4 N2U4Y2VkICBnY2MtNC4zLjItMjAwODExMDUudGFyLmJ6MgotOTJhNzBmOWU1NjIyM2I2NTNiY2Uw ZjU4ZjkwY2Y5NTAgIGZhc3RqYXItMC45NS50YXIuZ3oKKzI2NTlmMDljMmU0M2VmOGI3ZDQ0MDYz MjE3NTNmMWIyICBmYXN0amFyLTAuOTcudGFyLmd6CiswZmFmY2IwZDIzZDQyMGM5NzhhYjI1Mzcw MjA5NGFkYSAgZ2NjLTQuNC4wLTIwMDkwMTE1LnRhci5iejIK