From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel De Graaf Subject: [PATCH 01/17] flask/policy: split into modules Date: Mon, 20 Jun 2016 10:04:10 -0400 Message-ID: <1466431466-28055-2-git-send-email-dgdegra@tycho.nsa.gov> References: <1466431466-28055-1-git-send-email-dgdegra@tycho.nsa.gov> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1466431466-28055-1-git-send-email-dgdegra@tycho.nsa.gov> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Daniel De Graaf List-Id: xen-devel@lists.xenproject.org VGhpcyBtYWtlcyBpdCBlYXNpZXIgdG8gZW5hYmxlIG9yIGRpc2FibGUgcGFydHMgb2YgdGhlIFhT TSBwb2xpY3kuCgpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgRGUgR3JhYWYgPGRnZGVncmFAdHljaG8u bnNhLmdvdj4KUmV2aWV3ZWQtYnk6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtA b3JhY2xlLmNvbT4KUmV2aWV3ZWQtYnk6IERvdWcgR29sZHN0ZWluIDxjYXJkb2VAY2FyZG9lLmNv bT4KLS0tCiB0b29scy9mbGFzay9wb2xpY3kvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAg ICB8ICAyMiArLQogdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMvZG9tMC50ZSAgICAgICAgICAg ICAgICAgfCAgNzQgKysrKysrCiB0b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy9kb21VLnRlICAg ICAgICAgICAgICAgICB8ICAyNSArKwogdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMvZ3Vlc3Rf ZmVhdHVyZXMudGUgICAgICAgfCAgMzEgKysrCiB0b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy9p c29sYXRlZF9kb21VLnRlICAgICAgICB8ICAgNyArCiB0b29scy9mbGFzay9wb2xpY3kvbW9kdWxl cy9tb2R1bGVzLmNvbmYgICAgICAgICAgICB8ICAzNCArKysKIHRvb2xzL2ZsYXNrL3BvbGljeS9t b2R1bGVzL25pY19kZXYudGUgICAgICAgICAgICAgIHwgIDE0ICsrCiB0b29scy9mbGFzay9wb2xp Y3kvbW9kdWxlcy9ub21pZ3JhdGUudGUgICAgICAgICAgICB8ICAgOCArCiB0b29scy9mbGFzay9w b2xpY3kvbW9kdWxlcy9wcm90X2RvbVUudGUgICAgICAgICAgICB8ICAxMyArCiAuLi4vcG9saWN5 L3twb2xpY3kvbW9kdWxlcy94ZW4gPT4gbW9kdWxlc30veGVuLmlmICB8ICAgMAogdG9vbHMvZmxh c2svcG9saWN5L21vZHVsZXMveGVuLnRlICAgICAgICAgICAgICAgICAgfCAgODkgKysrKysrKwog dG9vbHMvZmxhc2svcG9saWN5L3BvbGljeS9tb2R1bGVzLmNvbmYgICAgICAgICAgICAgfCAgMTUg LS0KIHRvb2xzL2ZsYXNrL3BvbGljeS9wb2xpY3kvbW9kdWxlcy94ZW4veGVuLnRlICAgICAgIHwg MjcyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMTMgZmlsZXMgY2hhbmdlZCwgMzAyIGluc2VydGlv bnMoKyksIDMwMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0b29scy9mbGFzay9w b2xpY3kvbW9kdWxlcy9kb20wLnRlCiBjcmVhdGUgbW9kZSAxMDA2NDQgdG9vbHMvZmxhc2svcG9s aWN5L21vZHVsZXMvZG9tVS50ZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRvb2xzL2ZsYXNrL3BvbGlj eS9tb2R1bGVzL2d1ZXN0X2ZlYXR1cmVzLnRlCiBjcmVhdGUgbW9kZSAxMDA2NDQgdG9vbHMvZmxh c2svcG9saWN5L21vZHVsZXMvaXNvbGF0ZWRfZG9tVS50ZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRv b2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL21vZHVsZXMuY29uZgogY3JlYXRlIG1vZGUgMTAwNjQ0 IHRvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL25pY19kZXYudGUKIGNyZWF0ZSBtb2RlIDEwMDY0 NCB0b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy9ub21pZ3JhdGUudGUKIGNyZWF0ZSBtb2RlIDEw MDY0NCB0b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy9wcm90X2RvbVUudGUKIHJlbmFtZSB0b29s cy9mbGFzay9wb2xpY3kve3BvbGljeS9tb2R1bGVzL3hlbiA9PiBtb2R1bGVzfS94ZW4uaWYgKDEw MCUpCiBjcmVhdGUgbW9kZSAxMDA2NDQgdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMveGVuLnRl CiBkZWxldGUgbW9kZSAxMDA2NDQgdG9vbHMvZmxhc2svcG9saWN5L3BvbGljeS9tb2R1bGVzLmNv bmYKIGRlbGV0ZSBtb2RlIDEwMDY0NCB0b29scy9mbGFzay9wb2xpY3kvcG9saWN5L21vZHVsZXMv eGVuL3hlbi50ZQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2ZsYXNrL3BvbGljeS9NYWtlZmlsZSBiL3Rv b2xzL2ZsYXNrL3BvbGljeS9NYWtlZmlsZQppbmRleCA0YmU5MjFjLi5iMmMyZDA2IDEwMDY0NAot LS0gYS90b29scy9mbGFzay9wb2xpY3kvTWFrZWZpbGUKKysrIGIvdG9vbHMvZmxhc2svcG9saWN5 L01ha2VmaWxlCkBAIC0zNyw3ICszNyw3IEBAIFBPTElDWV9WRVJfTElTVF9IViA9IDI0IDMwCiAK ICMgcG9saWN5IHNvdXJjZSBsYXlvdXQKIFBPTERJUiA6PSBwb2xpY3kKLU1PRERJUiA6PSAkKFBP TERJUikvbW9kdWxlcworTU9ERElSIDo9IG1vZHVsZXMKIAogIyBDbGFzc2VzIGFuZCBhY2Nlc3Mg dmVjdG9ycyBkZWZpbmVkIGluIHRoZSBoeXBlcnZpc29yLiBDaGFuZ2VzIHRvIHRoZXNlIHJlcXVp cmUKICMgYSByZWNvbXBpbGUgb2YgYm90aCB0aGUgaHlwZXJ2aXNvciBhbmQgc2VjdXJpdHkgcG9s aWN5LgpAQCAtNjAsNyArNjAsNyBAQCBERVZfT0NPTlMgOj0gJChQT0xESVIpL2RldmljZV9jb250 ZXh0cwogCiAjIGNvbmZpZyBmaWxlIHBhdGhzCiBHTE9CQUxUVU4gOj0gJChQT0xESVIpL2dsb2Jh bF90dW5hYmxlcwotTU9EX0NPTkYgOj0gJChQT0xESVIpL21vZHVsZXMuY29uZgorTU9EX0NPTkYg Oj0gJChNT0RESVIpL21vZHVsZXMuY29uZgogCiAjIGNoZWNrcG9saWN5IGNhbiB1c2UgdGhlICNs aW5lIGRpcmVjdGl2ZXMgcHJvdmlkZWQgYnkgLXMgZm9yIGVycm9yIHJlcG9ydGluZzoKIE00UEFS QU0gOj0gLUQgc2VsZl9jb250YWluZWRfcG9saWN5IC1zCkBAIC04NCwyMiArODQsMTQgQEAgZW5k aWYKIE00UEFSQU0gKz0gLUQgbWxzX251bV9zZW5zPSQoTUxTX1NFTlMpIC1EIG1sc19udW1fY2F0 cz0kKE1MU19DQVRTKQogCiAKLSMgRmluZCBtb2R1bGVzCi1BTExfTEFZRVJTIDo9ICQoZmlsdGVy LW91dCAkKE1PRERJUikvQ1ZTLCQoc2hlbGwgZmluZCAkKHdpbGRjYXJkICQoTU9ERElSKS8qKSAt bWF4ZGVwdGggMCAtdHlwZSBkKSkKLQotIyBzb3J0IGhlcmUgc2luY2UgaXQgcmVtb3ZlcyBkdXBs aWNhdGVzLCB3aGljaCBjYW4gaGFwcGVuCi0jIHdoZW4gYSBnZW5lcmF0ZWQgZmlsZSBpcyBhbHJl YWR5IGdlbmVyYXRlZAotREVURUNURURfTU9EUyA6PSAkKHNvcnQgJChmb3JlYWNoIGRpciwkKEFM TF9MQVlFUlMpLCQod2lsZGNhcmQgJChkaXIpLyoudGUpKSkKLQogIyBtb2R1bGVzLmNvbmYgc2V0 dGluZyBmb3IgcG9saWN5IGNvbmZpZ3VyYXRpb24KIE1PREVOQUJMRUQgOj0gb24KIAogIyBleHRy YWN0IHNldHRpbmdzIGZyb20gbW9kdWxlcy5jb25mCi1FTkFCTEVEX01PRFMgOj0gJChmb3JlYWNo IG1vZCwkKHNoZWxsIGF3ayAnL15bIFx0XSpbYS16XS97IGlmICgkJDMgPT0gIiQoTU9ERU5BQkxF RCkiKSBwcmludCAkJDEgfScgJChNT0RfQ09ORikgMj4gL2Rldi9udWxsKSwkKHN1YnN0IC4vLCwk KHNoZWxsIGZpbmQgLWluYW1lICQobW9kKS50ZSkpKQotCi1BTExfTU9EVUxFUyA6PSAkKGZpbHRl ciAkKEVOQUJMRURfTU9EUyksJChERVRFQ1RFRF9NT0RTKSkKK0VOQUJMRURfTElTVCA6PSAkKHNo ZWxsIGF3ayAnL15bIFx0XSpbYS16XS97IGlmICgkJDMgPT0gIiQoTU9ERU5BQkxFRCkiKSBwcmlu dCAkJDEgfScgJChNT0RfQ09ORikgMj4gL2Rldi9udWxsKQogCi1BTExfSU5URVJGQUNFUyA6PSAk KEFMTF9NT0RVTEVTOi50ZT0uaWYpCitBTExfTU9EVUxFUyA6PSAkKGZvcmVhY2ggbW9kLCQoRU5B QkxFRF9MSVNUKSwkKE1PRERJUikvJChtb2QpLnRlKQorQUxMX0lOVEVSRkFDRVMgOj0gJCh3aWxk Y2FyZCAkKEFMTF9NT0RVTEVTOi50ZT0uaWYpKQogCiAjIFRoZSBvcmRlciBvZiB0aGVzZSBmaWxl cyBpcyBpbXBvcnRhbnQKIFBPTElDWV9TRUNUSU9OUyA6PSAkKFNFQ0NMQVNTKSAkKElTSURfREVD TFMpICQoQVZTKQpAQCAtMTE4LDggKzExMCw4IEBAIGluc3RhbGw6ICQoUE9MSUNZX0ZJTEVOQU1F KQogJChQT0xJQ1lfRklMRU5BTUUpOiBwb2xpY3kuY29uZgogCSQoQ0hFQ0tQT0xJQ1kpICQoQ0hF Q0tQT0xJQ1lfUEFSQU0pICReIC1vICRACiAKLXBvbGljeS5jb25mOiAkKFBPTElDWV9TRUNUSU9O UykKLQkkKE00KSAkKE00UEFSQU0pICReID4gJEAKK3BvbGljeS5jb25mOiAkKFBPTElDWV9TRUNU SU9OUykgJChNT0RfQ09ORikKKwkkKE00KSAkKE00UEFSQU0pICQoUE9MSUNZX1NFQ1RJT05TKSA+ ICRACiAKIGNsZWFuOgogCSQoUk0pIHRtcCBwb2xpY3kuY29uZiAkKFBPTElDWV9GSUxFTkFNRSkK ZGlmZiAtLWdpdCBhL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL2RvbTAudGUgYi90b29scy9m bGFzay9wb2xpY3kvbW9kdWxlcy9kb20wLnRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmVmNmE5ODYKLS0tIC9kZXYvbnVsbAorKysgYi90b29scy9mbGFzay9wb2xpY3kvbW9k dWxlcy9kb20wLnRlCkBAIC0wLDAgKzEsNzQgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisj CisjIEFsbG93IGRvbTAgYWNjZXNzIHRvIGFsbCBzeXNjdGxzLCBkZXZpY2VzLCBhbmQgdGhlIHNl Y3VyaXR5IHNlcnZlci4KKyMKKyMgV2hpbGUgdGhpcyBjb3VsZCBiZSB3cml0dGVuIG1vcmUgYnJp ZWZseSB1c2luZyB3aWxkY2FyZHMsIHRoZSBwZXJtaXNzaW9ucyBhcmUKKyMgbGlzdGVkIG91dCB0 byBtYWtlIHJlbW92aW5nIHNwZWNpZmljIHBlcm1pc3Npb25zIHNpbXBsZXIuCisjCisjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworYWxsb3cgZG9tMF90IHhlbl90OnhlbiB7CisJc2V0dGltZSB0YnVm Y29udHJvbCByZWFkY29uc29sZSBjbGVhcmNvbnNvbGUgcGVyZmNvbnRyb2wgbXRycl9hZGQKKwlt dHJyX2RlbCBtdHJyX3JlYWQgbWljcm9jb2RlIHBoeXNpbmZvIHF1aXJrIHdyaXRlY29uc29sZSBy ZWFkYXBpYworCXdyaXRlYXBpYyBwcml2cHJvZmlsZSBub25wcml2cHJvZmlsZSBrZXhlYyBmaXJt d2FyZSBzbGVlcCBmcmVxdWVuY3kKKwlnZXRpZGxlIGRlYnVnIGdldGNwdWluZm8gaGVhcCBwbV9v cCBtY2Ffb3AgbG9ja3Byb2YgY3B1cG9vbF9vcCB0bWVtX29wCisJdG1lbV9jb250cm9sIGdldHNj aGVkdWxlciBzZXRzY2hlZHVsZXIKK307CithbGxvdyBkb20wX3QgeGVuX3Q6eGVuMiB7CisJcmVz b3VyY2Vfb3AgcHNyX2NtdF9vcCBwc3JfY2F0X29wIHBtdV9jdHJsIGdldF9zeW1ib2wKKwlnZXRf Y3B1X2xldmVsbGluZ19jYXBzIGdldF9jcHVfZmVhdHVyZXNldCBsaXZlcGF0Y2hfb3AKK307CisK KyMgQWxsb3cgZG9tMCB0byB1c2UgYWxsIFhFTlZFUl8gc3Vib3BzIHRoYXQgaGF2ZSBjaGVja3Mu CisjIE5vdGUgdGhhdCBkb20wIGlzIHBhcnQgb2YgZG9tYWluX3R5cGUgc28gdGhpcyBoYXMgZHVw bGljYXRlcy4KK2FsbG93IGRvbTBfdCB4ZW5fdDp2ZXJzaW9uIHsKKwl4ZW5fZXh0cmF2ZXJzaW9u IHhlbl9jb21waWxlX2luZm8geGVuX2NhcGFiaWxpdGllcworCXhlbl9jaGFuZ2VzZXQgeGVuX3Bh Z2VzaXplIHhlbl9ndWVzdF9oYW5kbGUgeGVuX2NvbW1hbmRsaW5lCisJeGVuX2J1aWxkX2lkCit9 OworCithbGxvdyBkb20wX3QgeGVuX3Q6bW11IG1lbW9yeW1hcDsKKworIyBBbGxvdyBkb20wIHRv IHVzZSB0aGVzZSBkb21jdGxzIG9uIGl0c2VsZi4gRm9yIGRvbWN0bHMgYWN0aW5nIG9uIG90aGVy CisjIGRvbWFpbnMsIHNlZSB0aGUgZGVmaW5pdGlvbnMgb2YgY3JlYXRlX2RvbWFpbiBhbmQgbWFu YWdlX2RvbWFpbi4KK2FsbG93IGRvbTBfdCBkb20wX3Q6ZG9tYWluIHsKKwlzZXR2Y3B1Y29udGV4 dCBtYXhfdmNwdXMgc2V0YWZmaW5pdHkgZ2V0YWZmaW5pdHkgZ2V0c2NoZWR1bGVyCisJZ2V0ZG9t YWluaW5mbyBnZXR2Y3B1aW5mbyBnZXR2Y3B1Y29udGV4dCBzZXRkb21haW5tYXhtZW0gc2V0ZG9t YWluaGFuZGxlCisJc2V0ZGVidWdnaW5nIGh5cGVyY2FsbCBzZXR0aW1lIHNldGFkZHJzaXplIGdl dGFkZHJzaXplIHRyaWdnZXIKKwlnZXRleHR2Y3B1Y29udGV4dCBzZXRleHR2Y3B1Y29udGV4dCBn ZXR2Y3B1ZXh0c3RhdGUgc2V0dmNwdWV4dHN0YXRlCisJZ2V0cG9kdGFyZ2V0IHNldHBvZHRhcmdl dCBzZXRfbWlzY19pbmZvIHNldF92aXJxX2hhbmRsZXIKK307CithbGxvdyBkb20wX3QgZG9tMF90 OmRvbWFpbjIgeworCXNldF9jcHVpZCBnZXR0c2Mgc2V0dHNjIHNldHNjaGVkdWxlciBzZXRfbWF4 X2V2dGNobiBzZXRfdm51bWFpbmZvCisJZ2V0X3ZudW1haW5mbyBwc3JfY210X29wIHBzcl9jYXRf b3AKK307CithbGxvdyBkb20wX3QgZG9tMF90OnJlc291cmNlIHsgYWRkIHJlbW92ZSB9OworCisj IFRoZXNlIHBlcm1pc3Npb25zIGFsbG93IHVzaW5nIHRoZSBGTEFTSyBzZWN1cml0eSBzZXJ2ZXIg dG8gY29tcHV0ZSBhY2Nlc3MKKyMgY2hlY2tzIGxvY2FsbHksIHdoaWNoIGNvdWxkIGJlIHVzZWQg YnkgYSBkb21haW4gb3Igc2VydmljZSAoc3VjaCBhcyB4ZW5zdG9yZSkKKyMgdGhhdCBkb2VzIG5v dCBoYXZlIGl0cyBvd24gc2VjdXJpdHkgc2VydmVyIHRvIG1ha2UgYWNjZXNzIGRlY2lzaW9ucyBi YXNlZCBvbgorIyBYZW4ncyBzZWN1cml0eSBwb2xpY3kuCithbGxvdyBkb20wX3Qgc2VjdXJpdHlf dDpzZWN1cml0eSB7CisJY29tcHV0ZV9hdiBjb21wdXRlX2NyZWF0ZSBjb21wdXRlX21lbWJlciBj b21wdXRlX3JlbGFiZWwgY29tcHV0ZV91c2VyCit9OworCisjIEFsbG93IHN0cmluZy9TSUQgY29u dmVyc2lvbnMgKGZvciAieGwgbGlzdCAtWiIgYW5kIHNpbWlsYXIpCithbGxvdyBkb20wX3Qgc2Vj dXJpdHlfdDpzZWN1cml0eSBjaGVja19jb250ZXh0OworCisjIEFsbG93IGZsYXNrLWxhYmVsLXBj aSB0byBhZGQgYW5kIGNoYW5nZSBsYWJlbHMKK2FsbG93IGRvbTBfdCBzZWN1cml0eV90OnNlY3Vy aXR5IHsgYWRkX29jb250ZXh0IGRlbF9vY29udGV4dCB9OworCisjIEFsbG93IHBlcmZvcm1hbmNl IHBhcmFtZXRlcnMgb2YgdGhlIHNlY3VyaXR5IHNlcnZlciB0byBiZSB0d2Vha2VkCithbGxvdyBk b20wX3Qgc2VjdXJpdHlfdDpzZWN1cml0eSBzZXRzZWNwYXJhbTsKKworIyBBbGxvdyBjaGFuZ2lu ZyB0aGUgc2VjdXJpdHkgcG9saWN5CithbGxvdyBkb20wX3Qgc2VjdXJpdHlfdDpzZWN1cml0eSB7 IGxvYWRfcG9saWN5IHNldGVuZm9yY2Ugc2V0Ym9vbCB9OworCisjIEF1ZGl0IHBvbGljeSBjaGFu Z2UgZXZlbnRzIGV2ZW4gd2hlbiB0aGV5IGFyZSBhbGxvd2VkCithdWRpdGFsbG93IGRvbTBfdCBz ZWN1cml0eV90OnNlY3VyaXR5IHsgbG9hZF9wb2xpY3kgc2V0ZW5mb3JjZSBzZXRib29sIH07CisK K2FkbWluX2RldmljZShkb20wX3QsIGRldmljZV90KQorYWRtaW5fZGV2aWNlKGRvbTBfdCwgaXJx X3QpCithZG1pbl9kZXZpY2UoZG9tMF90LCBpb3BvcnRfdCkKK2FkbWluX2RldmljZShkb20wX3Qs IGlvbWVtX3QpCisKK2RvbWFpbl9jb21tcyhkb20wX3QsIGRvbTBfdCkKZGlmZiAtLWdpdCBhL3Rv b2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL2RvbVUudGUgYi90b29scy9mbGFzay9wb2xpY3kvbW9k dWxlcy9kb21VLnRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNhNWVlY2QK LS0tIC9kZXYvbnVsbAorKysgYi90b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy9kb21VLnRlCkBA IC0wLDAgKzEsMjUgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgRG9tYWluIGNyZWF0 aW9uCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2RlY2xhcmVfZG9tYWluKGRvbVVfdCkK K2RvbWFpbl9zZWxmX2NvbW1zKGRvbVVfdCkKK2NyZWF0ZV9kb21haW4oZG9tMF90LCBkb21VX3Qp CittYW5hZ2VfZG9tYWluKGRvbTBfdCwgZG9tVV90KQorZG9tYWluX2NvbW1zKGRvbTBfdCwgZG9t VV90KQorZG9tYWluX2NvbW1zKGRvbVVfdCwgZG9tVV90KQorbWlncmF0ZV9kb21haW5fb3V0KGRv bTBfdCwgZG9tVV90KQorZG9tYWluX3NlbGZfY29tbXMoZG9tVV90KQorCisjIERldmljZSBtb2Rl bCBmb3IgZG9tVV90LiAgWW91IGNhbiBkZWZpbmUgZGlzdGluY3QgdHlwZXMgZm9yIGRldmljZSBt b2RlbHMgZm9yCisjIGRvbWFpbnMgb2Ygb3RoZXIgdHlwZXMsIG9yIGFkZCBtb3JlIG1ha2VfZGV2 aWNlX21vZGVsIGxpbmVzIGZvciB0aGlzIHR5cGUuCitkZWNsYXJlX2RvbWFpbihkbV9kb21fdCkK K2NyZWF0ZV9kb21haW4oZG9tMF90LCBkbV9kb21fdCkKK21hbmFnZV9kb21haW4oZG9tMF90LCBk bV9kb21fdCkKK2RvbWFpbl9jb21tcyhkb20wX3QsIGRtX2RvbV90KQorbWFrZV9kZXZpY2VfbW9k ZWwoZG9tMF90LCBkbV9kb21fdCwgZG9tVV90KQorCisjIFRoaXMgaXMgcmVxdWlyZWQgZm9yIFBD SSAob3Igb3RoZXIgZGV2aWNlKSBwYXNzdGhyb3VnaAorZGVsZWdhdGVfZGV2aWNlcyhkb20wX3Qs IGRvbVVfdCkKZGlmZiAtLWdpdCBhL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL2d1ZXN0X2Zl YXR1cmVzLnRlIGIvdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMvZ3Vlc3RfZmVhdHVyZXMudGUK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWFjOTc4MAotLS0gL2Rldi9udWxs CisrKyBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL2d1ZXN0X2ZlYXR1cmVzLnRlCkBAIC0w LDAgKzEsMzEgQEAKKyMgQWxsb3cgYWxsIGRvbWFpbnMgdG8gdXNlICh1bnByaXZpbGVnZWQgcGFy dHMgb2YpIHRoZSB0bWVtIGh5cGVyY2FsbAorYWxsb3cgZG9tYWluX3R5cGUgeGVuX3Q6eGVuIHRt ZW1fb3A7CisKKyMgQWxsb3cgYWxsIGRvbWFpbnMgdG8gdXNlIFBNVSAoYnV0IG5vdCB0byBjaGFu Z2UgaXRzIHNldHRpbmdzIC0tLSB0aGF0J3Mgd2hhdAorIyBwbXVfY3RybCBpcyBmb3IpCithbGxv dyBkb21haW5fdHlwZSB4ZW5fdDp4ZW4yIHBtdV91c2U7CisKKyMgQWxsb3cgZ3Vlc3QgY29uc29s ZSBvdXRwdXQgdG8gdGhlIHNlcmlhbCBjb25zb2xlLiAgVGhpcyBpcyB1c2VkIGJ5IFBWIExpbnV4 CisjIGFuZCBzdHViIGRvbWFpbnMgZm9yIGVhcmx5IGJvb3Qgb3V0cHV0LCBzbyBkb24ndCBhdWRp dCBldmVuIHdoZW4gd2UgZGVueSBpdC4KKyMgV2l0aG91dCBYU00sIHRoaXMgaXMgZW5hYmxlZCBv bmx5IGlmIHRoZSBYZW4gd2FzIGNvbXBpbGVkIGluIGRlYnVnIG1vZGUuCitnZW5fYm9vbChndWVz dF93cml0ZWNvbnNvbGUsIHRydWUpCitpZiAoZ3Vlc3Rfd3JpdGVjb25zb2xlKSB7CisJYWxsb3cg ZG9tYWluX3R5cGUgeGVuX3QgOiB4ZW4gd3JpdGVjb25zb2xlOworfSBlbHNlIHsKKwlkb250YXVk aXQgZG9tYWluX3R5cGUgeGVuX3QgOiB4ZW4gd3JpdGVjb25zb2xlOworfQorCisjIEZvciBub3Jt YWwgZ3Vlc3RzLCBhbGxvdyBhbGwgcXVlcmllcyBleGNlcHQgWEVOVkVSX2NvbW1hbmRsaW5lLgor YWxsb3cgZG9tYWluX3R5cGUgeGVuX3Q6dmVyc2lvbiB7CisgICAgeGVuX2V4dHJhdmVyc2lvbiB4 ZW5fY29tcGlsZV9pbmZvIHhlbl9jYXBhYmlsaXRpZXMKKyAgICB4ZW5fY2hhbmdlc2V0IHhlbl9w YWdlc2l6ZSB4ZW5fZ3Vlc3RfaGFuZGxlCit9OworCisjIFZlcnNpb24gcXVlcmllcyBkb24ndCBu ZWVkIGF1ZGl0aW5nIHdoZW4gZGVuaWVkLiAgVGhleSBjYW4gYmUKKyMgZW5jb3VudGVyZWQgaW4g bm9ybWFsIG9wZXJhdGlvbiBieSB4bCBvciBieSByZWFkaW5nIHN5c2ZzIGZpbGVzIGluCisjIExp bnV4LCBzbyB3aXRob3V0IHRoaXMgdGhleSB3aWxsIHNob3cgdXAgaW4gdGhlIGxvZ3MuICBTaW5j ZSB0aGVzZQorIyBvcGVyYXRpb25zIHJldHVybiB2YWxpZCByZXNwb25zZXMgKGxpa2UgImRlbmll ZCIpLCBoaWRpbmcgdGhlIGRlbmlhbHMKKyMgc2hvdWxkIG5vdCBicmVhayBhbnl0aGluZy4KK2Rv bnRhdWRpdCBkb21haW5fdHlwZSB4ZW5fdDp2ZXJzaW9uIHsKKwl4ZW5fY29tbWFuZGxpbmUgeGVu X2J1aWxkX2lkCit9OwpkaWZmIC0tZ2l0IGEvdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMvaXNv bGF0ZWRfZG9tVS50ZSBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL2lzb2xhdGVkX2RvbVUu dGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGVlNzY4OQotLS0gL2Rldi9u dWxsCisrKyBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL2lzb2xhdGVkX2RvbVUudGUKQEAg LTAsMCArMSw3IEBACitkZWNsYXJlX2RvbWFpbihpc29sYXRlZF9kb21VX3QpCitjcmVhdGVfZG9t YWluKGRvbTBfdCwgaXNvbGF0ZWRfZG9tVV90KQorbWFuYWdlX2RvbWFpbihkb20wX3QsIGlzb2xh dGVkX2RvbVVfdCkKK2RvbWFpbl9jb21tcyhkb20wX3QsIGlzb2xhdGVkX2RvbVVfdCkKK21pZ3Jh dGVfZG9tYWluX291dChkb20wX3QsIGlzb2xhdGVkX2RvbVVfdCkKK2RvbWFpbl9zZWxmX2NvbW1z KGlzb2xhdGVkX2RvbVVfdCkKKwpkaWZmIC0tZ2l0IGEvdG9vbHMvZmxhc2svcG9saWN5L21vZHVs ZXMvbW9kdWxlcy5jb25mIGIvdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMvbW9kdWxlcy5jb25m Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiYTRiNDAKLS0tIC9kZXYvbnVs bAorKysgYi90b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy9tb2R1bGVzLmNvbmYKQEAgLTAsMCAr MSwzNCBAQAorIworIyBUaGlzIGZpbGUgY29udGFpbnMgYSBsaXN0aW5nIG9mIGF2YWlsYWJsZSBt b2R1bGVzLgorIworIyBUbyBwcmV2ZW50IGEgbW9kdWxlIGZyb20gIGJlaW5nIHVzZWQgaW4gcG9s aWN5IGNyZWF0aW9uLCBzZXQgdGhlIG1vZHVsZSBuYW1lCisjIHRvICJvZmYiOyBvdGhlcndpc2Us IHNldCB0aGUgbW9kdWxlIG5hbWUgb24gIm9uIi4KKyMKKyMgVGhlIG9yZGVyIHRoZSBtb2R1bGVz IGFwcGVhciBpbiB0aGlzIGZpbGUgaXMgdGhlIG9yZGVyIHRoZXkgd2lsbCBiZSBwYXJzZWQ7Cisj IHRoaXMgY2FuIGJlIGltcG9ydGFudCBpZiB5b3UgcGxhbiB0byB1c2UgdHlwZXMgZGVmaW5lZCBp biBvbmUgZmlsZSBpbiBhbm90aGVyLgorIworCisjIEJhc2ljIHR5cGVzIGFuZCBjbGFzc2VzIGZv ciB0aGUgWGVuIGh5cGVydmlzb3IuICBUaGlzIG1vZHVsZSBpcyByZXF1aXJlZC4KK3hlbiA9IG9u CisKKyMgUGVybWlzc2lvbnMgZm9yIGRvbWFpbiAwLiAgTW9zdCBvZiB0aGVzZSBhcmUgcmVxdWly ZWQgdG8gYm9vdC4KK2RvbTAgPSBvbgorCisjIEFsbG93IGFsbCBkb21haW5zIHRoZSBhYmlsaXR5 IHRvIHVzZSBhY2Nlc3MtY29udHJvbGxlZCBmZWF0dXJlcyBhbmQgaHlwZXJjYWxscworIyB0aGF0 IGFyZSBub3QgcmVzdHJpY3RlZCB3aGVuIFhTTSBpcyBkaXNhYmxlZC4KK2d1ZXN0X2ZlYXR1cmVz ID0gb24KKworIyBUaGUgZGVmYXVsdCBkb21haW4gdHlwZSAoZG9tVV90KSBhbmQgaXRzIGRldmlj ZSBtb2RlbCAoZG1fZG9tX3QpLiAgVGhlIGRvbWFpbgorIyBpcyBjcmVhdGVkIGFuZCBtYW5hZ2Vk IGJ5IGRvbTBfdCwgYW5kIGhhcyBubyBzcGVjaWFsIHJlc3RyaWN0aW9ucy4KKyMKKyMgVGhpcyBp cyByZXF1aXJlZCBpZiB5b3Ugd2FudCB0byBiZSBhYmxlIHRvIGNyZWF0ZSBkb21haW5zIHdpdGhv dXQgc3BlY2lmeWluZworIyB0aGVpciBYU00gbGFiZWwgaW4gdGhlIGNvbmZpZ3VyYXRpb24uCitk b21VID0gb24KKworIyBFeGFtcGxlIHR5cGVzIHdpdGggcmVzdHJpY3Rpb25zCitpc29sYXRlZF9k b21VID0gb24KK3Byb3RfZG9tVSA9IG9uCitub21pZ3JhdGUgPSBvbgorCisjIEV4YW1wbGUgZGV2 aWNlIHBvbGljeS4gIEFsc28gc2VlIHBvbGljeS9kZXZpY2VfY29udGV4dHMuCituaWNfZGV2ID0g b24KZGlmZiAtLWdpdCBhL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL25pY19kZXYudGUgYi90 b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy9uaWNfZGV2LnRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLmUwNDg0YWYKLS0tIC9kZXYvbnVsbAorKysgYi90b29scy9mbGFzay9w b2xpY3kvbW9kdWxlcy9uaWNfZGV2LnRlCkBAIC0wLDAgKzEsMTQgQEAKKyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKKyMKKyMgRGV2aWNlIGRlbGVnYXRpb24KKyMKKyMgVGhpcyByZXF1aXJlcyB0aGF0 IHRoZSBkZXZpY2UgYmUgbGFiZWxlZCB3aXRoIGEgdHlwZSBkZWZpbmVkIGhlcmUuICBZb3UgY2Fu CisjIHVzZSBmbGFzay1sYWJlbC1wY2kgdG8gZHluYW1pY2FsbHkgbGFiZWwgZGV2aWNlcyBvbiBl YWNoIGJvb3Qgb3IgZGVmaW5lIHRoZQorIyBsYWJlbHMgc3RhdGljYWxseSBpbiB0b29scy9mbGFz ay9wb2xpY3kvcG9saWN5L2RldmljZV9jb250ZXh0cworIworIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworCit0eXBlIG5pY19kZXZfdCwgcmVzb3VyY2VfdHlwZTsKKworYWRtaW5fZGV2aWNlKGRvbTBf dCwgbmljX2Rldl90KQordXNlX2RldmljZShkb21VX3QsIG5pY19kZXZfdCkKZGlmZiAtLWdpdCBh L3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL25vbWlncmF0ZS50ZSBiL3Rvb2xzL2ZsYXNrL3Bv bGljeS9tb2R1bGVzL25vbWlncmF0ZS50ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi41YjU2Y2FmCi0tLSAvZGV2L251bGwKKysrIGIvdG9vbHMvZmxhc2svcG9saWN5L21vZHVs ZXMvbm9taWdyYXRlLnRlCkBAIC0wLDAgKzEsOCBAQAorIyBEb21haW5zIG9mIHR5cGUgbm9taWdy YXRlX3QgbXVzdCBiZSBidWlsdCB2aWEgdGhlIG5vbWlncmF0ZV90X2J1aWxkaW5nIGxhYmVsOwor IyBvbmNlIGJ1aWx0LCBkb20wIGNhbm5vdCByZWFkIHRoZWlyIG1lbW9yeS4KK2RlY2xhcmVfZG9t YWluKG5vbWlncmF0ZV90KQorZGVjbGFyZV9idWlsZF9sYWJlbChub21pZ3JhdGVfdCkKK2NyZWF0 ZV9kb21haW5fYnVpbGRfbGFiZWwoZG9tMF90LCBub21pZ3JhdGVfdCkKK21hbmFnZV9kb21haW4o ZG9tMF90LCBub21pZ3JhdGVfdCkKK2RvbWFpbl9jb21tcyhkb20wX3QsIG5vbWlncmF0ZV90KQor ZG9tYWluX3NlbGZfY29tbXMobm9taWdyYXRlX3QpCmRpZmYgLS1naXQgYS90b29scy9mbGFzay9w b2xpY3kvbW9kdWxlcy9wcm90X2RvbVUudGUgYi90b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy9w cm90X2RvbVUudGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTdjMDEyYwot LS0gL2Rldi9udWxsCisrKyBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL3Byb3RfZG9tVS50 ZQpAQCAtMCwwICsxLDEzIEBACisjIFRoaXMgaXMgYW4gYWx0ZXJuYXRpdmUgdG8gbm9taWdyYXRl X3Q6IGEgcG9saWN5IGJvb2xlYW4gY29udHJvbHMgdGhlIGFiaWxpdHkKKyMgdG8gY3JlYXRlIG9y IG1pZ3JhdGUgYSBkb21haW4gb2YgdHlwZSBwcm90X2RvbVVfdC4gIElmIGRpc2FibGVkLCBkb20w IGNhbm5vdAorIyBtYXAgbWVtb3J5IGJlbG9uZ2luZyB0byB0aG9zZSBkb21haW5zLgorZ2VuX2Jv b2wocHJvdF9kb21zX2xvY2tlZCwgZmFsc2UpCitkZWNsYXJlX2RvbWFpbihwcm90X2RvbVVfdCkK K2lmICghcHJvdF9kb21zX2xvY2tlZCkgeworCWNyZWF0ZV9kb21haW4oZG9tMF90LCBwcm90X2Rv bVVfdCkKKwltaWdyYXRlX2RvbWFpbl9vdXQoZG9tMF90LCBwcm90X2RvbVVfdCkKK30KK2RvbWFp bl9jb21tcyhkb20wX3QsIHByb3RfZG9tVV90KQorZG9tYWluX2NvbW1zKGRvbVVfdCwgcHJvdF9k b21VX3QpCitkb21haW5fY29tbXMocHJvdF9kb21VX3QsIHByb3RfZG9tVV90KQorZG9tYWluX3Nl bGZfY29tbXMocHJvdF9kb21VX3QpCmRpZmYgLS1naXQgYS90b29scy9mbGFzay9wb2xpY3kvcG9s aWN5L21vZHVsZXMveGVuL3hlbi5pZiBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL3hlbi5p ZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdG9vbHMvZmxhc2svcG9saWN5L3Bv bGljeS9tb2R1bGVzL3hlbi94ZW4uaWYKcmVuYW1lIHRvIHRvb2xzL2ZsYXNrL3BvbGljeS9tb2R1 bGVzL3hlbi5pZgpkaWZmIC0tZ2l0IGEvdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMveGVuLnRl IGIvdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMveGVuLnRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjNlZTVlNzUKLS0tIC9kZXYvbnVsbAorKysgYi90b29scy9mbGFzay9w b2xpY3kvbW9kdWxlcy94ZW4udGUKQEAgLTAsMCArMSw4OSBAQAorIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKyMKKyMgQXR0cmlidXRlcyBmb3IgdHlwZXMKKyMKKyMgQW4gYXR0cmlidXRlIG1heSBi ZSB1c2VkIGluIGEgcnVsZSBhcyBzaG9ydGhhbmQgZm9yIGFsbCB0eXBlcyB3aXRoIHRoYXQKKyMg YXR0cmlidXRlLgorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2F0dHJpYnV0ZSB4ZW5fdHlw ZTsKK2F0dHJpYnV0ZSBkb21haW5fdHlwZTsKK2F0dHJpYnV0ZSBkb21haW5fc2VsZl90eXBlOwor YXR0cmlidXRlIGRvbWFpbl90YXJnZXRfdHlwZTsKK2F0dHJpYnV0ZSByZXNvdXJjZV90eXBlOwor YXR0cmlidXRlIGV2ZW50X3R5cGU7CithdHRyaWJ1dGUgbWxzX3ByaXY7CisKKyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCisjCisjIFR5cGVzIGZvciB0aGUgaW5pdGlhbCBTSURzCisjCisjIFRoZXNl IHR5cGVzIGFyZSB1c2VkIGludGVybmFsbHkgZm9yIG9iamVjdHMgY3JlYXRlZCBkdXJpbmcgWGVu IHN0YXJ0dXAgb3IgZm9yCisjIGRldmljZXMgdGhhdCBoYXZlIG5vdCB5ZXQgYmVlbiBsYWJlbGVk CisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisjIFRoZSBoeXBlcnZpc29yIGl0c2VsZgor dHlwZSB4ZW5fdCwgeGVuX3R5cGUsIG1sc19wcml2OworCisjIERvbWFpbiAwCitkZWNsYXJlX3Np bmdsZXRvbl9kb21haW4oZG9tMF90LCBtbHNfcHJpdik7CisKKyMgSS9PIG1lbW9yeSAoRE9NSURf SU8gcHNldWRvLWRvbWFpbikKK3R5cGUgZG9taW9fdCwgeGVuX3R5cGU7CisKKyMgWGVuIGhlYXAg KERPTUlEX1hFTiBwc2V1ZG8tZG9tYWluKQordHlwZSBkb214ZW5fdCwgeGVuX3R5cGU7CisKKyMg VW5sYWJlbGVkIG9iamVjdHMKK3R5cGUgdW5sYWJlbGVkX3QsIHhlbl90eXBlOworCisjIFRoZSBY U00vRkxBU0sgc2VjdXJpdHkgc2VydmVyCit0eXBlIHNlY3VyaXR5X3QsIHhlbl90eXBlOworCisj IFVubGFiZWxlZCBkZXZpY2UgcmVzb3VyY2VzCisjIE5vdGU6IGRvbid0IGFsbG93IGFjY2VzcyB0 byB0aGVzZSB0eXBlcyBkaXJlY3RseTsgc2VlIGJlbG93IGZvciBob3cgdG8gbGFiZWwKKyMgICAg ICAgZGV2aWNlcyBhbmQgdXNlIHRoYXQgbGFiZWwgZm9yIGFsbG93IHJ1bGVzCit0eXBlIGlycV90 LCByZXNvdXJjZV90eXBlOwordHlwZSBpb3BvcnRfdCwgcmVzb3VyY2VfdHlwZTsKK3R5cGUgaW9t ZW1fdCwgcmVzb3VyY2VfdHlwZTsKK3R5cGUgZGV2aWNlX3QsIHJlc291cmNlX3R5cGU7CisKKyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIFBvbGljeSBjb25zdHJhaW50cworIworIyBOZXZl cmFsbG93IHJ1bGVzIHdpbGwgY2F1c2UgdGhlIHBvbGljeSBidWlsZCB0byBmYWlsIGlmIGFuIGFs bG93IHJ1bGUgZXhpc3RzCisjIHRoYXQgdmlvbGF0ZXMgdGhlIGV4cHJlc3Npb24uIFRoaXMgaXMg dXNlZCB0byBlbnN1cmUgcHJvcGVyIGxhYmVsaW5nIG9mCisjIG9iamVjdHMuCisjCisjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworCisjIERvbWFpbnMgbXVzdCBiZSBkZWNsYXJlZCB1c2luZyBkb21h aW5fdHlwZQorbmV2ZXJhbGxvdyAqIH5kb21haW5fdHlwZTpkb21haW4geyBjcmVhdGUgdHJhbnNp dGlvbiB9OworCisjIFJlc291cmNlcyBtdXN0IGJlIGRlY2xhcmVkIHVzaW5nIHJlc291cmNlX3R5 cGUKK25ldmVyYWxsb3cgKiB+cmVzb3VyY2VfdHlwZTpyZXNvdXJjZSB1c2U7CisKKyMgRXZlbnRz IG11c3QgdXNlIGV2ZW50X3R5cGUgKHNlZSBjcmVhdGVfY2hhbm5lbCBmb3IgYSB0ZW1wbGF0ZSkK K25ldmVyYWxsb3cgfmV2ZW50X3R5cGUgKjpldmVudCBiaW5kOworbmV2ZXJhbGxvdyAqIH5ldmVu dF90eXBlOmV2ZW50IHsgY3JlYXRlIHNlbmQgc3RhdHVzIH07CisKKyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCisjCisjIFJvbGVzCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisjIFRoZSBv YmplY3Qgcm9sZSAob2JqZWN0X3IpIGlzIHVzZWQgZm9yIGRldmljZXMsIHJlc291cmNlcywgYW5k IGV2ZW50IGNoYW5uZWxzOworIyBpdCBkb2VzIG5vdCBuZWVkIHRvIGJlIGRlZmluZWQgaGVyZSBh bmQgc2hvdWxkIG5vdCBiZSB1c2VkIGZvciBkb21haW5zLgorCisjIFRoZSBzeXN0ZW0gcm9sZSBp cyB1c2VkIGZvciB1dGlsaXR5IGRvbWFpbnMgYW5kIHBzZXVkby1kb21haW5zCityb2xlIHN5c3Rl bV9yOworcm9sZSBzeXN0ZW1fciB0eXBlcyB7IHhlbl90eXBlIGRvbWFpbl90eXBlIH07CisjIElm IHlvdSB3YW50IHRvIHByZXZlbnQgZG9tVXMgZnJvbSBiZWluZyBwbGFjZWQgaW4gc3lzdGVtX3I6 CisjI3JvbGUgc3lzdGVtX3IgdHlwZXMgeyB4ZW5fdHlwZSBkb20wX3QgfTsKKworIyBUaGUgdm0g cm9sZSBpcyB1c2VkIGZvciBjdXN0b21lciB2aXJ0dWFsIG1hY2hpbmVzCityb2xlIHZtX3I7City b2xlIHZtX3IgdHlwZXMgeyBkb21haW5fdHlwZSAtZG9tMF90IH07CmRpZmYgLS1naXQgYS90b29s cy9mbGFzay9wb2xpY3kvcG9saWN5L21vZHVsZXMuY29uZiBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9w b2xpY3kvbW9kdWxlcy5jb25mCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MDQzOTc0 Li4wMDAwMDAwCi0tLSBhL3Rvb2xzL2ZsYXNrL3BvbGljeS9wb2xpY3kvbW9kdWxlcy5jb25mCisr KyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotIwotIyBUaGlzIGZpbGUgY29udGFpbnMgYSBs aXN0aW5nIG9mIGF2YWlsYWJsZSBtb2R1bGVzLgotIyBUbyBwcmV2ZW50IGEgbW9kdWxlIGZyb20g IGJlaW5nIHVzZWQgaW4gcG9saWN5Ci0jIGNyZWF0aW9uLCBzZXQgdGhlIG1vZHVsZSBuYW1lIHRv ICJvZmYiIG90aGVyd2lzZQotIyBzZXQgdGhlIG1vZHVsZSBuYW1lIG9uICJvbiIuCi0jCi0KLSMg TGF5ZXI6IHhlbgotIyBNb2R1bGU6IHhlbgotIyBSZXF1aXJlZCBpbiBiYXNlCi0jCi0jIFBvbGlj eSBmb3IgeGVuLgotIyAKLXhlbiA9IG9uCi0KZGlmZiAtLWdpdCBhL3Rvb2xzL2ZsYXNrL3BvbGlj eS9wb2xpY3kvbW9kdWxlcy94ZW4veGVuLnRlIGIvdG9vbHMvZmxhc2svcG9saWN5L3BvbGljeS9t b2R1bGVzL3hlbi94ZW4udGUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUwYWE2MDIu LjAwMDAwMDAKLS0tIGEvdG9vbHMvZmxhc2svcG9saWN5L3BvbGljeS9tb2R1bGVzL3hlbi94ZW4u dGUKKysrIC9kZXYvbnVsbApAQCAtMSwyNzIgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKLSMKLSMgQXR0cmlidXRlcyBmb3IgdHlwZXMKLSMKLSMgQW4gYXR0cmlidXRlIG1heSBiZSB1 c2VkIGluIGEgcnVsZSBhcyBzaG9ydGhhbmQgZm9yIGFsbCB0eXBlcyB3aXRoIHRoYXQKLSMgYXR0 cmlidXRlLgotIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLWF0dHJpYnV0ZSB4ZW5fdHlwZTsK LWF0dHJpYnV0ZSBkb21haW5fdHlwZTsKLWF0dHJpYnV0ZSBkb21haW5fc2VsZl90eXBlOwotYXR0 cmlidXRlIGRvbWFpbl90YXJnZXRfdHlwZTsKLWF0dHJpYnV0ZSByZXNvdXJjZV90eXBlOwotYXR0 cmlidXRlIGV2ZW50X3R5cGU7Ci1hdHRyaWJ1dGUgbWxzX3ByaXY7Ci0KLSMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCi0jCi0jIFR5cGVzIGZvciB0aGUgaW5pdGlhbCBTSURzCi0jCi0jIFRoZXNlIHR5 cGVzIGFyZSB1c2VkIGludGVybmFsbHkgZm9yIG9iamVjdHMgY3JlYXRlZCBkdXJpbmcgWGVuIHN0 YXJ0dXAgb3IgZm9yCi0jIGRldmljZXMgdGhhdCBoYXZlIG5vdCB5ZXQgYmVlbiBsYWJlbGVkCi0j Ci0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0jIFRoZSBoeXBlcnZpc29yIGl0c2VsZgotdHlw ZSB4ZW5fdCwgeGVuX3R5cGUsIG1sc19wcml2OwotCi0jIERvbWFpbiAwCi1kZWNsYXJlX3Npbmds ZXRvbl9kb21haW4oZG9tMF90LCBtbHNfcHJpdik7Ci0KLSMgSS9PIG1lbW9yeSAoRE9NSURfSU8g cHNldWRvLWRvbWFpbikKLXR5cGUgZG9taW9fdCwgeGVuX3R5cGU7Ci0KLSMgWGVuIGhlYXAgKERP TUlEX1hFTiBwc2V1ZG8tZG9tYWluKQotdHlwZSBkb214ZW5fdCwgeGVuX3R5cGU7Ci0KLSMgVW5s YWJlbGVkIG9iamVjdHMKLXR5cGUgdW5sYWJlbGVkX3QsIHhlbl90eXBlOwotCi0jIFRoZSBYU00v RkxBU0sgc2VjdXJpdHkgc2VydmVyCi10eXBlIHNlY3VyaXR5X3QsIHhlbl90eXBlOwotCi0jIFVu bGFiZWxlZCBkZXZpY2UgcmVzb3VyY2VzCi0jIE5vdGU6IGRvbid0IGFsbG93IGFjY2VzcyB0byB0 aGVzZSB0eXBlcyBkaXJlY3RseTsgc2VlIGJlbG93IGZvciBob3cgdG8gbGFiZWwKLSMgICAgICAg ZGV2aWNlcyBhbmQgdXNlIHRoYXQgbGFiZWwgZm9yIGFsbG93IHJ1bGVzCi10eXBlIGlycV90LCBy ZXNvdXJjZV90eXBlOwotdHlwZSBpb3BvcnRfdCwgcmVzb3VyY2VfdHlwZTsKLXR5cGUgaW9tZW1f dCwgcmVzb3VyY2VfdHlwZTsKLXR5cGUgZGV2aWNlX3QsIHJlc291cmNlX3R5cGU7Ci0KLSMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCi0jCi0jIEFsbG93IGRvbTAgYWNjZXNzIHRvIGFsbCBzeXNjdGxz LCBkZXZpY2VzLCBhbmQgdGhlIHNlY3VyaXR5IHNlcnZlci4KLSMKLSMgV2hpbGUgdGhpcyBjb3Vs ZCBiZSB3cml0dGVuIG1vcmUgYnJpZWZseSB1c2luZyB3aWxkY2FyZHMsIHRoZSBwZXJtaXNzaW9u cyBhcmUKLSMgbGlzdGVkIG91dCB0byBtYWtlIHJlbW92aW5nIHNwZWNpZmljIHBlcm1pc3Npb25z IHNpbXBsZXIuCi0jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotYWxsb3cgZG9tMF90IHhlbl90 OnhlbiB7Ci0Jc2V0dGltZSB0YnVmY29udHJvbCByZWFkY29uc29sZSBjbGVhcmNvbnNvbGUgcGVy ZmNvbnRyb2wgbXRycl9hZGQKLQltdHJyX2RlbCBtdHJyX3JlYWQgbWljcm9jb2RlIHBoeXNpbmZv IHF1aXJrIHdyaXRlY29uc29sZSByZWFkYXBpYwotCXdyaXRlYXBpYyBwcml2cHJvZmlsZSBub25w cml2cHJvZmlsZSBrZXhlYyBmaXJtd2FyZSBzbGVlcCBmcmVxdWVuY3kKLQlnZXRpZGxlIGRlYnVn IGdldGNwdWluZm8gaGVhcCBwbV9vcCBtY2Ffb3AgbG9ja3Byb2YgY3B1cG9vbF9vcCB0bWVtX29w Ci0JdG1lbV9jb250cm9sIGdldHNjaGVkdWxlciBzZXRzY2hlZHVsZXIKLX07Ci1hbGxvdyBkb20w X3QgeGVuX3Q6eGVuMiB7Ci0gICAgcmVzb3VyY2Vfb3AKLSAgICBwc3JfY210X29wCi0gICAgcHNy X2NhdF9vcAotfTsKLWFsbG93IGRvbTBfdCB4ZW5fdDp4ZW4yIHsKLSAgICBwbXVfY3RybAotICAg IGdldF9zeW1ib2wKLSAgICBnZXRfY3B1X2xldmVsbGluZ19jYXBzCi0gICAgZ2V0X2NwdV9mZWF0 dXJlc2V0Ci0gICAgbGl2ZXBhdGNoX29wCi19OwotCi0jIEFsbG93IGRvbTAgdG8gdXNlIGFsbCBY RU5WRVJfIHN1Ym9wcyB0aGF0IGhhdmUgY2hlY2tzLgotIyBOb3RlIHRoYXQgZG9tMCBpcyBwYXJ0 IG9mIGRvbWFpbl90eXBlIHNvIHRoaXMgaGFzIGR1cGxpY2F0ZXMuCi1hbGxvdyBkb20wX3QgeGVu X3Q6dmVyc2lvbiB7Ci0gICAgeGVuX2V4dHJhdmVyc2lvbiB4ZW5fY29tcGlsZV9pbmZvIHhlbl9j YXBhYmlsaXRpZXMKLSAgICB4ZW5fY2hhbmdlc2V0IHhlbl9wYWdlc2l6ZSB4ZW5fZ3Vlc3RfaGFu ZGxlIHhlbl9jb21tYW5kbGluZQotICAgIHhlbl9idWlsZF9pZAotfTsKLQotYWxsb3cgZG9tMF90 IHhlbl90Om1tdSBtZW1vcnltYXA7Ci0KLSMgQWxsb3cgZG9tMCB0byB1c2UgdGhlc2UgZG9tY3Rs cyBvbiBpdHNlbGYuIEZvciBkb21jdGxzIGFjdGluZyBvbiBvdGhlcgotIyBkb21haW5zLCBzZWUg dGhlIGRlZmluaXRpb25zIG9mIGNyZWF0ZV9kb21haW4gYW5kIG1hbmFnZV9kb21haW4uCi1hbGxv dyBkb20wX3QgZG9tMF90OmRvbWFpbiB7Ci0Jc2V0dmNwdWNvbnRleHQgbWF4X3ZjcHVzIHNldGFm ZmluaXR5IGdldGFmZmluaXR5IGdldHNjaGVkdWxlcgotCWdldGRvbWFpbmluZm8gZ2V0dmNwdWlu Zm8gZ2V0dmNwdWNvbnRleHQgc2V0ZG9tYWlubWF4bWVtIHNldGRvbWFpbmhhbmRsZQotCXNldGRl YnVnZ2luZyBoeXBlcmNhbGwgc2V0dGltZSBzZXRhZGRyc2l6ZSBnZXRhZGRyc2l6ZSB0cmlnZ2Vy Ci0JZ2V0ZXh0dmNwdWNvbnRleHQgc2V0ZXh0dmNwdWNvbnRleHQgZ2V0dmNwdWV4dHN0YXRlIHNl dHZjcHVleHRzdGF0ZQotCWdldHBvZHRhcmdldCBzZXRwb2R0YXJnZXQgc2V0X21pc2NfaW5mbyBz ZXRfdmlycV9oYW5kbGVyCi19OwotYWxsb3cgZG9tMF90IGRvbTBfdDpkb21haW4yIHsKLQlzZXRf Y3B1aWQgZ2V0dHNjIHNldHRzYyBzZXRzY2hlZHVsZXIgc2V0X21heF9ldnRjaG4gc2V0X3ZudW1h aW5mbwotCWdldF92bnVtYWluZm8gcHNyX2NtdF9vcCBwc3JfY2F0X29wCi19OwotYWxsb3cgZG9t MF90IGRvbTBfdDpyZXNvdXJjZSB7IGFkZCByZW1vdmUgfTsKLQotIyBUaGVzZSBwZXJtaXNzaW9u cyBhbGxvdyB1c2luZyB0aGUgRkxBU0sgc2VjdXJpdHkgc2VydmVyIHRvIGNvbXB1dGUgYWNjZXNz Ci0jIGNoZWNrcyBsb2NhbGx5LCB3aGljaCBjb3VsZCBiZSB1c2VkIGJ5IGEgZG9tYWluIG9yIHNl cnZpY2UgKHN1Y2ggYXMgeGVuc3RvcmUpCi0jIHRoYXQgZG9lcyBub3QgaGF2ZSBpdHMgb3duIHNl Y3VyaXR5IHNlcnZlciB0byBtYWtlIGFjY2VzcyBkZWNpc2lvbnMgYmFzZWQgb24KLSMgWGVuJ3Mg c2VjdXJpdHkgcG9saWN5LgotYWxsb3cgZG9tMF90IHNlY3VyaXR5X3Q6c2VjdXJpdHkgewotCWNv bXB1dGVfYXYgY29tcHV0ZV9jcmVhdGUgY29tcHV0ZV9tZW1iZXIgY29tcHV0ZV9yZWxhYmVsIGNv bXB1dGVfdXNlcgotfTsKLQotIyBBbGxvdyBzdHJpbmcvU0lEIGNvbnZlcnNpb25zIChmb3IgInhs IGxpc3QgLVoiIGFuZCBzaW1pbGFyKQotYWxsb3cgZG9tMF90IHNlY3VyaXR5X3Q6c2VjdXJpdHkg Y2hlY2tfY29udGV4dDsKLQotIyBBbGxvdyBmbGFzay1sYWJlbC1wY2kgdG8gYWRkIGFuZCBjaGFu Z2UgbGFiZWxzCi1hbGxvdyBkb20wX3Qgc2VjdXJpdHlfdDpzZWN1cml0eSB7IGFkZF9vY29udGV4 dCBkZWxfb2NvbnRleHQgfTsKLQotIyBBbGxvdyBwZXJmb3JtYW5jZSBwYXJhbWV0ZXJzIG9mIHRo ZSBzZWN1cml0eSBzZXJ2ZXIgdG8gYmUgdHdlYWtlZAotYWxsb3cgZG9tMF90IHNlY3VyaXR5X3Q6 c2VjdXJpdHkgc2V0c2VjcGFyYW07Ci0KLSMgQWxsb3cgY2hhbmdpbmcgdGhlIHNlY3VyaXR5IHBv bGljeQotYWxsb3cgZG9tMF90IHNlY3VyaXR5X3Q6c2VjdXJpdHkgeyBsb2FkX3BvbGljeSBzZXRl bmZvcmNlIHNldGJvb2wgfTsKLQotIyBBdWRpdCBwb2xpY3kgY2hhbmdlIGV2ZW50cyBldmVuIHdo ZW4gdGhleSBhcmUgYWxsb3dlZAotYXVkaXRhbGxvdyBkb20wX3Qgc2VjdXJpdHlfdDpzZWN1cml0 eSB7IGxvYWRfcG9saWN5IHNldGVuZm9yY2Ugc2V0Ym9vbCB9OwotCi1hZG1pbl9kZXZpY2UoZG9t MF90LCBkZXZpY2VfdCkKLWFkbWluX2RldmljZShkb20wX3QsIGlycV90KQotYWRtaW5fZGV2aWNl KGRvbTBfdCwgaW9wb3J0X3QpCi1hZG1pbl9kZXZpY2UoZG9tMF90LCBpb21lbV90KQotCi1kb21h aW5fY29tbXMoZG9tMF90LCBkb20wX3QpCi0KLSMgQWxsb3cgYWxsIGRvbWFpbnMgdG8gdXNlICh1 bnByaXZpbGVnZWQgcGFydHMgb2YpIHRoZSB0bWVtIGh5cGVyY2FsbAotYWxsb3cgZG9tYWluX3R5 cGUgeGVuX3Q6eGVuIHRtZW1fb3A7Ci0KLSMgQWxsb3cgZ3Vlc3QgY29uc29sZSBvdXRwdXQgdG8g dGhlIHNlcmlhbCBjb25zb2xlLiAgVGhpcyBpcyB1c2VkIGJ5IFBWIExpbnV4Ci0jIGFuZCBzdHVi IGRvbWFpbnMgZm9yIGVhcmx5IGJvb3Qgb3V0cHV0LCBzbyBkb24ndCBhdWRpdCBldmVuIHdoZW4g d2UgZGVueSBpdC4KLSMgV2l0aG91dCBYU00sIHRoaXMgaXMgZW5hYmxlZCBvbmx5IGlmIHRoZSBY ZW4gd2FzIGNvbXBpbGVkIGluIGRlYnVnIG1vZGUuCi1nZW5fYm9vbChndWVzdF93cml0ZWNvbnNv bGUsIHRydWUpCi1pZiAoZ3Vlc3Rfd3JpdGVjb25zb2xlKSB7Ci0JYWxsb3cgZG9tYWluX3R5cGUg eGVuX3QgOiB4ZW4gd3JpdGVjb25zb2xlOwotfSBlbHNlIHsKLQlkb250YXVkaXQgZG9tYWluX3R5 cGUgeGVuX3QgOiB4ZW4gd3JpdGVjb25zb2xlOwotfQotCi0jIEFsbG93IGFsbCBkb21haW5zIHRv IHVzZSBQTVUgKGJ1dCBub3QgdG8gY2hhbmdlIGl0cyBzZXR0aW5ncyAtLS0gdGhhdCdzIHdoYXQK LSMgcG11X2N0cmwgaXMgZm9yKQotYWxsb3cgZG9tYWluX3R5cGUgeGVuX3Q6eGVuMiBwbXVfdXNl OwotCi0jIEZvciBub3JtYWwgZ3Vlc3RzIGFsbCBwb3NzaWJsZSBleGNlcHQgWEVOVkVSX2NvbW1h bmRsaW5lLgotYWxsb3cgZG9tYWluX3R5cGUgeGVuX3Q6dmVyc2lvbiB7Ci0gICAgeGVuX2V4dHJh dmVyc2lvbiB4ZW5fY29tcGlsZV9pbmZvIHhlbl9jYXBhYmlsaXRpZXMKLSAgICB4ZW5fY2hhbmdl c2V0IHhlbl9wYWdlc2l6ZSB4ZW5fZ3Vlc3RfaGFuZGxlCi19OwotCi0jIFRoZXNlIHF1ZXJpZXMg ZG9uJ3QgbmVlZCBhdWRpdGluZyB3aGVuIGRlbmllZC4gIFRoZXkgY2FuIGJlCi0jIGVuY291bnRl cmVkIGluIG5vcm1hbCBvcGVyYXRpb24gYnkgeGwgb3IgYnkgcmVhZGluZyBzeXNmcyBmaWxlcyBp bgotIyBMaW51eCwgc28gd2l0aG91dCB0aGlzIHRoZXkgd2lsbCBzaG93IHVwIGluIHRoZSBsb2dz LiAgU2luY2UgdGhlc2UKLSMgb3BlcmF0aW9ucyByZXR1cm4gdmFsaWQgcmVzcG9uc2VzIChsaWtl ICJkZW5pZWQiKSwgaGlkaW5nIHRoZSBkZW5pYWxzCi0jIHNob3VsZCBub3QgYnJlYWsgYW55dGhp bmcuCi1kb250YXVkaXQgZG9tYWluX3R5cGUgeGVuX3Q6dmVyc2lvbiB7Ci0gICAgeGVuX2NvbW1h bmRsaW5lIHhlbl9idWlsZF9pZAotfTsKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIwotIyBE b21haW4gY3JlYXRpb24KLSMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotZGVjbGFyZV9kb21h aW4oZG9tVV90KQotZG9tYWluX3NlbGZfY29tbXMoZG9tVV90KQotY3JlYXRlX2RvbWFpbihkb20w X3QsIGRvbVVfdCkKLW1hbmFnZV9kb21haW4oZG9tMF90LCBkb21VX3QpCi1kb21haW5fY29tbXMo ZG9tMF90LCBkb21VX3QpCi1kb21haW5fY29tbXMoZG9tVV90LCBkb21VX3QpCi1taWdyYXRlX2Rv bWFpbl9vdXQoZG9tMF90LCBkb21VX3QpCi1kb21haW5fc2VsZl9jb21tcyhkb21VX3QpCi0KLWRl Y2xhcmVfZG9tYWluKGlzb2xhdGVkX2RvbVVfdCkKLWNyZWF0ZV9kb21haW4oZG9tMF90LCBpc29s YXRlZF9kb21VX3QpCi1tYW5hZ2VfZG9tYWluKGRvbTBfdCwgaXNvbGF0ZWRfZG9tVV90KQotZG9t YWluX2NvbW1zKGRvbTBfdCwgaXNvbGF0ZWRfZG9tVV90KQotbWlncmF0ZV9kb21haW5fb3V0KGRv bTBfdCwgaXNvbGF0ZWRfZG9tVV90KQotZG9tYWluX3NlbGZfY29tbXMoaXNvbGF0ZWRfZG9tVV90 KQotCi0jIERlY2xhcmUgYSBib29sZWFuIHRoYXQgZGVuaWVzIGNyZWF0aW9uIG9mIHByb3RfZG9t VV90IGRvbWFpbnMKLWdlbl9ib29sKHByb3RfZG9tc19sb2NrZWQsIGZhbHNlKQotZGVjbGFyZV9k b21haW4ocHJvdF9kb21VX3QpCi1pZiAoIXByb3RfZG9tc19sb2NrZWQpIHsKLQljcmVhdGVfZG9t YWluKGRvbTBfdCwgcHJvdF9kb21VX3QpCi0JbWlncmF0ZV9kb21haW5fb3V0KGRvbTBfdCwgcHJv dF9kb21VX3QpCi19Ci1kb21haW5fY29tbXMoZG9tMF90LCBwcm90X2RvbVVfdCkKLWRvbWFpbl9j b21tcyhkb21VX3QsIHByb3RfZG9tVV90KQotZG9tYWluX2NvbW1zKHByb3RfZG9tVV90LCBwcm90 X2RvbVVfdCkKLWRvbWFpbl9zZWxmX2NvbW1zKHByb3RfZG9tVV90KQotCi0jIERldmljZSBtb2Rl bCBmb3IgZG9tVV90LiAgWW91IGNhbiBkZWZpbmUgZGlzdGluY3QgdHlwZXMgZm9yIGRldmljZSBt b2RlbHMgZm9yCi0jIGRvbWFpbnMgb2Ygb3RoZXIgdHlwZXMsIG9yIGFkZCBtb3JlIG1ha2VfZGV2 aWNlX21vZGVsIGxpbmVzIGZvciB0aGlzIHR5cGUuCi1kZWNsYXJlX2RvbWFpbihkbV9kb21fdCkK LWNyZWF0ZV9kb21haW4oZG9tMF90LCBkbV9kb21fdCkKLW1hbmFnZV9kb21haW4oZG9tMF90LCBk bV9kb21fdCkKLWRvbWFpbl9jb21tcyhkb20wX3QsIGRtX2RvbV90KQotbWFrZV9kZXZpY2VfbW9k ZWwoZG9tMF90LCBkbV9kb21fdCwgZG9tVV90KQotCi0jIG5vbWlncmF0ZV90IG11c3QgYmUgYnVp bHQgdmlhIHRoZSBub21pZ3JhdGVfdF9idWlsZGluZyBsYWJlbDsgb25jZSBidWlsdCwKLSMgZG9t MCBjYW5ub3QgcmVhZCBpdHMgbWVtb3J5LgotZGVjbGFyZV9kb21haW4obm9taWdyYXRlX3QpCi1k ZWNsYXJlX2J1aWxkX2xhYmVsKG5vbWlncmF0ZV90KQotY3JlYXRlX2RvbWFpbl9idWlsZF9sYWJl bChkb20wX3QsIG5vbWlncmF0ZV90KQotbWFuYWdlX2RvbWFpbihkb20wX3QsIG5vbWlncmF0ZV90 KQotZG9tYWluX2NvbW1zKGRvbTBfdCwgbm9taWdyYXRlX3QpCi1kb21haW5fc2VsZl9jb21tcyhu b21pZ3JhdGVfdCkKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIwotIyBEZXZpY2UgZGVsZWdh dGlvbgotIwotIyBUaGlzIHJlcXVpcmVzIHRoYXQgdGhlIGRldmljZSBiZSBsYWJlbGVkIHdpdGgg YSB0eXBlIGRlZmluZWQgaGVyZS4gIFlvdSBjYW4KLSMgdXNlIGZsYXNrLWxhYmVsLXBjaSB0byBk eW5hbWljYWxseSBsYWJlbCBkZXZpY2VzIG9uIGVhY2ggYm9vdCBvciBkZWZpbmUgdGhlCi0jIGxh YmVscyBzdGF0aWNhbGx5IGluIHRvb2xzL2ZsYXNrL3BvbGljeS9wb2xpY3kvZGV2aWNlX2NvbnRl eHRzCi0jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLXR5cGUgbmljX2Rldl90LCByZXNvdXJj ZV90eXBlOwotCi1hZG1pbl9kZXZpY2UoZG9tMF90LCBuaWNfZGV2X3QpCi11c2VfZGV2aWNlKGRv bVVfdCwgbmljX2Rldl90KQotCi1kZWxlZ2F0ZV9kZXZpY2VzKGRvbTBfdCwgZG9tVV90KQotCi0j IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIwotIyBQb2xpY3kgY29uc3RyYWludHMKLSMKLSMgTmV2 ZXJhbGxvdyBydWxlcyB3aWxsIGNhdXNlIHRoZSBwb2xpY3kgYnVpbGQgdG8gZmFpbCBpZiBhbiBh bGxvdyBydWxlIGV4aXN0cwotIyB0aGF0IHZpb2xhdGVzIHRoZSBleHByZXNzaW9uLiBUaGlzIGlz IHVzZWQgdG8gZW5zdXJlIHByb3BlciBsYWJlbGluZyBvZgotIyBvYmplY3RzLgotIwotIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKLQotIyBEb21haW5zIG11c3QgYmUgZGVjbGFyZWQgdXNpbmcgZG9t YWluX3R5cGUKLW5ldmVyYWxsb3cgKiB+ZG9tYWluX3R5cGU6ZG9tYWluIHsgY3JlYXRlIHRyYW5z aXRpb24gfTsKLQotIyBSZXNvdXJjZXMgbXVzdCBiZSBkZWNsYXJlZCB1c2luZyByZXNvdXJjZV90 eXBlCi1uZXZlcmFsbG93ICogfnJlc291cmNlX3R5cGU6cmVzb3VyY2UgdXNlOwotCi0jIEV2ZW50 cyBtdXN0IHVzZSBldmVudF90eXBlIChzZWUgY3JlYXRlX2NoYW5uZWwgZm9yIGEgdGVtcGxhdGUp Ci1uZXZlcmFsbG93IH5ldmVudF90eXBlICo6ZXZlbnQgYmluZDsKLW5ldmVyYWxsb3cgKiB+ZXZl bnRfdHlwZTpldmVudCB7IGNyZWF0ZSBzZW5kIHN0YXR1cyB9OwotCi0jIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIwotIwotIyBSb2xlcwotIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotIyBUaGUg b2JqZWN0IHJvbGUgKG9iamVjdF9yKSBpcyB1c2VkIGZvciBkZXZpY2VzLCByZXNvdXJjZXMsIGFu ZCBldmVudCBjaGFubmVsczsKLSMgaXQgZG9lcyBub3QgbmVlZCB0byBiZSBkZWZpbmVkIGhlcmUg YW5kIHNob3VsZCBub3QgYmUgdXNlZCBmb3IgZG9tYWlucy4KLQotIyBUaGUgc3lzdGVtIHJvbGUg aXMgdXNlZCBmb3IgdXRpbGl0eSBkb21haW5zIGFuZCBwc2V1ZG8tZG9tYWlucwotcm9sZSBzeXN0 ZW1fcjsKLXJvbGUgc3lzdGVtX3IgdHlwZXMgeyB4ZW5fdHlwZSBkb21haW5fdHlwZSB9OwotIyBJ ZiB5b3Ugd2FudCB0byBwcmV2ZW50IGRvbVVzIGZyb20gYmVpbmcgcGxhY2VkIGluIHN5c3RlbV9y OgotIyNyb2xlIHN5c3RlbV9yIHR5cGVzIHsgeGVuX3R5cGUgZG9tMF90IH07Ci0KLSMgVGhlIHZt IHJvbGUgaXMgdXNlZCBmb3IgY3VzdG9tZXIgdmlydHVhbCBtYWNoaW5lcwotcm9sZSB2bV9yOwot cm9sZSB2bV9yIHR5cGVzIHsgZG9tYWluX3R5cGUgLWRvbTBfdCB9OwotLSAKMi43LjQKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFp bGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hl bi1kZXZlbAo=