From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qk1-x72c.google.com (mail-qk1-x72c.google.com [IPv6:2607:f8b0:4864:20::72c]) by sourceware.org (Postfix) with ESMTPS id 12D593857807 for ; Sun, 17 Jan 2021 00:46:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 12D593857807 Received: by mail-qk1-x72c.google.com with SMTP id w79so15577939qkb.5 for ; Sat, 16 Jan 2021 16:46:04 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language; bh=8VKKbAvL62SA+jYbBiSeFbTIjdRb+c+fY3xfvAEB2+I=; b=ApipCZMHQGxV8Q90VRWHn4JB1wVd9ybaBwfCjgZJnyCbj24e+Sa2NT+vWLT7RWOZ4x d1dQzNlru4f57X4sbIePwgxwKSYbdGdQkD3L3lbKKmPuHuI+Q0NwDbr74cam6+IMyOQY zUFGqlE8CuAeYFei0SwyCL6fBergDoTaV55ztCWtXk6hhZQuALOCU6XJ2YkKuKbyMwXV UrLDgWkEcD4dfm1z/wdba3ZUVCB0Q0HgoUxyiZvFXilCleXRTfzauAMCass5TVH0Ghct oFHD3gP7L4KKNfgXW/6t25F4DM0L3++c2rI0VVF3bisyWUZn+5aklFYcuaegABr65Xl0 +vlw== X-Gm-Message-State: AOAM533LBW/SQ2/Eh1MkD4/FQbFGL4jprNg6xNWS/A6l44C5cRJBMiIP L0/uVuautM3xqiQoBMNiZ7Ns4vcJhlk= X-Google-Smtp-Source: ABdhPJwj6Gf5vcYJwksUBwbvknFU8i3IgJsyFL0r4TgK3hEIDKiPKhrcBvnvrPxy/Y4vLI5EEzZNbw== X-Received: by 2002:a37:ccf:: with SMTP id 198mr18436206qkm.223.1610844363305; Sat, 16 Jan 2021 16:46:03 -0800 (PST) Received: from [192.168.0.41] (184-96-239-30.hlrn.qwest.net. [184.96.239.30]) by smtp.gmail.com with ESMTPSA id a9sm8001646qkk.39.2021.01.16.16.46.01 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 16 Jan 2021 16:46:02 -0800 (PST) Subject: Re: [PATCH] keep scope blocks for all inlined functions (PR 98664) To: Richard Biener Cc: Jeff Law , Jakub Jelinek , gcc-patches References: <0f27b6c3-f6ab-ec4f-52c6-6e544684f751@gmail.com> From: Martin Sebor Message-ID: <729fe3f8-bf64-7c9a-9f1f-29d60e28bd45@gmail.com> Date: Sat, 16 Jan 2021 17:46:01 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.2.2 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------87034405C9B14510DAE7734A" Content-Language: en-US X-Spam-Status: No, score=-10.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, KAM_ASCII_DIVIDERS, NICE_REPLY_A, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jan 2021 00:46:09 -0000 This is a multi-part message in MIME format. --------------87034405C9B14510DAE7734A Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 1/15/21 12:44 AM, Richard Biener wrote: > On Thu, Jan 14, 2021 at 8:13 PM Martin Sebor via Gcc-patches > wrote: >> >> One aspect of PR 98465 - Bogus warning stringop-overread for std::string >> is the inconsistency between -g and -g0 which turns out to be due to >> GCC eliminating apparently unused scope blocks from inlined functions >> that aren't explicitly declared inline and artificial. PR 98664 tracks >> just this part of PR 98465. >> >> To resolve just the PR 98664 subset the attached change has >> the tree-ssa-live.c pass preserve these blocks for all inlined >> functions, not just artificial ones. Besides avoiding the interaction >> between -g and warnings it also seems to improve the inlining context >> by including more inlined call sites. This can be seen in the adjusted >> tests. (Its effect on PR 98465 is that the false positive is issued >> consistently, regardless of -g. Avoiding the false positive is my >> next step.) >> >> Jakub, you raised a concern yesterday in PR 98465 c#13 about the memory >> footprint of this change. Can you please comment on whether it's in >> line with what you were suggesting? > > { > tree ao = BLOCK_ABSTRACT_ORIGIN (block); > - if (TREE_CODE (ao) == FUNCTION_DECL) > - loc = BLOCK_SOURCE_LOCATION (block); > - else if (TREE_CODE (ao) != BLOCK) > - break; > + if (TREE_CODE (ao) == FUNCTION_DECL) > + loc = BLOCK_SOURCE_LOCATION (block); > + else if (TREE_CODE (ao) != BLOCK) > + break; > > you are replacing tabs with spaces? > > @@ -558,16 +558,13 @@ remove_unused_scope_block_p (tree scope, bool > in_ctor_dtor_block) > else if (!flag_auto_profile && debug_info_level == DINFO_LEVEL_NONE > && !optinfo_wants_inlining_info_p ()) > { > - /* Even for -g0 don't prune outer scopes from artificial > - functions, otherwise diagnostics using tree_nonartificial_location > - will not be emitted properly. */ > + /* Even for -g0 don't prune outer scopes from inlined functions, > + otherwise late diagnostics from such functions will not be > + emitted or suppressed properly. */ > if (inlined_function_outer_scope_p (scope)) > { > tree ao = BLOCK_ORIGIN (scope); > - if (ao > - && TREE_CODE (ao) == FUNCTION_DECL > - && DECL_DECLARED_INLINE_P (ao) > - && lookup_attribute ("artificial", DECL_ATTRIBUTES (ao))) > + if (ao && TREE_CODE (ao) == FUNCTION_DECL) > unused = false; > } > } > > so which inlined_function_outer_scope_p are you _not_ marking now? > BLOCK_ORIGIN is never NULL and all inlined scopes should have > an abstract origin - I believe always a FUNCTIN_DECL. Which means > you could have simplified it further? Quite possibly. I could find no documentation for these macros so I tried to keep my changes conservative. I did put together some notes to document what I saw the macros evaluate to in my testing (below). If/when it's close to accurate I'd like to add them to tree.h and to the internals manual. > And yes, the main reason for the code above is memory use for > C++ with lots of inlining. I suggest to try the patch on tramp3d > for example (there's about 10 inline instances per emitted > assembly op). This one: https://github.com/llvm-mirror/test-suite/tree/master/MultiSource/Benchmarks/tramp3d-v4 ? With the patch, 69,022 more blocks with distinct numbers are kept than without it. I see some small differences in -fmem-report and -ftime-report output: Total: 286 -> 288M 210 -> 211M 3993 -> 4019k I'm not really sure what to look at so I attach the two reports for you to judge for yourself. I also attach an updated patch with the slight simplification you suggested. Martin PS Here are my notes on the macros and the two related functions: BLOCK: Denotes a lexical scope. Contains BLOCK_VARS of variables declared in it, BLOCK_SUBBLOCKS of scopes nested in it, and BLOCK_CHAIN pointing to the next BLOCK. Its BLOCK_SUPERCONTEXT point to the BLOCK of the enclosing scope. May have a BLOCK_ABSTRACT_ORIGIN and a BLOCK_SOURCE_LOCATION. BLOCK_SUPERCONTEXT: The scope of the enclosing block, or FUNCTION_DECL for the "outermost" function scope. Inlined functions are chained by this so that given expression E and its TREE_BLOCK(E) B, BLOCK_SUPERCONTEXT(B) is the scope (BLOCK) in which E has been made or into which E has been inlined. In the latter case, BLOCK_ORIGIN(B) evaluates either to the enclosing BLOCK or to the enclosing function DECL. It's never null. BLOCK_ABSTRACT_ORIGIN(B) is the FUNCTION_DECL of the function into which it has been inlined, or null if B is not inlined. BLOCK_ABSTRACT_ORIGIN: A BLOCK, or FUNCTION_DECL of the function into which a block has been inlined. In a BLOCK immediately enclosing an inlined leaf expression points to the outermost BLOCK into which it has been inlined (thus bypassing all intermediate BLOCK_SUPERCONTEXTs). BLOCK_FRAGMENT_ORIGIN: ??? BLOCK_FRAGMENT_CHAIN: ??? bool inlined_function_outer_scope_p(BLOCK) [tree.h] Returns true if a BLOCK has a source location. True for all but the innermost (no SUBBLOCKs?) and outermost blocks into which an expression has been inlined. (Is this always true?) tree block_ultimate_origin(BLOCK) [tree.c] Returns BLOCK_ABSTRACT_ORIGIN(BLOCK), AO, after asserting that (DECL_P(AO) && DECL_ORIGIN(AO) == AO) || BLOCK_ORIGIN(AO) == AO). --------------87034405C9B14510DAE7734A Content-Type: text/plain; charset=UTF-8; name="tramp3d-v4.report.baseline" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="tramp3d-v4.report.baseline" JCAvYnVpbGQvZ2NjLW1hc3Rlci9nY2MveGcrKyAtQiAvYnVpbGQvZ2NjLW1hc3Rlci9nY2Mg LW5vc3RkaW5jKysgLUkgL2J1aWxkL2djYy1tYXN0ZXIveDg2XzY0LXBjLWxpbnV4LWdudS9s aWJzdGRjKystdjMvaW5jbHVkZS94ODZfNjQtcGMtbGludXgtZ251IC1JIC9idWlsZC9nY2Mt bWFzdGVyL3g4Nl82NC1wYy1saW51eC1nbnUvbGlic3RkYysrLXYzL2luY2x1ZGUgLUkgL3Ny Yy9nY2MvbWFzdGVyL2xpYnN0ZGMrKy12My9saWJzdXBjKysgLUkgL3NyYy9nY2MvbWFzdGVy L2xpYnN0ZGMrKy12My9pbmNsdWRlL2JhY2t3YXJkIC1JIC9zcmMvZ2NjL21hc3Rlci9saWJz dGRjKystdjMvdGVzdHN1aXRlL3V0aWwgLUwgL2J1aWxkL2djYy1tYXN0ZXIveDg2XzY0LXBj LWxpbnV4LWdudS9saWJzdGRjKystdjMvc3JjLy5saWJzIC1PMiAtYyAtZmR1bXAtdHJlZS1j Zmc9dHJhbXAzZC12NC5rZWVwX2Jsb2Nrcy5jZmcgL3NyYy90cmFtcDNkLXY0LmNwcCAtZm1l bS1yZXBvcnQgLWZ0aW1lLXJlcG9ydAoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBG aW5hbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICMKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCk51 bWJlciBvZiBleHBhbmRlZCBtYWNyb3M6ICAgICAgICAgICAgICAgICAgICAgMTg5MjgKQXZl cmFnZSBudW1iZXIgb2YgdG9rZW5zIHBlciBtYWNybyBleHBhbnNpb246ICAgICAgNwoKTGlu ZSBUYWJsZSBhbGxvY2F0aW9ucyBkdXJpbmcgdGhlIGNvbXBpbGF0aW9uIHByb2Nlc3MKTnVt YmVyIG9mIG9yZGluYXJ5IG1hcHMgdXNlZDogICAgICAgICAgOTE1IApPcmRpbmFyeSBtYXAg dXNlZCBzaXplOiAgICAgICAgICAgICAgICAgMjFrCk51bWJlciBvZiBvcmRpbmFyeSBtYXBz IGFsbG9jYXRlZDogICAgMTM2NSAKT3JkaW5hcnkgbWFwcyBhbGxvY2F0ZWQgc2l6ZTogICAg ICAgICAgIDMxawpOdW1iZXIgb2YgbWFjcm8gbWFwcyB1c2VkOiAgICAgICAgICAgICAgMTZr Ck1hY3JvIG1hcHMgdXNlZCBzaXplOiAgICAgICAgICAgICAgICAgIDUyNWsKTWFjcm8gbWFw cyBsb2NhdGlvbnMgc2l6ZTogICAgICAgICAgICAxMTI0awpNYWNybyBtYXBzIHNpemU6ICAg ICAgICAgICAgICAgICAgICAgIDE2NTBrCkR1cGxpY2F0ZWQgbWFwcyBsb2NhdGlvbnMgc2l6 ZTogICAgICAgIDM3OGsKVG90YWwgYWxsb2NhdGVkIG1hcHMgc2l6ZTogICAgICAgICAgICAz MjA0awpUb3RhbCB1c2VkIG1hcHMgc2l6ZTogICAgICAgICAgICAgICAgIDE2NzFrCkFkLWhv YyB0YWJsZSBzaXplOiAgICAgICAgICAgICAgICAgICAgICAxMk0KQWQtaG9jIHRhYmxlIGVu dHJpZXMgdXNlZDogICAgICAgICAgICAgNDcyawpvcHRpbWl6ZWRfcmFuZ2VzOiAgICAgICAg ICAgICAgICAgICAgIDExNzFrCnVub3B0aW1pemVkX3JhbmdlczogICAgICAgICAgICAgICAg ICAgIDEzNGsKCk1lbW9yeSBzdGlsbCBhbGxvY2F0ZWQgYXQgdGhlIGVuZCBvZiB0aGUgY29t cGlsYXRpb24gcHJvY2VzcwpTaXplICAgICAgQWxsb2NhdGVkICAgICAgICBVc2VkICAgIE92 ZXJoZWFkCjggICAgICAgICAgICAgICAxMTZrICAgICAgICAgOTVrICAgICAgIDM0ODAgCjE2 ICAgICAgICAgICAgIDQxMjBrICAgICAgIDIyNzFrICAgICAgICAgODhrCjMyICAgICAgICAg ICAgICAgMjNNICAgICAgICAgMTFNICAgICAgICA0MThrCjY0ICAgICAgICAgICAgICAgMTBN ICAgICAgIDg0MjdrICAgICAgICAxNjZrCjI1NiAgICAgICAgICAgICAgMzBNICAgICAgICAg MjVNICAgICAgICA0MjNrCjUxMiAgICAgICAgICAgIDE1MDBrICAgICAgIDExNjZrICAgICAg ICAgMjBrCjEwMjQgICAgICAgICAgIDM4NTZrICAgICAgIDE3MDhrICAgICAgICAgNTJrCjIw NDggICAgICAgICAgIDUwNDBrICAgICAgIDQ5ODZrICAgICAgICAgNjhrCjQwOTYgICAgICAg ICAgICAxNDhrICAgICAgICAxNDhrICAgICAgIDIwNzIgCjgxOTIgICAgICAgICAgICAgNDhr ICAgICAgICAgNDhrICAgICAgICAzMzYgCjE2Mzg0ICAgICAgICAgICAgNjRrICAgICAgICAg NjRrICAgICAgICAyMjQgCjMyNzY4ICAgICAgICAgICAxMjhrICAgICAgICAxMjhrICAgICAg ICAyMjQgCjY1NTM2ICAgICAgICAgICAzODRrICAgICAgICAzODRrICAgICAgICAzMzYgCjEz MTA3MiAgICAgICAgICAxMjhrICAgICAgICAxMjhrICAgICAgICAgNTYgCjI2MjE0NCAgICAg ICAgICA3NjhrICAgICAgICA3NjhrICAgICAgICAxNjggCjUyNDI4OCAgICAgICAgICA1MTJr ICAgICAgICA1MTJrICAgICAgICAgNTYgCjEwNDg1NzYgICAgICAgIDIwNDhrICAgICAgIDIw NDhrICAgICAgICAxMTIgCjIwOTcxNTIgICAgICAgIDIwNDhrICAgICAgIDIwNDhrICAgICAg ICAgNTYgCjE2Nzc3MjE2ICAgICAgICAgMTZNICAgICAgICAgMTZNICAgICAgICAgNTYgCjI0 ICAgICAgICAgICAgICAgMTFNICAgICAgIDUyOTRrICAgICAgICAyMDhrCjQwICAgICAgICAg ICAgICAgMjVNICAgICAgICAgMTdNICAgICAgICA0MTNrCjQ4ICAgICAgICAgICAgICAgMTRN ICAgICAgIDY2MDZrICAgICAgICAyMzZrCjU2ICAgICAgICAgICAgIDQ4MTJrICAgICAgIDE4 MjVrICAgICAgICAgNzVrCjcyICAgICAgICAgICAgIDMyNzZrICAgICAgICA3NzVrICAgICAg ICAgNDRrCjgwICAgICAgICAgICAgICA1OTZrICAgICAgICAyMTdrICAgICAgIDgzNDQgCjg4 ICAgICAgICAgICAgICAzNjRrICAgICAgICAxNzdrICAgICAgIDUwOTYgCjk2ICAgICAgICAg ICAgICAgMTFNICAgICAgIDYxMTBrICAgICAgICAxNTRrCjExMiAgICAgICAgICAgIDM0OTJr ICAgICAgIDIwNzVrICAgICAgICAgNDdrCjEyMCAgICAgICAgICAgIDYxNzJrICAgICAgIDQ1 NDJrICAgICAgICAgODRrCjE1MiAgICAgICAgICAgICAgMTZNICAgICAgICAgMTVNICAgICAg ICAyMzdrCjEyOCAgICAgICAgICAgICAgMzBNICAgICAgICAgMjZNICAgICAgICA0MzBrCjE0 NCAgICAgICAgICAgIDY0ODRrICAgICAgIDE4ODFrICAgICAgICAgODhrCjE2OCAgICAgICAg ICAgICAgNDJNICAgICAgICAgNDBNICAgICAgICA2MDFrCjE4NCAgICAgICAgICAgIDMzNDhr ICAgICAgIDIwNDVrICAgICAgICAgNDVrCjEwNCAgICAgICAgICAgIDExNzZrICAgICAgIDEw MzZrICAgICAgICAgMTZrCjI3MiAgICAgICAgICAgIDM1MzZrICAgICAgICA5MDRrICAgICAg ICAgNDhrCjI4MCAgICAgICAgICAgICAxNjRrICAgICAgICAxMDNrICAgICAgIDIyOTYgClRv dGFsICAgICAgICAgICAyODZNICAgICAgICAyMTBNICAgICAgIDM5OTNrCgpTdHJpbmcgcG9v bAplbnRyaWVzOiAgICAgICAgICAgICAgICAgICAgICAgIDc5NDU0CmlkZW50aWZpZXJzOiAg ICAgICAgICAgICAgICAgICAgMzQ5MzMgKDQzLjk3JSkKc2xvdHM6ICAgICAgICAgICAgICAg ICAgICAgICAgICAxMzEwNzIKZGVsZXRlZDogICAgICAgICAgICAgICAgICAgICAgICAzNjY3 NgpHR0MgYnl0ZXM6ICAgICAgICAgICAgICAgICAgICAgIDI2MjBrCnRhYmxlIHNpemU6ICAg ICAgICAgICAgICAgICAgICAgMTAyNGsKY29sbC9zZWFyY2g6ICAgICAgICAgICAgICAgICAg ICAwLjgyMTcKaW5zL3NlYXJjaDogICAgICAgICAgICAgICAgICAgICAwLjEyMjIKYXZnLiBl bnRyeTogICAgICAgICAgICAgICAgICAgICAzMy43NyBieXRlcyAoKy8tIDcxLjQ1KQpsb25n ZXN0IGVudHJ5OiAgICAgICAgICAgICAgICAgIDQ5NgooTm8gcGVyLW5vZGUgc3RhdGlzdGlj cykKVHlwZSBoYXNoOiBzaXplIDEzMTA3MSwgNjcxOTkgZWxlbWVudHMsIDEuMTEyMjg3IGNv bGxpc2lvbnMKREVDTF9ERUJVR19FWFBSICBoYXNoOiBzaXplIDEwMjEsIDAgZWxlbWVudHMs IDAuODU2ODQyIGNvbGxpc2lvbnMKREVDTF9WQUxVRV9FWFBSICBoYXNoOiBzaXplIDEwMjEs IDMwIGVsZW1lbnRzLCAwLjE0NjA0NiBjb2xsaXNpb25zCmRlY2xfc3BlY2lhbGl6YXRpb25z OiBzaXplIDEzMTA3MSwgNTA2MjQgZWxlbWVudHMsIDEuMzg2MzQ0IGNvbGxpc2lvbnMKdHlw ZV9zcGVjaWFsaXphdGlvbnM6IHNpemUgMzI3NDksIDIzMTg0IGVsZW1lbnRzLCAyLjUwNDIw NSBjb2xsaXNpb25zCk5vIEdJTVBMRSBzdGF0aXN0aWNzCk5vIFJUWCBzdGF0aXN0aWNzCgot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpIZWFwIHZlY3RvcnMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihUKSAgICAgICBMZWFrICAgICAg ICAgICAgUGVhayAgICAgVGltZXMgICAgICAgTGVhayBpdGVtcyBQZWFrIGl0ZW1zCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCkhlYXAgdmVjdG9ycyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2l6ZW9mKFQpICAgICAgIExlYWsgICAgICAgICAgICBQZWFrICAgICBUaW1lcyAgICAg ICBMZWFrIGl0ZW1zIFBlYWsgaXRlbXMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KVG90YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAwICAgICAgICAgICAgICAgICAgICAgICAgIDAgICAgICAgICAg ICAgICAgMCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgpBbGlhcyBvcmFj bGUgcXVlcnkgc3RhdHM6CiAgcmVmc19tYXlfYWxpYXNfcDogMjc5ODE3NCBkaXNhbWJpZ3Vh dGlvbnMsIDMwNjgwNzggcXVlcmllcwogIHJlZl9tYXliZV91c2VkX2J5X2NhbGxfcDogMjM4 MTggZGlzYW1iaWd1YXRpb25zLCAyODM2ODQ1IHF1ZXJpZXMKICBjYWxsX21heV9jbG9iYmVy X3JlZl9wOiAyNzU0IGRpc2FtYmlndWF0aW9ucywgMjc2NCBxdWVyaWVzCiAgbm9ub3Zlcmxh cHBpbmdfY29tcG9uZW50X3JlZnNfcDogMCBkaXNhbWJpZ3VhdGlvbnMsIDM0OTMgcXVlcmll cwogIG5vbm92ZXJsYXBwaW5nX3JlZnNfc2luY2VfbWF0Y2hfcDogMzc2IGRpc2FtYmlndWF0 aW9ucywgOTAwOCBtdXN0IG92ZXJsYXBzLCA5NDE1IHF1ZXJpZXMKICBhbGlhc2luZ19jb21w b25lbnRfcmVmc19wOiA4MDcgZGlzYW1iaWd1YXRpb25zLCAzMDg0MiBxdWVyaWVzCiAgVEJB QSBvcmFjbGU6IDEwNDE3ODkgZGlzYW1iaWd1YXRpb25zIDE5NzY2MjUgcXVlcmllcwogICAg ICAgICAgICAgICAxODk4MzEgYXJlIGluIGFsaWFzIHNldCAwCiAgICAgICAgICAgICAgIDUx Mzk5NCBxdWVyaWVzIGFza2VkIGFib3V0IHRoZSBzYW1lIG9iamVjdAogICAgICAgICAgICAg ICAwIHF1ZXJpZXMgYXNrZWQgYWJvdXQgdGhlIHNhbWUgYWxpYXMgc2V0CiAgICAgICAgICAg ICAgIDAgYWNjZXNzIHZvbGF0aWxlCiAgICAgICAgICAgICAgIDIzMDcxNSBhcmUgZGVwZW5k ZW50IGluIHRoZSBEQUcKICAgICAgICAgICAgICAgMjk2IGFyZSBhcml0aWZpY2lhbGx5IGlu IGNvbmZsaWN0IHdpdGggdm9pZCAqCgpNb2RyZWYgc3RhdHM6CiAgbW9kcmVmIHVzZTogNTM3 IGRpc2FtYmlndWF0aW9ucywgNjM3MSBxdWVyaWVzCiAgbW9kcmVmIGNsb2JiZXI6IDM3NDI5 IGRpc2FtYmlndWF0aW9ucywgMzUyMTk0IHF1ZXJpZXMKICAxMTkxMjQgdGJhYSBxdWVyaWVz ICgwLjMzODIzNCBwZXIgbW9kcmVmIHF1ZXJ5KQogIDIxNTE4IGJhc2UgY29tcGFyZXMgKDAu MDYxMDk3IHBlciBtb2RyZWYgcXVlcnkpCgpQVEEgcXVlcnkgc3RhdHM6CiAgcHRfc29sdXRp b25faW5jbHVkZXM6IDU1OTI5NiBkaXNhbWJpZ3VhdGlvbnMsIDc0NDczNSBxdWVyaWVzCiAg cHRfc29sdXRpb25zX2ludGVyc2VjdDogMTU0MDc4IGRpc2FtYmlndWF0aW9ucywgNDIyNDkw IHF1ZXJpZXMKClRpbWUgdmFyaWFibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVzciAgICAgICAgICAgc3lzICAgICAgICAgIHdhbGwgICAgICAgICAgIEdHQwogcGhh c2Ugc2V0dXAgICAgICAgICAgICAgICAgICAgICAgICA6ICAgMC4wMCAoICAwJSkgICAwLjAw ICggIDAlKSAgIDAuMDEgKCAgMCUpICAxNTU0ayAoICAwJSkKIHBoYXNlIHBhcnNpbmcgICAg ICAgICAgICAgICAgICAgICAgOiAgIDQuNTYgKCAgNCUpICAgMC42MCAoIDIxJSkgICA1LjE2 ICggIDUlKSAgIDIxM00gKCAyMCUpCiBwaGFzZSBsYW5nLiBkZWZlcnJlZCAgICAgICAgICAg ICAgIDogICA0LjI5ICggIDQlKSAgIDAuMjkgKCAxMCUpICAgNC41OSAoICA0JSkgICAxODlN ICggMTclKQogcGhhc2Ugb3B0IGFuZCBnZW5lcmF0ZSAgICAgICAgICAgICA6ICA5Ny4xOCAo IDkxJSkgICAyLjAwICggNjklKSAgOTkuMzggKCA5MSUpICAgNjg3TSAoIDYzJSkKIHBoYXNl IGZpbmFsaXplICAgICAgICAgICAgICAgICAgICAgOiAgIDAuMjcgKCAgMCUpICAgMC4wMSAo ICAwJSkgICAwLjI4ICggIDAlKSAgICAgMCAgKCAgMCUpCiB8bmFtZSBsb29rdXAgICAgICAg ICAgICAgICAgICAgICAgIDogICAwLjg4ICggIDElKSAgIDAuMDggKCAgMyUpICAgMC43NiAo ICAxJSkgICAgMTNNICggIDElKQogfG92ZXJsb2FkIHJlc29sdXRpb24gICAgICAgICAgICAg ICA6ICAgMi4zNiAoICAyJSkgICAwLjIzICggIDglKSAgIDIuNDIgKCAgMiUpICAgMTEwTSAo IDEwJSkKIGdhcmJhZ2UgY29sbGVjdGlvbiAgICAgICAgICAgICAgICAgOiAgIDMuMjYgKCAg MyUpICAgMC4wMSAoICAwJSkgICAzLjI3ICggIDMlKSAgICAgMCAgKCAgMCUpCiBkdW1wIGZp bGVzICAgICAgICAgICAgICAgICAgICAgICAgIDogICAwLjI5ICggIDAlKSAgIDAuMDIgKCAg MSUpICAgMC40OSAoICAwJSkgIDI5NDVrICggIDAlKQogY2FsbGdyYXBoIGNvbnN0cnVjdGlv biAgICAgICAgICAgICA6ICAgMS4zMCAoICAxJSkgICAwLjE0ICggIDUlKSAgIDEuNDMgKCAg MSUpICAgIDM3TSAoICAzJSkKIGNhbGxncmFwaCBvcHRpbWl6YXRpb24gICAgICAgICAgICAg OiAgIDAuNzMgKCAgMSUpICAgMC4wMyAoICAxJSkgICAwLjgzICggIDElKSAgIDE1NGsgKCAg MCUpCiBjYWxsZ3JhcGggZnVuY3Rpb25zIGV4cGFuc2lvbiAgICAgIDogIDY3LjI5ICggNjMl KSAgIDAuNjkgKCAyNCUpICA2OC4xMiAoIDYyJSkgICAzNjJNICggMzMlKQogY2FsbGdyYXBo IGlwYSBwYXNzZXMgICAgICAgICAgICAgICA6ICAyNi4zNSAoIDI1JSkgICAwLjk4ICggMzQl KSAgMjcuMzkgKCAyNSUpICAgMjI2TSAoIDIxJSkKIGlwYSBmdW5jdGlvbiBzdW1tYXJ5ICAg ICAgICAgICAgICAgOiAgIDAuMjMgKCAgMCUpICAgMC4wMCAoICAwJSkgICAwLjIzICggIDAl KSAgNDY2M2sgKCAgMCUpCiBpcGEgZGVhZCBjb2RlIHJlbW92YWwgICAgICAgICAgICAgIDog ICAwLjA4ICggIDAlKSAgIDAuMDEgKCAgMCUpICAgMC4wOCAoICAwJSkgICAgNTYgICggIDAl KQogaXBhIGRldmlydHVhbGl6YXRpb24gICAgICAgICAgICAgICA6ICAgMC4wMSAoICAwJSkg ICAwLjAwICggIDAlKSAgIDAuMDIgKCAgMCUpICA0OTQ0ICAoICAwJSkKIGlwYSBjcCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgOiAgIDAuNTUgKCAgMSUpICAgMC4wMSAoICAwJSkg ICAwLjUyICggIDAlKSAgNDg2MmsgKCAgMCUpCiBpcGEgaW5saW5pbmcgaGV1cmlzdGljcyAg ICAgICAgICAgIDogICAwLjcwICggIDElKSAgIDAuMDIgKCAgMSUpICAgMC44MyAoICAxJSkg ICAgMjJNICggIDIlKQogaXBhIGZ1bmN0aW9uIHNwbGl0dGluZyAgICAgICAgICAgICA6ICAg MC4xOSAoICAwJSkgICAwLjAxICggIDAlKSAgIDAuMTggKCAgMCUpICAgNzA1ayAoICAwJSkK IGlwYSBjb21kYXRzICAgICAgICAgICAgICAgICAgICAgICAgOiAgIDAuMDAgKCAgMCUpICAg MC4wMCAoICAwJSkgICAwLjAxICggIDAlKSAgICAgMCAgKCAgMCUpCiBpcGEgcmVmZXJlbmNl ICAgICAgICAgICAgICAgICAgICAgIDogICAwLjAyICggIDAlKSAgIDAuMDAgKCAgMCUpICAg MC4wMiAoICAwJSkgICAgIDAgICggIDAlKQogaXBhIHByb2ZpbGUgICAgICAgICAgICAgICAg ICAgICAgICA6ICAgMC4wMiAoICAwJSkgICAwLjAwICggIDAlKSAgIDAuMDEgKCAgMCUpICAg ICAwICAoICAwJSkKIGlwYSBwdXJlIGNvbnN0ICAgICAgICAgICAgICAgICAgICAgOiAgIDAu MTQgKCAgMCUpICAgMC4wMSAoICAwJSkgICAwLjIyICggIDAlKSAgIDQzN2sgKCAgMCUpCiBp cGEgaWNmICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogICAwLjE2ICggIDAlKSAgIDAu MDAgKCAgMCUpICAgMC4xNiAoICAwJSkgICAgNDRrICggIDAlKQogaXBhIFNSQSAgICAgICAg ICAgICAgICAgICAgICAgICAgICA6ICAgMC4yNCAoICAwJSkgICAwLjAxICggIDAlKSAgIDAu MjIgKCAgMCUpICA2MjI5ayAoICAxJSkKIGlwYSBmcmVlIGxhbmcgZGF0YSAgICAgICAgICAg ICAgICAgOiAgIDAuMDMgKCAgMCUpICAgMC4wMCAoICAwJSkgICAwLjAyICggIDAlKSAgICAg MCAgKCAgMCUpCiBpcGEgZnJlZSBpbmxpbmUgc3VtbWFyeSAgICAgICAgICAgIDogICAwLjA0 ICggIDAlKSAgIDAuMDAgKCAgMCUpICAgMC4wNCAoICAwJSkgICAgIDAgICggIDAlKQogaXBh IG1vZHJlZiAgICAgICAgICAgICAgICAgICAgICAgICA6ICAgMC4xMSAoICAwJSkgICAwLjAw ICggIDAlKSAgIDAuMTEgKCAgMCUpICAxODU4ayAoICAwJSkKIGNmZyBjb25zdHJ1Y3Rpb24g ICAgICAgICAgICAgICAgICAgOiAgIDAuMDYgKCAgMCUpICAgMC4wMCAoICAwJSkgICAwLjA2 ICggIDAlKSAgMTE4N2sgKCAgMCUpCiBjZmcgY2xlYW51cCAgICAgICAgICAgICAgICAgICAg ICAgIDogICAwLjQ1ICggIDAlKSAgIDAuMDEgKCAgMCUpICAgMC4zNSAoICAwJSkgIDE0NjRr ICggIDAlKQogQ0ZHIHZlcmlmaWVyICAgICAgICAgICAgICAgICAgICAgICA6ICAgNC4xNSAo ICA0JSkgICAwLjE4ICggIDYlKSAgIDQuMzcgKCAgNCUpICAgICAwICAoICAwJSkKIHRyaXZp YWxseSBkZWFkIGNvZGUgICAgICAgICAgICAgICAgOiAgIDAuMTAgKCAgMCUpICAgMC4wMCAo ICAwJSkgICAwLjA5ICggIDAlKSAgICAgMCAgKCAgMCUpCiBkZiBzY2FuIGluc25zICAgICAg ICAgICAgICAgICAgICAgIDogICAwLjI5ICggIDAlKSAgIDAuMDAgKCAgMCUpICAgMC4yMyAo ICAwJSkgICAgNDNrICggIDAlKQogZGYgcmVhY2hpbmcgZGVmcyAgICAgICAgICAgICAgICAg ICA6ICAgMC4zMiAoICAwJSkgICAwLjAwICggIDAlKSAgIDAuMzggKCAgMCUpICAgICAwICAo ICAwJSkKIGRmIGxpdmUgcmVncyAgICAgICAgICAgICAgICAgICAgICAgOiAgIDEuMDIgKCAg MSUpICAgMC4wMCAoICAwJSkgICAwLjk2ICggIDElKSAgICAgMCAgKCAgMCUpCiBkZiBsaXZl JmluaXRpYWxpemVkIHJlZ3MgICAgICAgICAgIDogICAwLjM1ICggIDAlKSAgIDAuMDAgKCAg MCUpICAgMC4yOCAoICAwJSkgICAgIDAgICggIDAlKQogZGYgbXVzdC1pbml0aWFsaXplZCBy ZWdzICAgICAgICAgICA6ICAgMC4wNSAoICAwJSkgICAwLjAwICggIDAlKSAgIDAuMDEgKCAg MCUpICAgICAwICAoICAwJSkKIGRmIHVzZS1kZWYgLyBkZWYtdXNlIGNoYWlucyAgICAgICAg OiAgIDAuMTUgKCAgMCUpICAgMC4wMCAoICAwJSkgICAwLjIwICggIDAlKSAgICAgMCAgKCAg MCUpCiBkZiByZWcgZGVhZC91bnVzZWQgbm90ZXMgICAgICAgICAgIDogICAwLjQzICggIDAl KSAgIDAuMDAgKCAgMCUpICAgMC40MSAoICAwJSkgIDQyMDVrICggIDAlKQogcmVnaXN0ZXIg aW5mb3JtYXRpb24gICAgICAgICAgICAgICA6ICAgMC4wOCAoICAwJSkgICAwLjAwICggIDAl KSAgIDAuMTIgKCAgMCUpICAgICAwICAoICAwJSkKIGFsaWFzIGFuYWx5c2lzICAgICAgICAg ICAgICAgICAgICAgOiAgIDAuMjkgKCAgMCUpICAgMC4wMCAoICAwJSkgICAwLjM3ICggIDAl KSAgICAxMU0gKCAgMSUpCiBhbGlhcyBzdG10IHdhbGtpbmcgICAgICAgICAgICAgICAgIDog ICA0LjI1ICggIDQlKSAgIDAuMDQgKCAgMSUpICAgNC4zNiAoICA0JSkgIDEzNjZrICggIDAl KQogcmVnaXN0ZXIgc2NhbiAgICAgICAgICAgICAgICAgICAgICA6ICAgMC4wMyAoICAwJSkg ICAwLjAwICggIDAlKSAgIDAuMDEgKCAgMCUpICAgMTE3ayAoICAwJSkKIHJlYnVpbGQganVt cCBsYWJlbHMgICAgICAgICAgICAgICAgOiAgIDAuMDMgKCAgMCUpICAgMC4wMCAoICAwJSkg ICAwLjA2ICggIDAlKSAgICAgMCAgKCAgMCUpCiBwcmVwcm9jZXNzaW5nICAgICAgICAgICAg ICAgICAgICAgIDogICAwLjMyICggIDAlKSAgIDAuMTAgKCAgMyUpICAgMC4zOSAoICAwJSkg IDU2MTFrICggIDElKQogcGFyc2VyIChnbG9iYWwpICAgICAgICAgICAgICAgICAgICA6ICAg MC42MCAoICAxJSkgICAwLjIzICggIDglKSAgIDAuNzYgKCAgMSUpICAgIDU3TSAoICA1JSkK IHBhcnNlciBzdHJ1Y3QgYm9keSAgICAgICAgICAgICAgICAgOiAgIDAuNzMgKCAgMSUpICAg MC4wMyAoICAxJSkgICAwLjY5ICggIDElKSAgICAzN00gKCAgMyUpCiBwYXJzZXIgZW51bWVy YXRvciBsaXN0ICAgICAgICAgICAgIDogICAwLjAzICggIDAlKSAgIDAuMDAgKCAgMCUpICAg MC4wMyAoICAwJSkgICAzNTdrICggIDAlKQogcGFyc2VyIGZ1bmN0aW9uIGJvZHkgICAgICAg ICAgICAgICA6ICAgMC4zOSAoICAwJSkgICAwLjAyICggIDElKSAgIDAuMzcgKCAgMCUpICA5 ODU3ayAoICAxJSkKIHBhcnNlciBpbmwuIGZ1bmMuIGJvZHkgICAgICAgICAgICAgOiAgIDAu MjQgKCAgMCUpICAgMC4wMSAoICAwJSkgICAwLjI1ICggIDAlKSAgNTk3MGsgKCAgMSUpCiBw YXJzZXIgaW5sLiBtZXRoLiBib2R5ICAgICAgICAgICAgIDogICAwLjQzICggIDAlKSAgIDAu MTEgKCAgNCUpICAgMC43MSAoICAxJSkgICAgMjVNICggIDIlKQogdGVtcGxhdGUgaW5zdGFu dGlhdGlvbiAgICAgICAgICAgICA6ICAgNC45MiAoICA1JSkgICAwLjM4ICggMTMlKSAgIDUu MzUgKCAgNSUpICAgMjYxTSAoIDI0JSkKIGNvbnN0YW50IGV4cHJlc3Npb24gZXZhbHVhdGlv biAgICAgOiAgIDAuMDkgKCAgMCUpICAgMC4wMSAoICAwJSkgICAwLjE0ICggIDAlKSAgMTU2 M2sgKCAgMCUpCiBlYXJseSBpbmxpbmluZyBoZXVyaXN0aWNzICAgICAgICAgIDogICAwLjMz ICggIDAlKSAgIDAuMDEgKCAgMCUpICAgMC4zNSAoICAwJSkgICAgMTBNICggIDElKQogaW5s aW5lIHBhcmFtZXRlcnMgICAgICAgICAgICAgICAgICA6ICAgMC41MyAoICAwJSkgICAwLjA1 ICggIDIlKSAgIDAuNzEgKCAgMSUpICAgIDE1TSAoICAxJSkKIGludGVncmF0aW9uICAgICAg ICAgICAgICAgICAgICAgICAgOiAgIDIuMDMgKCAgMiUpICAgMC4wNyAoICAyJSkgICAyLjE0 ICggIDIlKSAgIDEyNk0gKCAxMiUpCiB0cmVlIGdpbXBsaWZ5ICAgICAgICAgICAgICAgICAg ICAgIDogICAwLjUzICggIDAlKSAgIDAuMDcgKCAgMiUpICAgMC41MSAoICAwJSkgICAgMzhN ICggIDQlKQogdHJlZSBlaCAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICAgMC4xNSAo ICAwJSkgICAwLjAwICggIDAlKSAgIDAuMjIgKCAgMCUpICAgIDEwTSAoICAxJSkKIHRyZWUg Q0ZHIGNvbnN0cnVjdGlvbiAgICAgICAgICAgICAgOiAgIDAuMTUgKCAgMCUpICAgMC4wMSAo ICAwJSkgICAwLjE4ICggIDAlKSAgICAxN00gKCAgMiUpCiB0cmVlIENGRyBjbGVhbnVwICAg ICAgICAgICAgICAgICAgIDogICAxLjA1ICggIDElKSAgIDAuMDMgKCAgMSUpICAgMS4zMiAo ICAxJSkgICA2MjVrICggIDAlKQogdHJlZSB0YWlsIG1lcmdlICAgICAgICAgICAgICAgICAg ICA6ICAgMC4wNSAoICAwJSkgICAwLjAwICggIDAlKSAgIDAuMDcgKCAgMCUpICAxNzcyayAo ICAwJSkKIHRyZWUgVlJQICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAgIDIuMjAgKCAg MiUpICAgMC4wMiAoICAxJSkgICAyLjI2ICggIDIlKSAgICAxNE0gKCAgMSUpCiB0cmVlIEVh cmx5IFZSUCAgICAgICAgICAgICAgICAgICAgIDogICAxLjUzICggIDElKSAgIDAuMDYgKCAg MiUpICAgMS40NiAoICAxJSkgICAgMTJNICggIDElKQogdHJlZSBjb3B5IHByb3BhZ2F0aW9u ICAgICAgICAgICAgICA6ICAgMC4zMSAoICAwJSkgICAwLjAwICggIDAlKSAgIDAuMjYgKCAg MCUpICAgMTg4ayAoICAwJSkKIHRyZWUgUFRBICAgICAgICAgICAgICAgICAgICAgICAgICAg OiAgIDEuOTAgKCAgMiUpICAgMC4wNSAoICAyJSkgICAyLjE2ICggIDIlKSAgNTMwOWsgKCAg MCUpCiB0cmVlIFBISSBpbnNlcnRpb24gICAgICAgICAgICAgICAgIDogICAwLjAzICggIDAl KSAgIDAuMDAgKCAgMCUpICAgMC4wNCAoICAwJSkgIDE4MjZrICggIDAlKQogdHJlZSBTU0Eg cmV3cml0ZSAgICAgICAgICAgICAgICAgICA6ICAgMC40NiAoICAwJSkgICAwLjAxICggIDAl KSAgIDAuNDUgKCAgMCUpICAgIDE1TSAoICAxJSkKIHRyZWUgU1NBIG90aGVyICAgICAgICAg ICAgICAgICAgICAgOiAgIDAuMTIgKCAgMCUpICAgMC4wMiAoICAxJSkgICAwLjE2ICggIDAl KSAgMTU5N2sgKCAgMCUpCiB0cmVlIFNTQSBpbmNyZW1lbnRhbCAgICAgICAgICAgICAgIDog ICAwLjQyICggIDAlKSAgIDAuMDMgKCAgMSUpICAgMC40MyAoICAwJSkgIDM0MzRrICggIDAl KQogdHJlZSBvcGVyYW5kIHNjYW4gICAgICAgICAgICAgICAgICA6ICAgMC44MiAoICAxJSkg ICAwLjA1ICggIDIlKSAgIDAuNzcgKCAgMSUpICAgIDQzTSAoICA0JSkKIGRvbWluYXRvciBv cHRpbWl6YXRpb24gICAgICAgICAgICAgOiAgIDIuNTMgKCAgMiUpICAgMC4wNCAoICAxJSkg ICAyLjYwICggIDIlKSAgICAxMk0gKCAgMSUpCiBiYWNrd2FyZHMganVtcCB0aHJlYWRpbmcg ICAgICAgICAgIDogICAwLjEzICggIDAlKSAgIDAuMDAgKCAgMCUpICAgMC4xNCAoICAwJSkg ICAzNDdrICggIDAlKQogdHJlZSBTUkEgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICAg MC4yNiAoICAwJSkgICAwLjAwICggIDAlKSAgIDAuMjUgKCAgMCUpICAxMDg0ayAoICAwJSkK IGlzb2xhdGUgZXJvbmVvdXMgcGF0aHMgICAgICAgICAgICAgOiAgIDAuMDMgKCAgMCUpICAg MC4wMCAoICAwJSkgICAwLjA2ICggIDAlKSAgMTU4NCAgKCAgMCUpCiB0cmVlIENDUCAgICAg ICAgICAgICAgICAgICAgICAgICAgIDogICAxLjQzICggIDElKSAgIDAuMDMgKCAgMSUpICAg MS43NCAoICAyJSkgIDQ0NTFrICggIDAlKQogdHJlZSBzcGxpdCBjcml0IGVkZ2VzICAgICAg ICAgICAgICA6ICAgMC4wNCAoICAwJSkgICAwLjAwICggIDAlKSAgIDAuMDUgKCAgMCUpICAx NTc4ayAoICAwJSkKIHRyZWUgcmVhc3NvY2lhdGlvbiAgICAgICAgICAgICAgICAgOiAgIDAu MDggKCAgMCUpICAgMC4wMCAoICAwJSkgICAwLjA3ICggIDAlKSAgICAxOGsgKCAgMCUpCiB0 cmVlIFBSRSAgICAgICAgICAgICAgICAgICAgICAgICAgIDogICAyLjA3ICggIDIlKSAgIDAu MDMgKCAgMSUpICAgMS44NyAoICAyJSkgICAgMTFNICggIDElKQogdHJlZSBGUkUgICAgICAg ICAgICAgICAgICAgICAgICAgICA6ICAgMi41NyAoICAyJSkgICAwLjAyICggIDElKSAgIDIu ODIgKCAgMyUpICA2ODkwayAoICAxJSkKIHRyZWUgY29kZSBzaW5raW5nICAgICAgICAgICAg ICAgICAgOiAgIDAuMDYgKCAgMCUpICAgMC4wMCAoICAwJSkgICAwLjA5ICggIDAlKSAgMTMw N2sgKCAgMCUpCiB0cmVlIGxpbmVhcml6ZSBwaGlzICAgICAgICAgICAgICAgIDogICAwLjE3 ICggIDAlKSAgIDAuMDAgKCAgMCUpICAgMC4yMCAoICAwJSkgICA5OTNrICggIDAlKQogdHJl ZSBiYWNrd2FyZCBwcm9wYWdhdGUgICAgICAgICAgICA6ICAgMC4wMSAoICAwJSkgICAwLjAw ICggIDAlKSAgIDAuMDUgKCAgMCUpICAgICAwICAoICAwJSkKIHRyZWUgZm9yd2FyZCBwcm9w YWdhdGUgICAgICAgICAgICAgOiAgIDAuOTMgKCAgMSUpICAgMC4wNCAoICAxJSkgICAwLjgw ICggIDElKSAgMjI0NGsgKCAgMCUpCiB0cmVlIHBoaXByb3AgICAgICAgICAgICAgICAgICAg ICAgIDogICAwLjAyICggIDAlKSAgIDAuMDAgKCAgMCUpICAgMC4wMiAoICAwJSkgICAgMTlr ICggIDAlKQogdHJlZSBjb25zZXJ2YXRpdmUgRENFICAgICAgICAgICAgICA6ICAgMC4yNCAo ICAwJSkgICAwLjAwICggIDAlKSAgIDAuMjMgKCAgMCUpICAgNDQ5ayAoICAwJSkKIHRyZWUg YWdncmVzc2l2ZSBEQ0UgICAgICAgICAgICAgICAgOiAgIDAuMzkgKCAgMCUpICAgMC4wMCAo ICAwJSkgICAwLjM5ICggIDAlKSAgICAxMk0gKCAgMSUpCiB0cmVlIGJ1aWxkaW4gY2FsbCBE Q0UgICAgICAgICAgICAgIDogICAwLjAxICggIDAlKSAgIDAuMDAgKCAgMCUpICAgMC4wMSAo ICAwJSkgIDM1MDQgICggIDAlKQogdHJlZSBEU0UgICAgICAgICAgICAgICAgICAgICAgICAg ICA6ICAgMS4xNiAoICAxJSkgICAwLjAwICggIDAlKSAgIDEuMDggKCAgMSUpICAgMzM5ayAo ICAwJSkKIFBISSBtZXJnZSAgICAgICAgICAgICAgICAgICAgICAgICAgOiAgIDAuMDUgKCAg MCUpICAgMC4wMCAoICAwJSkgICAwLjA4ICggIDAlKSAgIDEyOGsgKCAgMCUpCiB0cmVlIGxv b3Agb3B0aW1pemF0aW9uICAgICAgICAgICAgIDogICAwLjAwICggIDAlKSAgIDAuMDAgKCAg MCUpICAgMC4wMSAoICAwJSkgICAgIDAgICggIDAlKQogdHJlZSBsb29wIGludmFyaWFudCBt b3Rpb24gICAgICAgICA6ICAgMC4zMiAoICAwJSkgICAwLjAwICggIDAlKSAgIDAuMjUgKCAg MCUpICAgMTE3ayAoICAwJSkKIHRyZWUgY2Fub25pY2FsIGl2ICAgICAgICAgICAgICAgICAg OiAgIDAuMjQgKCAgMCUpICAgMC4wMCAoICAwJSkgICAwLjE0ICggIDAlKSAgMjE2OGsgKCAg MCUpCiBzY2V2IGNvbnN0YW50IHByb3AgICAgICAgICAgICAgICAgIDogICAwLjAzICggIDAl KSAgIDAuMDAgKCAgMCUpICAgMC4wOSAoICAwJSkgICA1MzdrICggIDAlKQogY29tcGxldGUg dW5yb2xsaW5nICAgICAgICAgICAgICAgICA6ICAgMS41NiAoICAxJSkgICAwLjAxICggIDAl KSAgIDEuMzIgKCAgMSUpICAgIDE0TSAoICAxJSkKIHRyZWUgbG9vcCBkaXN0cmlidXRpb24g ICAgICAgICAgICAgOiAgIDAuMzMgKCAgMCUpICAgMC4wMCAoICAwJSkgICAwLjM1ICggIDAl KSAgMzQ4OGsgKCAgMCUpCiB0cmVlIGl2IG9wdGltaXphdGlvbiAgICAgICAgICAgICAgIDog ICAxLjQyICggIDElKSAgIDAuMDEgKCAgMCUpICAgMS4zOCAoICAxJSkgICAgMTlNICggIDIl KQogdHJlZSBjb3B5IGhlYWRlcnMgICAgICAgICAgICAgICAgICA6ICAgMC4xMSAoICAwJSkg ICAwLjAwICggIDAlKSAgIDAuMTAgKCAgMCUpICAxNDM4ayAoICAwJSkKIHRyZWUgU1NBIHVu Y3Byb3AgICAgICAgICAgICAgICAgICAgOiAgIDAuMDUgKCAgMCUpICAgMC4wMCAoICAwJSkg ICAwLjAzICggIDAlKSAgICAgMCAgKCAgMCUpCiB0cmVlIE5SViBvcHRpbWl6YXRpb24gICAg ICAgICAgICAgIDogICAwLjAxICggIDAlKSAgIDAuMDAgKCAgMCUpICAgMC4wMSAoICAwJSkg IDE4MjQgICggIDAlKQogdHJlZSBTU0EgdmVyaWZpZXIgICAgICAgICAgICAgICAgICA6ICAx MS4yNCAoIDExJSkgICAwLjI5ICggMTAlKSAgMTIuMDAgKCAxMSUpICAgICAwICAoICAwJSkK IHRyZWUgU1RNVCB2ZXJpZmllciAgICAgICAgICAgICAgICAgOiAgMTcuMTcgKCAxNiUpICAg MC4yNyAoICA5JSkgIDE2LjkwICggMTUlKSAgICAgMCAgKCAgMCUpCiB0cmVlIHN3aXRjaCBj b252ZXJzaW9uICAgICAgICAgICAgIDogICAwLjA0ICggIDAlKSAgIDAuMDAgKCAgMCUpICAg MC4wMiAoICAwJSkgICAgIDAgICggIDAlKQogdHJlZSBzd2l0Y2ggbG93ZXJpbmcgICAgICAg ICAgICAgICA6ICAgMC4wNCAoICAwJSkgICAwLjAwICggIDAlKSAgIDAuMDIgKCAgMCUpICAg ICAwICAoICAwJSkKIGdpbXBsZSBDU0Ugc2luL2NvcyAgICAgICAgICAgICAgICAgOiAgIDAu MDIgKCAgMCUpICAgMC4wMCAoICAwJSkgICAwLjAwICggIDAlKSAgICAgMCAgKCAgMCUpCiBn aW1wbGUgd2lkZW5pbmcvZm1hIGRldGVjdGlvbiAgICAgIDogICAwLjA1ICggIDAlKSAgIDAu MDAgKCAgMCUpICAgMC4wMSAoICAwJSkgICAgMTNrICggIDAlKQogdHJlZSBzdHJsZW4gb3B0 aW1pemF0aW9uICAgICAgICAgICA6ICAgMC42MyAoICAxJSkgICAwLjAwICggIDAlKSAgIDAu NTUgKCAgMSUpICA0MDIxayAoICAwJSkKIHRyZWUgbW9kcmVmICAgICAgICAgICAgICAgICAg ICAgICAgOiAgIDAuMjQgKCAgMCUpICAgMC4wMCAoICAwJSkgICAwLjMzICggIDAlKSAgNTY1 MmsgKCAgMSUpCiBjYWxsZ3JhcGggdmVyaWZpZXIgICAgICAgICAgICAgICAgIDogICAwLjU4 ICggIDElKSAgIDAuMDIgKCAgMSUpICAgMC41MyAoICAwJSkgICAgIDAgICggIDAlKQogZG9t aW5hbmNlIGZyb250aWVycyAgICAgICAgICAgICAgICA6ICAgMC4wMCAoICAwJSkgICAwLjAw ICggIDAlKSAgIDAuMDcgKCAgMCUpICAgICAwICAoICAwJSkKIGRvbWluYW5jZSBjb21wdXRh dGlvbiAgICAgICAgICAgICAgOiAgIDEuMTkgKCAgMSUpICAgMC4wMCAoICAwJSkgICAxLjM2 ICggIDElKSAgICAgMCAgKCAgMCUpCiBjb250cm9sIGRlcGVuZGVuY2VzICAgICAgICAgICAg ICAgIDogICAwLjAyICggIDAlKSAgIDAuMDAgKCAgMCUpICAgMC4wNiAoICAwJSkgICAgIDAg ICggIDAlKQogb3V0IG9mIHNzYSAgICAgICAgICAgICAgICAgICAgICAgICA6ICAgMC4xMSAo ICAwJSkgICAwLjAwICggIDAlKSAgIDAuMTAgKCAgMCUpICAgIDYwayAoICAwJSkKIGV4cGFu ZCB2YXJzICAgICAgICAgICAgICAgICAgICAgICAgOiAgIDAuMTkgKCAgMCUpICAgMC4wMCAo ICAwJSkgICAwLjA5ICggIDAlKSAgMzEwOGsgKCAgMCUpCiBleHBhbmQgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDogICAwLjU5ICggIDElKSAgIDAuMDAgKCAgMCUpICAgMC42OCAo ICAxJSkgICAgMzBNICggIDMlKQogcG9zdCBleHBhbmQgY2xlYW51cHMgICAgICAgICAgICAg ICA6ICAgMC4wOCAoICAwJSkgICAwLjAwICggIDAlKSAgIDAuMDMgKCAgMCUpICAyMjgwayAo ICAwJSkKIHZhcmNvbnN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAgIDAuMDMgKCAg MCUpICAgMC4wMCAoICAwJSkgICAwLjAxICggIDAlKSAgICAxNmsgKCAgMCUpCiBsb3dlciBz dWJyZWcgICAgICAgICAgICAgICAgICAgICAgIDogICAwLjAwICggIDAlKSAgIDAuMDAgKCAg MCUpICAgMC4wMiAoICAwJSkgICAgMjFrICggIDAlKQoganVtcCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA6ICAgMC4wMiAoICAwJSkgICAwLjAwICggIDAlKSAgIDAuMDAgKCAg MCUpICAgICAwICAoICAwJSkKIGZvcndhcmQgcHJvcCAgICAgICAgICAgICAgICAgICAgICAg OiAgIDAuNTkgKCAgMSUpICAgMC4wMCAoICAwJSkgICAwLjY5ICggIDElKSAgIDI4NGsgKCAg MCUpCiBDU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogICAwLjUzICggIDAl KSAgIDAuMDEgKCAgMCUpICAgMC41OSAoICAxJSkgIDE3NzJrICggIDAlKQogZGVhZCBjb2Rl IGVsaW1pbmF0aW9uICAgICAgICAgICAgICA6ICAgMC4xMSAoICAwJSkgICAwLjAwICggIDAl KSAgIDAuMDUgKCAgMCUpICAgICAwICAoICAwJSkKIGRlYWQgc3RvcmUgZWxpbTEgICAgICAg ICAgICAgICAgICAgOiAgIDAuMTkgKCAgMCUpICAgMC4wMCAoICAwJSkgICAwLjE3ICggIDAl KSAgMjc1NmsgKCAgMCUpCiBkZWFkIHN0b3JlIGVsaW0yICAgICAgICAgICAgICAgICAgIDog ICAwLjM2ICggIDAlKSAgIDAuMDAgKCAgMCUpICAgMC4zNCAoICAwJSkgIDM5NzZrICggIDAl KQogbG9vcCBhbmFseXNpcyAgICAgICAgICAgICAgICAgICAgICA6ICAgMC4wNCAoICAwJSkg ICAwLjAwICggIDAlKSAgIDAuMDIgKCAgMCUpICAgICAwICAoICAwJSkKIGxvb3AgaW5pdCAg ICAgICAgICAgICAgICAgICAgICAgICAgOiAgIDEuODUgKCAgMiUpICAgMC4wMiAoICAxJSkg ICAxLjgxICggIDIlKSAgICAyNU0gKCAgMiUpCiBsb29wIGludmFyaWFudCBtb3Rpb24gICAg ICAgICAgICAgIDogICAwLjEwICggIDAlKSAgIDAuMDAgKCAgMCUpICAgMC4wOCAoICAwJSkg ICAxNDVrICggIDAlKQogbG9vcCBmaW5pICAgICAgICAgICAgICAgICAgICAgICAgICA6ICAg MC4wNSAoICAwJSkgICAwLjAxICggIDAlKSAgIDAuMDUgKCAgMCUpICAgIDE0ayAoICAwJSkK IENQUk9QICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAgIDAuNTEgKCAgMCUpICAg MC4wMSAoICAwJSkgICAwLjY0ICggIDElKSAgNDIxOGsgKCAgMCUpCiBQUkUgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDogICAwLjQ3ICggIDAlKSAgIDAuMDAgKCAgMCUpICAg MC41NiAoICAxJSkgIDE1NDVrICggIDAlKQogQ1NFIDIgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA6ICAgMC4yNSAoICAwJSkgICAwLjAwICggIDAlKSAgIDAuMzggKCAgMCUpICAg NzM2ayAoICAwJSkKIGJyYW5jaCBwcmVkaWN0aW9uICAgICAgICAgICAgICAgICAgOiAgIDAu MzcgKCAgMCUpICAgMC4wMyAoICAxJSkgICAwLjM0ICggIDAlKSAgMzI3MmsgKCAgMCUpCiBj b21iaW5lciAgICAgICAgICAgICAgICAgICAgICAgICAgIDogICAwLjg0ICggIDElKSAgIDAu MDEgKCAgMCUpICAgMC43MSAoICAxJSkgIDc2MTNrICggIDElKQogaWYtY29udmVyc2lvbiAg ICAgICAgICAgICAgICAgICAgICA6ICAgMC4wNSAoICAwJSkgICAwLjAwICggIDAlKSAgIDAu MDQgKCAgMCUpICAgMzEyayAoICAwJSkKIGludGVncmF0ZWQgUkEgICAgICAgICAgICAgICAg ICAgICAgOiAgIDIuMTcgKCAgMiUpICAgMC4wMyAoICAxJSkgICAyLjE1ICggIDIlKSAgICA0 NE0gKCAgNCUpCiBMUkEgbm9uLXNwZWNpZmljICAgICAgICAgICAgICAgICAgIDogICAwLjU0 ICggIDElKSAgIDAuMDAgKCAgMCUpICAgMC41NCAoICAwJSkgIDQwMjhrICggIDAlKQogTFJB IHZpcnR1YWxzIGVsaW1pbmF0aW9uICAgICAgICAgICA6ICAgMC4xNiAoICAwJSkgICAwLjAx ICggIDAlKSAgIDAuMTQgKCAgMCUpICAyMTI5ayAoICAwJSkKIExSQSByZWxvYWQgaW5oZXJp dGFuY2UgICAgICAgICAgICAgOiAgIDAuMTMgKCAgMCUpICAgMC4wMCAoICAwJSkgICAwLjE0 ICggIDAlKSAgIDM5MWsgKCAgMCUpCiBMUkEgY3JlYXRlIGxpdmUgcmFuZ2VzICAgICAgICAg ICAgIDogICAwLjQ5ICggIDAlKSAgIDAuMDAgKCAgMCUpICAgMC42MCAoICAxJSkgICA0MTdr ICggIDAlKQogTFJBIGhhcmQgcmVnIGFzc2lnbm1lbnQgICAgICAgICAgICA6ICAgMC4xMCAo ICAwJSkgICAwLjAwICggIDAlKSAgIDAuMDkgKCAgMCUpICAgICAwICAoICAwJSkKIExSQSBy ZW1hdGVyaWFsaXphdGlvbiAgICAgICAgICAgICAgOiAgIDAuMTUgKCAgMCUpICAgMC4wMCAo ICAwJSkgICAwLjA3ICggIDAlKSAgMjEyOCAgKCAgMCUpCiByZWxvYWQgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDogICAwLjAwICggIDAlKSAgIDAuMDAgKCAgMCUpICAgMC4wMyAo ICAwJSkgICAgIDAgICggIDAlKQogcmVsb2FkIENTRSByZWdzICAgICAgICAgICAgICAgICAg ICA6ICAgMC41NyAoICAxJSkgICAwLjAwICggIDAlKSAgIDAuNjggKCAgMSUpICA0Mzc2ayAo ICAwJSkKIHJlZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAgIDAuMDQgKCAg MCUpICAgMC4wMCAoICAwJSkgICAwLjA0ICggIDAlKSAgICA0OGsgKCAgMCUpCiB0aHJlYWQg cHJvLSAmIGVwaWxvZ3VlICAgICAgICAgICAgIDogICAwLjQ0ICggIDAlKSAgIDAuMDEgKCAg MCUpICAgMC4yOSAoICAwJSkgIDI1OTFrICggIDAlKQogaWYtY29udmVyc2lvbiAyICAgICAg ICAgICAgICAgICAgICA6ICAgMC4wMiAoICAwJSkgICAwLjAwICggIDAlKSAgIDAuMDIgKCAg MCUpICAgIDExayAoICAwJSkKIGNvbWJpbmUgc3RhY2sgYWRqdXN0bWVudHMgICAgICAgICAg OiAgIDAuMDQgKCAgMCUpICAgMC4wMCAoICAwJSkgICAwLjAyICggIDAlKSAgICAgMCAgKCAg MCUpCiBwZWVwaG9sZSAyICAgICAgICAgICAgICAgICAgICAgICAgIDogICAwLjA4ICggIDAl KSAgIDAuMDAgKCAgMCUpICAgMC4wNyAoICAwJSkgICA0NzlrICggIDAlKQogaGFyZCByZWcg Y3Byb3AgICAgICAgICAgICAgICAgICAgICA6ICAgMC4xOCAoICAwJSkgICAwLjAxICggIDAl KSAgIDAuMTYgKCAgMCUpICAgIDM2ayAoICAwJSkKIHNjaGVkdWxpbmcgMiAgICAgICAgICAg ICAgICAgICAgICAgOiAgIDEuNDkgKCAgMSUpICAgMC4wMCAoICAwJSkgICAxLjM3ICggIDEl KSAgMTkwMmsgKCAgMCUpCiBtYWNoaW5lIGRlcCByZW9yZyAgICAgICAgICAgICAgICAgIDog ICAwLjA4ICggIDAlKSAgIDAuMDAgKCAgMCUpICAgMC4wNyAoICAwJSkgICAgIDAgICggIDAl KQogcmVvcmRlciBibG9ja3MgICAgICAgICAgICAgICAgICAgICA6ICAgMC4xNiAoICAwJSkg ICAwLjAwICggIDAlKSAgIDAuMTcgKCAgMCUpICAxMzQwayAoICAwJSkKIHNob3J0ZW4gYnJh bmNoZXMgICAgICAgICAgICAgICAgICAgOiAgIDAuMDUgKCAgMCUpICAgMC4wMCAoICAwJSkg ICAwLjA2ICggIDAlKSAgICAgMCAgKCAgMCUpCiBmaW5hbCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDogICAwLjEzICggIDAlKSAgIDAuMDEgKCAgMCUpICAgMC4xOCAoICAwJSkg IDY3MzZrICggIDElKQogdmFyaWFibGUgb3V0cHV0ICAgICAgICAgICAgICAgICAgICA6ICAg MC4wMSAoICAwJSkgICAwLjAwICggIDAlKSAgIDAuMDAgKCAgMCUpICAgMTk2ayAoICAwJSkK IHN5bW91dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAgIDAuMDEgKCAgMCUpICAg MC4wMCAoICAwJSkgICAwLjAwICggIDAlKSAgICAgMCAgKCAgMCUpCiB0cmVlIGlmLWNvbWJp bmUgICAgICAgICAgICAgICAgICAgIDogICAwLjAwICggIDAlKSAgIDAuMDAgKCAgMCUpICAg MC4wMyAoICAwJSkgICAgMTdrICggIDAlKQogaWYgdG8gc3dpdGNoIGNvbnZlcnNpb24gICAg ICAgICAgICA6ICAgMC4wNCAoICAwJSkgICAwLjAwICggIDAlKSAgIDAuMDYgKCAgMCUpICAg ICAwICAoICAwJSkKIHN0cmFpZ2h0LWxpbmUgc3RyZW5ndGggcmVkdWN0aW9uICAgOiAgIDAu MTIgKCAgMCUpICAgMC4wMCAoICAwJSkgICAwLjA3ICggIDAlKSAgICA1NmsgKCAgMCUpCiBz dG9yZSBtZXJnaW5nICAgICAgICAgICAgICAgICAgICAgIDogICAwLjM4ICggIDAlKSAgIDAu MDAgKCAgMCUpICAgMC4yOSAoICAwJSkgIDExMDdrICggIDAlKQogaW5pdGlhbGl6ZSBydGwg ICAgICAgICAgICAgICAgICAgICA6ICAgMC4wMSAoICAwJSkgICAwLjAwICggIDAlKSAgIDAu MDEgKCAgMCUpICAgIDEyayAoICAwJSkKIGFkZHJlc3MgbG93ZXJpbmcgICAgICAgICAgICAg ICAgICAgOiAgIDAuMDcgKCAgMCUpICAgMC4wMSAoICAwJSkgICAwLjEyICggIDAlKSAgMTU4 NmsgKCAgMCUpCiBlYXJseSBsb2NhbCBwYXNzZXMgICAgICAgICAgICAgICAgIDogICAwLjAy ICggIDAlKSAgIDAuMDAgKCAgMCUpICAgMC4wMyAoICAwJSkgICAgIDAgICggIDAlKQogdW5h Y2NvdW50ZWQgb3B0aW1pemF0aW9ucyAgICAgICAgICA6ICAgMC4wMCAoICAwJSkgICAwLjAw ICggIDAlKSAgIDAuMDIgKCAgMCUpICAgICAwICAoICAwJSkKIHJlc3Qgb2YgY29tcGlsYXRp b24gICAgICAgICAgICAgICAgOiAgIDAuODIgKCAgMSUpICAgMC4wMiAoICAxJSkgICAwLjk0 ICggIDElKSAgNDAzNmsgKCAgMCUpCiByZW1vdmUgdW51c2VkIGxvY2FscyAgICAgICAgICAg ICAgIDogICAwLjM1ICggIDAlKSAgIDAuMDEgKCAgMCUpICAgMC4yNiAoICAwJSkgICAgMzBr ICggIDAlKQogYWRkcmVzcyB0YWtlbiAgICAgICAgICAgICAgICAgICAgICA6ICAgMC4yMiAo ICAwJSkgICAwLjAyICggIDElKSAgIDAuMjYgKCAgMCUpICAgICAwICAoICAwJSkKIHZlcmlm eSBsb29wIGNsb3NlZCAgICAgICAgICAgICAgICAgOiAgIDAuMDIgKCAgMCUpICAgMC4wMCAo ICAwJSkgICAwLjAzICggIDAlKSAgICAgMCAgKCAgMCUpCiB2ZXJpZnkgUlRMIHNoYXJpbmcg ICAgICAgICAgICAgICAgIDogICAxLjcxICggIDIlKSAgIDAuMDQgKCAgMSUpICAgMS41NCAo ICAxJSkgICAgIDAgICggIDAlKQogcmVidWlsZCBmcmVxdWVuY2llcyAgICAgICAgICAgICAg ICA6ICAgMC4wMiAoICAwJSkgICAwLjAwICggIDAlKSAgIDAuMDUgKCAgMCUpICAgIDMxayAo ICAwJSkKIHJlcGFpciBsb29wIHN0cnVjdHVyZXMgICAgICAgICAgICAgOiAgIDAuMTcgKCAg MCUpICAgMC4wMCAoICAwJSkgICAwLjE5ICggIDAlKSAgOTQ1NiAgKCAgMCUpCiBUT1RBTCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogMTA2LjMwICAgICAgICAgIDIuOTAgICAg ICAgIDEwOS40MiAgICAgICAgIDEwOTJNCkV4dHJhIGRpYWdub3N0aWMgY2hlY2tzIGVuYWJs ZWQ7IGNvbXBpbGVyIG1heSBydW4gc2xvd2x5LgpDb25maWd1cmUgd2l0aCAtLWVuYWJsZS1j aGVja2luZz1yZWxlYXNlIHRvIGRpc2FibGUgY2hlY2tzLgo= --------------87034405C9B14510DAE7734A Content-Type: text/plain; charset=UTF-8; name="tramp3d-v4.report.keep_blocks" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="tramp3d-v4.report.keep_blocks" JCBrZWVwX2Jsb2Nrcz0xIC9idWlsZC9nY2MtbWFzdGVyL2djYy94ZysrIC1CIC9idWlsZC9n Y2MtbWFzdGVyL2djYyAtbm9zdGRpbmMrKyAtSSAvYnVpbGQvZ2NjLW1hc3Rlci94ODZfNjQt cGMtbGludXgtZ251L2xpYnN0ZGMrKy12My9pbmNsdWRlL3g4Nl82NC1wYy1saW51eC1nbnUg LUkgL2J1aWxkL2djYy1tYXN0ZXIveDg2XzY0LXBjLWxpbnV4LWdudS9saWJzdGRjKystdjMv aW5jbHVkZSAtSSAvc3JjL2djYy9tYXN0ZXIvbGlic3RkYysrLXYzL2xpYnN1cGMrKyAtSSAv c3JjL2djYy9tYXN0ZXIvbGlic3RkYysrLXYzL2luY2x1ZGUvYmFja3dhcmQgLUkgL3NyYy9n Y2MvbWFzdGVyL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvdXRpbCAtTCAvYnVpbGQvZ2NjLW1h c3Rlci94ODZfNjQtcGMtbGludXgtZ251L2xpYnN0ZGMrKy12My9zcmMvLmxpYnMgLU8yIC1j IC1mZHVtcC10cmVlLWNmZz10cmFtcDNkLXY0LmtlZXBfYmxvY2tzLmNmZyAvc3JjL3RyYW1w M2QtdjQuY3BwIC1mbWVtLXJlcG9ydCAtZnRpbWUtcmVwb3J0CgojIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIwojIEZpbmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwojIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIwoKTnVtYmVyIG9mIGV4cGFuZGVkIG1hY3JvczogICAgICAgICAgICAgICAg ICAgICAxODkyOApBdmVyYWdlIG51bWJlciBvZiB0b2tlbnMgcGVyIG1hY3JvIGV4cGFuc2lv bjogICAgICA3CgpMaW5lIFRhYmxlIGFsbG9jYXRpb25zIGR1cmluZyB0aGUgY29tcGlsYXRp b24gcHJvY2VzcwpOdW1iZXIgb2Ygb3JkaW5hcnkgbWFwcyB1c2VkOiAgICAgICAgICA5MTUg Ck9yZGluYXJ5IG1hcCB1c2VkIHNpemU6ICAgICAgICAgICAgICAgICAyMWsKTnVtYmVyIG9m IG9yZGluYXJ5IG1hcHMgYWxsb2NhdGVkOiAgICAxMzY1IApPcmRpbmFyeSBtYXBzIGFsbG9j YXRlZCBzaXplOiAgICAgICAgICAgMzFrCk51bWJlciBvZiBtYWNybyBtYXBzIHVzZWQ6ICAg ICAgICAgICAgICAxNmsKTWFjcm8gbWFwcyB1c2VkIHNpemU6ICAgICAgICAgICAgICAgICAg NTI1awpNYWNybyBtYXBzIGxvY2F0aW9ucyBzaXplOiAgICAgICAgICAgIDExMjRrCk1hY3Jv IG1hcHMgc2l6ZTogICAgICAgICAgICAgICAgICAgICAgMTY1MGsKRHVwbGljYXRlZCBtYXBz IGxvY2F0aW9ucyBzaXplOiAgICAgICAgMzc4awpUb3RhbCBhbGxvY2F0ZWQgbWFwcyBzaXpl OiAgICAgICAgICAgIDMyMDRrClRvdGFsIHVzZWQgbWFwcyBzaXplOiAgICAgICAgICAgICAg ICAgMTY3MWsKQWQtaG9jIHRhYmxlIHNpemU6ICAgICAgICAgICAgICAgICAgICAgIDEyTQpB ZC1ob2MgdGFibGUgZW50cmllcyB1c2VkOiAgICAgICAgICAgICA0NzNrCm9wdGltaXplZF9y YW5nZXM6ICAgICAgICAgICAgICAgICAgICAgMTE3MWsKdW5vcHRpbWl6ZWRfcmFuZ2VzOiAg ICAgICAgICAgICAgICAgICAgMTM0awoKTWVtb3J5IHN0aWxsIGFsbG9jYXRlZCBhdCB0aGUg ZW5kIG9mIHRoZSBjb21waWxhdGlvbiBwcm9jZXNzClNpemUgICAgICBBbGxvY2F0ZWQgICAg ICAgIFVzZWQgICAgT3ZlcmhlYWQKOCAgICAgICAgICAgICAgIDExNmsgICAgICAgICA5NWsg ICAgICAgMzQ4MCAKMTYgICAgICAgICAgICAgNDA1NmsgICAgICAgMjI3MWsgICAgICAgICA4 N2sKMzIgICAgICAgICAgICAgICAyM00gICAgICAgICAxMU0gICAgICAgIDQxN2sKNjQgICAg ICAgICAgICAgICAxME0gICAgICAgODQyN2sgICAgICAgIDE2N2sKMjU2ICAgICAgICAgICAg ICAzME0gICAgICAgICAyNU0gICAgICAgIDQyNGsKNTEyICAgICAgICAgICAgMTUwNGsgICAg ICAgMTE2NmsgICAgICAgICAyMGsKMTAyNCAgICAgICAgICAgMzg1MmsgICAgICAgMTcwOGsg ICAgICAgICA1MmsKMjA0OCAgICAgICAgICAgNTA0MGsgICAgICAgNDk4NmsgICAgICAgICA2 OGsKNDA5NiAgICAgICAgICAgIDE0OGsgICAgICAgIDE0OGsgICAgICAgMjA3MiAKODE5MiAg ICAgICAgICAgICA0OGsgICAgICAgICA0OGsgICAgICAgIDMzNiAKMTYzODQgICAgICAgICAg ICA2NGsgICAgICAgICA2NGsgICAgICAgIDIyNCAKMzI3NjggICAgICAgICAgIDEyOGsgICAg ICAgIDEyOGsgICAgICAgIDIyNCAKNjU1MzYgICAgICAgICAgIDMyMGsgICAgICAgIDMyMGsg ICAgICAgIDI4MCAKMTMxMDcyICAgICAgICAgIDEyOGsgICAgICAgIDEyOGsgICAgICAgICA1 NiAKMjYyMTQ0ICAgICAgICAgMTAyNGsgICAgICAgMTAyNGsgICAgICAgIDIyNCAKNTI0Mjg4 ICAgICAgICAgIDUxMmsgICAgICAgIDUxMmsgICAgICAgICA1NiAKMTA0ODU3NiAgICAgICAg MjA0OGsgICAgICAgMjA0OGsgICAgICAgIDExMiAKMjA5NzE1MiAgICAgICAgMjA0OGsgICAg ICAgMjA0OGsgICAgICAgICA1NiAKMTY3NzcyMTYgICAgICAgICAxNk0gICAgICAgICAxNk0g ICAgICAgICA1NiAKMjQgICAgICAgICAgICAgICAxMU0gICAgICAgNTI5NGsgICAgICAgIDIw OWsKNDAgICAgICAgICAgICAgICAyNk0gICAgICAgICAxN00gICAgICAgIDQxNmsKNDggICAg ICAgICAgICAgICAxNE0gICAgICAgNjYwNmsgICAgICAgIDIzNmsKNTYgICAgICAgICAgICAg NDgyOGsgICAgICAgMTgyNWsgICAgICAgICA3NWsKNzIgICAgICAgICAgICAgMzI4OGsgICAg ICAgIDc3NWsgICAgICAgICA0NGsKODAgICAgICAgICAgICAgIDYwMGsgICAgICAgIDIxN2sg ICAgICAgODQwMCAKODggICAgICAgICAgICAgIDM2MGsgICAgICAgIDE3N2sgICAgICAgNTA0 MCAKOTYgICAgICAgICAgICAgICAxMk0gICAgICAgNzA1MGsgICAgICAgIDE3NGsKMTEyICAg ICAgICAgICAgMzQ5MmsgICAgICAgMjA3NWsgICAgICAgICA0N2sKMTIwICAgICAgICAgICAg NjE3MmsgICAgICAgNDU0MmsgICAgICAgICA4NGsKMTUyICAgICAgICAgICAgICAxN00gICAg ICAgICAxNU0gICAgICAgIDIzOGsKMTI4ICAgICAgICAgICAgICAzME0gICAgICAgICAyNk0g ICAgICAgIDQyOWsKMTQ0ICAgICAgICAgICAgNjUxNmsgICAgICAgMTg4MWsgICAgICAgICA4 OWsKMTY4ICAgICAgICAgICAgICA0M00gICAgICAgICA0ME0gICAgICAgIDYwMmsKMTg0ICAg ICAgICAgICAgMzM0MGsgICAgICAgMjA0NWsgICAgICAgICA0NWsKMTA0ICAgICAgICAgICAg MTE2NGsgICAgICAgMTAzNmsgICAgICAgICAxNWsKMjcyICAgICAgICAgICAgMzUyMGsgICAg ICAgIDkwNGsgICAgICAgICA0OGsKMjgwICAgICAgICAgICAgIDE3MmsgICAgICAgIDEwM2sg ICAgICAgMjQwOCAKVG90YWwgICAgICAgICAgIDI4OE0gICAgICAgIDIxMU0gICAgICAgNDAx OWsKClN0cmluZyBwb29sCmVudHJpZXM6ICAgICAgICAgICAgICAgICAgICAgICAgNzk0NTMK aWRlbnRpZmllcnM6ICAgICAgICAgICAgICAgICAgICAzNDkzMyAoNDMuOTclKQpzbG90czog ICAgICAgICAgICAgICAgICAgICAgICAgIDEzMTA3MgpkZWxldGVkOiAgICAgICAgICAgICAg ICAgICAgICAgIDM2NjgzCkdHQyBieXRlczogICAgICAgICAgICAgICAgICAgICAgMjYyMGsK dGFibGUgc2l6ZTogICAgICAgICAgICAgICAgICAgICAxMDI0awpjb2xsL3NlYXJjaDogICAg ICAgICAgICAgICAgICAgIDAuODIzNAppbnMvc2VhcmNoOiAgICAgICAgICAgICAgICAgICAg IDAuMTIyMgphdmcuIGVudHJ5OiAgICAgICAgICAgICAgICAgICAgIDMzLjc3IGJ5dGVzICgr Ly0gNzEuNDUpCmxvbmdlc3QgZW50cnk6ICAgICAgICAgICAgICAgICAgNDk2CihObyBwZXIt bm9kZSBzdGF0aXN0aWNzKQpUeXBlIGhhc2g6IHNpemUgMTMxMDcxLCA2NzE5OSBlbGVtZW50 cywgMS4xMTIyNzkgY29sbGlzaW9ucwpERUNMX0RFQlVHX0VYUFIgIGhhc2g6IHNpemUgMTAy MSwgMCBlbGVtZW50cywgMC44NTk0NzQgY29sbGlzaW9ucwpERUNMX1ZBTFVFX0VYUFIgIGhh c2g6IHNpemUgMTAyMSwgMzAgZWxlbWVudHMsIDAuMTQ4NTk3IGNvbGxpc2lvbnMKZGVjbF9z cGVjaWFsaXphdGlvbnM6IHNpemUgMTMxMDcxLCA1MDYyNCBlbGVtZW50cywgMS4zODYzNDQg Y29sbGlzaW9ucwp0eXBlX3NwZWNpYWxpemF0aW9uczogc2l6ZSAzMjc0OSwgMjMxODQgZWxl bWVudHMsIDIuNTA0MjA1IGNvbGxpc2lvbnMKTm8gR0lNUExFIHN0YXRpc3RpY3MKTm8gUlRY IHN0YXRpc3RpY3MKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkhlYXAgdmVj dG9ycyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKFQpICAg ICAgIExlYWsgICAgICAgICAgICBQZWFrICAgICBUaW1lcyAgICAgICBMZWFrIGl0ZW1zIFBl YWsgaXRlbXMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KSGVhcCB2ZWN0b3JzICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzaXplb2YoVCkgICAgICAgTGVhayAgICAgICAgICAgIFBlYWsg ICAgIFRpbWVzICAgICAgIExlYWsgaXRlbXMgUGVhayBpdGVtcwotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpUb3RhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAgICAgICAgICAgICAgICAgICAgICAg ICAgMCAgICAgICAgICAgICAgICAwIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQoKCkFsaWFzIG9yYWNsZSBxdWVyeSBzdGF0czoKICByZWZzX21heV9hbGlhc19wOiAyNzk4 MTc0IGRpc2FtYmlndWF0aW9ucywgMzA2ODA3OCBxdWVyaWVzCiAgcmVmX21heWJlX3VzZWRf YnlfY2FsbF9wOiAyMzgxOCBkaXNhbWJpZ3VhdGlvbnMsIDI4MzY4NDUgcXVlcmllcwogIGNh bGxfbWF5X2Nsb2JiZXJfcmVmX3A6IDI3NTQgZGlzYW1iaWd1YXRpb25zLCAyNzY0IHF1ZXJp ZXMKICBub25vdmVybGFwcGluZ19jb21wb25lbnRfcmVmc19wOiAwIGRpc2FtYmlndWF0aW9u cywgMzQ5MyBxdWVyaWVzCiAgbm9ub3ZlcmxhcHBpbmdfcmVmc19zaW5jZV9tYXRjaF9wOiAz NzYgZGlzYW1iaWd1YXRpb25zLCA5MDA4IG11c3Qgb3ZlcmxhcHMsIDk0MTUgcXVlcmllcwog IGFsaWFzaW5nX2NvbXBvbmVudF9yZWZzX3A6IDgwNyBkaXNhbWJpZ3VhdGlvbnMsIDMwODQy IHF1ZXJpZXMKICBUQkFBIG9yYWNsZTogMTA0MTc4OSBkaXNhbWJpZ3VhdGlvbnMgMTk3NjYy NSBxdWVyaWVzCiAgICAgICAgICAgICAgIDE4OTgzMSBhcmUgaW4gYWxpYXMgc2V0IDAKICAg ICAgICAgICAgICAgNTEzOTk0IHF1ZXJpZXMgYXNrZWQgYWJvdXQgdGhlIHNhbWUgb2JqZWN0 CiAgICAgICAgICAgICAgIDAgcXVlcmllcyBhc2tlZCBhYm91dCB0aGUgc2FtZSBhbGlhcyBz ZXQKICAgICAgICAgICAgICAgMCBhY2Nlc3Mgdm9sYXRpbGUKICAgICAgICAgICAgICAgMjMw NzE1IGFyZSBkZXBlbmRlbnQgaW4gdGhlIERBRwogICAgICAgICAgICAgICAyOTYgYXJlIGFy aXRpZmljaWFsbHkgaW4gY29uZmxpY3Qgd2l0aCB2b2lkICoKCk1vZHJlZiBzdGF0czoKICBt b2RyZWYgdXNlOiA1MzcgZGlzYW1iaWd1YXRpb25zLCA2MzcxIHF1ZXJpZXMKICBtb2RyZWYg Y2xvYmJlcjogMzc0MjkgZGlzYW1iaWd1YXRpb25zLCAzNTIxOTQgcXVlcmllcwogIDExOTEy NCB0YmFhIHF1ZXJpZXMgKDAuMzM4MjM0IHBlciBtb2RyZWYgcXVlcnkpCiAgMjE1MTggYmFz ZSBjb21wYXJlcyAoMC4wNjEwOTcgcGVyIG1vZHJlZiBxdWVyeSkKClBUQSBxdWVyeSBzdGF0 czoKICBwdF9zb2x1dGlvbl9pbmNsdWRlczogNTU5Mjk2IGRpc2FtYmlndWF0aW9ucywgNzQ0 NzM1IHF1ZXJpZXMKICBwdF9zb2x1dGlvbnNfaW50ZXJzZWN0OiAxNTQwNzggZGlzYW1iaWd1 YXRpb25zLCA0MjI0OTAgcXVlcmllcwoKVGltZSB2YXJpYWJsZSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdXNyICAgICAgICAgICBzeXMgICAgICAgICAgd2FsbCAgICAg ICAgICAgR0dDCiBwaGFzZSBzZXR1cCAgICAgICAgICAgICAgICAgICAgICAgIDogICAwLjAw ICggIDAlKSAgIDAuMDAgKCAgMCUpICAgMC4wMSAoICAwJSkgIDE1NTRrICggIDAlKQogcGhh c2UgcGFyc2luZyAgICAgICAgICAgICAgICAgICAgICA6ICAgNC41MiAoICA0JSkgICAwLjYw ICggMjElKSAgIDUuMTIgKCAgNSUpICAgMjEzTSAoIDE5JSkKIHBoYXNlIGxhbmcuIGRlZmVy cmVkICAgICAgICAgICAgICAgOiAgIDQuMzMgKCAgNCUpICAgMC4yOCAoIDEwJSkgICA0LjYz ICggIDQlKSAgIDE4OU0gKCAxNyUpCiBwaGFzZSBvcHQgYW5kIGdlbmVyYXRlICAgICAgICAg ICAgIDogIDk4LjE4ICggOTElKSAgIDIuMDAgKCA2OSUpIDEwMC4zOCAoIDkxJSkgICA2OTJN ICggNjMlKQogcGhhc2UgbGFzdCBhc20gICAgICAgICAgICAgICAgICAgICA6ICAgMC4wMCAo ICAwJSkgICAwLjAwICggIDAlKSAgIDAuMDEgKCAgMCUpICAgIDMyayAoICAwJSkKIHBoYXNl IGZpbmFsaXplICAgICAgICAgICAgICAgICAgICAgOiAgIDAuMjkgKCAgMCUpICAgMC4wMSAo ICAwJSkgICAwLjI5ICggIDAlKSAgICAgMCAgKCAgMCUpCiB8bmFtZSBsb29rdXAgICAgICAg ICAgICAgICAgICAgICAgIDogICAwLjczICggIDElKSAgIDAuMDQgKCAgMSUpICAgMC42OCAo ICAxJSkgICAgMTNNICggIDElKQogfG92ZXJsb2FkIHJlc29sdXRpb24gICAgICAgICAgICAg ICA6ICAgMi4yOSAoICAyJSkgICAwLjIyICggIDglKSAgIDIuMzkgKCAgMiUpICAgMTEwTSAo IDEwJSkKIGdhcmJhZ2UgY29sbGVjdGlvbiAgICAgICAgICAgICAgICAgOiAgIDMuMzQgKCAg MyUpICAgMC4wMiAoICAxJSkgICAzLjMyICggIDMlKSAgICAgMCAgKCAgMCUpCiBkdW1wIGZp bGVzICAgICAgICAgICAgICAgICAgICAgICAgIDogICAwLjUwICggIDAlKSAgIDAuMDUgKCAg MiUpICAgMC40MyAoICAwJSkgIDI5NDVrICggIDAlKQogY2FsbGdyYXBoIGNvbnN0cnVjdGlv biAgICAgICAgICAgICA6ICAgMS4yNiAoICAxJSkgICAwLjExICggIDQlKSAgIDEuMzkgKCAg MSUpICAgIDM3TSAoICAzJSkKIGNhbGxncmFwaCBvcHRpbWl6YXRpb24gICAgICAgICAgICAg OiAgIDAuODAgKCAgMSUpICAgMC4wNiAoICAyJSkgICAwLjgxICggIDElKSAgIDE1NGsgKCAg MCUpCiBjYWxsZ3JhcGggZnVuY3Rpb25zIGV4cGFuc2lvbiAgICAgIDogIDY4LjAxICggNjMl KSAgIDAuNjggKCAyNCUpICA2OC44NCAoIDYyJSkgICAzNjVNICggMzMlKQogY2FsbGdyYXBo IGlwYSBwYXNzZXMgICAgICAgICAgICAgICA6ICAyNi41NyAoIDI1JSkgICAxLjAzICggMzYl KSAgMjcuNjUgKCAyNSUpICAgMjI4TSAoIDIxJSkKIGlwYSBmdW5jdGlvbiBzdW1tYXJ5ICAg ICAgICAgICAgICAgOiAgIDAuMjYgKCAgMCUpICAgMC4wMSAoICAwJSkgICAwLjIxICggIDAl KSAgNDY2M2sgKCAgMCUpCiBpcGEgZGVhZCBjb2RlIHJlbW92YWwgICAgICAgICAgICAgIDog ICAwLjEwICggIDAlKSAgIDAuMDAgKCAgMCUpICAgMC4xMSAoICAwJSkgICAgNTYgICggIDAl KQogaXBhIGluaGVyaXRhbmNlIGdyYXBoICAgICAgICAgICAgICA6ICAgMC4wMSAoICAwJSkg ICAwLjAwICggIDAlKSAgIDAuMDAgKCAgMCUpICAgIDIwayAoICAwJSkKIGlwYSB2aXJ0dWFs IGNhbGwgdGFyZ2V0ICAgICAgICAgICAgOiAgIDAuMDAgKCAgMCUpICAgMC4wMCAoICAwJSkg ICAwLjAzICggIDAlKSAgMzI2NCAgKCAgMCUpCiBpcGEgY3AgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDogICAwLjU1ICggIDElKSAgIDAuMDAgKCAgMCUpICAgMC40OCAoICAwJSkg IDQ4NjJrICggIDAlKQogaXBhIGlubGluaW5nIGhldXJpc3RpY3MgICAgICAgICAgICA6ICAg MC44MCAoICAxJSkgICAwLjAwICggIDAlKSAgIDAuODEgKCAgMSUpICAgIDIyTSAoICAyJSkK IGlwYSBmdW5jdGlvbiBzcGxpdHRpbmcgICAgICAgICAgICAgOiAgIDAuMjAgKCAgMCUpICAg MC4wMSAoICAwJSkgICAwLjI0ICggIDAlKSAgIDcyNGsgKCAgMCUpCiBpcGEgY29tZGF0cyAg ICAgICAgICAgICAgICAgICAgICAgIDogICAwLjAzICggIDAlKSAgIDAuMDAgKCAgMCUpICAg MC4wMyAoICAwJSkgICAgIDAgICggIDAlKQogaXBhIHJlZmVyZW5jZSAgICAgICAgICAgICAg ICAgICAgICA6ICAgMC4wMSAoICAwJSkgICAwLjAwICggIDAlKSAgIDAuMDIgKCAgMCUpICAg ICAwICAoICAwJSkKIGlwYSBwcm9maWxlICAgICAgICAgICAgICAgICAgICAgICAgOiAgIDAu MDIgKCAgMCUpICAgMC4wMCAoICAwJSkgICAwLjAyICggIDAlKSAgICAgMCAgKCAgMCUpCiBp cGEgcHVyZSBjb25zdCAgICAgICAgICAgICAgICAgICAgIDogICAwLjIzICggIDAlKSAgIDAu MDEgKCAgMCUpICAgMC4xNCAoICAwJSkgICA0MzdrICggIDAlKQogaXBhIGljZiAgICAgICAg ICAgICAgICAgICAgICAgICAgICA6ICAgMC4xNyAoICAwJSkgICAwLjAwICggIDAlKSAgIDAu MTcgKCAgMCUpICAgIDQ0ayAoICAwJSkKIGlwYSBTUkEgICAgICAgICAgICAgICAgICAgICAg ICAgICAgOiAgIDAuMjQgKCAgMCUpICAgMC4wMCAoICAwJSkgICAwLjI0ICggIDAlKSAgNjIy OWsgKCAgMSUpCiBpcGEgZnJlZSBsYW5nIGRhdGEgICAgICAgICAgICAgICAgIDogICAwLjA1 ICggIDAlKSAgIDAuMDAgKCAgMCUpICAgMC4wNCAoICAwJSkgICAgIDAgICggIDAlKQogaXBh IGZyZWUgaW5saW5lIHN1bW1hcnkgICAgICAgICAgICA6ICAgMC4wMyAoICAwJSkgICAwLjAx ICggIDAlKSAgIDAuMDMgKCAgMCUpICAgICAwICAoICAwJSkKIGlwYSBtb2RyZWYgICAgICAg ICAgICAgICAgICAgICAgICAgOiAgIDAuMTEgKCAgMCUpICAgMC4wMCAoICAwJSkgICAwLjEw ICggIDAlKSAgMTg1OGsgKCAgMCUpCiBjZmcgY29uc3RydWN0aW9uICAgICAgICAgICAgICAg ICAgIDogICAwLjAzICggIDAlKSAgIDAuMDAgKCAgMCUpICAgMC4wMyAoICAwJSkgIDExODdr ICggIDAlKQogY2ZnIGNsZWFudXAgICAgICAgICAgICAgICAgICAgICAgICA6ICAgMC4zNiAo ICAwJSkgICAwLjAwICggIDAlKSAgIDAuNTMgKCAgMCUpICAxNDY0ayAoICAwJSkKIENGRyB2 ZXJpZmllciAgICAgICAgICAgICAgICAgICAgICAgOiAgIDMuOTAgKCAgNCUpICAgMC4wNCAo ICAxJSkgICA0LjcxICggIDQlKSAgICAgMCAgKCAgMCUpCiB0cml2aWFsbHkgZGVhZCBjb2Rl ICAgICAgICAgICAgICAgIDogICAwLjEyICggIDAlKSAgIDAuMDAgKCAgMCUpICAgMC4xNiAo ICAwJSkgICAgIDAgICggIDAlKQogZGYgc2NhbiBpbnNucyAgICAgICAgICAgICAgICAgICAg ICA6ICAgMC4zMSAoICAwJSkgICAwLjAyICggIDElKSAgIDAuMjIgKCAgMCUpICAgIDQzayAo ICAwJSkKIGRmIHJlYWNoaW5nIGRlZnMgICAgICAgICAgICAgICAgICAgOiAgIDAuMzEgKCAg MCUpICAgMC4wMCAoICAwJSkgICAwLjMwICggIDAlKSAgICAgMCAgKCAgMCUpCiBkZiBsaXZl IHJlZ3MgICAgICAgICAgICAgICAgICAgICAgIDogICAwLjg5ICggIDElKSAgIDAuMDEgKCAg MCUpICAgMC45NSAoICAxJSkgICAgIDAgICggIDAlKQogZGYgbGl2ZSZpbml0aWFsaXplZCBy ZWdzICAgICAgICAgICA6ICAgMC40OCAoICAwJSkgICAwLjAwICggIDAlKSAgIDAuMzMgKCAg MCUpICAgICAwICAoICAwJSkKIGRmIG11c3QtaW5pdGlhbGl6ZWQgcmVncyAgICAgICAgICAg OiAgIDAuMDEgKCAgMCUpICAgMC4wMCAoICAwJSkgICAwLjAyICggIDAlKSAgICAgMCAgKCAg MCUpCiBkZiB1c2UtZGVmIC8gZGVmLXVzZSBjaGFpbnMgICAgICAgIDogICAwLjI1ICggIDAl KSAgIDAuMDAgKCAgMCUpICAgMC4xNiAoICAwJSkgICAgIDAgICggIDAlKQogZGYgcmVnIGRl YWQvdW51c2VkIG5vdGVzICAgICAgICAgICA6ICAgMC40MyAoICAwJSkgICAwLjAwICggIDAl KSAgIDAuNDcgKCAgMCUpICA0MjA1ayAoICAwJSkKIHJlZ2lzdGVyIGluZm9ybWF0aW9uICAg ICAgICAgICAgICAgOiAgIDAuMTUgKCAgMCUpICAgMC4wMCAoICAwJSkgICAwLjEyICggIDAl KSAgICAgMCAgKCAgMCUpCiBhbGlhcyBhbmFseXNpcyAgICAgICAgICAgICAgICAgICAgIDog ICAwLjM5ICggIDAlKSAgIDAuMDEgKCAgMCUpICAgMC40MCAoICAwJSkgICAgMTFNICggIDEl KQogYWxpYXMgc3RtdCB3YWxraW5nICAgICAgICAgICAgICAgICA6ICAgNC4zNyAoICA0JSkg ICAwLjA2ICggIDIlKSAgIDQuMjIgKCAgNCUpICAxMzY2ayAoICAwJSkKIHJlZ2lzdGVyIHNj YW4gICAgICAgICAgICAgICAgICAgICAgOiAgIDAuMDUgKCAgMCUpICAgMC4wMCAoICAwJSkg ICAwLjAzICggIDAlKSAgIDM3M2sgKCAgMCUpCiByZWJ1aWxkIGp1bXAgbGFiZWxzICAgICAg ICAgICAgICAgIDogICAwLjA1ICggIDAlKSAgIDAuMDAgKCAgMCUpICAgMC4wNCAoICAwJSkg ICAgIDAgICggIDAlKQogcHJlcHJvY2Vzc2luZyAgICAgICAgICAgICAgICAgICAgICA6ICAg MC4yOSAoICAwJSkgICAwLjE0ICggIDUlKSAgIDAuNTIgKCAgMCUpICA1NjExayAoICAwJSkK IHBhcnNlciAoZ2xvYmFsKSAgICAgICAgICAgICAgICAgICAgOiAgIDAuNTMgKCAgMCUpICAg MC4xMyAoICA0JSkgICAwLjc3ICggIDElKSAgICA1N00gKCAgNSUpCiBwYXJzZXIgc3RydWN0 IGJvZHkgICAgICAgICAgICAgICAgIDogICAwLjc2ICggIDElKSAgIDAuMDMgKCAgMSUpICAg MC44NCAoICAxJSkgICAgMzdNICggIDMlKQogcGFyc2VyIGVudW1lcmF0b3IgbGlzdCAgICAg ICAgICAgICA6ICAgMC4wMCAoICAwJSkgICAwLjAwICggIDAlKSAgIDAuMDIgKCAgMCUpICAg MzU3ayAoICAwJSkKIHBhcnNlciBmdW5jdGlvbiBib2R5ICAgICAgICAgICAgICAgOiAgIDAu MzUgKCAgMCUpICAgMC4wOCAoICAzJSkgICAwLjMwICggIDAlKSAgOTg1N2sgKCAgMSUpCiBw YXJzZXIgaW5sLiBmdW5jLiBib2R5ICAgICAgICAgICAgIDogICAwLjIxICggIDAlKSAgIDAu MDIgKCAgMSUpICAgMC4yNyAoICAwJSkgIDU5NzBrICggIDElKQogcGFyc2VyIGlubC4gbWV0 aC4gYm9keSAgICAgICAgICAgICA6ICAgMC41NiAoICAxJSkgICAwLjA1ICggIDIlKSAgIDAu NTggKCAgMSUpICAgIDI1TSAoICAyJSkKIHRlbXBsYXRlIGluc3RhbnRpYXRpb24gICAgICAg ICAgICAgOiAgIDQuODkgKCAgNSUpICAgMC40MSAoIDE0JSkgICA1LjIyICggIDUlKSAgIDI2 MU0gKCAyNCUpCiBjb25zdGFudCBleHByZXNzaW9uIGV2YWx1YXRpb24gICAgIDogICAwLjEy ICggIDAlKSAgIDAuMDEgKCAgMCUpICAgMC4xMyAoICAwJSkgIDE1NjNrICggIDAlKQogZWFy bHkgaW5saW5pbmcgaGV1cmlzdGljcyAgICAgICAgICA6ICAgMC4yOCAoICAwJSkgICAwLjAw ICggIDAlKSAgIDAuMjkgKCAgMCUpICAgIDEwTSAoICAxJSkKIGlubGluZSBwYXJhbWV0ZXJz ICAgICAgICAgICAgICAgICAgOiAgIDAuNTUgKCAgMSUpICAgMC4wMyAoICAxJSkgICAwLjcw ICggIDElKSAgICAxNU0gKCAgMSUpCiBpbnRlZ3JhdGlvbiAgICAgICAgICAgICAgICAgICAg ICAgIDogICAxLjcwICggIDIlKSAgIDAuMDkgKCAgMyUpICAgMi4wNSAoICAyJSkgICAxMzBN ICggMTIlKQogdHJlZSBnaW1wbGlmeSAgICAgICAgICAgICAgICAgICAgICA6ICAgMC42MyAo ICAxJSkgICAwLjA0ICggIDElKSAgIDAuNjQgKCAgMSUpICAgIDM4TSAoICA0JSkKIHRyZWUg ZWggICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAgIDAuMjcgKCAgMCUpICAgMC4wMSAo ICAwJSkgICAwLjExICggIDAlKSAgICAxME0gKCAgMSUpCiB0cmVlIENGRyBjb25zdHJ1Y3Rp b24gICAgICAgICAgICAgIDogICAwLjEwICggIDAlKSAgIDAuMDIgKCAgMSUpICAgMC4xOCAo ICAwJSkgICAgMTdNICggIDIlKQogdHJlZSBDRkcgY2xlYW51cCAgICAgICAgICAgICAgICAg ICA6ICAgMS4yMyAoICAxJSkgICAwLjAwICggIDAlKSAgIDEuNDYgKCAgMSUpICAgNjMzayAo ICAwJSkKIHRyZWUgdGFpbCBtZXJnZSAgICAgICAgICAgICAgICAgICAgOiAgIDAuMTcgKCAg MCUpICAgMC4wMCAoICAwJSkgICAwLjEyICggIDAlKSAgMTc3MmsgKCAgMCUpCiB0cmVlIFZS UCAgICAgICAgICAgICAgICAgICAgICAgICAgIDogICAyLjM0ICggIDIlKSAgIDAuMDEgKCAg MCUpICAgMi41MyAoICAyJSkgICAgMTRNICggIDElKQogdHJlZSBFYXJseSBWUlAgICAgICAg ICAgICAgICAgICAgICA6ICAgMS42MyAoICAyJSkgICAwLjA4ICggIDMlKSAgIDEuNDQgKCAg MSUpICAgIDEyTSAoICAxJSkKIHRyZWUgY29weSBwcm9wYWdhdGlvbiAgICAgICAgICAgICAg OiAgIDAuMzkgKCAgMCUpICAgMC4wMCAoICAwJSkgICAwLjM0ICggIDAlKSAgIDE4OWsgKCAg MCUpCiB0cmVlIFBUQSAgICAgICAgICAgICAgICAgICAgICAgICAgIDogICAxLjcxICggIDIl KSAgIDAuMDYgKCAgMiUpICAgMS44MSAoICAyJSkgIDUzMDVrICggIDAlKQogdHJlZSBQSEkg aW5zZXJ0aW9uICAgICAgICAgICAgICAgICA6ICAgMC4wNCAoICAwJSkgICAwLjAwICggIDAl KSAgIDAuMDYgKCAgMCUpICAxODI2ayAoICAwJSkKIHRyZWUgU1NBIHJld3JpdGUgICAgICAg ICAgICAgICAgICAgOiAgIDAuNDIgKCAgMCUpICAgMC4wMiAoICAxJSkgICAwLjQyICggIDAl KSAgICAxNU0gKCAgMSUpCiB0cmVlIFNTQSBvdGhlciAgICAgICAgICAgICAgICAgICAgIDog ICAwLjIzICggIDAlKSAgIDAuMDAgKCAgMCUpICAgMC4xNyAoICAwJSkgIDE1OTdrICggIDAl KQogdHJlZSBTU0EgaW5jcmVtZW50YWwgICAgICAgICAgICAgICA6ICAgMC41MCAoICAwJSkg ICAwLjAwICggIDAlKSAgIDAuNTQgKCAgMCUpICAzNDI5ayAoICAwJSkKIHRyZWUgb3BlcmFu ZCBzY2FuICAgICAgICAgICAgICAgICAgOiAgIDAuNjAgKCAgMSUpICAgMC4wMSAoICAwJSkg ICAwLjY1ICggIDElKSAgICA0M00gKCAgNCUpCiBkb21pbmF0b3Igb3B0aW1pemF0aW9uICAg ICAgICAgICAgIDogICAyLjU2ICggIDIlKSAgIDAuMDQgKCAgMSUpICAgMi43MiAoICAyJSkg ICAgMTJNICggIDElKQogYmFja3dhcmRzIGp1bXAgdGhyZWFkaW5nICAgICAgICAgICA6ICAg MC4xNSAoICAwJSkgICAwLjAwICggIDAlKSAgIDAuMjEgKCAgMCUpICAgMzQ3ayAoICAwJSkK IHRyZWUgU1JBICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAgIDAuMjQgKCAgMCUpICAg MC4wMCAoICAwJSkgICAwLjE0ICggIDAlKSAgMTA4NGsgKCAgMCUpCiBpc29sYXRlIGVyb25l b3VzIHBhdGhzICAgICAgICAgICAgIDogICAwLjAzICggIDAlKSAgIDAuMDAgKCAgMCUpICAg MC4wMiAoICAwJSkgIDE1ODQgICggIDAlKQogdHJlZSBDQ1AgICAgICAgICAgICAgICAgICAg ICAgICAgICA6ICAgMS41NCAoICAxJSkgICAwLjAyICggIDElKSAgIDEuMjkgKCAgMSUpICA0 NDUxayAoICAwJSkKIHRyZWUgc3BsaXQgY3JpdCBlZGdlcyAgICAgICAgICAgICAgOiAgIDAu MDMgKCAgMCUpICAgMC4wMCAoICAwJSkgICAwLjAzICggIDAlKSAgMTU3OGsgKCAgMCUpCiB0 cmVlIHJlYXNzb2NpYXRpb24gICAgICAgICAgICAgICAgIDogICAwLjA4ICggIDAlKSAgIDAu MDAgKCAgMCUpICAgMC4wNiAoICAwJSkgICAgMThrICggIDAlKQogdHJlZSBQUkUgICAgICAg ICAgICAgICAgICAgICAgICAgICA6ICAgMS44NyAoICAyJSkgICAwLjA0ICggIDElKSAgIDIu MjIgKCAgMiUpICAgIDExTSAoICAxJSkKIHRyZWUgRlJFICAgICAgICAgICAgICAgICAgICAg ICAgICAgOiAgIDIuNTMgKCAgMiUpICAgMC4wMiAoICAxJSkgICAyLjY2ICggIDIlKSAgNjg5 MGsgKCAgMSUpCiB0cmVlIGNvZGUgc2lua2luZyAgICAgICAgICAgICAgICAgIDogICAwLjEz ICggIDAlKSAgIDAuMDAgKCAgMCUpICAgMC4xMyAoICAwJSkgIDEzMDdrICggIDAlKQogdHJl ZSBsaW5lYXJpemUgcGhpcyAgICAgICAgICAgICAgICA6ICAgMC4xOCAoICAwJSkgICAwLjAw ICggIDAlKSAgIDAuMTEgKCAgMCUpICAgOTkzayAoICAwJSkKIHRyZWUgYmFja3dhcmQgcHJv cGFnYXRlICAgICAgICAgICAgOiAgIDAuMDIgKCAgMCUpICAgMC4wMCAoICAwJSkgICAwLjAy ICggIDAlKSAgICAgMCAgKCAgMCUpCiB0cmVlIGZvcndhcmQgcHJvcGFnYXRlICAgICAgICAg ICAgIDogICAwLjc2ICggIDElKSAgIDAuMDEgKCAgMCUpICAgMC45MCAoICAxJSkgIDIyNDVr ICggIDAlKQogdHJlZSBwaGlwcm9wICAgICAgICAgICAgICAgICAgICAgICA6ICAgMC4wNCAo ICAwJSkgICAwLjAwICggIDAlKSAgIDAuMDIgKCAgMCUpICAgIDE5ayAoICAwJSkKIHRyZWUg Y29uc2VydmF0aXZlIERDRSAgICAgICAgICAgICAgOiAgIDAuMjkgKCAgMCUpICAgMC4wMSAo ICAwJSkgICAwLjM4ICggIDAlKSAgIDQ0OWsgKCAgMCUpCiB0cmVlIGFnZ3Jlc3NpdmUgRENF ICAgICAgICAgICAgICAgIDogICAwLjM5ICggIDAlKSAgIDAuMDEgKCAgMCUpICAgMC4zNiAo ICAwJSkgICAgMTJNICggIDElKQogdHJlZSBidWlsZGluIGNhbGwgRENFICAgICAgICAgICAg ICA6ICAgMC4wMSAoICAwJSkgICAwLjAwICggIDAlKSAgIDAuMDIgKCAgMCUpICAzNTA0ICAo ICAwJSkKIHRyZWUgRFNFICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAgIDEuMDQgKCAg MSUpICAgMC4wMCAoICAwJSkgICAxLjE2ICggIDElKSAgIDMzOWsgKCAgMCUpCiBQSEkgbWVy Z2UgICAgICAgICAgICAgICAgICAgICAgICAgIDogICAwLjA2ICggIDAlKSAgIDAuMDAgKCAg MCUpICAgMC4xMSAoICAwJSkgICAxMjhrICggIDAlKQogdHJlZSBsb29wIG9wdGltaXphdGlv biAgICAgICAgICAgICA6ICAgMC4wNyAoICAwJSkgICAwLjAwICggIDAlKSAgIDAuMDAgKCAg MCUpICAgICAwICAoICAwJSkKIHRyZWUgbG9vcCBpbnZhcmlhbnQgbW90aW9uICAgICAgICAg OiAgIDAuMzIgKCAgMCUpICAgMC4wMCAoICAwJSkgICAwLjMzICggIDAlKSAgIDExN2sgKCAg MCUpCiB0cmVlIGNhbm9uaWNhbCBpdiAgICAgICAgICAgICAgICAgIDogICAwLjE5ICggIDAl KSAgIDAuMDAgKCAgMCUpICAgMC4xOCAoICAwJSkgIDIxNjdrICggIDAlKQogc2NldiBjb25z dGFudCBwcm9wICAgICAgICAgICAgICAgICA6ICAgMC4xMCAoICAwJSkgICAwLjAwICggIDAl KSAgIDAuMDQgKCAgMCUpICAgNTM3ayAoICAwJSkKIGNvbXBsZXRlIHVucm9sbGluZyAgICAg ICAgICAgICAgICAgOiAgIDEuNDMgKCAgMSUpICAgMC4wMiAoICAxJSkgICAxLjQ0ICggIDEl KSAgICAxNE0gKCAgMSUpCiB0cmVlIGxvb3AgZGlzdHJpYnV0aW9uICAgICAgICAgICAgIDog ICAwLjM4ICggIDAlKSAgIDAuMDAgKCAgMCUpICAgMC4zNSAoICAwJSkgIDM0ODhrICggIDAl KQogdHJlZSBpdiBvcHRpbWl6YXRpb24gICAgICAgICAgICAgICA6ICAgMS4zNiAoICAxJSkg ICAwLjAyICggIDElKSAgIDEuMzYgKCAgMSUpICAgIDE5TSAoICAyJSkKIHRyZWUgY29weSBo ZWFkZXJzICAgICAgICAgICAgICAgICAgOiAgIDAuMDkgKCAgMCUpICAgMC4wMCAoICAwJSkg ICAwLjA3ICggIDAlKSAgMTQzOGsgKCAgMCUpCiB0cmVlIFNTQSB1bmNwcm9wICAgICAgICAg ICAgICAgICAgIDogICAwLjA2ICggIDAlKSAgIDAuMDAgKCAgMCUpICAgMC4wNiAoICAwJSkg ICAgIDAgICggIDAlKQogdHJlZSBOUlYgb3B0aW1pemF0aW9uICAgICAgICAgICAgICA6ICAg MC4wMCAoICAwJSkgICAwLjAwICggIDAlKSAgIDAuMDIgKCAgMCUpICAxODI0ICAoICAwJSkK IHRyZWUgU1NBIHZlcmlmaWVyICAgICAgICAgICAgICAgICAgOiAgMTEuODIgKCAxMSUpICAg MC4yNCAoICA4JSkgIDEyLjA1ICggMTElKSAgICAgMCAgKCAgMCUpCiB0cmVlIFNUTVQgdmVy aWZpZXIgICAgICAgICAgICAgICAgIDogIDE3LjE0ICggMTYlKSAgIDAuNDcgKCAxNiUpICAx Ni45NiAoIDE1JSkgICAgIDAgICggIDAlKQogdHJlZSBzd2l0Y2ggY29udmVyc2lvbiAgICAg ICAgICAgICA6ICAgMC4wNCAoICAwJSkgICAwLjAwICggIDAlKSAgIDAuMDQgKCAgMCUpICAg ICAwICAoICAwJSkKIHRyZWUgc3dpdGNoIGxvd2VyaW5nICAgICAgICAgICAgICAgOiAgIDAu MDMgKCAgMCUpICAgMC4wMCAoICAwJSkgICAwLjAxICggIDAlKSAgICAgMCAgKCAgMCUpCiBn aW1wbGUgQ1NFIHNpbi9jb3MgICAgICAgICAgICAgICAgIDogICAwLjAxICggIDAlKSAgIDAu MDAgKCAgMCUpICAgMC4wMyAoICAwJSkgICAgIDAgICggIDAlKQogZ2ltcGxlIHdpZGVuaW5n L2ZtYSBkZXRlY3Rpb24gICAgICA6ICAgMC4wMyAoICAwJSkgICAwLjAwICggIDAlKSAgIDAu MDUgKCAgMCUpICAgIDEzayAoICAwJSkKIHRyZWUgc3RybGVuIG9wdGltaXphdGlvbiAgICAg ICAgICAgOiAgIDAuNjAgKCAgMSUpICAgMC4wMSAoICAwJSkgICAwLjYxICggIDElKSAgNDAy MWsgKCAgMCUpCiB0cmVlIG1vZHJlZiAgICAgICAgICAgICAgICAgICAgICAgIDogICAwLjM1 ICggIDAlKSAgIDAuMDIgKCAgMSUpICAgMC4yNyAoICAwJSkgIDU2NTJrICggIDElKQogY2Fs bGdyYXBoIHZlcmlmaWVyICAgICAgICAgICAgICAgICA6ICAgMC42MSAoICAxJSkgICAwLjAz ICggIDElKSAgIDAuNTkgKCAgMSUpICAgICAwICAoICAwJSkKIGRvbWluYW5jZSBmcm9udGll cnMgICAgICAgICAgICAgICAgOiAgIDAuMDEgKCAgMCUpICAgMC4wMCAoICAwJSkgICAwLjA1 ICggIDAlKSAgICAgMCAgKCAgMCUpCiBkb21pbmFuY2UgY29tcHV0YXRpb24gICAgICAgICAg ICAgIDogICAxLjIwICggIDElKSAgIDAuMDkgKCAgMyUpICAgMS40MSAoICAxJSkgICAgIDAg ICggIDAlKQogY29udHJvbCBkZXBlbmRlbmNlcyAgICAgICAgICAgICAgICA6ICAgMC4wMyAo ICAwJSkgICAwLjAwICggIDAlKSAgIDAuMDQgKCAgMCUpICAgICAwICAoICAwJSkKIG91dCBv ZiBzc2EgICAgICAgICAgICAgICAgICAgICAgICAgOiAgIDAuMTIgKCAgMCUpICAgMC4wMCAo ICAwJSkgICAwLjEyICggIDAlKSAgICA1OWsgKCAgMCUpCiBleHBhbmQgdmFycyAgICAgICAg ICAgICAgICAgICAgICAgIDogICAwLjA4ICggIDAlKSAgIDAuMDAgKCAgMCUpICAgMC4xMiAo ICAwJSkgIDI5MTZrICggIDAlKQogZXhwYW5kICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA6ICAgMC42NiAoICAxJSkgICAwLjAxICggIDAlKSAgIDAuNjQgKCAgMSUpICAgIDMwTSAo ICAzJSkKIHBvc3QgZXhwYW5kIGNsZWFudXBzICAgICAgICAgICAgICAgOiAgIDAuMDIgKCAg MCUpICAgMC4wMCAoICAwJSkgICAwLjA0ICggIDAlKSAgMjI4MGsgKCAgMCUpCiB2YXJjb25z dCAgICAgICAgICAgICAgICAgICAgICAgICAgIDogICAwLjAyICggIDAlKSAgIDAuMDAgKCAg MCUpICAgMC4wMiAoICAwJSkgICAgMTZrICggIDAlKQogbG93ZXIgc3VicmVnICAgICAgICAg ICAgICAgICAgICAgICA6ICAgMC4wMyAoICAwJSkgICAwLjAwICggIDAlKSAgIDAuMDEgKCAg MCUpICAgIDIxayAoICAwJSkKIGp1bXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg OiAgIDAuMDAgKCAgMCUpICAgMC4wMCAoICAwJSkgICAwLjAxICggIDAlKSAgICAgMCAgKCAg MCUpCiBmb3J3YXJkIHByb3AgICAgICAgICAgICAgICAgICAgICAgIDogICAwLjU1ICggIDEl KSAgIDAuMDAgKCAgMCUpICAgMC43MiAoICAxJSkgICAyODRrICggIDAlKQogQ1NFICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA6ICAgMC40NiAoICAwJSkgICAwLjAwICggIDAl KSAgIDAuNDUgKCAgMCUpICAxNzcyayAoICAwJSkKIGRlYWQgY29kZSBlbGltaW5hdGlvbiAg ICAgICAgICAgICAgOiAgIDAuMDggKCAgMCUpICAgMC4wMCAoICAwJSkgICAwLjEwICggIDAl KSAgICAgMCAgKCAgMCUpCiBkZWFkIHN0b3JlIGVsaW0xICAgICAgICAgICAgICAgICAgIDog ICAwLjI2ICggIDAlKSAgIDAuMDAgKCAgMCUpICAgMC4yMSAoICAwJSkgIDI3NTZrICggIDAl KQogZGVhZCBzdG9yZSBlbGltMiAgICAgICAgICAgICAgICAgICA6ICAgMC4zOSAoICAwJSkg ICAwLjAwICggIDAlKSAgIDAuMzUgKCAgMCUpICAzOTc3ayAoICAwJSkKIGxvb3AgYW5hbHlz aXMgICAgICAgICAgICAgICAgICAgICAgOiAgIDAuMDIgKCAgMCUpICAgMC4wMCAoICAwJSkg ICAwLjAyICggIDAlKSAgICAgMCAgKCAgMCUpCiBsb29wIGluaXQgICAgICAgICAgICAgICAg ICAgICAgICAgIDogICAxLjgzICggIDIlKSAgIDAuMDQgKCAgMSUpICAgMS45MCAoICAyJSkg ICAgMjVNICggIDIlKQogbG9vcCBpbnZhcmlhbnQgbW90aW9uICAgICAgICAgICAgICA6ICAg MC4wNyAoICAwJSkgICAwLjAwICggIDAlKSAgIDAuMTAgKCAgMCUpICAgMTQ1ayAoICAwJSkK IGxvb3AgZmluaSAgICAgICAgICAgICAgICAgICAgICAgICAgOiAgIDAuMDkgKCAgMCUpICAg MC4wMCAoICAwJSkgICAwLjA2ICggIDAlKSAgICAxNmsgKCAgMCUpCiBDUFJPUCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDogICAwLjY3ICggIDElKSAgIDAuMDAgKCAgMCUpICAg MC41MCAoICAwJSkgIDQyMThrICggIDAlKQogUFJFICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA6ICAgMC41NiAoICAxJSkgICAwLjAwICggIDAlKSAgIDAuNTQgKCAgMCUpICAx NTQ1ayAoICAwJSkKIENTRSAyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAgIDAu MzMgKCAgMCUpICAgMC4wMCAoICAwJSkgICAwLjI5ICggIDAlKSAgIDczNmsgKCAgMCUpCiBi cmFuY2ggcHJlZGljdGlvbiAgICAgICAgICAgICAgICAgIDogICAwLjM2ICggIDAlKSAgIDAu MDIgKCAgMSUpICAgMC4zNyAoICAwJSkgIDMyNzJrICggIDAlKQogY29tYmluZXIgICAgICAg ICAgICAgICAgICAgICAgICAgICA6ICAgMC42OCAoICAxJSkgICAwLjAxICggIDAlKSAgIDAu ODUgKCAgMSUpICA3NjEzayAoICAxJSkKIGlmLWNvbnZlcnNpb24gICAgICAgICAgICAgICAg ICAgICAgOiAgIDAuMDggKCAgMCUpICAgMC4wMCAoICAwJSkgICAwLjA0ICggIDAlKSAgIDMx MmsgKCAgMCUpCiBpbnRlZ3JhdGVkIFJBICAgICAgICAgICAgICAgICAgICAgIDogICAyLjAz ICggIDIlKSAgIDAuMDEgKCAgMCUpICAgMi4wNSAoICAyJSkgICAgNDRNICggIDQlKQogTFJB IG5vbi1zcGVjaWZpYyAgICAgICAgICAgICAgICAgICA6ICAgMC41NSAoICAxJSkgICAwLjAw ICggIDAlKSAgIDAuNTcgKCAgMSUpICA0MDI5ayAoICAwJSkKIExSQSB2aXJ0dWFscyBlbGlt aW5hdGlvbiAgICAgICAgICAgOiAgIDAuMjEgKCAgMCUpICAgMC4wMCAoICAwJSkgICAwLjE2 ICggIDAlKSAgMjEyOWsgKCAgMCUpCiBMUkEgcmVsb2FkIGluaGVyaXRhbmNlICAgICAgICAg ICAgIDogICAwLjA5ICggIDAlKSAgIDAuMDAgKCAgMCUpICAgMC4wOSAoICAwJSkgICAzOTFr ICggIDAlKQogTFJBIGNyZWF0ZSBsaXZlIHJhbmdlcyAgICAgICAgICAgICA6ICAgMC41MyAo ICAwJSkgICAwLjAwICggIDAlKSAgIDAuNTMgKCAgMCUpICAgNDE3ayAoICAwJSkKIExSQSBo YXJkIHJlZyBhc3NpZ25tZW50ICAgICAgICAgICAgOiAgIDAuMDYgKCAgMCUpICAgMC4wMCAo ICAwJSkgICAwLjE2ICggIDAlKSAgICAgMCAgKCAgMCUpCiBMUkEgcmVtYXRlcmlhbGl6YXRp b24gICAgICAgICAgICAgIDogICAwLjA2ICggIDAlKSAgIDAuMDAgKCAgMCUpICAgMC4wNSAo ICAwJSkgIDIxMjggICggIDAlKQogcmVsb2FkICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA6ICAgMC4wMSAoICAwJSkgICAwLjAwICggIDAlKSAgIDAuMDEgKCAgMCUpICAgICAwICAo ICAwJSkKIHJlbG9hZCBDU0UgcmVncyAgICAgICAgICAgICAgICAgICAgOiAgIDAuNjkgKCAg MSUpICAgMC4wMCAoICAwJSkgICAwLjU5ICggIDElKSAgNDM3NmsgKCAgMCUpCiByZWUgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogICAwLjAyICggIDAlKSAgIDAuMDEgKCAg MCUpICAgMC4wNSAoICAwJSkgICAgNDdrICggIDAlKQogdGhyZWFkIHByby0gJiBlcGlsb2d1 ZSAgICAgICAgICAgICA6ICAgMC4zMSAoICAwJSkgICAwLjAwICggIDAlKSAgIDAuNDcgKCAg MCUpICAyNTkxayAoICAwJSkKIGlmLWNvbnZlcnNpb24gMiAgICAgICAgICAgICAgICAgICAg OiAgIDAuMDEgKCAgMCUpICAgMC4wMCAoICAwJSkgICAwLjAxICggIDAlKSAgICAxMWsgKCAg MCUpCiBjb21iaW5lIHN0YWNrIGFkanVzdG1lbnRzICAgICAgICAgIDogICAwLjA1ICggIDAl KSAgIDAuMDAgKCAgMCUpICAgMC4wMSAoICAwJSkgICAgIDAgICggIDAlKQogcGVlcGhvbGUg MiAgICAgICAgICAgICAgICAgICAgICAgICA6ICAgMC4wNSAoICAwJSkgICAwLjAwICggIDAl KSAgIDAuMDcgKCAgMCUpICAgNDc5ayAoICAwJSkKIGhhcmQgcmVnIGNwcm9wICAgICAgICAg ICAgICAgICAgICAgOiAgIDAuMjMgKCAgMCUpICAgMC4wMCAoICAwJSkgICAwLjE3ICggIDAl KSAgICAzNmsgKCAgMCUpCiBzY2hlZHVsaW5nIDIgICAgICAgICAgICAgICAgICAgICAgIDog ICAxLjMyICggIDElKSAgIDAuMDIgKCAgMSUpICAgMS40OCAoICAxJSkgIDE4OTdrICggIDAl KQogbWFjaGluZSBkZXAgcmVvcmcgICAgICAgICAgICAgICAgICA6ICAgMC4wOCAoICAwJSkg ICAwLjAwICggIDAlKSAgIDAuMTIgKCAgMCUpICAgICAwICAoICAwJSkKIHJlb3JkZXIgYmxv Y2tzICAgICAgICAgICAgICAgICAgICAgOiAgIDAuMTUgKCAgMCUpICAgMC4wMCAoICAwJSkg ICAwLjExICggIDAlKSAgMTM0MGsgKCAgMCUpCiBzaG9ydGVuIGJyYW5jaGVzICAgICAgICAg ICAgICAgICAgIDogICAwLjEzICggIDAlKSAgIDAuMDEgKCAgMCUpICAgMC4wNiAoICAwJSkg ICAgIDAgICggIDAlKQogZmluYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICAg MC4xOSAoICAwJSkgICAwLjAwICggIDAlKSAgIDAuMjIgKCAgMCUpICA2NzM2ayAoICAxJSkK IHZhcmlhYmxlIG91dHB1dCAgICAgICAgICAgICAgICAgICAgOiAgIDAuMDEgKCAgMCUpICAg MC4wMCAoICAwJSkgICAwLjAwICggIDAlKSAgIDE5NmsgKCAgMCUpCiBzeW1vdXQgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDogICAwLjAyICggIDAlKSAgIDAuMDAgKCAgMCUpICAg MC4wMCAoICAwJSkgICAgIDAgICggIDAlKQogdHJlZSBpZi1jb21iaW5lICAgICAgICAgICAg ICAgICAgICA6ICAgMC4wMSAoICAwJSkgICAwLjAwICggIDAlKSAgIDAuMDIgKCAgMCUpICAg IDE3ayAoICAwJSkKIGlmIHRvIHN3aXRjaCBjb252ZXJzaW9uICAgICAgICAgICAgOiAgIDAu MDcgKCAgMCUpICAgMC4wMCAoICAwJSkgICAwLjA0ICggIDAlKSAgICAgMCAgKCAgMCUpCiBz dHJhaWdodC1saW5lIHN0cmVuZ3RoIHJlZHVjdGlvbiAgIDogICAwLjExICggIDAlKSAgIDAu MDAgKCAgMCUpICAgMC4wNyAoICAwJSkgICAgNTZrICggIDAlKQogc3RvcmUgbWVyZ2luZyAg ICAgICAgICAgICAgICAgICAgICA6ICAgMC4zOCAoICAwJSkgICAwLjAxICggIDAlKSAgIDAu MjYgKCAgMCUpICAxMTA3ayAoICAwJSkKIGluaXRpYWxpemUgcnRsICAgICAgICAgICAgICAg ICAgICAgOiAgIDAuMDEgKCAgMCUpICAgMC4wMCAoICAwJSkgICAwLjAxICggIDAlKSAgICAx MmsgKCAgMCUpCiBhZGRyZXNzIGxvd2VyaW5nICAgICAgICAgICAgICAgICAgIDogICAwLjA3 ICggIDAlKSAgIDAuMDAgKCAgMCUpICAgMC4wOCAoICAwJSkgIDE1ODZrICggIDAlKQogZWFy bHkgbG9jYWwgcGFzc2VzICAgICAgICAgICAgICAgICA6ICAgMC4wNCAoICAwJSkgICAwLjAx ICggIDAlKSAgIDAuMDUgKCAgMCUpICAgICAwICAoICAwJSkKIHVuYWNjb3VudGVkIG9wdGlt aXphdGlvbnMgICAgICAgICAgOiAgIDAuMDIgKCAgMCUpICAgMC4wMCAoICAwJSkgICAwLjAw ICggIDAlKSAgICAgMCAgKCAgMCUpCiByZXN0IG9mIGNvbXBpbGF0aW9uICAgICAgICAgICAg ICAgIDogICAwLjk5ICggIDElKSAgIDAuMDEgKCAgMCUpICAgMS4wMCAoICAxJSkgIDQwMzZr ICggIDAlKQogdW5hY2NvdW50ZWQgbGF0ZSBjb21waWxhdGlvbiAgICAgICA6ICAgMC4wMCAo ICAwJSkgICAwLjAwICggIDAlKSAgIDAuMDEgKCAgMCUpICAgICAwICAoICAwJSkKIHJlbW92 ZSB1bnVzZWQgbG9jYWxzICAgICAgICAgICAgICAgOiAgIDAuMjEgKCAgMCUpICAgMC4wMSAo ICAwJSkgICAwLjMxICggIDAlKSAgICAzMGsgKCAgMCUpCiBhZGRyZXNzIHRha2VuICAgICAg ICAgICAgICAgICAgICAgIDogICAwLjIwICggIDAlKSAgIDAuMDAgKCAgMCUpICAgMC4yNSAo ICAwJSkgICAgIDAgICggIDAlKQogdmVyaWZ5IGxvb3AgY2xvc2VkICAgICAgICAgICAgICAg ICA6ICAgMC4wNyAoICAwJSkgICAwLjAwICggIDAlKSAgIDAuMDUgKCAgMCUpICAgICAwICAo ICAwJSkKIHZlcmlmeSBSVEwgc2hhcmluZyAgICAgICAgICAgICAgICAgOiAgIDEuNjMgKCAg MiUpICAgMC4wMSAoICAwJSkgICAxLjYyICggIDElKSAgICAgMCAgKCAgMCUpCiByZWJ1aWxk IGZyZXF1ZW5jaWVzICAgICAgICAgICAgICAgIDogICAwLjA3ICggIDAlKSAgIDAuMDAgKCAg MCUpICAgMC4wNiAoICAwJSkgICAgMzFrICggIDAlKQogcmVwYWlyIGxvb3Agc3RydWN0dXJl cyAgICAgICAgICAgICA6ICAgMC4xNCAoICAwJSkgICAwLjAwICggIDAlKSAgIDAuMTUgKCAg MCUpICA5NDU2ICAoICAwJSkKIFRPVEFMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg OiAxMDcuMzIgICAgICAgICAgMi44OSAgICAgICAgMTEwLjQ0ICAgICAgICAgMTA5N00KRXh0 cmEgZGlhZ25vc3RpYyBjaGVja3MgZW5hYmxlZDsgY29tcGlsZXIgbWF5IHJ1biBzbG93bHku CkNvbmZpZ3VyZSB3aXRoIC0tZW5hYmxlLWNoZWNraW5nPXJlbGVhc2UgdG8gZGlzYWJsZSBj aGVja3MuCnRtcCQgCg== --------------87034405C9B14510DAE7734A Content-Type: text/x-patch; charset=UTF-8; name="gcc-98664.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="gcc-98664.diff" PR middle-end/98664 - inconsistent -Wfree-nonheap-object for inlined calls to system headers gcc/ChangeLog: PR middle-end/98664 * tree-ssa-live.c (remove_unused_scope_block_p): Keep scopes for all functions, even if they're not declared artificial or inline. * tree.c (tree_inlined_location): Use macro expansion location only if scope traversal fails to expose one. gcc/testsuite/ChangeLog: PR middle-end/98664 * gcc.dg/Wvla-larger-than-4.c: Adjust expected output. * gcc.dg/plugin/diagnostic-test-inlining-3.c: Same. * g++.dg/warn/Wfree-nonheap-object-5.C: New test. * gcc.dg/Wfree-nonheap-object-4.c: New test. diff --git a/gcc/testsuite/g++.dg/warn/Wfree-nonheap-object-5.C b/gcc/testsuite/g++.dg/warn/Wfree-nonheap-object-5.C new file mode 100644 index 00000000000..742dba0cf58 --- /dev/null +++ b/gcc/testsuite/g++.dg/warn/Wfree-nonheap-object-5.C @@ -0,0 +1,129 @@ +/* PR middle-end/98664 - inconsistent --Wfree-nonheap-object for inlined + calls to system headers + { dg-do compile } + { dg-options "-O2 -Wall" } */ + +# 7 "Wfree-nonheap-object-5.h" 1 3 + +struct A0 +{ + void *p; + + void f0 (void *q) { p = q; } + void g0 (void) { + __builtin_free (p); // { dg-warning "\\\[-Wfree-nonheap-object" } + } +}; + +struct A1 +{ + void *p; + + void f0 (void *q) { p = q; } + void f1 (void *q) { f0 (q); } + + void g0 (void) { + __builtin_free (p); // { dg-warning "\\\[-Wfree-nonheap-object" } + } + void g1 (void) { g0 (); } +}; + +struct A2 +{ + void *p; + + void f0 (void *q) { p = q; } + void f1 (void *q) { f0 (q); } + void f2 (void *q) { f1 (q); } + + void g0 (void) { + __builtin_free (p); // { dg-warning "\\\[-Wfree-nonheap-object" } + } + void g1 (void) { g0 (); } + void g2 (void) { g1 (); } +}; + +# 47 "Wfree-nonheap-object-5.C" + +#define NOIPA __attribute__ ((noipa)) + +extern int array[]; + +/* Verify the warning is issued even for calls in a system header inlined + into a function outside the header. */ + +NOIPA void warn_g0 (struct A0 *p) +{ + int *q = array + 1; + + p->f0 (q); + p->g0 (); +} + +// { dg-message "inlined from 'void warn_g0\\(A0\\*\\)'" "" { target *-*-* } 0 } + + +/* Also verify the warning can be suppressed. */ + +NOIPA void nowarn_g0 (struct A0 *p) +{ + int *q = array + 2; + + p->f0 (q); + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wfree-nonheap-object" + p->g0 (); +#pragma GCC diagnostic pop +} + + +NOIPA void warn_g1 (struct A1 *p) +{ + int *q = array + 3; + + p->f1 (q); + p->g1 (); +} + +// { dg-message "inlined from 'void A1::g1\\(\\)'" "" { target *-*-* } 0 } +// { dg-message "inlined from 'void warn_g1\\(A1\\*\\)'" "" { target *-*-* } 0 } + + +NOIPA void nowarn_g1 (struct A2 *p) +{ + int *q = array + 4; + + p->f1 (q); + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wfree-nonheap-object" + p->g1 (); +#pragma GCC diagnostic pop +} + + +NOIPA void warn_g2 (struct A2 *p) +{ + int *q = array + 5; + + p->f2 (q); + p->g2 (); +} + +// { dg-message "inlined from 'void A2::g1\\(\\)'" "" { target *-*-* } 0 } +// { dg-message "inlined from 'void A2::g2\\(\\)'" "" { target *-*-* } 0 } +// { dg-message "inlined from 'void warn_g2\\(A2\\*\\)'" "" { target *-*-* } 0 } + + +NOIPA void nowarn_g2 (struct A2 *p) +{ + int *q = array + 6; + + p->f2 (q); + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wfree-nonheap-object" + p->g2 (); +#pragma GCC diagnostic pop +} diff --git a/gcc/testsuite/gcc.dg/Wfree-nonheap-object-4.c b/gcc/testsuite/gcc.dg/Wfree-nonheap-object-4.c new file mode 100644 index 00000000000..a7d921248c4 --- /dev/null +++ b/gcc/testsuite/gcc.dg/Wfree-nonheap-object-4.c @@ -0,0 +1,107 @@ +/* PR middle-end/98664 - inconsistent --Wfree-nonheap-object for inlined + calls to system headers + { dg-do compile } + { dg-options "-O2 -Wall" } */ + +# 7 "Wfree-nonheap-object-4.h" 1 3 + +struct A +{ + void *p; +}; + +void f0 (struct A *p, void *q) { p->p = q; } +void f1 (struct A *p, void *q) { f0 (p, q); } +void f2 (struct A *p, void *q) { f1 (p, q); } + +void g0 (struct A *p) +{ + __builtin_free (p->p); // { dg-warning "\\\[-Wfree-nonheap-object" } +} + +void g1 (struct A *p) { g0 (p); } +void g2 (struct A *p) { g1 (p); } + +# 26 "Wfree-nonheap-object-4.c" + +#define NOIPA __attribute__ ((noipa)) + +extern int array[]; + +/* Verify the warning is issued even for calls in a system header inlined + into a function outside the header. */ + +NOIPA void warn_g0 (struct A *p) +{ + int *q = array + 1; + + f0 (p, q); + g0 (p); +} + +// { dg-message "inlined from 'warn_g0'" "" { target *-*-* } 0 } + + +/* Also verify the warning can be suppressed. */ + +NOIPA void nowarn_g0 (struct A *p) +{ + int *q = array + 2; + + f0 (p, q); + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wfree-nonheap-object" + g0 (p); +#pragma GCC diagnostic pop +} + + +NOIPA void warn_g1 (struct A *p) +{ + int *q = array + 3; + + f1 (p, q); + g1 (p); +} + +// { dg-message "inlined from 'g1'" "" { target *-*-* } 0 } +// { dg-message "inlined from 'warn_g1'" "" { target *-*-* } 0 } + + +NOIPA void nowarn_g1 (struct A *p) +{ + int *q = array + 4; + + f1 (p, q); + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wfree-nonheap-object" + g1 (p); +#pragma GCC diagnostic pop +} + + +NOIPA void warn_g2 (struct A *p) +{ + int *q = array + 5; + + f2 (p, q); + g2 (p); +} + +// { dg-message "inlined from 'g2'" "" { target *-*-* } 0 } +// { dg-message "inlined from 'warn_g2'" "" { target *-*-* } 0 } + + +NOIPA void nowarn_g2 (struct A *p) +{ + int *q = array + 6; + + f2 (p, q); + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wfree-nonheap-object" + g2 (p); +#pragma GCC diagnostic pop +} diff --git a/gcc/testsuite/gcc.dg/Wvla-larger-than-4.c b/gcc/testsuite/gcc.dg/Wvla-larger-than-4.c index de99afbe56e..7d27829736f 100644 --- a/gcc/testsuite/gcc.dg/Wvla-larger-than-4.c +++ b/gcc/testsuite/gcc.dg/Wvla-larger-than-4.c @@ -17,14 +17,14 @@ static inline void inline_use_vla (unsigned n) static inline void use_inlined_vla (unsigned n) { inline_use_vla (n); // this call is okay - inline_use_vla (n + 1); // this one is not + inline_use_vla (n + 1); // this one is not (line 20) } void call_inline (void) { - use_inlined_vla (31); + use_inlined_vla (31); // line 25 } /* Verify that the inlining context is included and that it points to the correct line number in the inlined function: - { dg-message "function 'inline_use_vla'..*inlined from 'call_inline' .*:20:" "" { target *-*-* } 0 } */ + { dg-message "function 'inline_use_vla'.*inlined from 'use_inlined_vla'.*:20:.*inlined from 'call_inline' .*:25:" "" { target *-*-* } 0 } */ diff --git a/gcc/testsuite/gcc.dg/plugin/diagnostic-test-inlining-3.c b/gcc/testsuite/gcc.dg/plugin/diagnostic-test-inlining-3.c index e1a4fca2cb4..56c9546fb84 100644 --- a/gcc/testsuite/gcc.dg/plugin/diagnostic-test-inlining-3.c +++ b/gcc/testsuite/gcc.dg/plugin/diagnostic-test-inlining-3.c @@ -35,7 +35,8 @@ int main() This test case captures this behavior. */ /* { dg-regexp "In function 'foo'," "" } */ -/* { dg-regexp " inlined from 'main' at .+/diagnostic-test-inlining-3.c:15:3:" "" } */ +/* { dg-regexp " inlined from 'bar' at .+/diagnostic-test-inlining-3.c:15:3," "" } */ +/* { dg-regexp " inlined from 'main' at .+/diagnostic-test-inlining-3.c:20:3:" "" } */ /* { dg-warning "3: message" "" { target *-*-* } 9 } */ /* { dg-begin-multiline-output "" } __emit_warning ("message"); diff --git a/gcc/tree-ssa-live.c b/gcc/tree-ssa-live.c index 02a7a56f0f9..5f58bfb9168 100644 --- a/gcc/tree-ssa-live.c +++ b/gcc/tree-ssa-live.c @@ -555,19 +555,17 @@ remove_unused_scope_block_p (tree scope, bool in_ctor_dtor_block) ; /* When not generating debug info we can eliminate info on unused variables. */ - else if (!flag_auto_profile && debug_info_level == DINFO_LEVEL_NONE + else if (!flag_auto_profile + && debug_info_level == DINFO_LEVEL_NONE && !optinfo_wants_inlining_info_p ()) { - /* Even for -g0 don't prune outer scopes from artificial - functions, otherwise diagnostics using tree_nonartificial_location - will not be emitted properly. */ + /* Even for -g0 don't prune outer scopes from inlined functions, + otherwise late diagnostics from such functions will not be + emitted or suppressed properly. */ if (inlined_function_outer_scope_p (scope)) { - tree ao = BLOCK_ORIGIN (scope); - if (ao - && TREE_CODE (ao) == FUNCTION_DECL - && DECL_DECLARED_INLINE_P (ao) - && lookup_attribute ("artificial", DECL_ATTRIBUTES (ao))) + tree orig = BLOCK_ORIGIN (scope); + if (TREE_CODE (orig) == FUNCTION_DECL) unused = false; } } diff --git a/gcc/tree.c b/gcc/tree.c index a25c71f1152..061fe43aa31 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -12638,10 +12638,13 @@ tree_inlined_location (tree exp, bool system_header /* = true */) } if (loc == UNKNOWN_LOCATION) - loc = EXPR_LOCATION (exp); - - if (system_header) - return expansion_point_location_if_in_system_header (loc); + { + loc = EXPR_LOCATION (exp); + if (system_header) + /* Only consider macro expansion when the block traversal failed + to find a location. Otherwise it's not relevant. */ + return expansion_point_location_if_in_system_header (loc); + } return loc; } --------------87034405C9B14510DAE7734A--