From mboxrd@z Thu Jan 1 00:00:00 1970 From: Simon Glass Subject: [PATCH 07/29] libfdt: Bring in proposed pylibfdt changes Date: Tue, 5 Jun 2018 18:46:43 -0600 Message-ID: <20180606004705.79641-8-sjg@chromium.org> References: <20180606004705.79641-1-sjg@chromium.org> Mime-Version: 1.0 Content-Transfer-Encoding: base64 Return-path: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=VgFoQFc7ikW6NYOy6jdqAqBGhQWNez9HidloRWYEIg0=; b=nlNUj7yLtImu5N2Y7Hk3qfcfqRUpCytebImEs2EJIlpFQ30YO69DlHD9nA0h+hMHBG DsHG2AJUp3/pscdQ2gVYgA/e5UtCmbdz5uvk6NomTuWPFmktPHQ2WP00GlmZ1jpzuFl9 7WYQlJXcpQdSGp0u2+9k2BBvury2uZkPk/gA+XUoqY9ubU1GruwzsB1ZSjmmbZRdhGFT es+V4L4/9I4/OvLdFzwv0uAx5xMxaKVZVwtI0MeRI01zmUnVXKMjkbv04XdO/c17yD1G u+1CbTqKKBc5pYRhtTNBSmaeoaDvFIvpVNnymJQLFnzV7HtDbjtlNbNIwQRgxz3GamQQ keBg== In-Reply-To: <20180606004705.79641-1-sjg@chromium.org> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Content-Type: text/plain; charset="us-ascii" To: U-Boot Mailing List Cc: Tom Rini , Devicetree Compiler VGhpcyBwcm92aWRlcyB2YXJpb3VzIHBhdGNoZXMgc2VudCB0byB0aGUgZGV2aWNldHJlZS1jb21w aWxlciBtYWlsaW5nIGxpc3QKdG8gZW5oYW5jZSB0aGUgUHl0aG9uIGJpbmRpbmdzLiBBIGZpbmFs IHZlcnNpb24gb2YgdGhpcyBwYXRjaCBtYXkgYmUKY3JlYXRlZCBvbmNlIHVwc3RyZWFtaW5nIGlz IGNvbXBsZXRlLCBidXQgaWYgaXQgdGFrZXMgdG9vIGxvbmcsIHRoaXMgY2FuCmFjdCBhcyBhIHBs YWNlaG9sZGVyLgoKTmV3IHB5bGliZmR0IGZlYXR1cmVzOgotIFN1cHBvcnQgZm9yIG1vc3QgcmVt YWluaW5nLCByZWxldmFudCBsaWJmZHQgZnVuY3Rpb25zCi0gU3VwcG9ydCBmb3Igc2VxdWVudGlh bC13cml0ZSBmdW5jdGlvbnMKCkNoYW5nZXMgYXJlIGFwcGxpZWQgdG8gZXhpc3RpbmcgVS1Cb290 IHRvb2xzIGFzIG5lZWRlZC4KClNpZ25lZC1vZmYtYnk6IFNpbW9uIEdsYXNzIDxzamdAY2hyb21p dW0ub3JnPgotLS0KCiBzY3JpcHRzL2R0Yy9saWJmZHQvbGliZmR0LmggICAgICAgICAgIHwgICAz ICsKIHNjcmlwdHMvZHRjL3B5bGliZmR0L2xpYmZkdC5pX3NoaXBwZWQgfCA3MDUgKysrKysrKysr KysrKysrKysrKysrKystLS0KIHRvb2xzL2R0b2MvZHRvYy5weSAgICAgICAgICAgICAgICAgICAg fCAgMjAgKy0KIHRvb2xzL2R0b2MvZmR0LnB5ICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKy0K IHRvb2xzL2R0b2MvdGVzdF9kdG9jLnB5ICAgICAgICAgICAgICAgfCAgIDMgKy0KIDUgZmlsZXMg Y2hhbmdlZCwgNjYzIGluc2VydGlvbnMoKyksIDcxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3NjcmlwdHMvZHRjL2xpYmZkdC9saWJmZHQuaCBiL3NjcmlwdHMvZHRjL2xpYmZkdC9saWJmZHQu aAppbmRleCA3ZjgzMDIzZWUxMC4uYzMwYWFhZWFjNjQgMTAwNjQ0Ci0tLSBhL3NjcmlwdHMvZHRj L2xpYmZkdC9saWJmZHQuaAorKysgYi9zY3JpcHRzL2R0Yy9saWJmZHQvbGliZmR0LmgKQEAgLTEz MTAsMTAgKzEzMTAsMTMgQEAgc3RhdGljIGlubGluZSBpbnQgZmR0X3Byb3BlcnR5X3U2NCh2b2lk ICpmZHQsIGNvbnN0IGNoYXIgKm5hbWUsIHVpbnQ2NF90IHZhbCkKIAlmZHQ2NF90IHRtcCA9IGNw dV90b19mZHQ2NCh2YWwpOwogCXJldHVybiBmZHRfcHJvcGVydHkoZmR0LCBuYW1lLCAmdG1wLCBz aXplb2YodG1wKSk7CiB9CisKKyNpZm5kZWYgU1dJRyAvKiBOb3QgYXZhaWxhYmxlIGluIFB5dGhv biAqLwogc3RhdGljIGlubGluZSBpbnQgZmR0X3Byb3BlcnR5X2NlbGwodm9pZCAqZmR0LCBjb25z dCBjaGFyICpuYW1lLCB1aW50MzJfdCB2YWwpCiB7CiAJcmV0dXJuIGZkdF9wcm9wZXJ0eV91MzIo ZmR0LCBuYW1lLCB2YWwpOwogfQorI2VuZGlmCiAKIC8qKgogICogZmR0X3Byb3BlcnR5X3BsYWNl aG9sZGVyIC0gYWRkIGEgbmV3IHByb3BlcnR5IGFuZCByZXR1cm4gYSBwdHIgdG8gaXRzIHZhbHVl CmRpZmYgLS1naXQgYS9zY3JpcHRzL2R0Yy9weWxpYmZkdC9saWJmZHQuaV9zaGlwcGVkIGIvc2Ny aXB0cy9kdGMvcHlsaWJmZHQvbGliZmR0Lmlfc2hpcHBlZAppbmRleCAyYzFjOTg3YzFkMS4uNjc3 NGI5M2IyY2IgMTAwNjQ0Ci0tLSBhL3NjcmlwdHMvZHRjL3B5bGliZmR0L2xpYmZkdC5pX3NoaXBw ZWQKKysrIGIvc2NyaXB0cy9kdGMvcHlsaWJmZHQvbGliZmR0Lmlfc2hpcHBlZApAQCAtMTIsNiAr MTIsMTcgQEAKICV7CiAjZGVmaW5lIFNXSUdfRklMRV9XSVRIX0lOSVQKICNpbmNsdWRlICJsaWJm ZHQuaCIKKworLyoKKyAqIFdlIHJlbmFtZSB0aGlzIGZ1bmN0aW9uIGhlcmUgdG8gYXZvaWQgcHJv YmxlbXMgd2l0aCBzd2lnLCBzaW5jZSB3ZSBhbHNvIGhhdmUKKyAqIGEgc3RydWN0IGNhbGxlZCBm ZHRfcHJvcGVydHkuIFRoYXQgc3RydWN0IGNhdXNlcyBzd2lnIHRvIGNyZWF0ZSBhIGNsYXNzIGlu CisgKiBsaWJmZHQucHkgY2FsbGVkIGZkdF9wcm9wZXJ0eSgpLCB3aGljaCBjb25mdXNlcyB0aGlu Z3MuCisgKi8KK3N0YXRpYyBpbnQgX2ZkdF9wcm9wZXJ0eSh2b2lkICpmZHQsIGNvbnN0IGNoYXIg Km5hbWUsIGNvbnN0IGNoYXIgKnZhbCwgaW50IGxlbikKK3sKKyAgICByZXR1cm4gZmR0X3Byb3Bl cnR5KGZkdCwgbmFtZSwgdmFsLCBsZW4pOworfQorCiAlfQogCiAlcHl0aG9uY29kZSAlewpAQCAt MTA4LDYgKzExOSw3IEBAIGRlZiBjaGVja19lcnJfbnVsbCh2YWwsIHF1aWV0PSgpKToKICAgICAg ICAgICAgIHJhaXNlIEZkdEV4Y2VwdGlvbih2YWwpCiAgICAgcmV0dXJuIHZhbAogCisKIGNsYXNz IEZkdDoKICAgICAiIiJEZXZpY2UgdHJlZSBjbGFzcywgc3VwcG9ydGluZyBhbGwgb3BlcmF0aW9u cwogCkBAIC0xMjksNiArMTQxLDE2MyBAQCBjbGFzcyBGZHQ6CiAgICAgICAgIHNlbGYuX2ZkdCA9 IGJ5dGVhcnJheShkYXRhKQogICAgICAgICBjaGVja19lcnIoZmR0X2NoZWNrX2hlYWRlcihzZWxm Ll9mZHQpKTsKIAorICAgIGRlZiBhc19ieXRlYXJyYXkoc2VsZik6CisgICAgICAgICIiIkdldCB0 aGUgZGV2aWNlIHRyZWUgY29udGVudHMgYXMgYSBieXRlYXJyYXkKKworICAgICAgICBUaGlzIGNh biBiZSBwYXNzZWQgZGlyZWN0bHkgdG8gbGliZmR0IGZ1bmN0aW9ucyB0aGF0IGFjY2VzcyBhCisg ICAgICAgIGNvbnN0IHZvaWQgKiBmb3IgdGhlIGRldmljZSB0cmVlLgorCisgICAgICAgIFJldHVy bnM6CisgICAgICAgICAgICBieXRlYXJyYXkgY29udGFpbmluZyB0aGUgZGV2aWNlIHRyZWUKKyAg ICAgICAgIiIiCisgICAgICAgIHJldHVybiBieXRlYXJyYXkoc2VsZi5fZmR0KQorCisgICAgZGVm IG5leHRfbm9kZShzZWxmLCBub2Rlb2Zmc2V0LCBkZXB0aCwgcXVpZXQ9KCkpOgorICAgICAgICAi IiJGaW5kIHRoZSBuZXh0IHN1Ym5vZGUKKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgbm9k ZW9mZnNldDogTm9kZSBvZmZzZXQgb2YgcHJldmlvdXMgbm9kZQorICAgICAgICAgICAgZGVwdGg6 IE9uIGlucHV0LCB0aGUgZGVwdGggb2YgdGhlIG5vZGUgYXQgbm9kZW9mZnNldC4gT24gb3V0cHV0 LCB0aGUKKyAgICAgICAgICAgICAgIGRlcHRoIG9mIHRoZSByZXR1cm5lZCBub2RlCisgICAgICAg ICAgICBxdWlldDogRXJyb3JzIHRvIGlnbm9yZSAoZW1wdHkgdG8gcmFpc2Ugb24gYWxsIGVycm9y cykKKworICAgICAgICBSZXR1cm5zOgorICAgICAgICAgICAgVGhlIG9mZnNldCBvZiB0aGUgbmV4 dCBub2RlLCBpZiBhbnkKKworICAgICAgICBSYWlzZXM6CisgICAgICAgICAgICBGZHRFeGNlcHRp b24gaWYgbm8gbW9yZSBub2RlcyBmb3VuZCBvciBvdGhlciBlcnJvciBvY2N1cnMKKyAgICAgICAg IiIiCisgICAgICAgIHJldHVybiBjaGVja19lcnIoZmR0X25leHRfbm9kZShzZWxmLl9mZHQsIG5v ZGVvZmZzZXQsIGRlcHRoKSwgcXVpZXQpCisKKyAgICBkZWYgZmlyc3Rfc3Vibm9kZShzZWxmLCBu b2Rlb2Zmc2V0LCBxdWlldD0oKSk6CisgICAgICAgICIiIkZpbmQgdGhlIGZpcnN0IHN1Ym5vZGUg b2YgYSBwYXJlbnQgbm9kZQorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBub2Rlb2Zmc2V0 OiBOb2RlIG9mZnNldCBvZiBwYXJlbnQgbm9kZQorICAgICAgICAgICAgcXVpZXQ6IEVycm9ycyB0 byBpZ25vcmUgKGVtcHR5IHRvIHJhaXNlIG9uIGFsbCBlcnJvcnMpCisKKyAgICAgICAgUmV0dXJu czoKKyAgICAgICAgICAgIFRoZSBvZmZzZXQgb2YgdGhlIGZpcnN0IHN1Ym5vZGUsIGlmIGFueQor CisgICAgICAgIFJhaXNlczoKKyAgICAgICAgICAgIEZkdEV4Y2VwdGlvbiBpZiBubyBzdWJub2Rl cyBmb3VuZCBvciBvdGhlciBlcnJvciBvY2N1cnMKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVy biBjaGVja19lcnIoZmR0X2ZpcnN0X3N1Ym5vZGUoc2VsZi5fZmR0LCBub2Rlb2Zmc2V0KSwgcXVp ZXQpCisKKyAgICBkZWYgbmV4dF9zdWJub2RlKHNlbGYsIG5vZGVvZmZzZXQsIHF1aWV0PSgpKToK KyAgICAgICAgIiIiRmluZCB0aGUgbmV4dCBzdWJub2RlCisKKyAgICAgICAgQXJnczoKKyAgICAg ICAgICAgIG5vZGVvZmZzZXQ6IE5vZGUgb2Zmc2V0IG9mIHByZXZpb3VzIHN1Ym5vZGUKKyAgICAg ICAgICAgIHF1aWV0OiBFcnJvcnMgdG8gaWdub3JlIChlbXB0eSB0byByYWlzZSBvbiBhbGwgZXJy b3JzKQorCisgICAgICAgIFJldHVybnM6CisgICAgICAgICAgICBUaGUgb2Zmc2V0IG9mIHRoZSBu ZXh0IHN1Ym5vZGUsIGlmIGFueQorCisgICAgICAgIFJhaXNlczoKKyAgICAgICAgICAgIEZkdEV4 Y2VwdGlvbiBpZiBubyBtb3JlIHN1Ym5vZGVzIGZvdW5kIG9yIG90aGVyIGVycm9yIG9jY3Vycwor ICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIGNoZWNrX2VycihmZHRfbmV4dF9zdWJub2RlKHNl bGYuX2ZkdCwgbm9kZW9mZnNldCksIHF1aWV0KQorCisgICAgZGVmIG1hZ2ljKHNlbGYpOgorICAg ICAgICAiIiJSZXR1cm4gdGhlIG1hZ2ljIHdvcmQgZnJvbSB0aGUgaGVhZGVyCisKKyAgICAgICAg UmV0dXJuczoKKyAgICAgICAgICAgIE1hZ2ljIHdvcmQKKyAgICAgICAgIiIiCisgICAgICAgIHJl dHVybiBmZHRfbWFnaWMoc2VsZi5fZmR0KSAmIDB4ZmZmZmZmZmYKKworICAgIGRlZiB0b3RhbHNp emUoc2VsZik6CisgICAgICAgICIiIlJldHVybiB0aGUgdG90YWwgc2l6ZSBvZiB0aGUgZGV2aWNl IHRyZWUKKworICAgICAgICBSZXR1cm5zOgorICAgICAgICAgICAgVG90YWwgdHJlZSBzaXplIGlu IGJ5dGVzCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gY2hlY2tfZXJyKGZkdF90b3RhbHNp emUoc2VsZi5fZmR0KSkKKworICAgIGRlZiBvZmZfZHRfc3RydWN0KHNlbGYpOgorICAgICAgICAi IiJSZXR1cm4gdGhlIHN0YXJ0IG9mIHRoZSBkZXZpY2UtdHJlZSBzdHJ1Y3QgYXJlYQorCisgICAg ICAgIFJldHVybnM6CisgICAgICAgICAgICBTdGFydCBvZmZzZXQgb2Ygc3RydWN0IGFyZWEKKyAg ICAgICAgIiIiCisgICAgICAgIHJldHVybiBjaGVja19lcnIoZmR0X29mZl9kdF9zdHJ1Y3Qoc2Vs Zi5fZmR0KSkKKworICAgIGRlZiBvZmZfZHRfc3RyaW5ncyhzZWxmKToKKyAgICAgICAgIiIiUmV0 dXJuIHRoZSBzdGFydCBvZiB0aGUgZGV2aWNlLXRyZWUgc3RyaW5nIGFyZWEKKworICAgICAgICBS ZXR1cm5zOgorICAgICAgICAgICAgU3RhcnQgb2Zmc2V0IG9mIHN0cmluZyBhcmVhCisgICAgICAg ICIiIgorICAgICAgICByZXR1cm4gY2hlY2tfZXJyKGZkdF9vZmZfZHRfc3RyaW5ncyhzZWxmLl9m ZHQpKQorCisgICAgZGVmIG9mZl9tZW1fcnN2bWFwKHNlbGYpOgorICAgICAgICAiIiJSZXR1cm4g dGhlIHN0YXJ0IG9mIHRoZSBtZW1vcnkgcmVzZXJ2ZSBtYXAKKworICAgICAgICBSZXR1cm5zOgor ICAgICAgICAgICAgU3RhcnQgb2Zmc2V0IG9mIG1lbW9yeSByZXNlcnZlIG1hcAorICAgICAgICAi IiIKKyAgICAgICAgcmV0dXJuIGNoZWNrX2VycihmZHRfb2ZmX21lbV9yc3ZtYXAoc2VsZi5fZmR0 KSkKKworICAgIGRlZiB2ZXJzaW9uKHNlbGYpOgorICAgICAgICAiIiJSZXR1cm4gdGhlIHZlcnNp b24gb2YgdGhlIGRldmljZSB0cmVlCisKKyAgICAgICAgUmV0dXJuczoKKyAgICAgICAgICAgIFZl cnNpb24gbnVtYmVyIG9mIHRoZSBkZXZpY2UgdHJlZQorICAgICAgICAiIiIKKyAgICAgICAgcmV0 dXJuIGNoZWNrX2VycihmZHRfdmVyc2lvbihzZWxmLl9mZHQpKQorCisgICAgZGVmIGxhc3RfY29t cF92ZXJzaW9uKHNlbGYpOgorICAgICAgICAiIiJSZXR1cm4gdGhlIGxhc3QgY29tcGF0aWJsZSB2 ZXJzaW9uIG9mIHRoZSBkZXZpY2UgdHJlZQorCisgICAgICAgIFJldHVybnM6CisgICAgICAgICAg ICBMYXN0IGNvbXBhdGlibGUgdmVyc2lvbiBudW1iZXIgb2YgdGhlIGRldmljZSB0cmVlCisgICAg ICAgICIiIgorICAgICAgICByZXR1cm4gY2hlY2tfZXJyKGZkdF9sYXN0X2NvbXBfdmVyc2lvbihz ZWxmLl9mZHQpKQorCisgICAgZGVmIGJvb3RfY3B1aWRfcGh5cyhzZWxmKToKKyAgICAgICAgIiIi UmV0dXJuIHRoZSBwaHlzaWNhbCBib290IENQVSBJRAorCisgICAgICAgIFJldHVybnM6CisgICAg ICAgICAgICBQaHlzaWNhbCBib290IENQVSBJRAorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJu IGNoZWNrX2VycihmZHRfYm9vdF9jcHVpZF9waHlzKHNlbGYuX2ZkdCkpCisKKyAgICBkZWYgc2l6 ZV9kdF9zdHJpbmdzKHNlbGYpOgorICAgICAgICAiIiJSZXR1cm4gdGhlIHN0YXJ0IG9mIHRoZSBk ZXZpY2UtdHJlZSBzdHJpbmcgYXJlYQorCisgICAgICAgIFJldHVybnM6CisgICAgICAgICAgICBT dGFydCBvZmZzZXQgb2Ygc3RyaW5nIGFyZWEKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBj aGVja19lcnIoZmR0X3NpemVfZHRfc3RyaW5ncyhzZWxmLl9mZHQpKQorCisgICAgZGVmIHNpemVf ZHRfc3RydWN0KHNlbGYpOgorICAgICAgICAiIiJSZXR1cm4gdGhlIHN0YXJ0IG9mIHRoZSBkZXZp Y2UtdHJlZSBzdHJ1Y3QgYXJlYQorCisgICAgICAgIFJldHVybnM6CisgICAgICAgICAgICBTdGFy dCBvZmZzZXQgb2Ygc3RydWN0IGFyZWEKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBjaGVj a19lcnIoZmR0X3NpemVfZHRfc3RydWN0KHNlbGYuX2ZkdCkpCisKKyAgICBkZWYgbnVtX21lbV9y c3Yoc2VsZiwgcXVpZXQ9KCkpOgorICAgICAgICAiIiJSZXR1cm4gdGhlIG51bWJlciBvZiBtZW1v cnkgcmVzZXJ2ZS1tYXAgcmVjb3JkcworCisgICAgICAgIFJldHVybnM6CisgICAgICAgICAgICBO dW1iZXIgb2YgbWVtb3J5IHJlc2VydmUtbWFwIHJlY29yZHMKKyAgICAgICAgIiIiCisgICAgICAg IHJldHVybiBjaGVja19lcnIoZmR0X251bV9tZW1fcnN2KHNlbGYuX2ZkdCksIHF1aWV0KQorCisg ICAgZGVmIGdldF9tZW1fcnN2KHNlbGYsIGluZGV4LCBxdWlldD0oKSk6CisgICAgICAgICIiIlJl dHVybiB0aGUgaW5kZXhlZCBtZW1vcnkgcmVzZXJ2ZS1tYXAgcmVjb3JkCisKKyAgICAgICAgQXJn czoKKyAgICAgICAgICAgIGluZGV4OiBSZWNvcmQgdG8gcmV0dXJuICgwPWZpcnN0KQorCisgICAg ICAgIFJldHVybnM6CisgICAgICAgICAgICBOdW1iZXIgb2YgbWVtb3J5IHJlc2VydmUtbWFwIHJl Y29yZHMKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBjaGVja19lcnIoZmR0X2dldF9tZW1f cnN2KHNlbGYuX2ZkdCwgaW5kZXgpLCBxdWlldCkKKwogICAgIGRlZiBzdWJub2RlX29mZnNldChz ZWxmLCBwYXJlbnRvZmZzZXQsIG5hbWUsIHF1aWV0PSgpKToKICAgICAgICAgIiIiR2V0IHRoZSBv ZmZzZXQgb2YgYSBuYW1lZCBzdWJub2RlCiAKQEAgLTE2MSw2ICszMzAsMjAgQEAgY2xhc3MgRmR0 OgogICAgICAgICAiIiIKICAgICAgICAgcmV0dXJuIGNoZWNrX2VycihmZHRfcGF0aF9vZmZzZXQo c2VsZi5fZmR0LCBwYXRoKSwgcXVpZXQpCiAKKyAgICBkZWYgZ2V0X25hbWUoc2VsZiwgbm9kZW9m ZnNldCk6CisgICAgICAgICIiIkdldCB0aGUgbmFtZSBvZiBhIG5vZGUKKworICAgICAgICBBcmdz OgorICAgICAgICAgICAgbm9kZW9mZnNldDogT2Zmc2V0IG9mIG5vZGUgdG8gY2hlY2sKKworICAg ICAgICBSZXR1cm5zOgorICAgICAgICAgICAgTm9kZSBuYW1lCisKKyAgICAgICAgUmFpc2VzOgor ICAgICAgICAgICAgRmR0RXhjZXB0aW9uIG9uIGVycm9yIChlLmcuIG5vZGVvZmZzZXQgaXMgaW52 YWxpZCkKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBjaGVja19lcnJfbnVsbChmZHRfZ2V0 X25hbWUoc2VsZi5fZmR0LCBub2Rlb2Zmc2V0KSlbMF0KKwogICAgIGRlZiBmaXJzdF9wcm9wZXJ0 eV9vZmZzZXQoc2VsZiwgbm9kZW9mZnNldCwgcXVpZXQ9KCkpOgogICAgICAgICAiIiJHZXQgdGhl IG9mZnNldCBvZiB0aGUgZmlyc3QgcHJvcGVydHkgaW4gYSBub2RlIG9mZnNldAogCkBAIC0xOTUs MjAgKzM3OCw2IEBAIGNsYXNzIEZkdDoKICAgICAgICAgcmV0dXJuIGNoZWNrX2VycihmZHRfbmV4 dF9wcm9wZXJ0eV9vZmZzZXQoc2VsZi5fZmR0LCBwcm9wX29mZnNldCksCiAgICAgICAgICAgICAg ICAgICAgICAgICAgcXVpZXQpCiAKLSAgICBkZWYgZ2V0X25hbWUoc2VsZiwgbm9kZW9mZnNldCk6 Ci0gICAgICAgICIiIkdldCB0aGUgbmFtZSBvZiBhIG5vZGUKLQotICAgICAgICBBcmdzOgotICAg ICAgICAgICAgbm9kZW9mZnNldDogT2Zmc2V0IG9mIG5vZGUgdG8gY2hlY2sKLQotICAgICAgICBS ZXR1cm5zOgotICAgICAgICAgICAgTm9kZSBuYW1lCi0KLSAgICAgICAgUmFpc2VzOgotICAgICAg ICAgICAgRmR0RXhjZXB0aW9uIG9uIGVycm9yIChlLmcuIG5vZGVvZmZzZXQgaXMgaW52YWxpZCkK LSAgICAgICAgIiIiCi0gICAgICAgIHJldHVybiBjaGVja19lcnJfbnVsbChmZHRfZ2V0X25hbWUo c2VsZi5fZmR0LCBub2Rlb2Zmc2V0KSlbMF0KLQogICAgIGRlZiBnZXRfcHJvcGVydHlfYnlfb2Zm c2V0KHNlbGYsIHByb3Bfb2Zmc2V0LCBxdWlldD0oKSk6CiAgICAgICAgICIiIk9idGFpbnMgYSBw cm9wZXJ0eSB0aGF0IGNhbiBiZSBleGFtaW5lZAogCkBAIC0yMjksNTEgKzM5OCwzOCBAQCBjbGFz cyBGZHQ6CiAgICAgICAgICAgICByZXR1cm4gcGRhdGEKICAgICAgICAgcmV0dXJuIFByb3BlcnR5 KHBkYXRhWzBdLCBwZGF0YVsxXSkKIAotICAgIGRlZiBmaXJzdF9zdWJub2RlKHNlbGYsIG5vZGVv ZmZzZXQsIHF1aWV0PSgpKToKLSAgICAgICAgIiIiRmluZCB0aGUgZmlyc3Qgc3Vibm9kZSBvZiBh IHBhcmVudCBub2RlCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBjcmVhdGVfZW1wdHlfdHJl ZShzaXplLCBxdWlldD0oKSk6CisgICAgICAgICIiIkNyZWF0ZSBhbiBlbXB0eSBkZXZpY2UgdHJl ZSByZWFkeSBmb3IgdXNlCiAKICAgICAgICAgQXJnczoKLSAgICAgICAgICAgIG5vZGVvZmZzZXQ6 IE5vZGUgb2Zmc2V0IG9mIHBhcmVudCBub2RlCi0gICAgICAgICAgICBxdWlldDogRXJyb3JzIHRv IGlnbm9yZSAoZW1wdHkgdG8gcmFpc2Ugb24gYWxsIGVycm9ycykKKyAgICAgICAgICAgIHNpemU6 IFNpemUgb2YgZGV2aWNlIHRyZWUgaW4gYnl0ZXMKIAogICAgICAgICBSZXR1cm5zOgotICAgICAg ICAgICAgVGhlIG9mZnNldCBvZiB0aGUgZmlyc3Qgc3Vibm9kZSwgaWYgYW55Ci0KLSAgICAgICAg UmFpc2VzOgotICAgICAgICAgICAgRmR0RXhjZXB0aW9uIGlmIG5vIHN1Ym5vZGUgZm91bmQgb3Ig b3RoZXIgZXJyb3Igb2NjdXJzCisgICAgICAgICAgICBGZHQgb2JqZWN0IGNvbnRhaW5pbmcgdGhl IGRldmljZSB0cmVlCiAgICAgICAgICIiIgotICAgICAgICByZXR1cm4gY2hlY2tfZXJyKGZkdF9m aXJzdF9zdWJub2RlKHNlbGYuX2ZkdCwgbm9kZW9mZnNldCksIHF1aWV0KQotCi0gICAgZGVmIG5l eHRfc3Vibm9kZShzZWxmLCBub2Rlb2Zmc2V0LCBxdWlldD0oKSk6Ci0gICAgICAgICIiIkZpbmQg dGhlIG5leHQgc3Vibm9kZQorICAgICAgICBkYXRhID0gYnl0ZWFycmF5KHNpemUpCisgICAgICAg IGVyciA9IGNoZWNrX2VycihmZHRfY3JlYXRlX2VtcHR5X3RyZWUoZGF0YSwgc2l6ZSksIHF1aWV0 KQorICAgICAgICBpZiBlcnI6CisgICAgICAgICAgICByZXR1cm4gZXJyCisgICAgICAgIHJldHVy biBGZHQoZGF0YSkKIAotICAgICAgICBBcmdzOgotICAgICAgICAgICAgbm9kZW9mZnNldDogTm9k ZSBvZmZzZXQgb2YgcHJldmlvdXMgc3Vibm9kZQotICAgICAgICAgICAgcXVpZXQ6IEVycm9ycyB0 byBpZ25vcmUgKGVtcHR5IHRvIHJhaXNlIG9uIGFsbCBlcnJvcnMpCisgICAgZGVmIG9wZW5faW50 byhzZWxmLCBzaXplLCBxdWlldD0oKSk6CisgICAgICAgICIiIk1vdmUgdGhlIGRldmljZSB0cmVl IGludG8gYSBsYXJnZXIgb3Igc21hbGxlciBzcGFjZQogCi0gICAgICAgIFJldHVybnM6Ci0gICAg ICAgICAgICBUaGUgb2Zmc2V0IG9mIHRoZSBuZXh0IHN1Ym5vZGUsIGlmIGFueQorICAgICAgICBU aGlzIGNyZWF0ZXMgYSBuZXcgZGV2aWNlIHRyZWUgb2Ygc2l6ZSBAc2l6ZSBhbmQgbW92ZXMgdGhl IGV4aXN0aW5nCisgICAgICAgIGRldmljZSB0cmVlIGNvbnRlbnRzIG92ZXIgdG8gdGhhdC4gSXQg Y2FuIGJlIHVzZWQgdG8gY3JlYXRlIG1vcmUgc3BhY2UKKyAgICAgICAgaW4gYSBkZXZpY2UgdHJl ZS4KIAotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBGZHRFeGNlcHRpb24gaWYgbm8gbW9y ZSBzdWJub2RlIGZvdW5kIG9yIG90aGVyIGVycm9yIG9jY3VycwotICAgICAgICAiIiIKLSAgICAg ICAgcmV0dXJuIGNoZWNrX2VycihmZHRfbmV4dF9zdWJub2RlKHNlbGYuX2ZkdCwgbm9kZW9mZnNl dCksIHF1aWV0KQotCi0gICAgZGVmIHRvdGFsc2l6ZShzZWxmKToKLSAgICAgICAgIiIiUmV0dXJu IHRoZSB0b3RhbCBzaXplIG9mIHRoZSBkZXZpY2UgdHJlZQotCi0gICAgICAgIFJldHVybnM6Ci0g ICAgICAgICAgICBUb3RhbCB0cmVlIHNpemUgaW4gYnl0ZXMKLSAgICAgICAgIiIiCi0gICAgICAg IHJldHVybiBjaGVja19lcnIoZmR0X3RvdGFsc2l6ZShzZWxmLl9mZHQpKQotCi0gICAgZGVmIG9m Zl9kdF9zdHJ1Y3Qoc2VsZik6Ci0gICAgICAgICIiIlJldHVybiB0aGUgc3RhcnQgb2YgdGhlIGRl dmljZSB0cmVlIHN0cnVjdCBhcmVhCi0KLSAgICAgICAgUmV0dXJuczoKLSAgICAgICAgICAgIFN0 YXJ0IG9mZnNldCBvZiBzdHJ1Y3QgYXJlYQorICAgICAgICBBcmdzOgorICAgICAgICAgICAgc2l6 ZTogUmVxdWlyZWQgbmV3IHNpemUgb2YgZGV2aWNlIHRyZWUgaW4gYnl0ZXMKICAgICAgICAgIiIi Ci0gICAgICAgIHJldHVybiBjaGVja19lcnIoZmR0X29mZl9kdF9zdHJ1Y3Qoc2VsZi5fZmR0KSkK KyAgICAgICAgZmR0ID0gYnl0ZWFycmF5KHNpemUpCisgICAgICAgIGZkdFs6bGVuKHNlbGYuX2Zk dCldID0gc2VsZi5fZmR0CisgICAgICAgIGVyciA9IGNoZWNrX2VycihmZHRfb3Blbl9pbnRvKHNl bGYuX2ZkdCwgZmR0LCBzaXplKSwgcXVpZXQpCisgICAgICAgIGlmIGVycjoKKyAgICAgICAgICAg IHJldHVybiBlcnIKKyAgICAgICAgc2VsZi5fZmR0ID0gZmR0CiAKICAgICBkZWYgcGFjayhzZWxm LCBxdWlldD0oKSk6CiAgICAgICAgICIiIlBhY2sgdGhlIGRldmljZSB0cmVlIHRvIHJlbW92ZSB1 bnVzZWQgc3BhY2UKQEAgLTI4OCwyMCArNDQ0LDI4IEBAIGNsYXNzIEZkdDoKICAgICAgICAgIiIi CiAgICAgICAgIHJldHVybiBjaGVja19lcnIoZmR0X3BhY2soc2VsZi5fZmR0KSwgcXVpZXQpCiAK LSAgICBkZWYgZGVscHJvcChzZWxmLCBub2Rlb2Zmc2V0LCBwcm9wX25hbWUpOgotICAgICAgICAi IiJEZWxldGUgYSBwcm9wZXJ0eSBmcm9tIGEgbm9kZQorICAgIGRlZiBnZXRwcm9wKHNlbGYsIG5v ZGVvZmZzZXQsIHByb3BfbmFtZSwgcXVpZXQ9KCkpOgorICAgICAgICAiIiJHZXQgYSBwcm9wZXJ0 eSBmcm9tIGEgbm9kZQogCiAgICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBub2Rlb2Zmc2V0OiBO b2RlIG9mZnNldCBjb250YWluaW5nIHByb3BlcnR5IHRvIGRlbGV0ZQotICAgICAgICAgICAgcHJv cF9uYW1lOiBOYW1lIG9mIHByb3BlcnR5IHRvIGRlbGV0ZQorICAgICAgICAgICAgbm9kZW9mZnNl dDogTm9kZSBvZmZzZXQgY29udGFpbmluZyBwcm9wZXJ0eSB0byBnZXQKKyAgICAgICAgICAgIHBy b3BfbmFtZTogTmFtZSBvZiBwcm9wZXJ0eSB0byBnZXQKKyAgICAgICAgICAgIHF1aWV0OiBFcnJv cnMgdG8gaWdub3JlIChlbXB0eSB0byByYWlzZSBvbiBhbGwgZXJyb3JzKQorCisgICAgICAgIFJl dHVybnM6CisgICAgICAgICAgICBWYWx1ZSBvZiBwcm9wZXJ0eSBhcyBhIHN0cmluZywgb3IgLXZl IGVycm9yIG51bWJlcgogCiAgICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIEZkdEVycm9yIGlm IHRoZSBwcm9wZXJ0eSBkb2VzIG5vdCBleGlzdCwgb3IgYW5vdGhlciBlcnJvciBvY2N1cnMKKyAg ICAgICAgICAgIEZkdEVycm9yIGlmIGFueSBlcnJvciBvY2N1cnMgKGUuZy4gdGhlIHByb3BlcnR5 IGlzIG5vdCBmb3VuZCkKICAgICAgICAgIiIiCi0gICAgICAgIHJldHVybiBjaGVja19lcnIoZmR0 X2RlbHByb3Aoc2VsZi5fZmR0LCBub2Rlb2Zmc2V0LCBwcm9wX25hbWUpKQorICAgICAgICBwZGF0 YSA9IGNoZWNrX2Vycl9udWxsKGZkdF9nZXRwcm9wKHNlbGYuX2ZkdCwgbm9kZW9mZnNldCwgcHJv cF9uYW1lKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWlldCkKKyAgICAgICAg aWYgaXNpbnN0YW5jZShwZGF0YSwgKGludCkpOgorICAgICAgICAgICAgcmV0dXJuIHBkYXRhCisg ICAgICAgIHJldHVybiBzdHIocGRhdGFbMF0pCiAKLSAgICBkZWYgZ2V0cHJvcChzZWxmLCBub2Rl b2Zmc2V0LCBwcm9wX25hbWUsIHF1aWV0PSgpKToKLSAgICAgICAgIiIiR2V0IGEgcHJvcGVydHkg ZnJvbSBhIG5vZGUKKyAgICBkZWYgZ2V0cHJvcF9vYmooc2VsZiwgbm9kZW9mZnNldCwgcHJvcF9u YW1lLCBxdWlldD0oKSk6CisgICAgICAgICIiIkdldCBhIHByb3BlcnR5IGZyb20gYSBub2RlIGFz IGEgUHJvcGVydHkgb2JqZWN0CiAKICAgICAgICAgQXJnczoKICAgICAgICAgICAgIG5vZGVvZmZz ZXQ6IE5vZGUgb2Zmc2V0IGNvbnRhaW5pbmcgcHJvcGVydHkgdG8gZ2V0CkBAIC0zMDksNyArNDcz LDcgQEAgY2xhc3MgRmR0OgogICAgICAgICAgICAgcXVpZXQ6IEVycm9ycyB0byBpZ25vcmUgKGVt cHR5IHRvIHJhaXNlIG9uIGFsbCBlcnJvcnMpCiAKICAgICAgICAgUmV0dXJuczoKLSAgICAgICAg ICAgIFZhbHVlIG9mIHByb3BlcnR5IGFzIGEgYnl0ZWFycmF5LCBvciAtdmUgZXJyb3IgbnVtYmVy CisgICAgICAgICAgICBQcm9wZXJ0eSBvYmplY3QsIG9yIE5vbmUgaWYgbm90IGZvdW5kCiAKICAg ICAgICAgUmFpc2VzOgogICAgICAgICAgICAgRmR0RXJyb3IgaWYgYW55IGVycm9yIG9jY3VycyAo ZS5nLiB0aGUgcHJvcGVydHkgaXMgbm90IGZvdW5kKQpAQCAtMzE3LDggKzQ4MSw4IEBAIGNsYXNz IEZkdDoKICAgICAgICAgcGRhdGEgPSBjaGVja19lcnJfbnVsbChmZHRfZ2V0cHJvcChzZWxmLl9m ZHQsIG5vZGVvZmZzZXQsIHByb3BfbmFtZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcXVpZXQpCiAgICAgICAgIGlmIGlzaW5zdGFuY2UocGRhdGEsIChpbnQpKToKLSAgICAgICAg ICAgIHJldHVybiBwZGF0YQotICAgICAgICByZXR1cm4gYnl0ZWFycmF5KHBkYXRhWzBdKQorICAg ICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgcmV0dXJuIFByb3BlcnR5KHByb3BfbmFtZSwg Ynl0ZWFycmF5KHBkYXRhWzBdKSkKIAogICAgIGRlZiBnZXRfcGhhbmRsZShzZWxmLCBub2Rlb2Zm c2V0KToKICAgICAgICAgIiIiR2V0IHRoZSBwaGFuZGxlIG9mIGEgbm9kZQpAQCAtMzQ3LDYgKzUx MSwxMDggQEAgY2xhc3MgRmR0OgogICAgICAgICAiIiIKICAgICAgICAgcmV0dXJuIGNoZWNrX2Vy cihmZHRfcGFyZW50X29mZnNldChzZWxmLl9mZHQsIG5vZGVvZmZzZXQpLCBxdWlldCkKIAorICAg IGRlZiBzZXRfbmFtZShzZWxmLCBub2Rlb2Zmc2V0LCBuYW1lLCBxdWlldD0oKSk6CisgICAgICAg ICIiIlNldCB0aGUgbmFtZSBvZiBhIG5vZGUKKworICAgICAgICBBcmdzOgorICAgICAgICAgICAg bm9kZW9mZnNldDogTm9kZSBvZmZzZXQgb2Ygbm9kZSB0byB1cGRhdGUKKyAgICAgICAgICAgIG5h bWU6IE5ldyBub2RlIG5hbWUKKworICAgICAgICBSZXR1cm5zOgorICAgICAgICAgICAgRXJyb3Ig Y29kZSwgb3IgMCBpZiBPSworCisgICAgICAgIFJhaXNlczoKKyAgICAgICAgICAgIEZkdEV4Y2Vw dGlvbiBpZiBubyBwYXJlbnQgZm91bmQgb3Igb3RoZXIgZXJyb3Igb2NjdXJzCisgICAgICAgICIi IgorICAgICAgICByZXR1cm4gY2hlY2tfZXJyKGZkdF9zZXRfbmFtZShzZWxmLl9mZHQsIG5vZGVv ZmZzZXQsIG5hbWUpLCBxdWlldCkKKworICAgIGRlZiBzZXRwcm9wKHNlbGYsIG5vZGVvZmZzZXQs IHByb3BfbmFtZSwgdmFsLCBxdWlldD0oKSk6CisgICAgICAgICIiIlNldCB0aGUgdmFsdWUgb2Yg YSBwcm9wZXJ0eQorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBub2Rlb2Zmc2V0OiBOb2Rl IG9mZnNldCBjb250YWluaW5nIHRoZSBwcm9wZXJ0eSB0byBjcmVhdGUvdXBkYXRlCisgICAgICAg ICAgICBwcm9wX25hbWU6IE5hbWUgb2YgcHJvcGVydHkKKyAgICAgICAgICAgIHZhbDogVmFsdWUg dG8gd3JpdGUgKHN0cmluZyBvciBieXRlYXJyYXkpCisgICAgICAgICAgICBxdWlldDogRXJyb3Jz IHRvIGlnbm9yZSAoZW1wdHkgdG8gcmFpc2Ugb24gYWxsIGVycm9ycykKKworICAgICAgICBSZXR1 cm5zOgorICAgICAgICAgICAgRXJyb3IgY29kZSwgb3IgMCBpZiBPSworCisgICAgICAgIFJhaXNl czoKKyAgICAgICAgICAgIEZkdEV4Y2VwdGlvbiBpZiBubyBwYXJlbnQgZm91bmQgb3Igb3RoZXIg ZXJyb3Igb2NjdXJzCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gY2hlY2tfZXJyKGZkdF9z ZXRwcm9wKHNlbGYuX2ZkdCwgbm9kZW9mZnNldCwgcHJvcF9uYW1lLCB2YWwsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuKHZhbCkpLCBxdWlldCkKKworICAgIGRlZiBz ZXRwcm9wX3UzMihzZWxmLCBub2Rlb2Zmc2V0LCBwcm9wX25hbWUsIHZhbCwgcXVpZXQ9KCkpOgor ICAgICAgICAiIiJTZXQgdGhlIHZhbHVlIG9mIGEgcHJvcGVydHkKKworICAgICAgICBBcmdzOgor ICAgICAgICAgICAgbm9kZW9mZnNldDogTm9kZSBvZmZzZXQgY29udGFpbmluZyB0aGUgcHJvcGVy dHkgdG8gY3JlYXRlL3VwZGF0ZQorICAgICAgICAgICAgcHJvcF9uYW1lOiBOYW1lIG9mIHByb3Bl cnR5CisgICAgICAgICAgICB2YWw6IFZhbHVlIHRvIHdyaXRlIChpbnRlZ2VyKQorICAgICAgICAg ICAgcXVpZXQ6IEVycm9ycyB0byBpZ25vcmUgKGVtcHR5IHRvIHJhaXNlIG9uIGFsbCBlcnJvcnMp CisKKyAgICAgICAgUmV0dXJuczoKKyAgICAgICAgICAgIEVycm9yIGNvZGUsIG9yIDAgaWYgT0sK KworICAgICAgICBSYWlzZXM6CisgICAgICAgICAgICBGZHRFeGNlcHRpb24gaWYgbm8gcGFyZW50 IGZvdW5kIG9yIG90aGVyIGVycm9yIG9jY3VycworICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJu IGNoZWNrX2VycihmZHRfc2V0cHJvcF91MzIoc2VsZi5fZmR0LCBub2Rlb2Zmc2V0LCBwcm9wX25h bWUsIHZhbCksCisgICAgICAgICAgICAgICAgICAgICAgICAgcXVpZXQpCisKKyAgICBkZWYgc2V0 cHJvcF91NjQoc2VsZiwgbm9kZW9mZnNldCwgcHJvcF9uYW1lLCB2YWwsIHF1aWV0PSgpKToKKyAg ICAgICAgIiIiU2V0IHRoZSB2YWx1ZSBvZiBhIHByb3BlcnR5CisKKyAgICAgICAgQXJnczoKKyAg ICAgICAgICAgIG5vZGVvZmZzZXQ6IE5vZGUgb2Zmc2V0IGNvbnRhaW5pbmcgdGhlIHByb3BlcnR5 IHRvIGNyZWF0ZS91cGRhdGUKKyAgICAgICAgICAgIHByb3BfbmFtZTogTmFtZSBvZiBwcm9wZXJ0 eQorICAgICAgICAgICAgdmFsOiBWYWx1ZSB0byB3cml0ZSAoaW50ZWdlcikKKyAgICAgICAgICAg IHF1aWV0OiBFcnJvcnMgdG8gaWdub3JlIChlbXB0eSB0byByYWlzZSBvbiBhbGwgZXJyb3JzKQor CisgICAgICAgIFJldHVybnM6CisgICAgICAgICAgICBFcnJvciBjb2RlLCBvciAwIGlmIE9LCisK KyAgICAgICAgUmFpc2VzOgorICAgICAgICAgICAgRmR0RXhjZXB0aW9uIGlmIG5vIHBhcmVudCBm b3VuZCBvciBvdGhlciBlcnJvciBvY2N1cnMKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBj aGVja19lcnIoZmR0X3NldHByb3BfdTY0KHNlbGYuX2ZkdCwgbm9kZW9mZnNldCwgcHJvcF9uYW1l LCB2YWwpLAorICAgICAgICAgICAgICAgICAgICAgICAgIHF1aWV0KQorCisgICAgZGVmIHNldHBy b3Bfc3RyKHNlbGYsIG5vZGVvZmZzZXQsIHByb3BfbmFtZSwgdmFsLCBxdWlldD0oKSk6CisgICAg ICAgICIiIlNldCB0aGUgc3RyaW5nIHZhbHVlIG9mIGEgcHJvcGVydHkKKworICAgICAgICBUaGUg cHJvcGVydHkgaXMgc2V0IHRvIHRoZSBzdHJpbmcsIHdpdGggYSBudWwgdGVybWluYXRvciBhZGRl ZAorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBub2Rlb2Zmc2V0OiBOb2RlIG9mZnNldCBj b250YWluaW5nIHRoZSBwcm9wZXJ0eSB0byBjcmVhdGUvdXBkYXRlCisgICAgICAgICAgICBwcm9w X25hbWU6IE5hbWUgb2YgcHJvcGVydHkKKyAgICAgICAgICAgIHZhbDogVmFsdWUgdG8gd3JpdGUg KHN0cmluZyB3aXRob3V0IG51bCB0ZXJtaW5hdG9yKQorICAgICAgICAgICAgcXVpZXQ6IEVycm9y cyB0byBpZ25vcmUgKGVtcHR5IHRvIHJhaXNlIG9uIGFsbCBlcnJvcnMpCisKKyAgICAgICAgUmV0 dXJuczoKKyAgICAgICAgICAgIEVycm9yIGNvZGUsIG9yIDAgaWYgT0sKKworICAgICAgICBSYWlz ZXM6CisgICAgICAgICAgICBGZHRFeGNlcHRpb24gaWYgbm8gcGFyZW50IGZvdW5kIG9yIG90aGVy IGVycm9yIG9jY3VycworICAgICAgICAiIiIKKyAgICAgICAgdmFsICs9ICdcMCcKKyAgICAgICAg cmV0dXJuIGNoZWNrX2VycihmZHRfc2V0cHJvcChzZWxmLl9mZHQsIG5vZGVvZmZzZXQsIHByb3Bf bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwsIGxlbih2YWwp KSwgcXVpZXQpCisKKyAgICBkZWYgZGVscHJvcChzZWxmLCBub2Rlb2Zmc2V0LCBwcm9wX25hbWUp OgorICAgICAgICAiIiJEZWxldGUgYSBwcm9wZXJ0eSBmcm9tIGEgbm9kZQorCisgICAgICAgIEFy Z3M6CisgICAgICAgICAgICBub2Rlb2Zmc2V0OiBOb2RlIG9mZnNldCBjb250YWluaW5nIHByb3Bl cnR5IHRvIGRlbGV0ZQorICAgICAgICAgICAgcHJvcF9uYW1lOiBOYW1lIG9mIHByb3BlcnR5IHRv IGRlbGV0ZQorCisgICAgICAgIFJhaXNlczoKKyAgICAgICAgICAgIEZkdEVycm9yIGlmIHRoZSBw cm9wZXJ0eSBkb2VzIG5vdCBleGlzdCwgb3IgYW5vdGhlciBlcnJvciBvY2N1cnMKKyAgICAgICAg IiIiCisgICAgICAgIHJldHVybiBjaGVja19lcnIoZmR0X2RlbHByb3Aoc2VsZi5fZmR0LCBub2Rl b2Zmc2V0LCBwcm9wX25hbWUpKQorCiAgICAgZGVmIG5vZGVfb2Zmc2V0X2J5X3BoYW5kbGUoc2Vs ZiwgcGhhbmRsZSwgcXVpZXQ9KCkpOgogICAgICAgICAiIiJHZXQgdGhlIG9mZnNldCBvZiBhIG5v ZGUgd2l0aCB0aGUgZ2l2ZW4gcGhhbmRsZQogCkBAIC0zNjIsNyArNjI4LDggQEAgY2xhc3MgRmR0 OgogICAgICAgICAiIiIKICAgICAgICAgcmV0dXJuIGNoZWNrX2VycihmZHRfbm9kZV9vZmZzZXRf YnlfcGhhbmRsZShzZWxmLl9mZHQsIHBoYW5kbGUpLCBxdWlldCkKIAotY2xhc3MgUHJvcGVydHk6 CisKK2NsYXNzIFByb3BlcnR5KGJ5dGVhcnJheSk6CiAgICAgIiIiSG9sZHMgYSBkZXZpY2UgdHJl ZSBwcm9wZXJ0eSBuYW1lIGFuZCB2YWx1ZS4KIAogICAgIFRoaXMgaG9sZHMgYSBjb3B5IG9mIGEg cHJvcGVydHkgdGFrZW4gZnJvbSB0aGUgZGV2aWNlIHRyZWUuIEl0IGRvZXMgbm90CkBAIC0zNzEs MTEgKzYzOCwyNzQgQEAgY2xhc3MgUHJvcGVydHk6CiAKICAgICBQcm9wZXJ0aWVzOgogICAgICAg ICBuYW1lOiBQcm9wZXJ0eSBuYW1lCi0gICAgICAgIHZhbHVlOiBQcm9wZXIgdmFsdWUgYXMgYSBi eXRlYXJyYXkKKyAgICAgICAgdmFsdWU6IFByb3BlcnR5IHZhbHVlIGFzIGEgYnl0ZWFycmF5CiAg ICAgIiIiCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIHZhbHVlKToKKyAgICAgICAgYnl0 ZWFycmF5Ll9faW5pdF9fKHNlbGYsIHZhbHVlKQogICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCi0g ICAgICAgIHNlbGYudmFsdWUgPSB2YWx1ZQorCisgICAgZGVmIGFzX2NlbGwoc2VsZiwgZm10KToK KyAgICAgICAgcmV0dXJuIHN0cnVjdC51bnBhY2soJz4nICsgZm10LCBzZWxmKVswXQorCisgICAg ZGVmIGFzX3VpbnQzMihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuYXNfY2VsbCgnTCcpCisK KyAgICBkZWYgYXNfaW50MzIoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLmFzX2NlbGwoJ2wn KQorCisgICAgZGVmIGFzX3VpbnQ2NChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuYXNfY2Vs bCgnUScpCisKKyAgICBkZWYgYXNfaW50NjQoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLmFz X2NlbGwoJ3EnKQorCisgICAgZGVmIGFzX3N0cihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGZb Oi0xXQorCisKK2NsYXNzIEZkdFN3KG9iamVjdCk6CisgICAgIiIiU29mdHdhcmUgaW50ZXJmYWNl IHRvIGNyZWF0ZSBhIGRldmljZSB0cmVlIGZyb20gc2NyYXRjaAorCisgICAgVGhlIG1ldGhvZHMg aW4gdGhpcyBjbGFzcyB3b3JrIGJ5IGFkZGluZyB0byBhbiBleGlzdGluZyAncGFydGlhbCcgZGV2 aWNlCisgICAgdHJlZSBidWZmZXIgb2YgYSBmaXhlZCBzaXplIGNyZWF0ZWQgYnkgaW5zdGFudGlh dGluZyB0aGlzIGNsYXNzLiBXaGVuIHRoZQorICAgIHRyZWUgaXMgY29tcGxldGUsIGNhbGwgZmlu aXNoKCkgdG8gY29tcGxldGUgdGhlIGRldmljZSB0cmVlIHNvIHRoYXQgaXQgY2FuCisgICAgYmUg dXNlZC4KKworICAgIFNpbWlsYXJseSB3aXRoIG5vZGVzLCBhIG5ldyBub2RlIGlzIHN0YXJ0ZWQg d2l0aCBiZWdpbl9ub2RlKCkgYW5kIGZpbmlzaGVkCisgICAgd2l0aCBlbmRfbm9kZSgpLgorCisg ICAgVGhlIGNvbnRleHQgbWFuYWdlciBmdW5jdGlvbnMgY2FuIGJlIHVzZWQgdG8gbWFrZSB0aGlz IGEgYml0IGVhc2llcjoKKworICAgICMgRmlyc3QgY3JlYXRlIHRoZSBkZXZpY2UgdHJlZSB3aXRo IGEgbm9kZSBhbmQgcHJvcGVydHk6CisgICAgd2l0aCBGZHRTdyhzbWFsbF9zaXplKSBhcyBzdzoK KyAgICAgICAgd2l0aCBzdy5BZGROb2RlKCdub2RlJyk6CisgICAgICAgICAgICBzdy5wcm9wZXJ0 eV91MzIoJ3JlZycsIDIpCisgICAgZmR0ID0gc3cuQXNGZHQoKQorCisgICAgIyBOb3cgd2UgY2Fu IHVzZSBpdCBhcyBhIHJlYWwgZGV2aWNlIHRyZWUKKyAgICBmZHQuc2V0cHJvcF91MzIoMCwgJ3Jl ZycsIDMpCisgICAgIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNpemUsIHF1aWV0PSgpKToK KyAgICAgICAgZmR0cncgPSBieXRlYXJyYXkoc2l6ZSkKKyAgICAgICAgZXJyID0gY2hlY2tfZXJy KGZkdF9jcmVhdGUoZmR0cncsIHNpemUpKQorICAgICAgICBpZiBlcnI6CisgICAgICAgICAgICBy ZXR1cm4gZXJyCisgICAgICAgIHNlbGYuX2ZkdHJ3ID0gZmR0cncKKworICAgIGRlZiBfX2VudGVy X18oc2VsZik6CisgICAgICAgICIiIkNvbnRhY3QgbWFuYWdlciB0byB1c2UgdG8gY3JlYXRlIGEg ZGV2aWNlIHRyZWUgdmlhIHNvZnR3YXJlIiIiCisgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBk ZWYgX19leGl0X18oc2VsZiwgdHlwZSwgdmFsdWUsIHRyYWNlYmFjayk6CisgICAgICAgIGNoZWNr X2VycihmZHRfZmluaXNoKHNlbGYuX2ZkdHJ3KSkKKworICAgIGRlZiBBc0ZkdChzZWxmKToKKyAg ICAgICAgIiIiQ29udmVydCBhIEZkdFN3IGludG8gYW4gRmR0IHNvIGl0IGNhbiBiZSBhY2Nlc3Nl ZCBhcyBub3JtYWwKKworICAgICAgICBOb3RlIHRoYXQgZmluaXNoKCkgbXVzdCBiZSBjYWxsZWQg YmVmb3JlIHRoaXMgZnVuY3Rpb24gd2lsbCB3b3JrLiBJZgorICAgICAgICB5b3UgYXJlIHVzaW5n IHRoZSBjb250ZXh0IG1hbmFnZXIgKHNlZSAnd2l0aCcgY29kZSBpbiB0aGUgRmR0U3cgY2xhc3MK KyAgICAgICAgY29tbWVudCkgdGhlbiB0aGlzIHdpbGwgaGFwcGVuIGF1dG9tYXRpY2FsbHkuCisK KyAgICAgICAgUmV0dXJuczoKKyAgICAgICAgICAgIEZkdCBvYmplY3QgYWxsb3dpbmcgYWNjZXNz IHRvIHRoZSBuZXdseSBjcmVhdGVkIGRldmljZSB0cmVlCisgICAgICAgICIiIgorICAgICAgICBy ZXR1cm4gRmR0KHNlbGYuX2ZkdHJ3KQorCisgICAgZGVmIHJlc2l6ZShzZWxmLCBzaXplLCBxdWll dD0oKSk6CisgICAgICAgICIiIlJlc2l6ZSB0aGUgYnVmZmVyIHRvIGFjY29tbW9kYXRlIGEgbGFy Z2VyIHRyZWUKKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgc2l6ZTogTmV3IHNpemUgb2Yg dHJlZQorICAgICAgICAgICAgcXVpZXQ6IEVycm9ycyB0byBpZ25vcmUgKGVtcHR5IHRvIHJhaXNl IG9uIGFsbCBlcnJvcnMpCisKKyAgICAgICAgUmFpc2VzOgorICAgICAgICAgICAgRmR0RXhjZXB0 aW9uIGlmIG5vIG5vZGUgZm91bmQgb3Igb3RoZXIgZXJyb3Igb2NjdXJzCisgICAgICAgICIiIgor ICAgICAgICBmZHQgPSBieXRlYXJyYXkoc2l6ZSkKKyAgICAgICAgZmR0WzpsZW4oc2VsZi5fZmR0 cncpXSA9IHNlbGYuX2ZkdHJ3CisgICAgICAgIGVyciA9IGNoZWNrX2VycihmZHRfcmVzaXplKHNl bGYuX2ZkdHJ3LCBmZHQsIHNpemUpLCBxdWlldCkKKyAgICAgICAgaWYgZXJyOgorICAgICAgICAg ICAgcmV0dXJuIGVycgorICAgICAgICBzZWxmLl9mZHRydyA9IGZkdAorCisgICAgZGVmIGFkZF9y ZXNlcnZlbWFwX2VudHJ5KHNlbGYsIGFkZHIsIHNpemUsIHF1aWV0PSgpKToKKyAgICAgICAgIiIi QWRkIGEgbmV3IG1lbW9yeSByZXNlcnZlIG1hcCBlbnRyeQorCisgICAgICAgIE9uY2UgZmluaXNo ZWQgYWRkaW5nLCB5b3UgbXVzdCBjYWxsIGZpbmlzaF9yZXNlcnZlbWFwKCkuCisKKyAgICAgICAg QXJnczoKKyAgICAgICAgICAgIGFkZHI6IDY0LWJpdCBzdGFydCBhZGRyZXNzCisgICAgICAgICAg ICBzaXplOiA2NC1iaXQgc2l6ZQorICAgICAgICAgICAgcXVpZXQ6IEVycm9ycyB0byBpZ25vcmUg KGVtcHR5IHRvIHJhaXNlIG9uIGFsbCBlcnJvcnMpCisKKyAgICAgICAgUmFpc2VzOgorICAgICAg ICAgICAgRmR0RXhjZXB0aW9uIGlmIG5vIG5vZGUgZm91bmQgb3Igb3RoZXIgZXJyb3Igb2NjdXJz CisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gY2hlY2tfZXJyKGZkdF9hZGRfcmVzZXJ2ZW1h cF9lbnRyeShzZWxmLl9mZHRydywgYWRkciwgc2l6ZSksCisgICAgICAgICAgICAgICAgICAgICAg ICAgcXVpZXQpCisKKyAgICBkZWYgZmluaXNoX3Jlc2VydmVtYXAoc2VsZiwgcXVpZXQ9KCkpOgor ICAgICAgICAiIiJJbmRpY2F0ZSB0aGF0IHRoZXJlIGFyZSBubyBtb3JlIHJlc2VydmUgbWFwIGVu dHJpZXMgdG8gYWRkCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIHF1aWV0OiBFcnJvcnMg dG8gaWdub3JlIChlbXB0eSB0byByYWlzZSBvbiBhbGwgZXJyb3JzKQorCisgICAgICAgIFJhaXNl czoKKyAgICAgICAgICAgIEZkdEV4Y2VwdGlvbiBpZiBubyBub2RlIGZvdW5kIG9yIG90aGVyIGVy cm9yIG9jY3VycworICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIGNoZWNrX2VycihmZHRfZmlu aXNoX3Jlc2VydmVtYXAoc2VsZi5fZmR0cncpLCBxdWlldCkKKworICAgIGRlZiBiZWdpbl9ub2Rl KHNlbGYsIG5hbWUsIHF1aWV0PSgpKToKKyAgICAgICAgIiIiQmVnaW4gYSBuZXcgbm9kZQorCisg ICAgICAgIFVzZSB0aGlzIGJlZm9yZSBhZGRpbmcgcHJvcGVydGllcyB0byB0aGUgbm9kZS4gVGhl biBjYWxsIGVuZF9ub2RlKCkgdG8KKyAgICAgICAgZmluaXNoIGl0LiBZb3UgY2FuIGFsc28gdXNl IHRoZSBjb250ZXh0IG1hbmFnZXIgYXMgc2hvd24gaW4gdGhlIEZkdFN3CisgICAgICAgIGNsYXNz IGNvbW1lbnQuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIG5hbWU6IE5hbWUgb2Ygbm9k ZSB0byBiZWdpbgorICAgICAgICAgICAgcXVpZXQ6IEVycm9ycyB0byBpZ25vcmUgKGVtcHR5IHRv IHJhaXNlIG9uIGFsbCBlcnJvcnMpCisKKyAgICAgICAgUmFpc2VzOgorICAgICAgICAgICAgRmR0 RXhjZXB0aW9uIGlmIG5vIG5vZGUgZm91bmQgb3Igb3RoZXIgZXJyb3Igb2NjdXJzCisgICAgICAg ICIiIgorICAgICAgICByZXR1cm4gY2hlY2tfZXJyKGZkdF9iZWdpbl9ub2RlKHNlbGYuX2ZkdHJ3 LCBuYW1lKSwgcXVpZXQpCisKKyAgICBkZWYgcHJvcGVydHlfc3RyaW5nKHNlbGYsIG5hbWUsIHN0 cmluZywgcXVpZXQ9KCkpOgorICAgICAgICAiIiJBZGQgYSBwcm9wZXJ0eSB3aXRoIGEgc3RyaW5n IHZhbHVlCisKKyAgICAgICAgVGhlIHN0cmluZyB3aWxsIGJlIG51bC10ZXJtaW5hdGVkIHdoZW4g d3JpdHRlbiB0byB0aGUgZGV2aWNlIHRyZWUKKworICAgICAgICBBcmdzOgorICAgICAgICAgICAg bmFtZTogTmFtZSBvZiBwcm9wZXJ0eSB0byBhZGQKKyAgICAgICAgICAgIHN0cmluZzogU3RyaW5n IHZhbHVlIG9mIHByb3BlcnR5CisgICAgICAgICAgICBxdWlldDogRXJyb3JzIHRvIGlnbm9yZSAo ZW1wdHkgdG8gcmFpc2Ugb24gYWxsIGVycm9ycykKKworICAgICAgICBSYWlzZXM6CisgICAgICAg ICAgICBGZHRFeGNlcHRpb24gaWYgbm8gbm9kZSBmb3VuZCBvciBvdGhlciBlcnJvciBvY2N1cnMK KyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBjaGVja19lcnIoZmR0X3Byb3BlcnR5X3N0cmlu ZyhzZWxmLl9mZHRydywgbmFtZSwgc3RyaW5nKSwgcXVpZXQpCisKKyAgICBkZWYgcHJvcGVydHlf dTMyKHNlbGYsIG5hbWUsIHZhbCwgcXVpZXQ9KCkpOgorICAgICAgICAiIiJBZGQgYSBwcm9wZXJ0 eSB3aXRoIGEgMzItYml0IHZhbHVlCisKKyAgICAgICAgV3JpdGUgYSBzaW5nbGUtY2VsbCB2YWx1 ZSB0byB0aGUgZGV2aWNlIHRyZWUKKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgbmFtZTog TmFtZSBvZiBwcm9wZXJ0eSB0byBhZGQKKyAgICAgICAgICAgIHZhbDogVmFsdWUgb2YgcHJvcGVy dHkKKyAgICAgICAgICAgIHF1aWV0OiBFcnJvcnMgdG8gaWdub3JlIChlbXB0eSB0byByYWlzZSBv biBhbGwgZXJyb3JzKQorCisgICAgICAgIFJhaXNlczoKKyAgICAgICAgICAgIEZkdEV4Y2VwdGlv biBpZiBubyBub2RlIGZvdW5kIG9yIG90aGVyIGVycm9yIG9jY3VycworICAgICAgICAiIiIKKyAg ICAgICAgcmV0dXJuIGNoZWNrX2VycihmZHRfcHJvcGVydHlfdTMyKHNlbGYuX2ZkdHJ3LCBuYW1l LCB2YWwpLCBxdWlldCkKKworICAgIGRlZiBwcm9wZXJ0eV91NjQoc2VsZiwgbmFtZSwgdmFsLCBx dWlldD0oKSk6CisgICAgICAgICIiIkFkZCBhIHByb3BlcnR5IHdpdGggYSA2NC1iaXQgdmFsdWUK KworICAgICAgICBXcml0ZSBhIGRvdWJsZS1jZWxsIHZhbHVlIHRvIHRoZSBkZXZpY2UgdHJlZSBp biBiaWctZW5kaWFuIGZvcm1hdAorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBuYW1lOiBO YW1lIG9mIHByb3BlcnR5IHRvIGFkZAorICAgICAgICAgICAgdmFsOiBWYWx1ZSBvZiBwcm9wZXJ0 eQorICAgICAgICAgICAgcXVpZXQ6IEVycm9ycyB0byBpZ25vcmUgKGVtcHR5IHRvIHJhaXNlIG9u IGFsbCBlcnJvcnMpCisKKyAgICAgICAgUmFpc2VzOgorICAgICAgICAgICAgRmR0RXhjZXB0aW9u IGlmIG5vIG5vZGUgZm91bmQgb3Igb3RoZXIgZXJyb3Igb2NjdXJzCisgICAgICAgICIiIgorICAg ICAgICByZXR1cm4gY2hlY2tfZXJyKGZkdF9wcm9wZXJ0eV91NjQoc2VsZi5fZmR0cncsIG5hbWUs IHZhbCksIHF1aWV0KQorCisgICAgZGVmIHByb3BlcnR5X2NlbGwoc2VsZiwgbmFtZSwgdmFsLCBx dWlldD0oKSk6CisgICAgICAgICIiIkFkZCBhIHByb3BlcnR5IHdpdGggYSBzaW5nbGUtY2VsbCB2 YWx1ZQorCisgICAgICAgIFdyaXRlIGEgc2luZ2xlLWNlbGwgdmFsdWUgdG8gdGhlIGRldmljZSB0 cmVlCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIG5hbWU6IE5hbWUgb2YgcHJvcGVydHkg dG8gYWRkCisgICAgICAgICAgICB2YWw6IFZhbHVlIG9mIHByb3BlcnR5CisgICAgICAgICAgICBx dWlldDogRXJyb3JzIHRvIGlnbm9yZSAoZW1wdHkgdG8gcmFpc2Ugb24gYWxsIGVycm9ycykKKwor ICAgICAgICBSYWlzZXM6CisgICAgICAgICAgICBGZHRFeGNlcHRpb24gaWYgbm8gbm9kZSBmb3Vu ZCBvciBvdGhlciBlcnJvciBvY2N1cnMKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBjaGVj a19lcnIoZmR0X3Byb3BlcnR5X2NlbGwoc2VsZi5fZmR0cncsIG5hbWUsIHZhbCksIHF1aWV0KQor CisgICAgZGVmIHByb3BlcnR5KHNlbGYsIG5hbWUsIHZhbCwgcXVpZXQ9KCkpOgorICAgICAgICAi IiJBZGQgYSBwcm9wZXJ0eQorCisgICAgICAgIFdyaXRlIGEgbmV3IHByb3BlcnR5IHdpdGggdGhl IGdpdmVuIHZhbHVlIHRvIHRoZSBkZXZpY2UgdHJlZS4gVGhlIHZhbHVlCisgICAgICAgIGlzIHRh a2VuIGFzIGlzIGFuZCBpcyBub3QgbnVsLXRlcm1pbmF0ZWQKKworICAgICAgICBBcmdzOgorICAg ICAgICAgICAgbmFtZTogTmFtZSBvZiBwcm9wZXJ0eSB0byBhZGQKKyAgICAgICAgICAgIHZhbDog VmFsdWUgb2YgcHJvcGVydHkKKyAgICAgICAgICAgIHF1aWV0OiBFcnJvcnMgdG8gaWdub3JlIChl bXB0eSB0byByYWlzZSBvbiBhbGwgZXJyb3JzKQorCisgICAgICAgIFJhaXNlczoKKyAgICAgICAg ICAgIEZkdEV4Y2VwdGlvbiBpZiBubyBub2RlIGZvdW5kIG9yIG90aGVyIGVycm9yIG9jY3Vycwor ICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIGNoZWNrX2VycihfZmR0X3Byb3BlcnR5KHNlbGYu X2ZkdHJ3LCBuYW1lLCB2YWwsIGxlbih2YWwpKSwgcXVpZXQpCisKKyAgICBkZWYgZW5kX25vZGUo c2VsZiwgcXVpZXQ9KCkpOgorICAgICAgICAiIiJFbmQgYSBub2RlCisKKyAgICAgICAgVXNlIHRo aXMgYWZ0ZXIgYWRkaW5nIHByb3BlcnRpZXMgdG8gYSBub2RlIHRvIGNsb3NlIGl0IG9mZi4gWW91 IGNhbiBhbHNvCisgICAgICAgIHVzZSB0aGUgY29udGV4dCBtYW5hZ2VyIGFzIHNob3duIGluIHRo ZSBGZHRTdyBjbGFzcyBjb21tZW50LgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBxdWll dDogRXJyb3JzIHRvIGlnbm9yZSAoZW1wdHkgdG8gcmFpc2Ugb24gYWxsIGVycm9ycykKKworICAg ICAgICBSYWlzZXM6CisgICAgICAgICAgICBGZHRFeGNlcHRpb24gaWYgbm8gbm9kZSBmb3VuZCBv ciBvdGhlciBlcnJvciBvY2N1cnMKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBjaGVja19l cnIoZmR0X2VuZF9ub2RlKHNlbGYuX2ZkdHJ3KSwgcXVpZXQpCisKKyAgICBkZWYgZmluaXNoKHNl bGYsIHF1aWV0PSgpKToKKyAgICAgICAgIiIiRmluaXNoIHdyaXRpbmcgdGhlIGRldmljZSB0cmVl CisKKyAgICAgICAgVGhpcyBjbG9zZXMgb2ZmIHRoZSBkZXZpY2UgdHJlZSByZWFkeSBmb3IgdXNl CisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIHF1aWV0OiBFcnJvcnMgdG8gaWdub3JlIChl bXB0eSB0byByYWlzZSBvbiBhbGwgZXJyb3JzKQorCisgICAgICAgIFJhaXNlczoKKyAgICAgICAg ICAgIEZkdEV4Y2VwdGlvbiBpZiBubyBub2RlIGZvdW5kIG9yIG90aGVyIGVycm9yIG9jY3Vycwor ICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIGNoZWNrX2VycihmZHRfZmluaXNoKHNlbGYuX2Zk dHJ3KSwgcXVpZXQpCisKKyAgICBkZWYgQWRkTm9kZShzZWxmLCBuYW1lKToKKyAgICAgICAgIiIi Q3JlYXRlIGEgbmV3IGNvbnRleHQgZm9yIGFkZGluZyBhIG5vZGUKKworICAgICAgICBXaGVuIHVz ZWQgaW4gYSAnd2l0aCcgY2xhdXNlIHRoaXMgc3RhcnRzIGEgbmV3IG5vZGUgYW5kIGZpbmlzaGVz IGl0CisgICAgICAgIGFmdGVyd2FyZC4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgbmFt ZTogTmFtZSBvZiBub2RlIHRvIGFkZAorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIE5vZGVB ZGRlcihzZWxmLl9mZHRydywgbmFtZSkKKworCitjbGFzcyBOb2RlQWRkZXIoKToKKyAgICAiIiJD bGFzcyB0byBwcm92aWRlIGEgbm9kZSBjb250ZXh0CisKKyAgICBUaGlzIGFsbG93cyB5b3UgdG8g YWRkIG5vZGVzIGluIGEgbW9yZSBuYXR1cmFsIHdheToKKworICAgICAgICB3aXRoIGZkdHN3LkFk ZE5vZGUoJ25hbWUnKToKKyAgICAgICAgICAgIGZkdHN3LnByb3BlcnR5X3N0cmluZygndGVzdCcs ICd2YWx1ZScpCisKKyAgICBUaGUgbm9kZSBpcyBhdXRvbWF0aWNhbGx5IGNvbXBsZXRlZCB3aXRo IGEgY2FsbCB0byBlbmRfbm9kZSgpIHdoZW4gdGhlCisgICAgY29udGV4dCBleGl0cy4KKyAgICAi IiIKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZmR0LCBuYW1lKToKKyAgICAgICAgc2VsZi5fZmR0 ID0gZmR0CisgICAgICAgIHNlbGYuX25hbWUgPSBuYW1lCisKKyAgICBkZWYgX19lbnRlcl9fKHNl bGYpOgorICAgICAgICBjaGVja19lcnIoZmR0X2JlZ2luX25vZGUoc2VsZi5fZmR0LCBzZWxmLl9u YW1lKSkKKworICAgIGRlZiBfX2V4aXRfXyhzZWxmLCB0eXBlLCB2YWx1ZSwgdHJhY2ViYWNrKToK KyAgICAgICAgY2hlY2tfZXJyKGZkdF9lbmRfbm9kZShzZWxmLl9mZHQpKQogJX0KIAogJXJlbmFt ZShmZHRfcHJvcGVydHkpIGZkdF9wcm9wZXJ0eV9mdW5jOwpAQCAtNDA4LDYgKzkzOCw3IEBAIHR5 cGVkZWYgaW50IGZkdDMyX3Q7CiAgICAgICAgIGZkdCA9IGZkdDsgLyogYXZvaWQgdW51c2VkIHZh cmlhYmxlIHdhcm5pbmcgKi8KIH0KIAorLyogdHlwZW1hcCB1c2VkIGZvciBmZHRfZ2V0X3Byb3Bl cnR5X2J5X29mZnNldCgpICovCiAldHlwZW1hcChvdXQpIChzdHJ1Y3QgZmR0X3Byb3BlcnR5ICop IHsKIAlQeU9iamVjdCAqYnVmZjsKIApAQCAtNDMwLDYgKzk2MSw0NCBAQCB0eXBlZGVmIGludCBm ZHQzMl90OwogCQkkcmVzdWx0ID0gUHlfQnVpbGRWYWx1ZSgicyMiLCAkMSwgKmFyZzQpOwogfQog CisvKiB0eXBlbWFwIHVzZWQgZm9yIGZkdF9zZXRwcm9wKCkgKi8KKyV0eXBlbWFwKGluKSAoY29u c3Qgdm9pZCAqdmFsKSB7CisgICAgJDEgPSBQeVN0cmluZ19Bc1N0cmluZygkaW5wdXQpOyAgIC8q IGNoYXIgKnN0ciAqLworfQorCisvKiB0eXBlbWFwIHVzZWQgZm9yIGZkdF9hZGRfcmVzZXJ2ZW1h cF9lbnRyeSgpICovCisldHlwZW1hcChpbikgdWludDY0X3QgeworICAgJDEgPSBQeUxvbmdfQXNV bnNpZ25lZExvbmcoJGlucHV0KTsKK30KKworLyogdHlwZW1hcHMgdXNlZCBmb3IgZmR0X25leHRf bm9kZSgpICovCisldHlwZW1hcChpbiwgbnVtaW5wdXRzPTEpIGludCAqZGVwdGggKGludCBkZXB0 aCkgeworICAgZGVwdGggPSAoaW50KSBQeUludF9Bc0xvbmcoJGlucHV0KTsKKyAgICQxID0gJmRl cHRoOworfQorCisldHlwZW1hcChhcmdvdXQpIGludCAqZGVwdGggeworICAgICAgICBQeU9iamVj dCAqdmFsID0gUHlfQnVpbGRWYWx1ZSgiaSIsICphcmckYXJnbnVtKTsKKyAgICAgICAgcmVzdWx0 b2JqID0gU1dJR19QeXRob25fQXBwZW5kT3V0cHV0KHJlc3VsdG9iaiwgdmFsKTsKK30KKworJWFw cGx5IGludCAqZGVwdGggeyBpbnQgKmRlcHRoIH07CisKKy8qIHR5cGVtYXBzIGZvciBmZHRfZ2V0 X21lbV9yc3YgKi8KKyV0eXBlbWFwKGluLCBudW1pbnB1dHM9MCkgdWludDY0X3QgKiAodWludDY0 X3QgdGVtcCkgeworICAgJDEgPSAmdGVtcDsKK30KKworJXR5cGVtYXAoYXJnb3V0KSB1aW50NjRf dCAqIHsKKyAgICAgICAgUHlPYmplY3QgKnZhbCA9IFB5TG9uZ19Gcm9tVW5zaWduZWRMb25nKCph cmckYXJnbnVtKTsKKyAgICAgICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgICAgICAgaWYgKFB5VHVw bGVfR0VUX1NJWkUocmVzdWx0b2JqKSA9PSAwKQorICAgICAgICAgICAgICByZXN1bHRvYmogPSB2 YWw7CisgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgcmVzdWx0b2JqID0gU1dJR19QeXRo b25fQXBwZW5kT3V0cHV0KHJlc3VsdG9iaiwgdmFsKTsKKyAgICAgICAgfQorfQorCiAvKiBXZSBo YXZlIGJvdGggc3RydWN0IGZkdF9wcm9wZXJ0eSBhbmQgYSBmdW5jdGlvbiBmZHRfcHJvcGVydHko KSAqLwogJXdhcm5maWx0ZXIoMzAyKSBmZHRfcHJvcGVydHk7CiAKQEAgLTQ0NCw1ICsxMDEzLDEz IEBAIGludCBmZHRfbGFzdF9jb21wX3ZlcnNpb24oY29uc3Qgdm9pZCAqZmR0KTsKIGludCBmZHRf Ym9vdF9jcHVpZF9waHlzKGNvbnN0IHZvaWQgKmZkdCk7CiBpbnQgZmR0X3NpemVfZHRfc3RyaW5n cyhjb25zdCB2b2lkICpmZHQpOwogaW50IGZkdF9zaXplX2R0X3N0cnVjdChjb25zdCB2b2lkICpm ZHQpOworaW50IGZkdF9wcm9wZXJ0eV9zdHJpbmcodm9pZCAqZmR0LCBjb25zdCBjaGFyICpuYW1l LCBjb25zdCBjaGFyICp2YWwpOworaW50IGZkdF9wcm9wZXJ0eV9jZWxsKHZvaWQgKmZkdCwgY29u c3QgY2hhciAqbmFtZSwgdWludDMyX3QgdmFsKTsKKworLyoKKyAqIFRoaXMgZnVuY3Rpb24gaGFz IGEgc3R1YiBzaW5jZSB0aGUgbmFtZSBmZHRfcHJvcGVydHkgaXMgdXNlZCBmb3IgYm90aCBhCisg ICogZnVuY3Rpb24gYW5kIGEgc3RydWN0LCB3aGljaCBjb25mdXNlcyBTV0lHLgorICovCitpbnQg X2ZkdF9wcm9wZXJ0eSh2b2lkICpmZHQsIGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZh bCwgaW50IGxlbik7CiAKICVpbmNsdWRlIDwuLi9saWJmZHQvbGliZmR0Lmg+CmRpZmYgLS1naXQg YS90b29scy9kdG9jL2R0b2MucHkgYi90b29scy9kdG9jL2R0b2MucHkKaW5kZXggMDA4YzBmNGQ2 OTMuLmM4OTFiMDYzODAwIDEwMDc1NQotLS0gYS90b29scy9kdG9jL2R0b2MucHkKKysrIGIvdG9v bHMvZHRvYy9kdG9jLnB5CkBAIC0zNiwxNCArMzYsMjYgQEAgc3lzLnBhdGguYXBwZW5kKG9zLnBh dGguam9pbihvdXJfcGF0aCwgJy4uL3BhdG1hbicpKQogCiBpbXBvcnQgZHRiX3BsYXRkYXRhCiAK LWRlZiBydW5fdGVzdHMoKToKLSAgICAiIiJSdW4gYWxsIHRoZSB0ZXN0IHdlIGhhdmUgZm9yIGR0 b2MiIiIKK2RlZiBydW5fdGVzdHMoYXJncyk6CisgICAgIiIiUnVuIGFsbCB0aGUgdGVzdCB3ZSBo YXZlIGZvciBkdG9jCisKKyAgICBBcmdzOgorICAgICAgICBhcmdzOiBMaXN0IG9mIHBvc2l0aW9u YWwgYXJncyBwcm92aWRlZCB0byBiaW5tYW4uIFRoaXMgY2FuIGhvbGQgYSB0ZXN0CisgICAgICAg ICAgICBuYW1lIHRvIGV4ZWN1dGUgKGFzIGluICdiaW5tYW4gLXQgdGVzdFNlY3Rpb25zJywgZm9y IGV4YW1wbGUpCisgICAgIiIiCiAgICAgaW1wb3J0IHRlc3RfZHRvYwogCiAgICAgcmVzdWx0ID0g dW5pdHRlc3QuVGVzdFJlc3VsdCgpCiAgICAgc3lzLmFyZ3YgPSBbc3lzLmFyZ3ZbMF1dCisgICAg dGVzdF9uYW1lID0gYXJncyBhbmQgYXJnc1swXSBvciBOb25lCiAgICAgZm9yIG1vZHVsZSBpbiAo dGVzdF9kdG9jLlRlc3REdG9jLCk6Ci0gICAgICAgIHN1aXRlID0gdW5pdHRlc3QuVGVzdExvYWRl cigpLmxvYWRUZXN0c0Zyb21UZXN0Q2FzZShtb2R1bGUpCisgICAgICAgIGlmIHRlc3RfbmFtZToK KyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzdWl0ZSA9IHVuaXR0ZXN0LlRlc3RM b2FkZXIoKS5sb2FkVGVzdHNGcm9tTmFtZSh0ZXN0X25hbWUsIG1vZHVsZSkKKyAgICAgICAgICAg IGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAg ICBlbHNlOgorICAgICAgICAgICAgc3VpdGUgPSB1bml0dGVzdC5UZXN0TG9hZGVyKCkubG9hZFRl c3RzRnJvbVRlc3RDYXNlKG1vZHVsZSkKICAgICAgICAgc3VpdGUucnVuKHJlc3VsdCkKIAogICAg IHByaW50IHJlc3VsdApAQCAtNjgsNyArODAsNyBAQCBwYXJzZXIuYWRkX29wdGlvbignLXQnLCAn LS10ZXN0JywgYWN0aW9uPSdzdG9yZV90cnVlJywgZGVzdD0ndGVzdCcsCiAKICMgUnVuIG91ciBt ZWFncmUgdGVzdHMKIGlmIG9wdGlvbnMudGVzdDoKLSAgICBydW5fdGVzdHMoKQorICAgIHJ1bl90 ZXN0cyhhcmdzKQogCiBlbHNlOgogICAgIGR0Yl9wbGF0ZGF0YS5ydW5fc3RlcHMoYXJncywgb3B0 aW9ucy5kdGJfZmlsZSwgb3B0aW9ucy5pbmNsdWRlX2Rpc2FibGVkLApkaWZmIC0tZ2l0IGEvdG9v bHMvZHRvYy9mZHQucHkgYi90b29scy9kdG9jL2ZkdC5weQppbmRleCA3ZmFiMGNkOGU5MC4uZDA4 YjBiNTNlNjEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2R0b2MvZmR0LnB5CisrKyBiL3Rvb2xzL2R0b2Mv ZmR0LnB5CkBAIC0yMzQsNyArMjM0LDYgQEAgY2xhc3MgTm9kZToKICAgICAgICAgYmUgdXBkYXRl ZC4KICAgICAgICAgIiIiCiAgICAgICAgIGlmIHNlbGYuX29mZnNldCAhPSBteV9vZmZzZXQ6Ci0g ICAgICAgICAgICAjcHJpbnQgJyVzOiAlZCAtPiAlZFxuJyAlIChzZWxmLnBhdGgsIHNlbGYuX29m ZnNldCwgbXlfb2Zmc2V0KQogICAgICAgICAgICAgc2VsZi5fb2Zmc2V0ID0gbXlfb2Zmc2V0CiAg ICAgICAgIG9mZnNldCA9IGxpYmZkdC5mZHRfZmlyc3Rfc3Vibm9kZShzZWxmLl9mZHQuR2V0RmR0 KCksIHNlbGYuX29mZnNldCkKICAgICAgICAgZm9yIHN1Ym5vZGUgaW4gc2VsZi5zdWJub2RlczoK QEAgLTM1OSw3ICszNTgsNyBAQCBjbGFzcyBGZHQ6CiAgICAgICAgIHBvZmZzZXQgPSBsaWJmZHQu ZmR0X2ZpcnN0X3Byb3BlcnR5X29mZnNldChzZWxmLl9mZHQsIG5vZGUuX29mZnNldCkKICAgICAg ICAgd2hpbGUgcG9mZnNldCA+PSAwOgogICAgICAgICAgICAgcCA9IHNlbGYuX2ZkdF9vYmouZ2V0 X3Byb3BlcnR5X2J5X29mZnNldChwb2Zmc2V0KQotICAgICAgICAgICAgcHJvcCA9IFByb3Aobm9k ZSwgcG9mZnNldCwgcC5uYW1lLCBwLnZhbHVlKQorICAgICAgICAgICAgcHJvcCA9IFByb3Aobm9k ZSwgcG9mZnNldCwgcC5uYW1lLCBwKQogICAgICAgICAgICAgcHJvcHNfZGljdFtwcm9wLm5hbWVd ID0gcHJvcAogCiAgICAgICAgICAgICBwb2Zmc2V0ID0gbGliZmR0LmZkdF9uZXh0X3Byb3BlcnR5 X29mZnNldChzZWxmLl9mZHQsIHBvZmZzZXQpCmRpZmYgLS1naXQgYS90b29scy9kdG9jL3Rlc3Rf ZHRvYy5weSBiL3Rvb2xzL2R0b2MvdGVzdF9kdG9jLnB5CmluZGV4IDk5ZjRlMWExM2E0Li5lNDc1 YTdlYjE0ZSAxMDA2NDQKLS0tIGEvdG9vbHMvZHRvYy90ZXN0X2R0b2MucHkKKysrIGIvdG9vbHMv ZHRvYy90ZXN0X2R0b2MucHkKQEAgLTQsNyArNCw4IEBACiAKICIiIlRlc3RzIGZvciB0aGUgZHRi X3BsYXRkYXRhIG1vZHVsZQogCi1UaGlzIGluY2x1ZGVzIHVuaXQgdGVzdHMgZm9yIHNvbWUgZnVu Y3Rpb25zIGFuZCBmdW5jdGlvbmFsIHRlc3RzIGZvcgorVGhpcyBpbmNsdWRlcyB1bml0IHRlc3Rz IGZvciBzb21lIGZ1bmN0aW9ucyBhbmQgZnVuY3Rpb25hbCB0ZXN0cyBmb3IgdGhlIGR0b2MKK3Rv b2wuCiAiIiIKIAogaW1wb3J0IGNvbGxlY3Rpb25zCi0tIAoyLjE3LjEuMTE4NS5nNTViZTk0Nzgz Mi1nb29nCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpV LUJvb3QgbWFpbGluZyBsaXN0ClUtQm9vdEBsaXN0cy5kZW54LmRlCmh0dHBzOi8vbGlzdHMuZGVu eC5kZS9saXN0aW5mby91LWJvb3QK