From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 527 invoked by alias); 18 Apr 2011 09:34:22 -0000 Received: (qmail 31775 invoked by uid 22791); 18 Apr 2011 09:34:16 -0000 X-SWARE-Spam-Status: No, hits=-1.0 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,RFC_ABUSE_POST,TW_DW,TW_WC X-Spam-Check-By: sourceware.org Received: from mail-qy0-f176.google.com (HELO mail-qy0-f176.google.com) (209.85.216.176) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 18 Apr 2011 09:33:06 +0000 Received: by qyk30 with SMTP id 30so3448860qyk.0 for ; Mon, 18 Apr 2011 02:33:05 -0700 (PDT) MIME-Version: 1.0 Received: by 10.229.77.162 with SMTP id g34mr2407259qck.70.1303119184204; Mon, 18 Apr 2011 02:33:04 -0700 (PDT) Received: by 10.229.67.96 with HTTP; Mon, 18 Apr 2011 02:33:04 -0700 (PDT) Date: Mon, 18 Apr 2011 09:34:00 -0000 Message-ID: Subject: [patch ld bfd gas]: Handle linkonce for cfi generated debug_frame and eh_frame data From: Kai Tietz To: Binutils Cc: Alan Modra , Nick Clifton Content-Type: multipart/mixed; boundary=002354470ac013168404a12e141c X-IsSubscribed: yes Mailing-List: contact binutils-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sourceware.org X-SW-Source: 2011-04/txt/msg00232.txt.bz2 --002354470ac013168404a12e141c Content-Type: text/plain; charset=ISO-8859-1 Content-length: 3133 Hello, The recent patch about this subject I withdraw and replace it by the more enhanced version. I noticed that a bit more checkings and a different approach on writing eh_frame/debug_frame sections out, was necessary. Additionally this patch allows for PE-COFF targets, that debugging sections can have link-once flags active. ChangeLog bfd/ 2011-04-18 Kai Tietz * coffcode.h (sec_to_styp_flags): Allow linkonce for debugging sections. ChangeLog gas/ 2011-04-18 Kai Tietz * dw2gencfi.c (dwcfi_seg_list): New struct. (dwcfi_hash): New static hash variable. (get_debugseg_name): New. (alloc_debugseg_item): New. (make_debug_seg): New. (dwcfi_hash_insert): New. (dwcfi_hash_find): New. (dwcfi_hash_find_or_make): New. (cfi_insn_data): New member cur_seg. (cie_entry): Likewise. (fde_entry): New cseg and handled members. (alloc_fde_entry): Initialize cseg member. (alloc_cfi_insn_data): Initialize cur_seg member. (dot_cfi_sections): Compare for beginning of section names via strncmp. (get_cfi_seg): New. (cfi_finish): Treat link-once sections. (is_now_linkonce_segment): New local helper. (output_cie): Ignore cie entries not member of current segment. (output_fde): Likewise. (select_cie_for_fde): Likewise. (cfi_change_reg_numbers): Add new argument for current segment and ignore insn elements, if not part of current segment. * ehopt.c (get_cie_info): Use strncmp for section name matching. (heck_eh_frame): Likewise. ChangeLog ld/ 2011-04-18 Kai Tietz * scripttempl/alphavms.sc: Handle .eh_frame($|.)* sections. * scripttempl/armbpabi.sc: Likewise. * scripttempl/avr.sc: Likewise. * scripttempl/crisaout.sc: Likewise. * scripttempl/elf.sc: Likewise. * scripttempl/elf32cr16.sc: Likewise. * scripttempl/elf32crx.sc: Likewise. * scripttempl/elf32msp430.sc: Likewise. * scripttempl/elf32msp430_3.sc: Likewise. * scripttempl/elf32sh-symbian.sc: Likewise. * scripttempl/elf64hppa.sc: Likewise. * scripttempl/elf_chaos.sc: Likewise. * scripttempl/elfd10v.sc: Likewise. * scripttempl/elfd30v.sc: Likewise. * scripttempl/elfi370.sc: Likewise. * scripttempl/elfm68hc11.sc: Likewise. * scripttempl/elfm68hc12.sc: Likewise. * scripttempl/elfmicroblaze.sc: Likewise. * scripttempl/elfxtensa.sc: Likewise. * scripttempl/epocpe.sc: Likewise. * scripttempl/i386beos.sc: Likewise. * scripttempl/i386go32.sc: Likewise. * scripttempl/ip2k.sc: Likewise. * scripttempl/iq2000.sc: Likewise. * scripttempl/mcorepe.sc: Likewise. * scripttempl/mep.sc: Likewise. * scripttempl/mmo.sc: Likewise. * scripttempl/pe.sc: Likewise. * scripttempl/pep.sc: Likewise. * scripttempl/v850.sc: Likewise. * scripttempl/xstormy16.sc: Likewise. Tested for x86_64-w64-mingw32, i686-w64-mingw32, and i686-pc-cygwin. Ok for apply? Regards, Kai --002354470ac013168404a12e141c Content-Type: text/plain; charset=US-ASCII; name="cfi_lonce.txt" Content-Disposition: attachment; filename="cfi_lonce.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gmn7idv90 Content-length: 60203 SW5kZXg6IHNyYy9nYXMvZHcyZ2VuY2ZpLmMKPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0gc3JjLm9yaWcvZ2FzL2R3MmdlbmNmaS5jCTIwMTEtMDQtMTYg MTI6MDY6MzcuNzIyNDczNzAwICswMjAwCisrKyBzcmMvZ2FzL2R3MmdlbmNm aS5jCTIwMTEtMDQtMTggMDk6MDI6MTIuNjQwMzYyNTAwICswMjAwCkBAIC03 Niw2ICs3NiwxNDcgQEAKICMgZGVmaW5lIERXQVJGMl9BRERSX1NJWkUoYmZk KSAoYmZkX2FyY2hfYml0c19wZXJfYWRkcmVzcyAoYmZkKSAvIDgpCiAjZW5k aWYKIAorLyogUHJpdmF0ZSBzZWdtZW50IGNvbGxlY3Rpb24gbGlzdC4gICov CitzdHJ1Y3QgZHdjZmlfc2VnX2xpc3QgeworICBzZWdUIHNlZzsKKyAgaW50 IHN1YnNlZzsKKyAgY2hhciAqc2VnX25hbWU7Cit9OworCitzdGF0aWMgc3Ry dWN0IGhhc2hfY29udHJvbCAqZHdjZmlfaGFzaDsKKworLyogQnVpbGQgYmFz ZWQgb24gc2VnbWVudCB0aGUgZGVyaXZlZCAuZGVidWdfLi4uCisgICBzZWdt ZW50IG5hbWUgY29udGFpbmluZyBvcmlnaW4gc2VnbWVudCdzIHBvc3RmaXgg bmFtZSBwYXJ0LiAgKi8KK3N0YXRpYyBjaGFyICoKK2dldF9kZWJ1Z3NlZ19u YW1lIChzZWdUIHNlZywgY29uc3QgY2hhciAqYmFzZV9uYW1lKQoreworICBj b25zdCBjaGFyICpuYW1lLCpkb2xsYXIsICpkb3Q7CisgIGNoYXIgKnNuYW1l OworCisgIGlmICghc2VnKQorICAgIG5hbWUgPSAiIjsKKyAgZWxzZQorICAg IG5hbWUgPSBiZmRfZ2V0X3NlY3Rpb25fbmFtZSAoc3Rkb3V0cHV0LCBzZWcp OworCisgIGRvbGxhciA9IHN0cmNociAobmFtZSwgJyQnKTsKKyAgZG90ID0g c3RyY2hyIChuYW1lICsgMSwgJy4nKTsKKworICBpZiAoIWRvbGxhciAmJiAh ZG90KQorICAgIG5hbWUgPSAiIjsKKyAgZWxzZSBpZiAoIWRvbGxhcikKKyAg ICBuYW1lID0gZG90OworICBlbHNlIGlmICghZG90KQorICAgIG5hbWUgPSBk b2xsYXI7CisgIGVsc2UgaWYgKGRvdCA8IGRvbGxhcikKKyAgICBuYW1lID0g ZG90OworICBlbHNlCisgICAgbmFtZSA9IGRvbGxhcjsKKworICBzbmFtZSA9 IGNvbmNhdCAoYmFzZV9uYW1lLCBuYW1lLCBOVUxMKTsKKworICByZXR1cm4g c25hbWU7Cit9CisKKy8qIEFsbG9jYXRlIGEgZHdjZmlfc2VnX2xpc3Qgc3Ry dWN0dXJlLiAgKi8KK3N0YXRpYyBzdHJ1Y3QgZHdjZmlfc2VnX2xpc3QgKgor YWxsb2NfZGVidWdzZWdfaXRlbSAoc2VnVCBzZWcsIGludCBzdWJzZWcsIGNo YXIgKm5hbWUpCit7CisgIHN0cnVjdCBkd2NmaV9zZWdfbGlzdCAqcjsKKwor ICByID0gKHN0cnVjdCBkd2NmaV9zZWdfbGlzdCAqKQorICAgIHhtYWxsb2Mg KHNpemVvZiAoc3RydWN0IGR3Y2ZpX3NlZ19saXN0KSArIHN0cmxlbiAobmFt ZSkpOworICByLT5zZWcgPSBzZWc7CisgIHItPnN1YnNlZyA9IHN1YnNlZzsK KyAgci0+c2VnX25hbWUgPSBuYW1lOworICByZXR1cm4gcjsKK30KKworc3Rh dGljIHNlZ1QKK2lzX25vd19saW5rb25jZV9zZWdtZW50ICh2b2lkKQorewor ICBpZiAoKGJmZF9nZXRfc2VjdGlvbl9mbGFncyAoc3Rkb3V0cHV0LCBub3df c2VnKQorICAgICAgICYgKFNFQ19MSU5LX09OQ0UgfCBTRUNfTElOS19EVVBM SUNBVEVTX0RJU0NBUkQKKwkgIHwgU0VDX0xJTktfRFVQTElDQVRFU19PTkVf T05MWSB8IFNFQ19MSU5LX0RVUExJQ0FURVNfU0FNRV9TSVpFCisJICB8IFNF Q19MSU5LX0RVUExJQ0FURVNfU0FNRV9DT05URU5UUykpICE9IDApCisgICAg cmV0dXJuIG5vd19zZWc7CisgIHJldHVybiBOVUxMOworfQorCisvKiBHZW5l cmF0ZSBkZWJ1Zy4uLiBzZWdtZW50IHdpdGggc2FtZSBsaW5rb25jZSBwcm9w ZXJ0aWVzCisgICBvZiBiYXNlZCBzZWdtZW50LiAgKi8KK3N0YXRpYyBzZWdU CittYWtlX2RlYnVnX3NlZyAoc2VnVCBjc2VnLCBjaGFyICpuYW1lLCBpbnQg c2ZsYWdzKQoreworICBzZWdUIHNhdmVfc2VnID0gbm93X3NlZzsKKyAgaW50 IHNhdmVfc3Vic2VnID0gbm93X3N1YnNlZzsKKyAgc2VnVCByOworICBmbGFn d29yZCBmbGFnczsKKworICByID0gc3Vic2VnX25ldyAobmFtZSwgMCk7Cisg IC8qIENoZWNrIGlmIGNvZGUgc2VnbWVudCBpcyBtYXJrZWQgYXMgbGlua2Vk IG9uY2UuICAqLworICBpZiAoIWNzZWcpCisgICAgZmxhZ3MgPSAwOworICBl bHNlCisgICAgZmxhZ3MgPSBiZmRfZ2V0X3NlY3Rpb25fZmxhZ3MgKHN0ZG91 dHB1dCwgY3NlZykKKyAgICAgICYgKFNFQ19MSU5LX09OQ0UgfCBTRUNfTElO S19EVVBMSUNBVEVTX0RJU0NBUkQKKyAgICAgICAgIHwgU0VDX0xJTktfRFVQ TElDQVRFU19PTkVfT05MWSB8IFNFQ19MSU5LX0RVUExJQ0FURVNfU0FNRV9T SVpFCisgICAgICAgICB8IFNFQ19MSU5LX0RVUExJQ0FURVNfU0FNRV9DT05U RU5UUyk7CisKKyAgLyogQWRkIHN0YW5kYXJkIHNlY3Rpb24gZmxhZ3MuICAq LworICBmbGFncyB8PSBzZmxhZ3M7CisKKyAgLyogQXBwbHkgcG9zc2libHkg bGlua2VkIG9uY2UgZmxhZ3MgdG8gbmV3IGdlbmVyYXRlZCBzZWdtZW50LCB0 b28uICAqLworICBpZiAoIWJmZF9zZXRfc2VjdGlvbl9mbGFncyAoc3Rkb3V0 cHV0LCByLCBmbGFncykpCisgICAgYXNfYmFkIChfKCJiZmRfc2V0X3NlY3Rp b25fZmxhZ3M6ICVzIiksCisJICAgIGJmZF9lcnJtc2cgKGJmZF9nZXRfZXJy b3IgKCkpKTsKKworICAvKiBSZXN0b3JlIHRvIHByZXZpb3VzIHNlZ21lbnQu ICAqLworICBpZiAoc2F2ZV9zZWcgIT0gTlVMTCkKKyAgICBzdWJzZWdfc2V0 IChzYXZlX3NlZywgc2F2ZV9zdWJzZWcpOworICByZXR1cm4gcjsKK30KKwor c3RhdGljIHZvaWQKK2R3Y2ZpX2hhc2hfaW5zZXJ0IChjb25zdCBjaGFyICpu YW1lLCBzdHJ1Y3QgZHdjZmlfc2VnX2xpc3QgKml0ZW0pCit7CisgIGNvbnN0 IGNoYXIgKmVycm9yX3N0cmluZzsKKworICBpZiAoKGVycm9yX3N0cmluZyA9 IGhhc2hfamFtIChkd2NmaV9oYXNoLCBuYW1lLCAoY2hhciAqKSBpdGVtKSkp CisgICAgYXNfZmF0YWwgKF8oIkluc2VydGluZyBcIiVzXCIgaW50byBzdHJ1 Y3R1cmUgdGFibGUgZmFpbGVkOiAlcyIpLAorCSAgICAgIG5hbWUsIGVycm9y X3N0cmluZyk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZHdjZmlfc2VnX2xpc3Qg KgorZHdjZmlfaGFzaF9maW5kIChjaGFyICpuYW1lKQoreworICByZXR1cm4g KHN0cnVjdCBkd2NmaV9zZWdfbGlzdCAqKSBoYXNoX2ZpbmQgKGR3Y2ZpX2hh c2gsIG5hbWUpOworfQorCitzdGF0aWMgc3RydWN0IGR3Y2ZpX3NlZ19saXN0 ICoKK2R3Y2ZpX2hhc2hfZmluZF9vcl9tYWtlIChzZWdUIGNzZWcsIGNvbnN0 IGNoYXIgKmJhc2VfbmFtZSwgaW50IGZsYWdzKQoreworICBzdHJ1Y3QgZHdj Zmlfc2VnX2xpc3QgKml0ZW07CisgIGNoYXIgKm5hbWU7CisKKyAgLyogSW5p dGlhbGl6ZSBkd2NmaV9oYXNoIG9uY2UuICAqLworICBpZiAoIWR3Y2ZpX2hh c2gpCisgICAgZHdjZmlfaGFzaCA9IGhhc2hfbmV3ICgpOworCisgIG5hbWUg PSBnZXRfZGVidWdzZWdfbmFtZSAoY3NlZywgYmFzZV9uYW1lKTsKKworICBp dGVtID0gZHdjZmlfaGFzaF9maW5kIChuYW1lKTsKKyAgaWYgKCFpdGVtKQor ICAgIHsKKyAgICAgIGl0ZW0gPSBhbGxvY19kZWJ1Z3NlZ19pdGVtIChtYWtl X2RlYnVnX3NlZyAoY3NlZywgbmFtZSwgZmxhZ3MpLCAwLCBuYW1lKTsKKwor ICAgICAgZHdjZmlfaGFzaF9pbnNlcnQgKGl0ZW0tPnNlZ19uYW1lLCBpdGVt KTsKKyAgICB9CisgIGVsc2UKKyAgICBmcmVlIChuYW1lKTsKKworICByZXR1 cm4gaXRlbTsKK30KKwogLyogPz8/IFNoYXJlIHRoaXMgd2l0aCBkd2FyZjJj ZmcuYy4gICovCiAjaWZuZGVmIFRDX0RXQVJGMl9FTUlUX09GRlNFVAogI2Rl ZmluZSBUQ19EV0FSRjJfRU1JVF9PRkZTRVQgIGdlbmVyaWNfZHdhcmYyX2Vt aXRfb2Zmc2V0CkBAIC0xMDIsNiArMjQzLDcgQEAgc3RydWN0IGNmaV9lc2Nh cGVfZGF0YSB7CiBzdHJ1Y3QgY2ZpX2luc25fZGF0YQogewogICBzdHJ1Y3Qg Y2ZpX2luc25fZGF0YSAqbmV4dDsKKyAgc2VnVCBjdXJfc2VnOwogICBpbnQg aW5zbjsKICAgdW5pb24gewogICAgIHN0cnVjdCB7CkBAIC0xMzQsNiArMjc2 LDcgQEAgc3RydWN0IGNmaV9pbnNuX2RhdGEKIHN0cnVjdCBmZGVfZW50cnkK IHsKICAgc3RydWN0IGZkZV9lbnRyeSAqbmV4dDsKKyAgc2VnVCBjc2VnOwog ICBzeW1ib2xTICpzdGFydF9hZGRyZXNzOwogICBzeW1ib2xTICplbmRfYWRk cmVzczsKICAgc3RydWN0IGNmaV9pbnNuX2RhdGEgKmRhdGE7CkBAIC0xNDQs MTEgKzI4NywxMyBAQCBzdHJ1Y3QgZmRlX2VudHJ5CiAgIGV4cHJlc3Npb25T IGxzZGE7CiAgIHVuc2lnbmVkIGludCByZXR1cm5fY29sdW1uOwogICB1bnNp Z25lZCBpbnQgc2lnbmFsX2ZyYW1lOworICBpbnQgaGFuZGxlZDsKIH07CiAK IHN0cnVjdCBjaWVfZW50cnkKIHsKICAgc3RydWN0IGNpZV9lbnRyeSAqbmV4 dDsKKyAgc2VnVCBjdXJfc2VnOwogICBzeW1ib2xTICpzdGFydF9hZGRyZXNz OwogICB1bnNpZ25lZCBpbnQgcmV0dXJuX2NvbHVtbjsKICAgdW5zaWduZWQg aW50IHNpZ25hbF9mcmFtZTsKQEAgLTE5NSw3ICszNDAsOCBAQCBhbGxvY19m ZGVfZW50cnkgKHZvaWQpCiAgIGZyY2hhaW5fbm93LT5mcmNoX2NmaV9kYXRh LT5jdXJfZmRlX2RhdGEgPSBmZGU7CiAgICpsYXN0X2ZkZV9kYXRhID0gZmRl OwogICBsYXN0X2ZkZV9kYXRhID0gJmZkZS0+bmV4dDsKLQorICBmZGUtPmNz ZWcgPSBpc19ub3dfbGlua29uY2Vfc2VnbWVudCAoKTsKKyAgZmRlLT5oYW5k bGVkID0gMDsKICAgZmRlLT5sYXN0ID0gJmZkZS0+ZGF0YTsKICAgZmRlLT5y ZXR1cm5fY29sdW1uID0gRFdBUkYyX0RFRkFVTFRfUkVUVVJOX0NPTFVNTjsK ICAgZmRlLT5wZXJfZW5jb2RpbmcgPSBEV19FSF9QRV9vbWl0OwpAQCAtMjE5 LDYgKzM2NSw3IEBAIGFsbG9jX2NmaV9pbnNuX2RhdGEgKHZvaWQpCiAKICAg KmN1cl9mZGVfZGF0YS0+bGFzdCA9IGluc247CiAgIGN1cl9mZGVfZGF0YS0+ bGFzdCA9ICZpbnNuLT5uZXh0OworICBpbnNuLT5jdXJfc2VnID0gaXNfbm93 X2xpbmtvbmNlX3NlZ21lbnQgKCk7CiAKICAgcmV0dXJuIGluc247CiB9CkBA IC0yNTQsNyArNDAxLDcgQEAgY2ZpX3NldF9yZXR1cm5fY29sdW1uICh1bnNp Z25lZCByZWdubykKIC8qIFVuaXZlcnNhbCBmdW5jdGlvbnMgdG8gc3RvcmUg bmV3IGluc3RydWN0aW9ucy4gICovCiAKIHN0YXRpYyB2b2lkCi1jZmlfYWRk X0NGQV9pbnNuKGludCBpbnNuKQorY2ZpX2FkZF9DRkFfaW5zbiAoaW50IGlu c24pCiB7CiAgIHN0cnVjdCBjZmlfaW5zbl9kYXRhICppbnNuX3B0ciA9IGFs bG9jX2NmaV9pbnNuX2RhdGEgKCk7CiAKQEAgLTkxNiw5ICsxMDYzLDkgQEAg ZG90X2NmaV9zZWN0aW9ucyAoaW50IGlnbm9yZWQgQVRUUklCVVRFXwogCW5h bWUgPSBpbnB1dF9saW5lX3BvaW50ZXI7CiAJYyA9IGdldF9zeW1ib2xfZW5k ICgpOwogCi0JaWYgKHN0cmNtcCAobmFtZSwgIi5laF9mcmFtZSIpID09IDAp CisJaWYgKHN0cm5jbXAgKG5hbWUsICIuZWhfZnJhbWUiLCA5KSA9PSAwKQog CSAgc2VjdGlvbnMgfD0gQ0ZJX0VNSVRfZWhfZnJhbWU7Ci0JZWxzZSBpZiAo c3RyY21wIChuYW1lLCAiLmRlYnVnX2ZyYW1lIikgPT0gMCkKKwllbHNlIGlm IChzdHJuY21wIChuYW1lLCAiLmRlYnVnX2ZyYW1lIiwgMTIpID09IDApCiAJ ICBzZWN0aW9ucyB8PSBDRklfRU1JVF9kZWJ1Z19mcmFtZTsKIAllbHNlCiAJ ICB7CkBAIC0xMzg0LDggKzE1MzEsMTQgQEAgb3V0cHV0X2NpZSAoc3RydWN0 IGNpZV9lbnRyeSAqY2llLCBiZmRfYgogICAgIG91dF9vbmUgKGVuYyk7CiAK ICAgaWYgKGNpZS0+Zmlyc3QpCi0gICAgZm9yIChpID0gY2llLT5maXJzdDsg aSAhPSBjaWUtPmxhc3Q7IGkgPSBpLT5uZXh0KQotICAgICAgb3V0cHV0X2Nm aV9pbnNuIChpKTsKKyAgICB7CisgICAgICBmb3IgKGkgPSBjaWUtPmZpcnN0 OyBpICE9IGNpZS0+bGFzdDsgaSA9IGktPm5leHQpCisgICAgICAgIHsKKwkg IGlmIChpLT5jdXJfc2VnICE9IGNpZS0+Y3VyX3NlZykKKwkgICAgY29udGlu dWU7CisJICBvdXRwdXRfY2ZpX2luc24gKGkpOworCX0KKyAgICB9CiAKICAg ZnJhZ19hbGlnbiAoYWxpZ24sIERXX0NGQV9ub3AsIDApOwogICBzeW1ib2xf c2V0X3ZhbHVlX25vdyAoZW5kX2FkZHJlc3MpOwpAQCAtMTQ5Miw3ICsxNjQ1 LDEwIEBAIG91dHB1dF9mZGUgKHN0cnVjdCBmZGVfZW50cnkgKmZkZSwgc3Ry dWMKICAgICB9CiAKICAgZm9yICg7IGZpcnN0OyBmaXJzdCA9IGZpcnN0LT5u ZXh0KQotICAgIG91dHB1dF9jZmlfaW5zbiAoZmlyc3QpOworICAgIHsKKyAg ICAgIGlmIChmaXJzdC0+Y3VyX3NlZyA9PSBmZGUtPmNzZWcpCisgICAgICAg IG91dHB1dF9jZmlfaW5zbiAoZmlyc3QpOworICAgIH0KIAogICBmcmFnX2Fs aWduIChhbGlnbiwgRFdfQ0ZBX25vcCwgMCk7CiAgIHN5bWJvbF9zZXRfdmFs dWVfbm93IChlbmRfYWRkcmVzcyk7CkBAIC0xNTA3LDcgKzE2NjMsOCBAQCBz ZWxlY3RfY2llX2Zvcl9mZGUgKHN0cnVjdCBmZGVfZW50cnkgKmZkCiAKICAg Zm9yIChjaWUgPSBjaWVfcm9vdDsgY2llOyBjaWUgPSBjaWUtPm5leHQpCiAg ICAgewotICAgICAgaWYgKGNpZS0+cmV0dXJuX2NvbHVtbiAhPSBmZGUtPnJl dHVybl9jb2x1bW4KKyAgICAgIGlmIChjaWUtPmN1cl9zZWcgIT0gZmRlLT5j c2VnCisgICAgICAgICAgfHwgY2llLT5yZXR1cm5fY29sdW1uICE9IGZkZS0+ cmV0dXJuX2NvbHVtbgogCSAgfHwgY2llLT5zaWduYWxfZnJhbWUgIT0gZmRl LT5zaWduYWxfZnJhbWUKIAkgIHx8IGNpZS0+cGVyX2VuY29kaW5nICE9IGZk ZS0+cGVyX2VuY29kaW5nCiAJICB8fCBjaWUtPmxzZGFfZW5jb2RpbmcgIT0g ZmRlLT5sc2RhX2VuY29kaW5nKQpAQCAtMTYwNSw2ICsxNzYyLDcgQEAgc2Vs ZWN0X2NpZV9mb3JfZmRlIChzdHJ1Y3QgZmRlX2VudHJ5ICpmZAogICBjaWUg PSAoc3RydWN0IGNpZV9lbnRyeSAqKSB4bWFsbG9jIChzaXplb2YgKHN0cnVj dCBjaWVfZW50cnkpKTsKICAgY2llLT5uZXh0ID0gY2llX3Jvb3Q7CiAgIGNp ZV9yb290ID0gY2llOworICBjaWUtPmN1cl9zZWcgPSBmZGUtPmNzZWc7CiAg IGNpZS0+cmV0dXJuX2NvbHVtbiA9IGZkZS0+cmV0dXJuX2NvbHVtbjsKICAg Y2llLT5zaWduYWxfZnJhbWUgPSBmZGUtPnNpZ25hbF9mcmFtZTsKICAgY2ll LT5wZXJfZW5jb2RpbmcgPSBmZGUtPnBlcl9lbmNvZGluZzsKQEAgLTE2Mjks MTMwICsxNzg3LDE4MyBAQCBzZWxlY3RfY2llX2Zvcl9mZGUgKHN0cnVjdCBm ZGVfZW50cnkgKmZkCiAKICNpZmRlZiBtZF9yZWdfZWhfZnJhbWVfdG9fZGVi dWdfZnJhbWUKIHN0YXRpYyB2b2lkCi1jZmlfY2hhbmdlX3JlZ19udW1iZXJz IChzdHJ1Y3QgY2ZpX2luc25fZGF0YSAqaW5zbikKK2NmaV9jaGFuZ2VfcmVn X251bWJlcnMgKHN0cnVjdCBjZmlfaW5zbl9kYXRhICppbnNuLCBzZWdUIGNj c2VnKQogewogICBmb3IgKDsgaW5zbjsgaW5zbiA9IGluc24tPm5leHQpCi0g ICAgc3dpdGNoIChpbnNuLT5pbnNuKQotICAgICAgewotICAgICAgY2FzZSBE V19DRkFfYWR2YW5jZV9sb2M6Ci0gICAgICBjYXNlIERXX0NGQV9kZWZfY2Zh X29mZnNldDoKLSAgICAgIGNhc2UgRFdfQ0ZBX3JlbWVtYmVyX3N0YXRlOgot ICAgICAgY2FzZSBEV19DRkFfcmVzdG9yZV9zdGF0ZToKLSAgICAgIGNhc2Ug RFdfQ0ZBX0dOVV93aW5kb3dfc2F2ZToKLSAgICAgIGNhc2UgQ0ZJX2VzY2Fw ZToKLQlicmVhazsKKyAgICB7CisgICAgICBpZiAoaW5zbi0+Y3VyX3NlZyAh PSBjY3NlZykKKyAgICAgICAgY29udGludWU7CisgICAgICBzd2l0Y2ggKGlu c24tPmluc24pCisJeworCWNhc2UgRFdfQ0ZBX2FkdmFuY2VfbG9jOgorCWNh c2UgRFdfQ0ZBX2RlZl9jZmFfb2Zmc2V0OgorCWNhc2UgRFdfQ0ZBX3JlbWVt YmVyX3N0YXRlOgorCWNhc2UgRFdfQ0ZBX3Jlc3RvcmVfc3RhdGU6CisJY2Fz ZSBEV19DRkFfR05VX3dpbmRvd19zYXZlOgorCWNhc2UgQ0ZJX2VzY2FwZToK KwkgIGJyZWFrOwogCi0gICAgICBjYXNlIERXX0NGQV9kZWZfY2ZhOgotICAg ICAgY2FzZSBEV19DRkFfb2Zmc2V0OgotCWluc24tPnUucmkucmVnID0gbWRf cmVnX2VoX2ZyYW1lX3RvX2RlYnVnX2ZyYW1lIChpbnNuLT51LnJpLnJlZyk7 Ci0JYnJlYWs7CisJY2FzZSBEV19DRkFfZGVmX2NmYToKKwljYXNlIERXX0NG QV9vZmZzZXQ6CisJICBpbnNuLT51LnJpLnJlZyA9IG1kX3JlZ19laF9mcmFt ZV90b19kZWJ1Z19mcmFtZSAoaW5zbi0+dS5yaS5yZWcpOworCSAgYnJlYWs7 CiAKLSAgICAgIGNhc2UgRFdfQ0ZBX2RlZl9jZmFfcmVnaXN0ZXI6Ci0gICAg ICBjYXNlIERXX0NGQV91bmRlZmluZWQ6Ci0gICAgICBjYXNlIERXX0NGQV9z YW1lX3ZhbHVlOgotICAgICAgY2FzZSBEV19DRkFfcmVzdG9yZToKLQlpbnNu LT51LnIgPSBtZF9yZWdfZWhfZnJhbWVfdG9fZGVidWdfZnJhbWUgKGluc24t PnUucik7Ci0JYnJlYWs7CisJY2FzZSBEV19DRkFfZGVmX2NmYV9yZWdpc3Rl cjoKKwljYXNlIERXX0NGQV91bmRlZmluZWQ6CisJY2FzZSBEV19DRkFfc2Ft ZV92YWx1ZToKKwljYXNlIERXX0NGQV9yZXN0b3JlOgorCSAgaW5zbi0+dS5y ID0gbWRfcmVnX2VoX2ZyYW1lX3RvX2RlYnVnX2ZyYW1lIChpbnNuLT51LnIp OworCSAgYnJlYWs7CiAKLSAgICAgIGNhc2UgRFdfQ0ZBX3JlZ2lzdGVyOgot CWluc24tPnUucnIucmVnMSA9IG1kX3JlZ19laF9mcmFtZV90b19kZWJ1Z19m cmFtZSAoaW5zbi0+dS5yci5yZWcxKTsKLQlpbnNuLT51LnJyLnJlZzIgPSBt ZF9yZWdfZWhfZnJhbWVfdG9fZGVidWdfZnJhbWUgKGluc24tPnUucnIucmVn Mik7Ci0JYnJlYWs7CisJY2FzZSBEV19DRkFfcmVnaXN0ZXI6CisJICBpbnNu LT51LnJyLnJlZzEgPSBtZF9yZWdfZWhfZnJhbWVfdG9fZGVidWdfZnJhbWUg KGluc24tPnUucnIucmVnMSk7CisJICBpbnNuLT51LnJyLnJlZzIgPSBtZF9y ZWdfZWhfZnJhbWVfdG9fZGVidWdfZnJhbWUgKGluc24tPnUucnIucmVnMik7 CisJICBicmVhazsKIAotICAgICAgY2FzZSBDRklfdmFsX2VuY29kZWRfYWRk cjoKLQlpbnNuLT51LmVhLnJlZyA9IG1kX3JlZ19laF9mcmFtZV90b19kZWJ1 Z19mcmFtZSAoaW5zbi0+dS5lYS5yZWcpOwotCWJyZWFrOworCWNhc2UgQ0ZJ X3ZhbF9lbmNvZGVkX2FkZHI6CisJICBpbnNuLT51LmVhLnJlZyA9IG1kX3Jl Z19laF9mcmFtZV90b19kZWJ1Z19mcmFtZSAoaW5zbi0+dS5lYS5yZWcpOwor CSAgYnJlYWs7CiAKLSAgICAgIGRlZmF1bHQ6Ci0JYWJvcnQgKCk7Ci0gICAg ICB9CisJZGVmYXVsdDoKKwkgIGFib3J0ICgpOworCX0KKyAgICB9CiB9CiAj ZWxzZQotI2RlZmluZSBjZmlfY2hhbmdlX3JlZ19udW1iZXJzKGluc24pIGRv IHsgfSB3aGlsZSAoMCkKKyNkZWZpbmUgY2ZpX2NoYW5nZV9yZWdfbnVtYmVy cyhpbnNuLCBjc2VnKSBkbyB7IH0gd2hpbGUgKDApCiAjZW5kaWYKIAorc3Rh dGljIHNlZ1QKK2dldF9jZmlfc2VnIChzZWdUIGNzZWcsIGNvbnN0IGNoYXIg KmJhc2UsIGZsYWd3b3JkIGZsYWdzLCBpbnQgYWxpZ24pCit7CisgIHN0cnVj dCBkd2NmaV9zZWdfbGlzdCAqbDsKKworICBsID0gZHdjZmlfaGFzaF9maW5k X29yX21ha2UgKGNzZWcsIGJhc2UsIGZsYWdzKTsKKworICBzdWJzZWdfc2V0 IChsLT5zZWcsIGwtPnN1YnNlZyk7CisgIHJlY29yZF9hbGlnbm1lbnQgKGwt PnNlZywgYWxpZ24pOworICByZXR1cm4gbC0+c2VnOworfQorCiB2b2lkCiBj ZmlfZmluaXNoICh2b2lkKQogewotICBzZWdUIGNmaV9zZWc7CisgIHN0cnVj dCBjaWVfZW50cnkgKmNpZSwgKmNpZV9uZXh0OworICBzZWdUIGNmaV9zZWcs IGNjc2VnOwogICBzdHJ1Y3QgZmRlX2VudHJ5ICpmZGU7Ci0gIGludCBzYXZl X2ZsYWdfdHJhZGl0aW9uYWxfZm9ybWF0OworICBzdHJ1Y3QgY2ZpX2luc25f ZGF0YSAqZmlyc3Q7CisgIGludCBzYXZlX2ZsYWdfdHJhZGl0aW9uYWxfZm9y bWF0LCBzZWVrX25leHRfc2VnOwogCiAgIGlmIChhbGxfZmRlX2RhdGEgPT0g MCkKICAgICByZXR1cm47CiAKICAgaWYgKChjZmlfc2VjdGlvbnMgJiBDRklf RU1JVF9laF9mcmFtZSkgIT0gMCkKICAgICB7Ci0gICAgICAvKiBPcGVuIC5l aF9mcmFtZSBzZWN0aW9uLiAgKi8KLSAgICAgIGNmaV9zZWcgPSBzdWJzZWdf bmV3ICgiLmVoX2ZyYW1lIiwgMCk7Ci0gICAgICBiZmRfc2V0X3NlY3Rpb25f ZmxhZ3MgKHN0ZG91dHB1dCwgY2ZpX3NlZywKLQkJCSAgICAgU0VDX0FMTE9D IHwgU0VDX0xPQUQgfCBTRUNfREFUQQotCQkJICAgICB8IERXQVJGMl9FSF9G UkFNRV9SRUFEX09OTFkpOwotICAgICAgc3Vic2VnX3NldCAoY2ZpX3NlZywg MCk7Ci0gICAgICByZWNvcmRfYWxpZ25tZW50IChjZmlfc2VnLCBFSF9GUkFN RV9BTElHTk1FTlQpOwotCi0jaWZkZWYgbWRfZml4X3VwX2VoX2ZyYW1lCi0g ICAgICBtZF9maXhfdXBfZWhfZnJhbWUgKGNmaV9zZWcpOwotI2VuZGlmCi0K ICAgICAgIC8qIE1ha2Ugc3VyZSBjaGVja19laF9mcmFtZSBkb2Vzbid0IGRv IGFueXRoaW5nIHdpdGggb3VyIG91dHB1dC4gICovCiAgICAgICBzYXZlX2Zs YWdfdHJhZGl0aW9uYWxfZm9ybWF0ID0gZmxhZ190cmFkaXRpb25hbF9mb3Jt YXQ7CiAgICAgICBmbGFnX3RyYWRpdGlvbmFsX2Zvcm1hdCA9IDE7CiAKLSAg ICAgIGZvciAoZmRlID0gYWxsX2ZkZV9kYXRhOyBmZGUgOyBmZGUgPSBmZGUt Pm5leHQpCi0JewotCSAgc3RydWN0IGNmaV9pbnNuX2RhdGEgKmZpcnN0Owot CSAgc3RydWN0IGNpZV9lbnRyeSAqY2llOwotCi0JICBpZiAoZmRlLT5lbmRf YWRkcmVzcyA9PSBOVUxMKQorICAgICAgZG8KKyAgICAgICAgeworCSAgY2Nz ZWcgPSBOVUxMOworCSAgY2ZpX3NlZyA9IE5VTEw7CisJICBzZWVrX25leHRf c2VnID0gMDsKKwkgIGZvciAoY2llID0gY2llX3Jvb3Q7IGNpZTsgY2llID0g Y2llX25leHQpCiAJICAgIHsKLQkgICAgICBhc19iYWQgKF8oIm9wZW4gQ0ZJ IGF0IHRoZSBlbmQgb2YgZmlsZTsgbWlzc2luZyAuY2ZpX2VuZHByb2MgZGly ZWN0aXZlIikpOwotCSAgICAgIGZkZS0+ZW5kX2FkZHJlc3MgPSBmZGUtPnN0 YXJ0X2FkZHJlc3M7CisJICAgICAgY2llX25leHQgPSBjaWUtPm5leHQ7CisJ ICAgICAgZnJlZSAoKHZvaWQgKikgY2llKTsKIAkgICAgfQorCSAgY2llX3Jv b3QgPSBOVUxMOwogCi0JICBjaWUgPSBzZWxlY3RfY2llX2Zvcl9mZGUgKGZk ZSwgVFJVRSwgJmZpcnN0LCAyKTsKLQkgIG91dHB1dF9mZGUgKGZkZSwgY2ll LCBUUlVFLCBmaXJzdCwKLQkJICAgICAgZmRlLT5uZXh0ID09IE5VTEwgPyBF SF9GUkFNRV9BTElHTk1FTlQgOiAyKTsKKwkgIGZvciAoZmRlID0gYWxsX2Zk ZV9kYXRhOyBmZGUgOyBmZGUgPSBmZGUtPm5leHQpCisJICAgIHsKKwkgICAg ICBpZiAoZmRlLT5oYW5kbGVkICE9IDApCisJICAgICAgICBjb250aW51ZTsK KwkgICAgICBpZiAoc2Vla19uZXh0X3NlZyAmJiBmZGUtPmNzZWcgIT0gY2Nz ZWcpCisJICAgICAgICBjb250aW51ZTsKKwkgICAgICBpZiAoIXNlZWtfbmV4 dF9zZWcpCisJICAgICAgICB7CisJCSAgY2NzZWcgPSBmZGUtPmNzZWc7CisJ CSAgLyogT3BlbiAuZWhfZnJhbWUgc2VjdGlvbi4gICovCisJCSAgY2ZpX3Nl ZyA9IGdldF9jZmlfc2VnIChjY3NlZywgIi5laF9mcmFtZSIsCisJCQkJCSBT RUNfQUxMT0MgfCBTRUNfTE9BRCB8IFNFQ19EQVRBCisJCQkJCSB8IERXQVJG Ml9FSF9GUkFNRV9SRUFEX09OTFksCisJCQkJCSBFSF9GUkFNRV9BTElHTk1F TlQpOworI2lmZGVmIG1kX2ZpeF91cF9laF9mcmFtZQorCQkgIG1kX2ZpeF91 cF9laF9mcmFtZSAoY2ZpX3NlZyk7CisjZW5kaWYKKwkJfQorCSAgICAgIGZk ZS0+aGFuZGxlZCA9IDE7CisJICAgICAgc2Vla19uZXh0X3NlZyA9IDE7CisK KwkgICAgICBpZiAoZmRlLT5lbmRfYWRkcmVzcyA9PSBOVUxMKQorCQl7CisJ CSAgYXNfYmFkIChfKCJvcGVuIENGSSBhdCB0aGUgZW5kIG9mIGZpbGU7IG1p c3NpbmcgLmNmaV9lbmRwcm9jIGRpcmVjdGl2ZSIpKTsKKwkJICBmZGUtPmVu ZF9hZGRyZXNzID0gZmRlLT5zdGFydF9hZGRyZXNzOworCQl9CisKKwkgICAg ICBjaWUgPSBzZWxlY3RfY2llX2Zvcl9mZGUgKGZkZSwgVFJVRSwgJmZpcnN0 LCAyKTsKKwkgICAgICBvdXRwdXRfZmRlIChmZGUsIGNpZSwgVFJVRSwgZmly c3QsCisJCQkgIGZkZS0+bmV4dCA9PSBOVUxMID8gRUhfRlJBTUVfQUxJR05N RU5UIDogMik7CisJICAgIH0KIAl9CisgICAgICB3aGlsZSAoc2Vla19uZXh0 X3NlZyAhPSAwKTsKKworICAgICAgZm9yIChmZGUgPSBhbGxfZmRlX2RhdGE7 IGZkZSA7IGZkZSA9IGZkZS0+bmV4dCkKKyAgICAgICAgZmRlLT5oYW5kbGVk ID0gMDsKIAogICAgICAgZmxhZ190cmFkaXRpb25hbF9mb3JtYXQgPSBzYXZl X2ZsYWdfdHJhZGl0aW9uYWxfZm9ybWF0OwogICAgIH0KIAogICBpZiAoKGNm aV9zZWN0aW9ucyAmIENGSV9FTUlUX2RlYnVnX2ZyYW1lKSAhPSAwKQogICAg IHsKLSAgICAgIHN0cnVjdCBjaWVfZW50cnkgKmNpZSwgKmNpZV9uZXh0Owog ICAgICAgaW50IGFsaWdubWVudCA9IGZmcyAoRFdBUkYyX0FERFJfU0laRSAo c3Rkb3V0cHV0KSkgLSAxOwogCi0gICAgICBmb3IgKGNpZSA9IGNpZV9yb290 OyBjaWU7IGNpZSA9IGNpZV9uZXh0KQotCXsKLQkgIGNpZV9uZXh0ID0gY2ll LT5uZXh0OwotCSAgZnJlZSAoKHZvaWQgKikgY2llKTsKLQl9Ci0gICAgICBj aWVfcm9vdCA9IE5VTEw7Ci0KLSAgICAgIC8qIE9wZW4gLmRlYnVnX2ZyYW1l IHNlY3Rpb24uICAqLwotICAgICAgY2ZpX3NlZyA9IHN1YnNlZ19uZXcgKCIu ZGVidWdfZnJhbWUiLCAwKTsKLSAgICAgIGJmZF9zZXRfc2VjdGlvbl9mbGFn cyAoc3Rkb3V0cHV0LCBjZmlfc2VnLAotCQkJICAgICBTRUNfUkVBRE9OTFkg fCBTRUNfREVCVUdHSU5HKTsKLSAgICAgIHN1YnNlZ19zZXQgKGNmaV9zZWcs IDApOwotICAgICAgcmVjb3JkX2FsaWdubWVudCAoY2ZpX3NlZywgYWxpZ25t ZW50KTsKLQotICAgICAgZm9yIChmZGUgPSBhbGxfZmRlX2RhdGE7IGZkZSA7 IGZkZSA9IGZkZS0+bmV4dCkKLQl7Ci0JICBzdHJ1Y3QgY2ZpX2luc25fZGF0 YSAqZmlyc3Q7Ci0KLQkgIGlmIChmZGUtPmVuZF9hZGRyZXNzID09IE5VTEwp CisgICAgICBkbworICAgICAgICB7CisJICBjY3NlZyA9IE5VTEw7CisJICBj Zmlfc2VnID0gTlVMTDsKKwkgIHNlZWtfbmV4dF9zZWcgPSAwOworCSAgZm9y IChjaWUgPSBjaWVfcm9vdDsgY2llOyBjaWUgPSBjaWVfbmV4dCkKIAkgICAg ewotCSAgICAgIGFzX2JhZCAoXygib3BlbiBDRkkgYXQgdGhlIGVuZCBvZiBm aWxlOyBtaXNzaW5nIC5jZmlfZW5kcHJvYyBkaXJlY3RpdmUiKSk7Ci0JICAg ICAgZmRlLT5lbmRfYWRkcmVzcyA9IGZkZS0+c3RhcnRfYWRkcmVzczsKKwkg ICAgICBjaWVfbmV4dCA9IGNpZS0+bmV4dDsKKwkgICAgICBmcmVlICgodm9p ZCAqKSBjaWUpOwogCSAgICB9CisJICBjaWVfcm9vdCA9IE5VTEw7CiAKLQkg IGZkZS0+cGVyX2VuY29kaW5nID0gRFdfRUhfUEVfb21pdDsKLQkgIGZkZS0+ bHNkYV9lbmNvZGluZyA9IERXX0VIX1BFX29taXQ7Ci0JICBjZmlfY2hhbmdl X3JlZ19udW1iZXJzIChmZGUtPmRhdGEpOwotCSAgY2llID0gc2VsZWN0X2Np ZV9mb3JfZmRlIChmZGUsIEZBTFNFLCAmZmlyc3QsIGFsaWdubWVudCk7Ci0J ICBvdXRwdXRfZmRlIChmZGUsIGNpZSwgRkFMU0UsIGZpcnN0LCBhbGlnbm1l bnQpOworCSAgZm9yIChmZGUgPSBhbGxfZmRlX2RhdGE7IGZkZSA7IGZkZSA9 IGZkZS0+bmV4dCkKKwkgICAgeworCSAgICAgIGlmIChmZGUtPmhhbmRsZWQg IT0gMCkKKwkgICAgICAgIGNvbnRpbnVlOworCSAgICAgIGlmIChzZWVrX25l eHRfc2VnICYmIGZkZS0+Y3NlZyAhPSBjY3NlZykKKwkgICAgICAgIGNvbnRp bnVlOworCSAgICAgIGlmICghc2Vla19uZXh0X3NlZykKKwkgICAgICAgIHsK KwkJICBjY3NlZyA9IGZkZS0+Y3NlZzsKKwkJICAvKiBPcGVuIC5kZWJ1Z19m cmFtZSBzZWN0aW9uLiAgKi8KKwkJICBjZmlfc2VnID0gZ2V0X2NmaV9zZWcg KGNjc2VnLCAiLmRlYnVnX2ZyYW1lIiwKKwkJCQkJIFNFQ19SRUFET05MWSB8 IFNFQ19ERUJVR0dJTkcsCisJCQkJCSBhbGlnbm1lbnQpOworCQl9CisJICAg ICAgZmRlLT5oYW5kbGVkID0gMTsKKwkgICAgICBzZWVrX25leHRfc2VnID0g MTsKKwkgICAgICBpZiAoZmRlLT5lbmRfYWRkcmVzcyA9PSBOVUxMKQorCQl7 CisJCSAgYXNfYmFkIChfKCJvcGVuIENGSSBhdCB0aGUgZW5kIG9mIGZpbGU7 IG1pc3NpbmcgLmNmaV9lbmRwcm9jIGRpcmVjdGl2ZSIpKTsKKwkJICBmZGUt PmVuZF9hZGRyZXNzID0gZmRlLT5zdGFydF9hZGRyZXNzOworCQl9CisKKwkg ICAgICBmZGUtPnBlcl9lbmNvZGluZyA9IERXX0VIX1BFX29taXQ7CisJICAg ICAgZmRlLT5sc2RhX2VuY29kaW5nID0gRFdfRUhfUEVfb21pdDsKKwkgICAg ICBjZmlfY2hhbmdlX3JlZ19udW1iZXJzIChmZGUtPmRhdGEsIGNjc2VnKTsK KwkgICAgICBjaWUgPSBzZWxlY3RfY2llX2Zvcl9mZGUgKGZkZSwgRkFMU0Us ICZmaXJzdCwgYWxpZ25tZW50KTsKKwkgICAgICBvdXRwdXRfZmRlIChmZGUs IGNpZSwgRkFMU0UsIGZpcnN0LCBhbGlnbm1lbnQpOworCSAgICB9CiAJfQor ICAgICAgd2hpbGUgKHNlZWtfbmV4dF9zZWcgIT0gMCk7CisKKyAgICAgIGZv ciAoZmRlID0gYWxsX2ZkZV9kYXRhOyBmZGUgOyBmZGUgPSBmZGUtPm5leHQp CisgICAgICAgIGZkZS0+aGFuZGxlZCA9IDA7CiAgICAgfQogfQogCkluZGV4 OiBzcmMvZ2FzL2Vob3B0LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g c3JjLm9yaWcvZ2FzL2Vob3B0LmMJMjAxMS0wNC0xNiAxMjowNjozNy43NTQ0 NzM3MDAgKzAyMDAKKysrIHNyYy9nYXMvZWhvcHQuYwkyMDExLTA0LTE2IDEy OjA5OjU1LjI1MjkyMzkwMCArMDIwMApAQCAtMTIwLDcgKzEyMCw3IEBAIGdl dF9jaWVfaW5mbyAoc3RydWN0IGNpZV9pbmZvICppbmZvKQogCiAgIC8qIEZp cnN0IG1ha2Ugc3VyZSB0aGF0IHRoZSBDSUUgSWRlbnRpZmllciBUYWcgaXMg MC8tMS4gICovCiAKLSAgaWYgKHN0cmNtcCAoc2VnbWVudF9uYW1lIChub3df c2VnKSwgIi5kZWJ1Z19mcmFtZSIpID09IDApCisgIGlmIChzdHJuY21wIChz ZWdtZW50X25hbWUgKG5vd19zZWcpLCAiLmRlYnVnX2ZyYW1lIiwgMTIpID09 IDApCiAgICAgQ0lFX2lkID0gKGNoYXIpMHhmZjsKICAgZWxzZQogICAgIENJ RV9pZCA9IDA7CkBAIC0yODUsOSArMjg1LDkgQEAgY2hlY2tfZWhfZnJhbWUg KGV4cHJlc3Npb25TICpleHAsIHVuc2lnbgogI2VuZGlmCiAKICAgLyogU2Vs ZWN0IHRoZSBwcm9wZXIgc2VjdGlvbiBkYXRhLiAgKi8KLSAgaWYgKHN0cmNt cCAoc2VnbWVudF9uYW1lIChub3dfc2VnKSwgIi5laF9mcmFtZSIpID09IDAp CisgIGlmIChzdHJuY21wIChzZWdtZW50X25hbWUgKG5vd19zZWcpLCAiLmVo X2ZyYW1lIiwgOSkgPT0gMCkKICAgICBkID0gJmVoX2ZyYW1lX2RhdGE7Ci0g IGVsc2UgaWYgKHN0cmNtcCAoc2VnbWVudF9uYW1lIChub3dfc2VnKSwgIi5k ZWJ1Z19mcmFtZSIpID09IDApCisgIGVsc2UgaWYgKHN0cm5jbXAgKHNlZ21l bnRfbmFtZSAobm93X3NlZyksICIuZGVidWdfZnJhbWUiLCAxMikgPT0gMCkK ICAgICBkID0gJmRlYnVnX2ZyYW1lX2RhdGE7CiAgIGVsc2UKICAgICByZXR1 cm4gMDsKSW5kZXg6IHNyYy9sZC9zY3JpcHR0ZW1wbC9hbHBoYXZtcy5zYwo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzcmMub3JpZy9sZC9zY3JpcHR0 ZW1wbC9hbHBoYXZtcy5zYwkyMDExLTA0LTE2IDEyOjA2OjM3Ljc3MTQ3Mzcw MCArMDIwMAorKysgc3JjL2xkL3NjcmlwdHRlbXBsL2FscGhhdm1zLnNjCTIw MTEtMDQtMTYgMTI6MDk6NTUuMjU0OTI0MDAwICswMjAwCkBAIC0yOSw3ICsy OSw3IEBAIFNFQ1RJT05TCiAgICAgKihcJExJVEVSQUxcJCkKICAgICAqKFwk UkVBRE9OTFlcJCkKICAgICAqKFwkUkVBRE9OTFlfQUREUlwkKQotICAgICoo ZWhfZnJhbWUpCisgICAgKihlaF9mcmFtZSkgKihlaF9mcmFtZVwkKikgKihl aF9mcmFtZS4qKQogICAgICooamNyKQogICAgICooY3RvcnMpCiAgICAgKihk dG9ycykKSW5kZXg6IHNyYy9sZC9zY3JpcHR0ZW1wbC9hcm1icGFiaS5zYwo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzcmMub3JpZy9sZC9zY3JpcHR0 ZW1wbC9hcm1icGFiaS5zYwkyMDExLTA0LTE2IDEyOjA2OjM3Ljc4NDQ3Mzcw MCArMDIwMAorKysgc3JjL2xkL3NjcmlwdHRlbXBsL2FybWJwYWJpLnNjCTIw MTEtMDQtMTYgMTI6MDk6NTUuMjU3OTI0MjAwICswMjAwCkBAIC0yNDEsNyAr MjQxLDcgQEAgY2F0IDw8RU9GCiAKICAgJHtPVEhFUl9SRUFET05MWV9TRUNU SU9OU30KICAgLmVoX2ZyYW1lX2hkciA6IHsgKiguZWhfZnJhbWVfaGRyKSB9 Ci0gIC5laF9mcmFtZSAgICAgJHtSRUxPQ0FUSU5HLTB9IDogT05MWV9JRl9S TyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgfQorICAuZWhfZnJhbWUgICAgICR7 UkVMT0NBVElORy0wfSA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFt ZSkgKiguZWhfZnJhbWVcJCopICooLmVoX2ZyYW1lLiopKSB9CiAgIC5nY2Nf ZXhjZXB0X3RhYmxlICR7UkVMT0NBVElORy0wfSA6IE9OTFlfSUZfUk8geyBL RUVQICgqKC5nY2NfZXhjZXB0X3RhYmxlKSkgKiguZ2NjX2V4Y2VwdF90YWJs ZS4qKSB9CiAKICAgLyogQWRqdXN0IHRoZSBhZGRyZXNzIGZvciB0aGUgZGF0 YSBzZWdtZW50LiAgV2Ugd2FudCB0byBhZGp1c3QgdXAgdG8KQEAgLTI1MSw3 ICsyNTEsNyBAQCBjYXQgPDxFT0YKICAgJHtDUkVBVEVfUElFKyR7UkVMT0NB VElORysuID0gJHtTSExJQl9EQVRBX0FERFJ9O319CiAKICAgLyogRXhjZXB0 aW9uIGhhbmRsaW5nICAqLwotICAuZWhfZnJhbWUgICAgICR7UkVMT0NBVElO Ry0wfSA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpIH0KKyAg LmVoX2ZyYW1lICAgICAke1JFTE9DQVRJTkctMH0gOiBPTkxZX0lGX1JXIHsg S0VFUCAoKiguZWhfZnJhbWUpICooLmVoX2ZyYW1lXCQqKSAqKC5laF9mcmFt ZS4qKSkgfQogICAuZ2NjX2V4Y2VwdF90YWJsZSAke1JFTE9DQVRJTkctMH0g OiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZ2NjX2V4Y2VwdF90YWJsZSkpICoo LmdjY19leGNlcHRfdGFibGUuKikgfQogCiAgIC8qIFRocmVhZCBMb2NhbCBT dG9yYWdlIHNlY3Rpb25zICAqLwpAQCAtMzQ2LDcgKzM0Niw3IEBAIGNhdCA8 PEVPRgogICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbyAu Z251LmxpbmtvbmNlLndpLiopIH0KICAgLmRlYnVnX2FiYnJldiAgIDAgOiB7 ICooLmRlYnVnX2FiYnJldikgfQogICAuZGVidWdfbGluZSAgICAgMCA6IHsg KiguZGVidWdfbGluZSkgfQotICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKigu ZGVidWdfZnJhbWUpIH0KKyAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRl YnVnX2ZyYW1lKikgfQogICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVi dWdfc3RyKSB9CiAgIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19s b2MpIH0KICAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2lu Zm8pIH0KSW5kZXg6IHNyYy9sZC9zY3JpcHR0ZW1wbC9hdnIuc2MKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0gc3JjLm9yaWcvbGQvc2NyaXB0dGVtcGwv YXZyLnNjCTIwMTEtMDQtMTYgMTI6MDY6MzcuNzg2NDczNzAwICswMjAwCisr KyBzcmMvbGQvc2NyaXB0dGVtcGwvYXZyLnNjCTIwMTEtMDQtMTYgMTI6MDk6 NTUuMjU5OTI0MzAwICswMjAwCkBAIC0yNDYsNyArMjQ2LDcgQEAgU0VDVElP TlMKICAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8pICoo LmdudS5saW5rb25jZS53aS4qKSB9CiAgIC5kZWJ1Z19hYmJyZXYgICAwIDog eyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAgLmRlYnVnX2xpbmUgICAgIDAgOiB7 ICooLmRlYnVnX2xpbmUpIH0KLSAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICoo LmRlYnVnX2ZyYW1lKSB9CisgIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5k ZWJ1Z19mcmFtZSopIH0KICAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRl YnVnX3N0cikgfQogICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdf bG9jKSB9CiAgIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNp bmZvKSB9CkluZGV4OiBzcmMvbGQvc2NyaXB0dGVtcGwvY3Jpc2FvdXQuc2MK PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3JjLm9yaWcvbGQvc2NyaXB0 dGVtcGwvY3Jpc2FvdXQuc2MJMjAxMS0wNC0xNiAxMjowNjozNy43OTY0NzM3 MDAgKzAyMDAKKysrIHNyYy9sZC9zY3JpcHR0ZW1wbC9jcmlzYW91dC5zYwky MDExLTA0LTE2IDEyOjA5OjU1LjI2MTkyNDQwMCArMDIwMApAQCAtOTAsNyAr OTAsNyBAQCBTRUNUSU9OUwogICAgICooLmRhdGEpOwogICAgICR7UkVMT0NB VElORysqKC5kYXRhLiopfQogICAgICR7UkVMT0NBVElORysqKC5nbnUubGlu a29uY2UuZCopfQotICAgICR7UkVMT0NBVElORysqKC5laF9mcmFtZSkgLyog RklYTUU6IE1ha2UgLnRleHQgKi99CisgICAgJHtSRUxPQ0FUSU5HKyooLmVo X2ZyYW1lKSAqKC5laF9mcmFtZVwkKikgKiguZWhfZnJhbWUuKikgLyogRklY TUU6IE1ha2UgLnRleHQgKi99CiAgICAgJHtSRUxPQ0FUSU5HKyooLmdjY19l eGNlcHRfdGFibGUpfQogCiAgICAgLyogU2VlIGNvbW1lbnQgYXQgQUxJR04g YmVmb3JlIF9fRXRleHQuICAqLwpJbmRleDogc3JjL2xkL3NjcmlwdHRlbXBs L2VsZjMyY3IxNi5zYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzcmMu b3JpZy9sZC9zY3JpcHR0ZW1wbC9lbGYzMmNyMTYuc2MJMjAxMS0wNC0xNiAx MjowNjozNy44MTQ0NzM3MDAgKzAyMDAKKysrIHNyYy9sZC9zY3JpcHR0ZW1w bC9lbGYzMmNyMTYuc2MJMjAxMS0wNC0xNiAxMjowOTo1NS4yNjQ5MjQ2MDAg KzAyMDAKQEAgLTE1OSw3ICsxNTksNyBAQCBTRUNUSU9OUwogICAuZGVidWdf aW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbyAuZ251LmxpbmtvbmNlLndp LiopIH0KICAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJl dikgfQogICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSkg fQotICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0K KyAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKikgfQog ICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgIC5k ZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAgLmRlYnVn X21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KSW5kZXg6IHNy Yy9sZC9zY3JpcHR0ZW1wbC9lbGYzMmNyeC5zYwo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLSBzcmMub3JpZy9sZC9zY3JpcHR0ZW1wbC9lbGYzMmNyeC5z YwkyMDExLTA0LTE2IDEyOjA2OjM3LjgyMTQ3MzcwMCArMDIwMAorKysgc3Jj L2xkL3NjcmlwdHRlbXBsL2VsZjMyY3J4LnNjCTIwMTEtMDQtMTYgMTI6MDk6 NTUuMjY2OTI0NzAwICswMjAwCkBAIC0xNjEsNyArMTYxLDcgQEAgU0VDVElP TlMKICAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8gLmdu dS5saW5rb25jZS53aS4qKSB9CiAgIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAq KC5kZWJ1Z19hYmJyZXYpIH0KICAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICoo LmRlYnVnX2xpbmUpIH0KLSAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRl YnVnX2ZyYW1lKSB9CisgIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1 Z19mcmFtZSopIH0KICAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVn X3N0cikgfQogICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9j KSB9CiAgIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZv KSB9CkluZGV4OiBzcmMvbGQvc2NyaXB0dGVtcGwvZWxmMzJtc3A0MzAuc2MK PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3JjLm9yaWcvbGQvc2NyaXB0 dGVtcGwvZWxmMzJtc3A0MzAuc2MJMjAxMS0wNC0xNiAxMjowNjozNy44MjQ0 NzM3MDAgKzAyMDAKKysrIHNyYy9sZC9zY3JpcHR0ZW1wbC9lbGYzMm1zcDQz MC5zYwkyMDExLTA0LTE2IDEyOjA5OjU1LjI2ODkyNDgwMCArMDIwMApAQCAt MjM0LDcgKzIzNCw3IEBAIFNFQ1RJT05TCiAgIC5kZWJ1Z19pbmZvICAgICAw IDogeyAqKC5kZWJ1Z19pbmZvKSAqKC5nbnUubGlua29uY2Uud2kuKikgfQog ICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAg IC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lKSB9Ci0gIC5k ZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQorICAuZGVi dWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUqKSB9CiAgIC5kZWJ1 Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAgLmRlYnVnX2xv YyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogICAuZGVidWdfbWFjaW5m byAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQpJbmRleDogc3JjL2xkL3Nj cmlwdHRlbXBsL2VsZjMybXNwNDMwXzMuc2MKPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0gc3JjLm9yaWcvbGQvc2NyaXB0dGVtcGwvZWxmMzJtc3A0MzBf My5zYwkyMDExLTA0LTE2IDEyOjA2OjM3LjgzNjQ3MzcwMCArMDIwMAorKysg c3JjL2xkL3NjcmlwdHRlbXBsL2VsZjMybXNwNDMwXzMuc2MJMjAxMS0wNC0x NiAxMjowOTo1NS4yNzA5MjQ5MDAgKzAyMDAKQEAgLTE3OCw3ICsxNzgsNyBA QCBTRUNUSU9OUwogICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdf aW5mbykgKiguZ251LmxpbmtvbmNlLndpLiopIH0KICAgLmRlYnVnX2FiYnJl diAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogICAuZGVidWdfbGluZSAg ICAgMCA6IHsgKiguZGVidWdfbGluZSkgfQotICAuZGVidWdfZnJhbWUgICAg MCA6IHsgKiguZGVidWdfZnJhbWUpIH0KKyAgLmRlYnVnX2ZyYW1lICAgIDAg OiB7ICooLmRlYnVnX2ZyYW1lKikgfQogICAuZGVidWdfc3RyICAgICAgMCA6 IHsgKiguZGVidWdfc3RyKSB9CiAgIC5kZWJ1Z19sb2MgICAgICAwIDogeyAq KC5kZWJ1Z19sb2MpIH0KICAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRl YnVnX21hY2luZm8pIH0KSW5kZXg6IHNyYy9sZC9zY3JpcHR0ZW1wbC9lbGYz MnNoLXN5bWJpYW4uc2MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3Jj Lm9yaWcvbGQvc2NyaXB0dGVtcGwvZWxmMzJzaC1zeW1iaWFuLnNjCTIwMTEt MDQtMTYgMTI6MDY6MzcuODQ0NDczNzAwICswMjAwCisrKyBzcmMvbGQvc2Ny aXB0dGVtcGwvZWxmMzJzaC1zeW1iaWFuLnNjCTIwMTEtMDQtMTYgMTI6MDk6 NTUuMjcyOTI1MDAwICswMjAwCkBAIC0yNDUsNyArMjQ1LDcgQEAgU0VDVElP TlMKICAgLmRhdGExICAgICAgICAgICAgQUxJR04oNCkgOiB7ICooLmRhdGEx KSB9IDpkYXRhCiAgIC50ZGF0YQkgICAgQUxJR04oNCkgOiB7ICooLnRkYXRh JHtSRUxPQ0FUSU5HKyAudGRhdGEuKiAuZ251LmxpbmtvbmNlLnRkLip9KSB9 IDpkYXRhCiAgIC50YnNzCQkgICAgQUxJR04oNCkgOiB7ICooLnRic3Mke1JF TE9DQVRJTkcrIC50YnNzLiogLmdudS5saW5rb25jZS50Yi4qfSkke1JFTE9D QVRJTkcrICooLnRjb21tb24pfSB9IDpkYXRhCi0gIC5laF9mcmFtZSAgICAg ICAgIEFMSUdOKDQpIDogeyBLRUVQICgqKC5laF9mcmFtZSkpIH0gOmRhdGEK KyAgLmVoX2ZyYW1lICAgICAgICAgQUxJR04oNCkgOiB7IEtFRVAgKCooLmVo X2ZyYW1lKSAqKC5laF9mcmFtZVwkKikgKiguZWhfZnJhbWUuKikpIH0gOmRh dGEKICAgLmdjY19leGNlcHRfdGFibGUgQUxJR04oNCkgOiB7ICooLmdjY19l eGNlcHRfdGFibGUpIH0gOmRhdGEKICAgJHtXUklUQUJMRV9ST0RBVEErJHtS T0RBVEF9fQogICAke09USEVSX1JFQURXUklURV9TRUNUSU9OU30KQEAgLTM2 Nyw3ICszNjcsNyBAQCBjYXQgPDxFT0YKICAgLmRlYnVnX2luZm8gICAgIDAg OiB7ICooLmRlYnVnX2luZm8gLmdudS5saW5rb25jZS53aS4qKSB9CiAgIC5k ZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAgLmRl YnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUpIH0KLSAgLmRlYnVn X2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CisgIC5kZWJ1Z19m cmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSopIH0KICAgLmRlYnVnX3N0 ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogICAuZGVidWdfbG9jICAg ICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgIC5kZWJ1Z19tYWNpbmZvICAw IDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CkluZGV4OiBzcmMvbGQvc2NyaXB0 dGVtcGwvZWxmNjRocHBhLnNjCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t IHNyYy5vcmlnL2xkL3NjcmlwdHRlbXBsL2VsZjY0aHBwYS5zYwkyMDExLTA0 LTE2IDEyOjA2OjM3Ljg1MTQ3MzcwMCArMDIwMAorKysgc3JjL2xkL3Njcmlw dHRlbXBsL2VsZjY0aHBwYS5zYwkyMDExLTA0LTE2IDEyOjA5OjU1LjI3NTky NTIwMCArMDIwMApAQCAtNDIwLDcgKzQyMCw3IEBAIGNhdCA8PEVPRgogICAk e0NSRUFURV9TSExJQi0ke1NCU1MyfX0KICAgJHtPVEhFUl9SRUFET05MWV9T RUNUSU9OU30KICAgLmVoX2ZyYW1lX2hkciA6IHsgKiguZWhfZnJhbWVfaGRy KSB9Ci0gIC5laF9mcmFtZSAgICAgJHtSRUxPQ0FUSU5HLTB9IDogT05MWV9J Rl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgfQorICAuZWhfZnJhbWUgICAg ICR7UkVMT0NBVElORy0wfSA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9m cmFtZSkgKiguZWhfZnJhbWVcJCopICooLmVoX2ZyYW1lLiopKSB9CiAgIC5n Y2NfZXhjZXB0X3RhYmxlICR7UkVMT0NBVElORy0wfSA6IE9OTFlfSUZfUk8g eyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0K IAogICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21l bnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwpAQCAtNDMwLDcgKzQzMCw3 IEBAIGNhdCA8PEVPRgogICAke0NSRUFURV9QSUUrJHtSRUxPQ0FUSU5HKy4g PSAke1NITElCX0RBVEFfQUREUi0ke0RBVEFfU0VHTUVOVF9BTElHTn19O319 CiAKICAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwotICAuZWhfZnJhbWUg ICAgICR7UkVMT0NBVElORy0wfSA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5l aF9mcmFtZSkpIH0KKyAgLmVoX2ZyYW1lICAgICAke1JFTE9DQVRJTkctMH0g OiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpICooLmVoX2ZyYW1l XCQqKSAqKC5laF9mcmFtZS4qKSkgfQogICAuZ2NjX2V4Y2VwdF90YWJsZSAk e1JFTE9DQVRJTkctMH0gOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90 YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAKICAgLyogVGhyZWFkIExv Y2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCkBAIC01NDksNyArNTQ5LDcgQEAg Y2F0IDw8RU9GCiAgIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19p bmZvJHtSRUxPQ0FUSU5HKyAuZ251LmxpbmtvbmNlLndpLip9KSB9CiAgIC5k ZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAgLmRl YnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUpIH0KLSAgLmRlYnVn X2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CisgIC5kZWJ1Z19m cmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSopIH0KICAgLmRlYnVnX3N0 ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogICAuZGVidWdfbG9jICAg ICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgIC5kZWJ1Z19tYWNpbmZvICAw IDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CkluZGV4OiBzcmMvbGQvc2NyaXB0 dGVtcGwvZWxmX2NoYW9zLnNjCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t IHNyYy5vcmlnL2xkL3NjcmlwdHRlbXBsL2VsZl9jaGFvcy5zYwkyMDExLTA0 LTE2IDEyOjA2OjM3Ljk0NTQ3MzcwMCArMDIwMAorKysgc3JjL2xkL3Njcmlw dHRlbXBsL2VsZl9jaGFvcy5zYwkyMDExLTA0LTE2IDEyOjA5OjU1LjI3Nzky NTMwMCArMDIwMApAQCAtMjY0LDcgKzI2NCw3IEBAIGNhdCA8PEVPRgogICAg ICR7UkVMT0NBVElORyske0RBVEFfU1RBUlRfU1lNQk9MU319CiAgICAgKigu ZGF0YSR7UkVMT0NBVElORysgLmRhdGEuKiAuZ251LmxpbmtvbmNlLmQuKn0p CiAgICAgJHtDT05TVFJVQ1RJTkcrU09SVChDT05TVFJVQ1RPUlMpfQotICAg IEtFRVAgKCooLmVoX2ZyYW1lKSkKKyAgICBLRUVQICgqKC5laF9mcmFtZSkg KiguZWhfZnJhbWVcJCopICooLmVoX2ZyYW1lLiopKQogICAgICooLmdjY19l eGNlcHRfdGFibGUpCiAgICAgJHtDVE9SfQogICAgICR7RFRPUn0KQEAgLTMz OSw3ICszMzksNyBAQCBjYXQgPDxFT0YKICAgLmRlYnVnX2luZm8gICAgIDAg OiB7ICooLmRlYnVnX2luZm8gLmdudS5saW5rb25jZS53aS4qKSB9CiAgIC5k ZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAgLmRl YnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUpIH0KLSAgLmRlYnVn X2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CisgIC5kZWJ1Z19m cmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSopIH0KICAgLmRlYnVnX3N0 ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogICAuZGVidWdfbG9jICAg ICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgIC5kZWJ1Z19tYWNpbmZvICAw IDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CkluZGV4OiBzcmMvbGQvc2NyaXB0 dGVtcGwvZWxmZDEwdi5zYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBz cmMub3JpZy9sZC9zY3JpcHR0ZW1wbC9lbGZkMTB2LnNjCTIwMTEtMDQtMTYg MTI6MDY6MzcuODYzNDczNzAwICswMjAwCisrKyBzcmMvbGQvc2NyaXB0dGVt cGwvZWxmZDEwdi5zYwkyMDExLTA0LTE2IDEyOjA5OjU1LjI3OTkyNTQwMCAr MDIwMApAQCAtMTg0LDcgKzE4NCw3IEBAIFNFQ1RJT05TCiAgIC5kZWJ1Z19p bmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvKSAqKC5nbnUubGlua29uY2Uu d2kuKikgfQogICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJi cmV2KSB9CiAgIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5l KSB9Ci0gIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkg fQorICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUqKSB9 CiAgIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAg LmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogICAuZGVi dWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQpJbmRleDog c3JjL2xkL3NjcmlwdHRlbXBsL2VsZmQzMHYuc2MKPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0gc3JjLm9yaWcvbGQvc2NyaXB0dGVtcGwvZWxmZDMwdi5z YwkyMDExLTA0LTE2IDEyOjA2OjM3Ljg3ODQ3MzcwMCArMDIwMAorKysgc3Jj L2xkL3NjcmlwdHRlbXBsL2VsZmQzMHYuc2MJMjAxMS0wNC0xNiAxMjowOTo1 NS4yODE5MjU2MDAgKzAyMDAKQEAgLTEyMyw3ICsxMjMsNyBAQCBTRUNUSU9O UwogICAucm9kYXRhCSR7UkVMT0NBVElORy0wfSA6IHsgKigucm9kYXRhKSB9 CSR7UkVMT0NBVElORysgPiAke0RBVEFfTUVNT1JZfX0KIAogICAvKiBDKysg ZXhjZXB0aW9uIHN1cHBvcnQuICAqLwotICAuZWhfZnJhbWUJJHtSRUxPQ0FU SU5HLTB9IDogeyBLRUVQICgqKC5laF9mcmFtZSkpIH0JJHtSRUxPQ0FUSU5H KyA+ICR7REFUQV9NRU1PUll9fQorICAuZWhfZnJhbWUJJHtSRUxPQ0FUSU5H LTB9IDogeyBLRUVQICgqKC5laF9mcmFtZSkgKiguZWhfZnJhbWVcJCopICoo LmVoX2ZyYW1lLiopKSB9CSR7UkVMT0NBVElORysgPiAke0RBVEFfTUVNT1JZ fX0KICAgLmdjY19leGNlcHRfdGFibGUgJHtSRUxPQ0FUSU5HLTB9IDogeyAq KC5nY2NfZXhjZXB0X3RhYmxlKSB9CSR7UkVMT0NBVElORysgPiAke0RBVEFf TUVNT1JZfX0KIAogICAvKiBKYXZhIGNsYXNzIHJlZ2lzdHJhdGlvbiBzdXBw b3J0LiAgKi8KQEAgLTIxMSw3ICsyMTEsNyBAQCBTRUNUSU9OUwogICAuZGVi dWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbykgKiguZ251Lmxpbmtv bmNlLndpLiopIH0KICAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVn X2FiYnJldikgfQogICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdf bGluZSkgfQotICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJh bWUpIH0KKyAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1l KikgfQogICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9 CiAgIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAg LmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KSW5k ZXg6IHNyYy9sZC9zY3JpcHR0ZW1wbC9lbGZpMzcwLnNjCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tIHNyYy5vcmlnL2xkL3NjcmlwdHRlbXBsL2VsZmkz NzAuc2MJMjAxMS0wNC0xNiAxMjowNjozNy44ODY0NzM3MDAgKzAyMDAKKysr IHNyYy9sZC9zY3JpcHR0ZW1wbC9lbGZpMzcwLnNjCTIwMTEtMDQtMTYgMTI6 MDk6NTUuMjg0OTI1NzAwICswMjAwCkBAIC0yMDMsNyArMjAzLDcgQEAgU0VD VElPTlMKICAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8p ICooLmdudS5saW5rb25jZS53aS4qKSB9CiAgIC5kZWJ1Z19hYmJyZXYgICAw IDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAgLmRlYnVnX2xpbmUgICAgIDAg OiB7ICooLmRlYnVnX2xpbmUpIH0KLSAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7 ICooLmRlYnVnX2ZyYW1lKSB9CisgIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAq KC5kZWJ1Z19mcmFtZSopIH0KICAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICoo LmRlYnVnX3N0cikgfQogICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVi dWdfbG9jKSB9CiAgIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19t YWNpbmZvKSB9CkluZGV4OiBzcmMvbGQvc2NyaXB0dGVtcGwvZWxmbTY4aGMx MS5zYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzcmMub3JpZy9sZC9z Y3JpcHR0ZW1wbC9lbGZtNjhoYzExLnNjCTIwMTEtMDQtMTYgMTI6MDY6Mzcu ODk4NDczNzAwICswMjAwCisrKyBzcmMvbGQvc2NyaXB0dGVtcGwvZWxmbTY4 aGMxMS5zYwkyMDExLTA0LTE2IDEyOjA5OjU1LjI4NjkyNTgwMCArMDIwMApA QCAtMzI1LDcgKzMyNSw3IEBAIFNFQ1RJT05TCiAKICAgLmVoX2ZyYW1lICR7 UkVMT0NBVElORy0wfSA6CiAgIHsKLSAgICBLRUVQICgqKC5laF9mcmFtZSkp CisgICAgS0VFUCAoKiguZWhfZnJhbWUpICooLmVoX2ZyYW1lXCQqKSAqKC5l aF9mcmFtZS4qKSkKICAgfSAke1JFTE9DQVRJTkcrID4gJHtURVhUX01FTU9S WX19CiAKICAgLmdjY19leGNlcHRfdGFibGUgJHtSRUxPQ0FUSU5HLTB9IDoK QEAgLTQ1Miw3ICs0NTIsNyBAQCBTRUNUSU9OUwogICAuZGVidWdfaW5mbyAg ICAgMCA6IHsgKiguZGVidWdfaW5mbykgKiguZ251LmxpbmtvbmNlLndpLiop IH0KICAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikg fQogICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSkgfQot ICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KKyAg LmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKikgfQogICAu ZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgIC5kZWJ1 Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAgLmRlYnVnX21h Y2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KSW5kZXg6IHNyYy9s ZC9zY3JpcHR0ZW1wbC9lbGZtNjhoYzEyLnNjCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tIHNyYy5vcmlnL2xkL3NjcmlwdHRlbXBsL2VsZm02OGhjMTIu c2MJMjAxMS0wNC0xNiAxMjowNjozNy45MDU0NzM3MDAgKzAyMDAKKysrIHNy Yy9sZC9zY3JpcHR0ZW1wbC9lbGZtNjhoYzEyLnNjCTIwMTEtMDQtMTYgMTI6 MDk6NTUuMjg4OTI2MDAwICswMjAwCkBAIC0zMjQsNyArMzI0LDcgQEAgU0VD VElPTlMKIAogICAuZWhfZnJhbWUgJHtSRUxPQ0FUSU5HLTB9IDoKICAgewot ICAgIEtFRVAgKCooLmVoX2ZyYW1lKSkKKyAgICBLRUVQICgqKC5laF9mcmFt ZSkgKiguZWhfZnJhbWVcJCopICooLmVoX2ZyYW1lLiopKQogICB9ICR7UkVM T0NBVElORysgPiAke1RFWFRfTUVNT1JZfX0KIAogICAuZ2NjX2V4Y2VwdF90 YWJsZSAke1JFTE9DQVRJTkctMH0gOgpAQCAtNDU1LDcgKzQ1NSw3IEBAIFNF Q1RJT05TCiAgIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZv KSAqKC5nbnUubGlua29uY2Uud2kuKikgfQogICAuZGVidWdfYWJicmV2ICAg MCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgIC5kZWJ1Z19saW5lICAgICAw IDogeyAqKC5kZWJ1Z19saW5lKSB9Ci0gIC5kZWJ1Z19mcmFtZSAgICAwIDog eyAqKC5kZWJ1Z19mcmFtZSkgfQorICAuZGVidWdfZnJhbWUgICAgMCA6IHsg KiguZGVidWdfZnJhbWUqKSB9CiAgIC5kZWJ1Z19zdHIgICAgICAwIDogeyAq KC5kZWJ1Z19zdHIpIH0KICAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRl YnVnX2xvYykgfQogICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdf bWFjaW5mbykgfQpJbmRleDogc3JjL2xkL3NjcmlwdHRlbXBsL2VsZm1pY3Jv YmxhemUuc2MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3JjLm9yaWcv bGQvc2NyaXB0dGVtcGwvZWxmbWljcm9ibGF6ZS5zYwkyMDExLTA0LTE2IDEy OjA2OjM3LjkxODQ3MzcwMCArMDIwMAorKysgc3JjL2xkL3NjcmlwdHRlbXBs L2VsZm1pY3JvYmxhemUuc2MJMjAxMS0wNC0xNiAxMjowOTo1NS4yOTA5MjYx MDAgKzAyMDAKQEAgLTE0Miw3ICsxNDIsNyBAQCBTRUNUSU9OUwogCiAgIC8q IEFkZGVkIGJ5IFNhdGh5YSB0byBoYW5kbGUgQysrIGV4Y2VwdGlvbnMgKi8K ICAgLmVoX2ZyYW1lIDogeyAgCi0gICAgJHtSRUxPQ0FUSU5HKyooLmVoX2Zy YW1lKX0KKyAgICAke1JFTE9DQVRJTkcrKiguZWhfZnJhbWUpICooLmVoX2Zy YW1lXCQqKSAqKC5laF9mcmFtZS4qKX0KICAgfQogICAKICAgLmpjciA6IHsg IApJbmRleDogc3JjL2xkL3NjcmlwdHRlbXBsL2VsZnh0ZW5zYS5zYwo9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLSBzcmMub3JpZy9sZC9zY3JpcHR0ZW1w bC9lbGZ4dGVuc2Euc2MJMjAxMS0wNC0xNiAxMjowNjozNy45MzU0NzM3MDAg KzAyMDAKKysrIHNyYy9sZC9zY3JpcHR0ZW1wbC9lbGZ4dGVuc2Euc2MJMjAx MS0wNC0xNiAxMjowOTo1NS4yOTM5MjYyMDAgKzAyMDAKQEAgLTQyOSw3ICs0 MjksNyBAQCBjYXQgPDxFT0YKICAgJHtDUkVBVEVfU0hMSUItJHtTQlNTMn19 CiAgICR7T1RIRVJfUkVBRE9OTFlfU0VDVElPTlN9CiAgIC5laF9mcmFtZV9o ZHIgOiB7ICooLmVoX2ZyYW1lX2hkcikgfQotICAuZWhfZnJhbWUgICAgICR7 UkVMT0NBVElORy0wfSA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFt ZSkpIH0KKyAgLmVoX2ZyYW1lICAgICAke1JFTE9DQVRJTkctMH0gOiBPTkxZ X0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpICooLmVoX2ZyYW1lXCQqKSAq KC5laF9mcmFtZS4qKSkgfQogICAuZ2NjX2V4Y2VwdF90YWJsZSAke1JFTE9D QVRJTkctMH0gOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAu Z2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAKICAgLyogQWRqdXN0IHRoZSBhZGRy ZXNzIGZvciB0aGUgZGF0YSBzZWdtZW50LiAgV2Ugd2FudCB0byBhZGp1c3Qg dXAgdG8KQEAgLTQzOSw3ICs0MzksNyBAQCBjYXQgPDxFT0YKICAgJHtDUkVB VEVfUElFKyR7UkVMT0NBVElORysuID0gJHtTSExJQl9EQVRBX0FERFItJHtE QVRBX1NFR01FTlRfQUxJR059fTt9fQogCiAgIC8qIEV4Y2VwdGlvbiBoYW5k bGluZyAgKi8KLSAgLmVoX2ZyYW1lICAgICAke1JFTE9DQVRJTkctMH0gOiBP TkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSB9CisgIC5laF9mcmFt ZSAgICAgJHtSRUxPQ0FUSU5HLTB9IDogT05MWV9JRl9SVyB7IEtFRVAgKCoo LmVoX2ZyYW1lKSAqKC5laF9mcmFtZVwkKikgKiguZWhfZnJhbWUuKikpIH0K ICAgLmdjY19leGNlcHRfdGFibGUgJHtSRUxPQ0FUSU5HLTB9IDogT05MWV9J Rl9SVyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUu KikgfQogCiAgIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAq LwpAQCAtNTU5LDcgKzU1OSw3IEBAIGNhdCA8PEVPRgogICAuZGVidWdfaW5m byAgICAgMCA6IHsgKiguZGVidWdfaW5mbyR7UkVMT0NBVElORysgLmdudS5s aW5rb25jZS53aS4qfSkgfQogICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKigu ZGVidWdfYWJicmV2KSB9CiAgIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5k ZWJ1Z19saW5lKSB9Ci0gIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1 Z19mcmFtZSkgfQorICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdf ZnJhbWUqKSB9CiAgIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19z dHIpIH0KICAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykg fQogICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykg fQpJbmRleDogc3JjL2xkL3NjcmlwdHRlbXBsL2Vwb2NwZS5zYwo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLSBzcmMub3JpZy9sZC9zY3JpcHR0ZW1wbC9l cG9jcGUuc2MJMjAxMS0wNC0xNiAxMjowNjozNy45NTc0NzM3MDAgKzAyMDAK KysrIHNyYy9sZC9zY3JpcHR0ZW1wbC9lcG9jcGUuc2MJMjAxMS0wNC0xNiAx MjowOTo1NS4yOTU5MjY0MDAgKzAyMDAKQEAgLTY3LDcgKzY3LDcgQEAgU0VD VElPTlMKICAgICBzZWN0aW9uICovCiAgICAgKigucmRhdGEpCiAgICAgJHtS X1JEQVRBfQotICAgICooLmVoX2ZyYW1lKQorICAgICooLmVoX2ZyYW1lKSAq KC5laF9mcmFtZVwkKikgKiguZWhfZnJhbWUuKikKICAgfQogCiAgIC8qIFRo ZSBDeWd3aW4zMiBsaWJyYXJ5IHVzZXMgYSBzZWN0aW9uIHRvIGF2b2lkIGNv cHlpbmcgY2VydGFpbiBkYXRhCkluZGV4OiBzcmMvbGQvc2NyaXB0dGVtcGwv aTM4NmJlb3Muc2MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3JjLm9y aWcvbGQvc2NyaXB0dGVtcGwvaTM4NmJlb3Muc2MJMjAxMS0wNC0xNiAxMjow NjozNy45NjU0NzM3MDAgKzAyMDAKKysrIHNyYy9sZC9zY3JpcHR0ZW1wbC9p Mzg2YmVvcy5zYwkyMDExLTA0LTE2IDEyOjA5OjU1LjI5NzkyNjUwMCArMDIw MApAQCAtOTgsNyArOTgsNyBAQCBTRUNUSU9OUwogICB7CiAgICAgKigucmRh dGEpCiAgICAgJHtSX1JEQVRBfQotICAgICooLmVoX2ZyYW1lKQorICAgICoo LmVoX2ZyYW1lKSAqKC5laF9mcmFtZVwkKikgKiguZWhfZnJhbWUuKikKICAg fQogCiAgIC5lZGF0YSAke1JFTE9DQVRJTkcrQkxPQ0soX19zZWN0aW9uX2Fs aWdubWVudF9fKX0gOgpAQCAtMTgwLDcgKzE4MCw3IEBAIFNFQ1RJT05TCiAg IC5kZWJ1Z19pbmZvICAgICAwICR7UkVMT0NBVElORysoTk9MT0FEKX0gOiB7 ICooLmRlYnVnX2luZm8pICooLmdudS5saW5rb25jZS53aS4qKSB9CiAgIC5k ZWJ1Z19hYmJyZXYgICAwICR7UkVMT0NBVElORysoTk9MT0FEKX0gOiB7ICoo LmRlYnVnX2FiYnJldikgfQogICAuZGVidWdfbGluZSAgICAgMCAke1JFTE9D QVRJTkcrKE5PTE9BRCl9IDogeyAqKC5kZWJ1Z19saW5lKSB9Ci0gIC5kZWJ1 Z19mcmFtZSAgICAwICR7UkVMT0NBVElORysoTk9MT0FEKX0gOiB7ICooLmRl YnVnX2ZyYW1lKSB9CisgIC5kZWJ1Z19mcmFtZSAgICAwICR7UkVMT0NBVElO RysoTk9MT0FEKX0gOiB7ICooLmRlYnVnX2ZyYW1lKikgfQogICAuZGVidWdf c3RyICAgICAgMCAke1JFTE9DQVRJTkcrKE5PTE9BRCl9IDogeyAqKC5kZWJ1 Z19zdHIpIH0KICAgLmRlYnVnX2xvYyAgICAgIDAgJHtSRUxPQ0FUSU5HKyhO T0xPQUQpfSA6IHsgKiguZGVidWdfbG9jKSB9CiAgIC5kZWJ1Z19tYWNpbmZv ICAwICR7UkVMT0NBVElORysoTk9MT0FEKX0gOiB7ICooLmRlYnVnX21hY2lu Zm8pIH0KSW5kZXg6IHNyYy9sZC9zY3JpcHR0ZW1wbC9pMzg2Z28zMi5zYwo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzcmMub3JpZy9sZC9zY3JpcHR0 ZW1wbC9pMzg2Z28zMi5zYwkyMDExLTA0LTE2IDEyOjA2OjM3Ljk3NDQ3Mzcw MCArMDIwMAorKysgc3JjL2xkL3NjcmlwdHRlbXBsL2kzODZnbzMyLnNjCTIw MTEtMDQtMTYgMTI6MDk6NTUuMjk5OTI2NjAwICswMjAwCkBAIC03MSw3ICs3 MSw3IEBAIFNFQ1RJT05TCiAgIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5k ZWJ1Z19pbmZvKSAqKC5nbnUubGlua29uY2Uud2kuKikgfQogICAuZGVidWdf YWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgIC5kZWJ1Z19s aW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lKSB9Ci0gIC5kZWJ1Z19mcmFt ZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQorICAuZGVidWdfZnJhbWUg ICAgMCA6IHsgKiguZGVidWdfZnJhbWUqKSB9CiAgIC5kZWJ1Z19zdHIgICAg ICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAgLmRlYnVnX2xvYyAgICAgIDAg OiB7ICooLmRlYnVnX2xvYykgfQogICAuZGVidWdfbWFjaW5mbyAgMCA6IHsg KiguZGVidWdfbWFjaW5mbykgfQpJbmRleDogc3JjL2xkL3NjcmlwdHRlbXBs L2lwMmsuc2MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3JjLm9yaWcv bGQvc2NyaXB0dGVtcGwvaXAyay5zYwkyMDExLTA0LTE2IDEyOjA2OjM3Ljk4 OTQ3MzcwMCArMDIwMAorKysgc3JjL2xkL3NjcmlwdHRlbXBsL2lwMmsuc2MJ MjAxMS0wNC0xNiAxMjowOTo1NS4zMDE5MjY3MDAgKzAyMDAKQEAgLTE0Miw3 ICsxNDIsNyBAQCBTRUNUSU9OUwogCS5kZWJ1Z19pbmZvICAgICAwIDogeyAq KC5kZWJ1Z19pbmZvKSAqKC5nbnUubGlua29uY2Uud2kuKikgfQogCS5kZWJ1 Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KIAkuZGVidWdf bGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSkgfQotCS5kZWJ1Z19mcmFt ZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQorCS5kZWJ1Z19mcmFtZSAg ICAwIDogeyAqKC5kZWJ1Z19mcmFtZSopIH0KIAkuZGVidWdfc3RyICAgICAg MCA6IHsgKiguZGVidWdfc3RyKSB9CiAJLmRlYnVnX2xvYyAgICAgIDAgOiB7 ICooLmRlYnVnX2xvYykgfQogCS5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5k ZWJ1Z19tYWNpbmZvKSB9CkluZGV4OiBzcmMvbGQvc2NyaXB0dGVtcGwvaXEy MDAwLnNjCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHNyYy5vcmlnL2xk L3NjcmlwdHRlbXBsL2lxMjAwMC5zYwkyMDExLTA0LTE2IDEyOjA2OjM4LjAw MTQ3MzcwMCArMDIwMAorKysgc3JjL2xkL3NjcmlwdHRlbXBsL2lxMjAwMC5z YwkyMDExLTA0LTE2IDEyOjA5OjU1LjMwMzkyNjgwMCArMDIwMApAQCAtMzIx LDcgKzMyMSw3IEBAIGNhdCA8PEVPRgogICAuZWhfZnJhbWUgJHtSRUxPQ0FU SU5HLTB9IDogCiAgIHsgCiAgICAgJHtSRUxPQ0FUSU5HK1BST1ZJREUgKF9f ZWhfZnJhbWVfYmVnaW4gPSAuKTt9Ci0gICAgKiguZWhfZnJhbWUpIAorICAg ICooLmVoX2ZyYW1lKSAqKC5laF9mcmFtZVwkKikgKiguZWhfZnJhbWUuKikK ICAgICBMT05HICgwKTsKICAgICAke1JFTE9DQVRJTkcrUFJPVklERSAoX19l aF9mcmFtZV9lbmQgPSAuKTt9CiAgIH0gJHtSRUxPQ0FUSU5HK30KQEAgLTQy NSw3ICs0MjUsNyBAQCBjYXQgPDxFT0YKICAgLmRlYnVnX2luZm8gICAgIDAg OiB7ICooLmRlYnVnX2luZm8pICooLmdudS5saW5rb25jZS53aS4qKSB9CiAg IC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAg LmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUpIH0KLSAgLmRl YnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CisgIC5kZWJ1 Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSopIH0KICAgLmRlYnVn X3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogICAuZGVidWdfbG9j ICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgIC5kZWJ1Z19tYWNpbmZv ICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CkluZGV4OiBzcmMvbGQvc2Ny aXB0dGVtcGwvbWNvcmVwZS5zYwo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LSBzcmMub3JpZy9sZC9zY3JpcHR0ZW1wbC9tY29yZXBlLnNjCTIwMTEtMDQt MTYgMTI6MDY6MzguMDE2NDczNzAwICswMjAwCisrKyBzcmMvbGQvc2NyaXB0 dGVtcGwvbWNvcmVwZS5zYwkyMDExLTA0LTE2IDEyOjA5OjU1LjMwNjkyNzAw MCArMDIwMApAQCAtOTgsNyArOTgsNyBAQCBTRUNUSU9OUwogICB7CiAgICAg KigucmRhdGEpCiAgICAgJHtSX1JEQVRBfQotICAgICooLmVoX2ZyYW1lKQor ICAgICooLmVoX2ZyYW1lKSAqKC5laF9mcmFtZVwkKikgKiguZWhfZnJhbWUu KikKICAgfQogCiAgIC5lZGF0YSAke1JFTE9DQVRJTkcrQkxPQ0soX19zZWN0 aW9uX2FsaWdubWVudF9fKX0gOgpJbmRleDogc3JjL2xkL3NjcmlwdHRlbXBs L21lcC5zYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzcmMub3JpZy9s ZC9zY3JpcHR0ZW1wbC9tZXAuc2MJMjAxMS0wNC0xNiAxMjowNjozOC4wMTk0 NzM3MDAgKzAyMDAKKysrIHNyYy9sZC9zY3JpcHR0ZW1wbC9tZXAuc2MJMjAx MS0wNC0xNiAxMjowOTo1NS4zMDg5MjcxMDAgKzAyMDAKQEAgLTMxOSw3ICsz MTksNyBAQCBjYXQgPDxFT0YKICAgJHtDUkVBVEVfU0hMSUItJHtTQlNTMn19 CiAgICR7T1RIRVJfUkVBRE9OTFlfU0VDVElPTlN9CiAgIC5laF9mcmFtZV9o ZHIgOiB7ICooLmVoX2ZyYW1lX2hkcikgfQotICAuZWhfZnJhbWUgICAgICR7 UkVMT0NBVElORy0wfSA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFt ZSkpIH0KKyAgLmVoX2ZyYW1lICAgICAke1JFTE9DQVRJTkctMH0gOiBPTkxZ X0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpICooLmVoX2ZyYW1lXCQqKSAq KC5laF9mcmFtZS4qKSkgfQogICAuZ2NjX2V4Y2VwdF90YWJsZSAke1JFTE9D QVRJTkctMH0gOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZ2NjX2V4Y2VwdF90 YWJsZSkpICooLmdjY19leGNlcHRfdGFibGUuKikgfQogCiAgIC8qIEFkanVz dCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQg dG8gYWRqdXN0IHVwIHRvCkBAIC0zMjksNyArMzI5LDcgQEAgY2F0IDw8RU9G CiAgICR7Q1JFQVRFX1BJRSske1JFTE9DQVRJTkcrLiA9ICR7U0hMSUJfREFU QV9BRERSLSR7REFUQV9TRUdNRU5UX0FMSUdOfX07fX0KIAogICAvKiBFeGNl cHRpb24gaGFuZGxpbmcgICovCi0gIC5laF9mcmFtZSAgICAgJHtSRUxPQ0FU SU5HLTB9IDogT05MWV9JRl9SVyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgfQor ICAuZWhfZnJhbWUgICAgICR7UkVMT0NBVElORy0wfSA6IE9OTFlfSUZfUlcg eyBLRUVQICgqKC5laF9mcmFtZSkgKiguZWhfZnJhbWVcJCopICooLmVoX2Zy YW1lLiopKSB9CiAgIC5nY2NfZXhjZXB0X3RhYmxlICR7UkVMT0NBVElORy0w fSA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5nY2NfZXhjZXB0X3RhYmxlKSkg KiguZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAKICAgLyogVGhyZWFkIExvY2Fs IFN0b3JhZ2Ugc2VjdGlvbnMgICovCkBAIC00MjUsNyArNDI1LDcgQEAgY2F0 IDw8RU9GCiAgIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZv IC5nbnUubGlua29uY2Uud2kuKikgfQogICAuZGVidWdfYWJicmV2ICAgMCA6 IHsgKiguZGVidWdfYWJicmV2KSB9CiAgIC5kZWJ1Z19saW5lICAgICAwIDog eyAqKC5kZWJ1Z19saW5lKSB9Ci0gIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAq KC5kZWJ1Z19mcmFtZSkgfQorICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKigu ZGVidWdfZnJhbWUqKSB9CiAgIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5k ZWJ1Z19zdHIpIH0KICAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVn X2xvYykgfQogICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFj aW5mbykgfQpJbmRleDogc3JjL2xkL3NjcmlwdHRlbXBsL21tby5zYwo9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLSBzcmMub3JpZy9sZC9zY3JpcHR0ZW1w bC9tbW8uc2MJMjAxMS0wNC0xNiAxMjowNjozOC4wMzM0NzM3MDAgKzAyMDAK KysrIHNyYy9sZC9zY3JpcHR0ZW1wbC9tbW8uc2MJMjAxMS0wNC0xNiAxMjow OTo1NS4zMTE5MjczMDAgKzAyMDAKQEAgLTU0LDcgKzU0LDcgQEAgU0VDVElP TlMKICAgICAke1JFTE9DQVRJTkcrIFBST1ZJREUgKF9fZHRvcnNfZW5kID0g Lik7fQogCiAgICAgJHtSRUxPQ0FUSU5HK0tFRVAgKCooLmpjcikpfQotICAg ICR7UkVMT0NBVElORytLRUVQICgqKC5laF9mcmFtZSkpfQorICAgICR7UkVM T0NBVElORytLRUVQICgqKC5laF9mcmFtZSkgKiguZWhfZnJhbWVcJCopICoo LmVoX2ZyYW1lLiopKX0KICAgICAke1JFTE9DQVRJTkcrKiguZ2NjX2V4Y2Vw dF90YWJsZSl9CiAKICAgICAke1JFTE9DQVRJTkcrIFBST1ZJREUoZXRleHQg PSAuKTt9CkBAIC03NCw3ICs3NCw3IEBAIFNFQ1RJT05TCiAgIC5kZWJ1Z19p bmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvKSAqKC5nbnUubGlua29uY2Uu d2kuKikgfQogICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJi cmV2KSB9CiAgIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5l KSB9Ci0gIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkg fQorICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUqKSB9 CiAgIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAg LmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogICAuZGVi dWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQpJbmRleDog c3JjL2xkL3NjcmlwdHRlbXBsL3BlLnNjCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tIHNyYy5vcmlnL2xkL3NjcmlwdHRlbXBsL3BlLnNjCTIwMTEtMDQt MTYgMTI6MDY6MzguMDQ3NDczNzAwICswMjAwCisrKyBzcmMvbGQvc2NyaXB0 dGVtcGwvcGUuc2MJMjAxMS0wNC0xNiAxMjowOTo1NS4zMTM5Mjc0MDAgKzAy MDAKQEAgLTExNSw3ICsxMTUsNyBAQCBTRUNUSU9OUwogCiAgIC5laF9mcmFt ZSAke1JFTE9DQVRJTkcrQkxPQ0soX19zZWN0aW9uX2FsaWdubWVudF9fKX0g OgogICB7Ci0gICAgKiguZWhfZnJhbWUpCisgICAgKiguZWhfZnJhbWUpICoo LmVoX2ZyYW1lXCQqKSAqKC5laF9mcmFtZS4qKQogICB9CiAKICAgLnBkYXRh ICR7UkVMT0NBVElORytCTE9DSyhfX3NlY3Rpb25fYWxpZ25tZW50X18pfSA6 CkBAIC0yNTAsNyArMjUwLDcgQEAgU0VDVElPTlMKIAogICAuZGVidWdfZnJh bWUgJHtSRUxPQ0FUSU5HK0JMT0NLKF9fc2VjdGlvbl9hbGlnbm1lbnRfXyl9 ICR7UkVMT0NBVElORysoTk9MT0FEKX0gOgogICB7Ci0gICAgKiguZGVidWdf ZnJhbWUpCisgICAgKiguZGVidWdfZnJhbWUqKQogICB9CiAKICAgLmRlYnVn X3N0ciAke1JFTE9DQVRJTkcrQkxPQ0soX19zZWN0aW9uX2FsaWdubWVudF9f KX0gJHtSRUxPQ0FUSU5HKyhOT0xPQUQpfSA6CkluZGV4OiBzcmMvbGQvc2Ny aXB0dGVtcGwvcGVwLnNjCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHNy Yy5vcmlnL2xkL3NjcmlwdHRlbXBsL3BlcC5zYwkyMDExLTA0LTE2IDEyOjA2 OjM4LjA1NTQ3MzcwMCArMDIwMAorKysgc3JjL2xkL3NjcmlwdHRlbXBsL3Bl cC5zYwkyMDExLTA0LTE2IDEyOjA5OjU1LjMxNjkyNzYwMCArMDIwMApAQCAt MTE2LDcgKzExNiw3IEBAIFNFQ1RJT05TCiAKICAgLmVoX2ZyYW1lICR7UkVM T0NBVElORytCTE9DSyhfX3NlY3Rpb25fYWxpZ25tZW50X18pfSA6CiAgIHsK LSAgICAqKC5laF9mcmFtZSkKKyAgICAqKC5laF9mcmFtZSopCiAgIH0KIAog ICAucGRhdGEgJHtSRUxPQ0FUSU5HK0JMT0NLKF9fc2VjdGlvbl9hbGlnbm1l bnRfXyl9IDoKQEAgLTI1Niw3ICsyNTYsNyBAQCBTRUNUSU9OUwogCiAgIC5k ZWJ1Z19mcmFtZSAke1JFTE9DQVRJTkcrQkxPQ0soX19zZWN0aW9uX2FsaWdu bWVudF9fKX0gJHtSRUxPQ0FUSU5HKyhOT0xPQUQpfSA6CiAgIHsKLSAgICAq KC5kZWJ1Z19mcmFtZSkKKyAgICAqKC5kZWJ1Z19mcmFtZSopCiAgIH0KIAog ICAuZGVidWdfc3RyICR7UkVMT0NBVElORytCTE9DSyhfX3NlY3Rpb25fYWxp Z25tZW50X18pfSAke1JFTE9DQVRJTkcrKE5PTE9BRCl9IDoKQEAgLTI3MSw0 MCArMjcxLDQwIEBAIFNFQ1RJT05TCiAKICAgLmRlYnVnX21hY2luZm8gJHtS RUxPQ0FUSU5HK0JMT0NLKF9fc2VjdGlvbl9hbGlnbm1lbnRfXyl9ICR7UkVM T0NBVElORysoTk9MT0FEKX0gOgogICB7Ci0gICAgKiguZGVidWdfbWFjaW5m bykKKyAgICAqKC5kZWJ1Z19tYWNpbmZvKikKICAgfQogCiAgIC8qIFNHSS9N SVBTIERXQVJGIDIgZXh0ZW5zaW9ucy4gICovCiAgIC5kZWJ1Z193ZWFrbmFt ZXMgJHtSRUxPQ0FUSU5HK0JMT0NLKF9fc2VjdGlvbl9hbGlnbm1lbnRfXyl9 ICR7UkVMT0NBVElORysoTk9MT0FEKX0gOgogICB7Ci0gICAgKiguZGVidWdf d2Vha25hbWVzKQorICAgICooLmRlYnVnX3dlYWtuYW1lcyopCiAgIH0KIAog ICAuZGVidWdfZnVuY25hbWVzICR7UkVMT0NBVElORytCTE9DSyhfX3NlY3Rp b25fYWxpZ25tZW50X18pfSAke1JFTE9DQVRJTkcrKE5PTE9BRCl9IDoKICAg ewotICAgICooLmRlYnVnX2Z1bmNuYW1lcykKKyAgICAqKC5kZWJ1Z19mdW5j bmFtZXMqKQogICB9CiAKICAgLmRlYnVnX3R5cGVuYW1lcyAke1JFTE9DQVRJ TkcrQkxPQ0soX19zZWN0aW9uX2FsaWdubWVudF9fKX0gJHtSRUxPQ0FUSU5H KyhOT0xPQUQpfSA6CiAgIHsKLSAgICAqKC5kZWJ1Z190eXBlbmFtZXMpCisg ICAgKiguZGVidWdfdHlwZW5hbWVzKikKICAgfQogCiAgIC5kZWJ1Z192YXJu YW1lcyAke1JFTE9DQVRJTkcrQkxPQ0soX19zZWN0aW9uX2FsaWdubWVudF9f KX0gJHtSRUxPQ0FUSU5HKyhOT0xPQUQpfSA6CiAgIHsKLSAgICAqKC5kZWJ1 Z192YXJuYW1lcykKKyAgICAqKC5kZWJ1Z192YXJuYW1lcyopCiAgIH0KIAog ICAvKiBEV0FSRiAzLiAgKi8KICAgLmRlYnVnX3JhbmdlcyAke1JFTE9DQVRJ TkcrQkxPQ0soX19zZWN0aW9uX2FsaWdubWVudF9fKX0gJHtSRUxPQ0FUSU5H KyhOT0xPQUQpfSA6CiAgIHsKLSAgICAqKC5kZWJ1Z19yYW5nZXMpCisgICAg KiguZGVidWdfcmFuZ2VzKikKICAgfQogCiAgIC8qIERXQVJGIDQuICAqLwog ICAuZGVidWdfdHlwZXMgJHtSRUxPQ0FUSU5HK0JMT0NLKF9fc2VjdGlvbl9h bGlnbm1lbnRfXyl9ICR7UkVMT0NBVElORysoTk9MT0FEKX0gOgogICB7Ci0g ICAgKiguZGVidWdfdHlwZXMpICooLmdudS5saW5rb25jZS53dC4qKQorICAg ICooLmRlYnVnX3R5cGVzKikgKiguZ251LmxpbmtvbmNlLnd0LiopCiAgIH0K IH0KIEVPRgpJbmRleDogc3JjL2xkL3NjcmlwdHRlbXBsL3Y4NTAuc2MKPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0gc3JjLm9yaWcvbGQvc2NyaXB0dGVt cGwvdjg1MC5zYwkyMDExLTA0LTE2IDEyOjA2OjM4LjA1ODQ3MzcwMCArMDIw MAorKysgc3JjL2xkL3NjcmlwdHRlbXBsL3Y4NTAuc2MJMjAxMS0wNC0xNiAx MjowOTo1NS4zMTg5Mjc3MDAgKzAyMDAKQEAgLTIxMCw3ICsyMTAsNyBAQCBT RUNUSU9OUwogICAuZGVidWdfaW5mbyAgICAgMAk6IHsgKiguZGVidWdfaW5m bykgKiguZ251LmxpbmtvbmNlLndpLiopIH0KICAgLmRlYnVnX2FiYnJldiAg IDAJOiB7ICooLmRlYnVnX2FiYnJldikgfQogICAuZGVidWdfbGluZSAgICAg MAk6IHsgKiguZGVidWdfbGluZSkgfQotICAuZGVidWdfZnJhbWUgICAgMAk6 IHsgKiguZGVidWdfZnJhbWUpIH0KKyAgLmRlYnVnX2ZyYW1lICAgIDAJOiB7 ICooLmRlYnVnX2ZyYW1lKikgfQogICAuZGVidWdfc3RyICAgICAgMAk6IHsg KiguZGVidWdfc3RyKSB9CiAgIC5kZWJ1Z19sb2MgICAgICAwCTogeyAqKC5k ZWJ1Z19sb2MpIH0KICAgLmRlYnVnX21hY2luZm8gIDAJOiB7ICooLmRlYnVn X21hY2luZm8pIH0KSW5kZXg6IHNyYy9sZC9zY3JpcHR0ZW1wbC94c3Rvcm15 MTYuc2MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3JjLm9yaWcvbGQv c2NyaXB0dGVtcGwveHN0b3JteTE2LnNjCTIwMTEtMDQtMTYgMTI6MDY6Mzgu MTEyNDczNzAwICswMjAwCisrKyBzcmMvbGQvc2NyaXB0dGVtcGwveHN0b3Jt eTE2LnNjCTIwMTEtMDQtMTYgMTI6MDk6NTUuMzIxOTI3ODAwICswMjAwCkBA IC0xNTksNyArMTU5LDcgQEAgU0VDVElPTlMKICAgJHtSRUxPQ0FUSU5HKyR7 Q1RPUn19CiAgICR7UkVMT0NBVElORyske0RUT1J9fQogICAuamNyIDogeyBL RUVQICgqKC5qY3IpKSB9ICR7UkVMT0NBVElORys+IFJPTX0KLSAgLmVoX2Zy YW1lIDogeyBLRUVQICgqKC5laF9mcmFtZSkpIH0gJHtSRUxPQ0FUSU5HKz4g Uk9NfQorICAuZWhfZnJhbWUgOiB7IEtFRVAgKCooLmVoX2ZyYW1lKSAqKC5l aF9mcmFtZVwkKikgKiguZWhfZnJhbWUuKikpIH0gJHtSRUxPQ0FUSU5HKz4g Uk9NfQogICAuZ2NjX2V4Y2VwdF90YWJsZSA6IHsgKiguZ2NjX2V4Y2VwdF90 YWJsZSkgKiguZ2NjX2V4Y2VwdF90YWJsZS4qKSB9ICR7UkVMT0NBVElORys+ IFJPTX0KICAgLnBsdCA6IHsgKigucGx0KSB9ICR7UkVMT0NBVElORys+IFJP TX0KIApAQCAtMjIyLDcgKzIyMiw3IEBAIFNFQ1RJT05TCiAgIC5kZWJ1Z19p bmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvKSAqKC5nbnUubGlua29uY2Uu d2kuKikgfQogICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJi cmV2KSB9CiAgIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5l KSB9Ci0gIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkg fQorICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUqKSB9 CiAgIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAg LmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogICAuZGVi dWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQpJbmRleDog c3JjL2JmZC9jb2ZmY29kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t IHNyYy5vcmlnL2JmZC9jb2ZmY29kZS5oCTIwMTEtMDQtMTYgMTI6MDY6Mzcu NzIwNDczNzAwICswMjAwCisrKyBzcmMvYmZkL2NvZmZjb2RlLmgJMjAxMS0w NC0xNyAxMDo0NToyOC45MTAwOTM1MDAgKzAyMDAKQEAgLTY1OCw3ICs2NTgs MTAgQEAgc2VjX3RvX3N0eXBfZmxhZ3MgKGNvbnN0IGNoYXIgKnNlY19uYW1l LAogCiAgIC8qIEZJWE1FOiBUaGVyZSBpcyBubyBnYXMgc3ludGF4IHRvIHNw ZWNpZnkgdGhlIGRlYnVnIHNlY3Rpb24gZmxhZy4gICovCiAgIGlmIChpc19k YmcpCi0gICAgICBzZWNfZmxhZ3MgPSBTRUNfREVCVUdHSU5HIHwgU0VDX1JF QURPTkxZOworICAgIHsKKyAgICAgIHNlY19mbGFncyAmPSAoU0VDX0xJTktf T05DRSB8IFNFQ19MSU5LX0RVUExJQ0FURVNfRElTQ0FSRCk7CisgICAgICBz ZWNfZmxhZ3MgfD0gU0VDX0RFQlVHR0lORyB8IFNFQ19SRUFET05MWTsKKyAg ICB9CiAKICAgLyogc2tpcCBMT0FEICovCiAgIC8qIFJFQURPTkxZIGxhdGVy ICovCkluZGV4OiBzcmMvbGQvc2NyaXB0dGVtcGwvZWxmLnNjCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tIHNyYy5vcmlnL2xkL3NjcmlwdHRlbXBsL2Vs Zi5zYwkyMDExLTA0LTE2IDEyOjA2OjM3Ljc5ODQ3MzcwMCArMDIwMAorKysg c3JjL2xkL3NjcmlwdHRlbXBsL2VsZi5zYwkyMDExLTA0LTE2IDEyOjA5OjU1 LjMyODkyODIwMCArMDIwMApAQCAtNDY5LDcgKzQ2OSw3IEBAIGNhdCA8PEVP RgogICAke0NSRUFURV9TSExJQi0ke1NCU1MyfX0KICAgJHtPVEhFUl9SRUFE T05MWV9TRUNUSU9OU30KICAgLmVoX2ZyYW1lX2hkciA6IHsgKiguZWhfZnJh bWVfaGRyKSB9Ci0gIC5laF9mcmFtZSAgICAgJHtSRUxPQ0FUSU5HLTB9IDog T05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgfQorICAuZWhfZnJh bWUgICAgICR7UkVMT0NBVElORy0wfSA6IE9OTFlfSUZfUk8geyBLRUVQICgq KC5laF9mcmFtZSkgKiguZWhfZnJhbWVcJCopICooLmVoX2ZyYW1lLiopKSB9 CiAgIC5nY2NfZXhjZXB0X3RhYmxlICR7UkVMT0NBVElORy0wfSA6IE9OTFlf SUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlCiAgIC5nY2NfZXhjZXB0X3Rh YmxlLiopIH0KICAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBi eSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwpAQCAtNDgzLDcg KzQ4Myw3IEBAIGNhdCA8PEVPRgogICAke0NSRUFURV9QSUUrJHtSRUxPQ0FU SU5HKy4gPSAke1NITElCX0RBVEFfQUREUi0ke0RBVEFfU0VHTUVOVF9BTElH Tn19O319CiAKICAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwotICAuZWhf ZnJhbWUgICAgICR7UkVMT0NBVElORy0wfSA6IE9OTFlfSUZfUlcgeyBLRUVQ ICgqKC5laF9mcmFtZSkpIH0KKyAgLmVoX2ZyYW1lICAgICAke1JFTE9DQVRJ TkctMH0gOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpICooLmVo X2ZyYW1lXCQqKSAqKC5laF9mcmFtZS4qKSkgfQogICAuZ2NjX2V4Y2VwdF90 YWJsZSAke1JFTE9DQVRJTkctMH0gOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4 Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgIC5leGNlcHRp b25fcmFuZ2VzICR7UkVMT0NBVElORy0wfSA6IE9OTFlfSUZfUlcgeyAqKC5l eGNlcHRpb25fcmFuZ2VzIC5leGNlcHRpb25fcmFuZ2VzKikgfQogCkBAIC02 MDQsNyArNjA0LDcgQEAgY2F0IDw8RU9GCiAgIC5kZWJ1Z19pbmZvICAgICAw IDogeyAqKC5kZWJ1Z19pbmZvJHtSRUxPQ0FUSU5HKyAuZ251LmxpbmtvbmNl LndpLip9KSB9CiAgIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19h YmJyZXYpIH0KICAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xp bmUpIH0KLSAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1l KSB9CisgIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSop IH0KICAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQog ICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgIC5k ZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9Cg== --002354470ac013168404a12e141c--