From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pj1-x1029.google.com (mail-pj1-x1029.google.com [IPv6:2607:f8b0:4864:20::1029]) by sourceware.org (Postfix) with ESMTPS id 49F9F3858423 for ; Sun, 6 Feb 2022 04:17:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 49F9F3858423 Received: by mail-pj1-x1029.google.com with SMTP id qe15so97843pjb.3 for ; Sat, 05 Feb 2022 20:17:25 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=u+aN4dICwmStUM4aXhEVUqyZk7IcsDbTf7ibiBzca/k=; b=p5CYJ/juN2ks0gxcv99NRHvBZXYyi3y/pgDqlLuby7g7qadd77bT+s4zPqVPhSUHNe Ps1G9MCO9eocyJKVMgYQ+7gDkPDyizSOEQxbWWfFsL3o9B+5kll9n78LHXUxDsFpbVgo wgK0LTs3th0Pk6rGQKb8ioM42INWg4sfnOlIfka7+nHxrtBcHQssVo/cMzFhsU+8po6b vXfPslL379ol3e7r5m2Pbc97m/rGYRSB006Am1VHAipJpVKgrFmQyIev9madRiS0Xchv 2OTnqDuaNl4xQADKJV7JgxXbAb0q/86yPFRwprD2zmsIk2Murgh3kGpbm0GW98vrVS+x Wz6Q== X-Gm-Message-State: AOAM531Eip8bhrBidF/9kqOvvYXEV2W9zIHswojvXeihTX6JnP6GSrFC 6rJvMdCJHz0EVGdGCvegS2xLQ9AnKRI= X-Google-Smtp-Source: ABdhPJxSSm6xhpDukGKu25FYDVUX2P1BBIrdMUdRRcUuB8CrW0pFtx2p1u1UoXRhn6CmRkHbrKp5Uw== X-Received: by 2002:a17:902:76cb:: with SMTP id j11mr10767157plt.85.1644121043796; Sat, 05 Feb 2022 20:17:23 -0800 (PST) Received: from squeak.grove.modra.org ([2406:3400:51d:8cc0:4724:a708:5181:4522]) by smtp.gmail.com with ESMTPSA id kk17sm18713886pjb.21.2022.02.05.20.17.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 05 Feb 2022 20:17:22 -0800 (PST) Received: by squeak.grove.modra.org (Postfix, from userid 1000) id 6BA5B11404CF; Sun, 6 Feb 2022 14:47:19 +1030 (ACDT) Date: Sun, 6 Feb 2022 14:47:19 +1030 From: Alan Modra To: Nick Clifton Cc: Fangrui Song , Binutils Subject: Re: PR28827 testcase Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Spam-Status: No, score=-3034.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SCC_10_SHORT_WORD_LINES, SCC_20_SHORT_WORD_LINES, SCC_35_SHORT_WORD_LINES, SCC_5_SHORT_WORD_LINES, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Feb 2022 04:17:31 -0000 On Sat, Feb 05, 2022 at 10:39:50AM +0000, Nick Clifton wrote: > Hi Alan, Hi Fangrui, > > > This testcase triggers a stub sizing error with the patches applied > > for PR28743 (commit 2f83249c13d8 and c804c6f98d34). > > > > PR 28827 > > * testsuite/ld-powerpc/pr28827-1.s, > > * testsuite/ld-powerpc/pr28827-1.d: New test. > > * testsuite/ld-powerpc/powerpc.exp: Run it. > > Given the importance of the PowerPC target, I am going to hold > off from creating the 2.38 release until this issue is fixed. Thanks, I appreciate it. > I do hope however that it can be resolved soon.... The solution is to revert HJ's two relro patches on the branch. That will let you immediately make a release. Despite being raised by Florian, I don't believe PR28743 is an important bug to fix just before a release. Our relro support has sometimes created a hole for *years*. Of course, the patches ought to be reverted on mainline too, separately from whatever solution we finally adopt for PR28743. Here's a more elegant pr28827-1 testcase, with a comment that fully discloses that it's not really a testcase that exactly mimics what I saw when analysing PR28827. * testsuite/ld-powerpc/pr28827-1.s: Make the testcase more elegant. Comment. diff --git a/ld/testsuite/ld-powerpc/pr28827-1.s b/ld/testsuite/ld-powerpc/pr28827-1.s index bf647a69072..b9129843c66 100644 --- a/ld/testsuite/ld-powerpc/pr28827-1.s +++ b/ld/testsuite/ld-powerpc/pr28827-1.s @@ -12,6006 +12,34 @@ _start: stdu 1,-32(1) .cfi_def_cfa_offset 32 .cfi_offset 65, 16 - bl f0 - nop - bl f1 - nop - bl f2 - nop - bl f3 - nop - bl f4 - nop - bl f5 - nop - bl f6 - nop - bl f7 - nop - bl f8 - nop - bl f9 - nop - bl f10 - nop - bl f11 - nop - bl f12 - nop - bl f13 - nop - bl f14 - nop - bl f15 - nop - bl f16 - nop - bl f17 - nop - bl f18 - nop - bl f19 - nop - bl f20 - nop - bl f21 - nop - bl f22 - nop - bl f23 - nop - bl f24 - nop - bl f25 - nop - bl f26 - nop - bl f27 - nop - bl f28 - nop - bl f29 - nop - bl f30 - nop - bl f31 - nop - bl f32 - nop - bl f33 - nop - bl f34 - nop - bl f35 - nop - bl f36 - nop - bl f37 - nop - bl f38 - nop - bl f39 - nop - bl f40 - nop - bl f41 - nop - bl f42 - nop - bl f43 - nop - bl f44 - nop - bl f45 - nop - bl f46 - nop - bl f47 - nop - bl f48 - nop - bl f49 - nop - bl f50 - nop - bl f51 - nop - bl f52 - nop - bl f53 - nop - bl f54 - nop - bl f55 - nop - bl f56 - nop - bl f57 - nop - bl f58 - nop - bl f59 - nop - bl f60 - nop - bl f61 - nop - bl f62 - nop - bl f63 - nop - bl f64 - nop - bl f65 - nop - bl f66 - nop - bl f67 - nop - bl f68 - nop - bl f69 - nop - bl f70 - nop - bl f71 - nop - bl f72 - nop - bl f73 - nop - bl f74 - nop - bl f75 - nop - bl f76 - nop - bl f77 - nop - bl f78 - nop - bl f79 - nop - bl f80 - nop - bl f81 - nop - bl f82 - nop - bl f83 - nop - bl f84 - nop - bl f85 - nop - bl f86 - nop - bl f87 - nop - bl f88 - nop - bl f89 - nop - bl f90 - nop - bl f91 - nop - bl f92 - nop - bl f93 - nop - bl f94 - nop - bl f95 - nop - bl f96 - nop - bl f97 - nop - bl f98 - nop - bl f99 - nop - bl f100 - nop - bl f101 - nop - bl f102 - nop - bl f103 - nop - bl f104 - nop - bl f105 - nop - bl f106 - nop - bl f107 - nop - bl f108 - nop - bl f109 - nop - bl f110 - nop - bl f111 - nop - bl f112 - nop - bl f113 - nop - bl f114 - nop - bl f115 - nop - bl f116 - nop - bl f117 - nop - bl f118 - nop - bl f119 - nop - bl f120 - nop - bl f121 - nop - bl f122 - nop - bl f123 - nop - bl f124 - nop - bl f125 - nop - bl f126 - nop - bl f127 - nop - bl f128 - nop - bl f129 - nop - bl f130 - nop - bl f131 - nop - bl f132 - nop - bl f133 - nop - bl f134 - nop - bl f135 - nop - bl f136 - nop - bl f137 - nop - bl f138 - nop - bl f139 - nop - bl f140 - nop - bl f141 - nop - bl f142 - nop - bl f143 - nop - bl f144 - nop - bl f145 - nop - bl f146 - nop - bl f147 - nop - bl f148 - nop - bl f149 - nop - bl f150 - nop - bl f151 - nop - bl f152 - nop - bl f153 - nop - bl f154 - nop - bl f155 - nop - bl f156 - nop - bl f157 - nop - bl f158 - nop - bl f159 - nop - bl f160 - nop - bl f161 - nop - bl f162 - nop - bl f163 - nop - bl f164 - nop - bl f165 - nop - bl f166 - nop - bl f167 - nop - bl f168 - nop - bl f169 - nop - bl f170 - nop - bl f171 - nop - bl f172 - nop - bl f173 - nop - bl f174 - nop - bl f175 - nop - bl f176 - nop - bl f177 - nop - bl f178 - nop - bl f179 - nop - bl f180 - nop - bl f181 - nop - bl f182 - nop - bl f183 - nop - bl f184 - nop - bl f185 - nop - bl f186 - nop - bl f187 - nop - bl f188 - nop - bl f189 - nop - bl f190 - nop - bl f191 - nop - bl f192 - nop - bl f193 - nop - bl f194 - nop - bl f195 - nop - bl f196 - nop - bl f197 - nop - bl f198 - nop - bl f199 - nop - bl f200 - nop - bl f201 - nop - bl f202 - nop - bl f203 - nop - bl f204 - nop - bl f205 - nop - bl f206 - nop - bl f207 - nop - bl f208 - nop - bl f209 - nop - bl f210 - nop - bl f211 - nop - bl f212 - nop - bl f213 - nop - bl f214 - nop - bl f215 - nop - bl f216 - nop - bl f217 - nop - bl f218 - nop - bl f219 - nop - bl f220 - nop - bl f221 - nop - bl f222 - nop - bl f223 - nop - bl f224 - nop - bl f225 - nop - bl f226 - nop - bl f227 - nop - bl f228 - nop - bl f229 - nop - bl f230 - nop - bl f231 - nop - bl f232 - nop - bl f233 - nop - bl f234 - nop - bl f235 - nop - bl f236 - nop - bl f237 - nop - bl f238 - nop - bl f239 - nop - bl f240 - nop - bl f241 - nop - bl f242 - nop - bl f243 - nop - bl f244 - nop - bl f245 - nop - bl f246 - nop - bl f247 - nop - bl f248 - nop - bl f249 - nop - bl f250 - nop - bl f251 - nop - bl f252 - nop - bl f253 - nop - bl f254 - nop - bl f255 - nop - bl f256 - nop - bl f257 - nop - bl f258 - nop - bl f259 - nop - bl f260 - nop - bl f261 - nop - bl f262 - nop - bl f263 - nop - bl f264 - nop - bl f265 - nop - bl f266 - nop - bl f267 - nop - bl f268 - nop - bl f269 - nop - bl f270 - nop - bl f271 - nop - bl f272 - nop - bl f273 - nop - bl f274 - nop - bl f275 - nop - bl f276 - nop - bl f277 - nop - bl f278 - nop - bl f279 - nop - bl f280 - nop - bl f281 - nop - bl f282 - nop - bl f283 - nop - bl f284 - nop - bl f285 - nop - bl f286 - nop - bl f287 - nop - bl f288 - nop - bl f289 - nop - bl f290 - nop - bl f291 - nop - bl f292 - nop - bl f293 - nop - bl f294 - nop - bl f295 - nop - bl f296 - nop - bl f297 - nop - bl f298 - nop - bl f299 - nop - bl f300 - nop - bl f301 - nop - bl f302 - nop - bl f303 - nop - bl f304 - nop - bl f305 - nop - bl f306 - nop - bl f307 - nop - bl f308 - nop - bl f309 - nop - bl f310 - nop - bl f311 - nop - bl f312 - nop - bl f313 - nop - bl f314 - nop - bl f315 - nop - bl f316 - nop - bl f317 - nop - bl f318 - nop - bl f319 - nop - bl f320 - nop - bl f321 - nop - bl f322 - nop - bl f323 - nop - bl f324 - nop - bl f325 - nop - bl f326 - nop - bl f327 - nop - bl f328 - nop - bl f329 - nop - bl f330 - nop - bl f331 - nop - bl f332 - nop - bl f333 - nop - bl f334 - nop - bl f335 - nop - bl f336 - nop - bl f337 - nop - bl f338 - nop - bl f339 - nop - bl f340 - nop - bl f341 - nop - bl f342 - nop - bl f343 - nop - bl f344 - nop - bl f345 - nop - bl f346 - nop - bl f347 - nop - bl f348 - nop - bl f349 - nop - bl f350 - nop - bl f351 - nop - bl f352 - nop - bl f353 - nop - bl f354 - nop - bl f355 - nop - bl f356 - nop - bl f357 - nop - bl f358 - nop - bl f359 - nop - bl f360 - nop - bl f361 - nop - bl f362 - nop - bl f363 - nop - bl f364 - nop - bl f365 - nop - bl f366 - nop - bl f367 - nop - bl f368 - nop - bl f369 - nop - bl f370 - nop - bl f371 - nop - bl f372 - nop - bl f373 - nop - bl f374 - nop - bl f375 - nop - bl f376 - nop - bl f377 - nop - bl f378 - nop - bl f379 - nop - bl f380 - nop - bl f381 - nop - bl f382 - nop - bl f383 - nop - bl f384 - nop - bl f385 - nop - bl f386 - nop - bl f387 - nop - bl f388 - nop - bl f389 - nop - bl f390 - nop - bl f391 - nop - bl f392 - nop - bl f393 - nop - bl f394 - nop - bl f395 - nop - bl f396 - nop - bl f397 - nop - bl f398 - nop - bl f399 - nop - bl f400 - nop - bl f401 - nop - bl f402 - nop - bl f403 - nop - bl f404 - nop - bl f405 - nop - bl f406 - nop - bl f407 - nop - bl f408 - nop - bl f409 - nop - bl f410 - nop - bl f411 - nop - bl f412 - nop - bl f413 - nop - bl f414 - nop - bl f415 - nop - bl f416 - nop - bl f417 - nop - bl f418 - nop - bl f419 - nop - bl f420 - nop - bl f421 - nop - bl f422 - nop - bl f423 - nop - bl f424 - nop - bl f425 - nop - bl f426 - nop - bl f427 - nop - bl f428 - nop - bl f429 - nop - bl f430 - nop - bl f431 - nop - bl f432 - nop - bl f433 - nop - bl f434 - nop - bl f435 - nop - bl f436 - nop - bl f437 - nop - bl f438 - nop - bl f439 - nop - bl f440 - nop - bl f441 - nop - bl f442 - nop - bl f443 - nop - bl f444 - nop - bl f445 - nop - bl f446 - nop - bl f447 - nop - bl f448 - nop - bl f449 - nop - bl f450 - nop - bl f451 - nop - bl f452 - nop - bl f453 - nop - bl f454 - nop - bl f455 - nop - bl f456 - nop - bl f457 - nop - bl f458 - nop - bl f459 - nop - bl f460 - nop - bl f461 - nop - bl f462 - nop - bl f463 - nop - bl f464 - nop - bl f465 - nop - bl f466 - nop - bl f467 - nop - bl f468 - nop - bl f469 - nop - bl f470 - nop - bl f471 - nop - bl f472 - nop - bl f473 - nop - bl f474 - nop - bl f475 - nop - bl f476 - nop - bl f477 - nop - bl f478 - nop - bl f479 - nop - bl f480 - nop - bl f481 - nop - bl f482 - nop - bl f483 - nop - bl f484 - nop - bl f485 - nop - bl f486 - nop - bl f487 - nop - bl f488 - nop - bl f489 - nop - bl f490 - nop - bl f491 - nop - bl f492 - nop - bl f493 - nop - bl f494 - nop - bl f495 - nop - bl f496 - nop - bl f497 - nop - bl f498 - nop - bl f499 - nop - bl f500 - nop - bl f501 - nop - bl f502 - nop - bl f503 - nop - bl f504 - nop - bl f505 - nop - bl f506 - nop - bl f507 - nop - bl f508 - nop - bl f509 - nop - bl f510 - nop - bl f511 - nop - bl f512 - nop - bl f513 - nop - bl f514 - nop - bl f515 - nop - bl f516 - nop - bl f517 - nop - bl f518 - nop - bl f519 - nop - bl f520 - nop - bl f521 - nop - bl f522 - nop - bl f523 - nop - bl f524 - nop - bl f525 - nop - bl f526 - nop - bl f527 - nop - bl f528 - nop - bl f529 - nop - bl f530 - nop - bl f531 - nop - bl f532 - nop - bl f533 - nop - bl f534 - nop - bl f535 - nop - bl f536 - nop - bl f537 - nop - bl f538 - nop - bl f539 - nop - bl f540 - nop - bl f541 - nop - bl f542 - nop - bl f543 - nop - bl f544 - nop - bl f545 - nop - bl f546 - nop - bl f547 - nop - bl f548 - nop - bl f549 - nop - bl f550 - nop - bl f551 - nop - bl f552 - nop - bl f553 - nop - bl f554 - nop - bl f555 - nop - bl f556 - nop - bl f557 - nop - bl f558 - nop - bl f559 - nop - bl f560 - nop - bl f561 - nop - bl f562 - nop - bl f563 - nop - bl f564 - nop - bl f565 - nop - bl f566 - nop - bl f567 - nop - bl f568 - nop - bl f569 - nop - bl f570 - nop - bl f571 - nop - bl f572 - nop - bl f573 - nop - bl f574 - nop - bl f575 - nop - bl f576 - nop - bl f577 - nop - bl f578 - nop - bl f579 - nop - bl f580 - nop - bl f581 - nop - bl f582 - nop - bl f583 - nop - bl f584 - nop - bl f585 - nop - bl f586 - nop - bl f587 - nop - bl f588 - nop - bl f589 - nop - bl f590 - nop - bl f591 - nop - bl f592 - nop - bl f593 - nop - bl f594 - nop - bl f595 - nop - bl f596 - nop - bl f597 - nop - bl f598 - nop - bl f599 - nop - bl f600 - nop - bl f601 - nop - bl f602 - nop - bl f603 - nop - bl f604 - nop - bl f605 - nop - bl f606 - nop - bl f607 - nop - bl f608 - nop - bl f609 - nop - bl f610 - nop - bl f611 - nop - bl f612 - nop - bl f613 - nop - bl f614 - nop - bl f615 - nop - bl f616 - nop - bl f617 - nop - bl f618 - nop - bl f619 - nop - bl f620 - nop - bl f621 - nop - bl f622 - nop - bl f623 - nop - bl f624 - nop - bl f625 - nop - bl f626 - nop - bl f627 - nop - bl f628 - nop - bl f629 - nop - bl f630 - nop - bl f631 - nop - bl f632 - nop - bl f633 - nop - bl f634 - nop - bl f635 - nop - bl f636 - nop - bl f637 - nop - bl f638 - nop - bl f639 - nop - bl f640 - nop - bl f641 - nop - bl f642 - nop - bl f643 - nop - bl f644 - nop - bl f645 - nop - bl f646 - nop - bl f647 - nop - bl f648 - nop - bl f649 - nop - bl f650 - nop - bl f651 - nop - bl f652 - nop - bl f653 - nop - bl f654 - nop - bl f655 - nop - bl f656 - nop - bl f657 - nop - bl f658 - nop - bl f659 - nop - bl f660 - nop - bl f661 - nop - bl f662 - nop - bl f663 - nop - bl f664 - nop - bl f665 - nop - bl f666 - nop - bl f667 - nop - bl f668 - nop - bl f669 - nop - bl f670 - nop - bl f671 - nop - bl f672 - nop - bl f673 - nop - bl f674 - nop - bl f675 - nop - bl f676 - nop - bl f677 - nop - bl f678 - nop - bl f679 - nop - bl f680 - nop - bl f681 - nop - bl f682 - nop - bl f683 - nop - bl f684 - nop - bl f685 - nop - bl f686 - nop - bl f687 - nop - bl f688 - nop - bl f689 - nop - bl f690 - nop - bl f691 - nop - bl f692 - nop - bl f693 - nop - bl f694 - nop - bl f695 - nop - bl f696 - nop - bl f697 - nop - bl f698 - nop - bl f699 - nop - bl f700 - nop - bl f701 - nop - bl f702 - nop - bl f703 - nop - bl f704 - nop - bl f705 - nop - bl f706 - nop - bl f707 - nop - bl f708 - nop - bl f709 - nop - bl f710 - nop - bl f711 - nop - bl f712 - nop - bl f713 - nop - bl f714 - nop - bl f715 - nop - bl f716 - nop - bl f717 - nop - bl f718 - nop - bl f719 - nop - bl f720 - nop - bl f721 - nop - bl f722 - nop - bl f723 - nop - bl f724 - nop - bl f725 - nop - bl f726 - nop - bl f727 - nop - bl f728 - nop - bl f729 - nop - bl f730 - nop - bl f731 - nop - bl f732 - nop - bl f733 - nop - bl f734 - nop - bl f735 - nop - bl f736 - nop - bl f737 - nop - bl f738 - nop - bl f739 - nop - bl f740 - nop - bl f741 - nop - bl f742 - nop - bl f743 - nop - bl f744 - nop - bl f745 - nop - bl f746 - nop - bl f747 - nop - bl f748 - nop - bl f749 - nop - bl f750 - nop - bl f751 - nop - bl f752 - nop - bl f753 - nop - bl f754 - nop - bl f755 - nop - bl f756 - nop - bl f757 - nop - bl f758 - nop - bl f759 - nop - bl f760 - nop - bl f761 - nop - bl f762 - nop - bl f763 - nop - bl f764 - nop - bl f765 - nop - bl f766 - nop - bl f767 - nop - bl f768 - nop - bl f769 - nop - bl f770 - nop - bl f771 - nop - bl f772 - nop - bl f773 - nop - bl f774 - nop - bl f775 - nop - bl f776 - nop - bl f777 - nop - bl f778 - nop - bl f779 - nop - bl f780 - nop - bl f781 - nop - bl f782 - nop - bl f783 - nop - bl f784 - nop - bl f785 - nop - bl f786 - nop - bl f787 - nop - bl f788 - nop - bl f789 - nop - bl f790 - nop - bl f791 - nop - bl f792 - nop - bl f793 - nop - bl f794 - nop - bl f795 - nop - bl f796 - nop - bl f797 - nop - bl f798 - nop - bl f799 - nop - bl f800 - nop - bl f801 - nop - bl f802 - nop - bl f803 - nop - bl f804 - nop - bl f805 - nop - bl f806 - nop - bl f807 - nop - bl f808 - nop - bl f809 - nop - bl f810 - nop - bl f811 - nop - bl f812 - nop - bl f813 - nop - bl f814 - nop - bl f815 - nop - bl f816 - nop - bl f817 - nop - bl f818 - nop - bl f819 - nop - bl f820 - nop - bl f821 - nop - bl f822 - nop - bl f823 - nop - bl f824 - nop - bl f825 - nop - bl f826 - nop - bl f827 - nop - bl f828 - nop - bl f829 - nop - bl f830 - nop - bl f831 - nop - bl f832 - nop - bl f833 - nop - bl f834 - nop - bl f835 - nop - bl f836 - nop - bl f837 - nop - bl f838 - nop - bl f839 - nop - bl f840 - nop - bl f841 - nop - bl f842 - nop - bl f843 - nop - bl f844 - nop - bl f845 - nop - bl f846 - nop - bl f847 - nop - bl f848 - nop - bl f849 - nop - bl f850 - nop - bl f851 - nop - bl f852 - nop - bl f853 - nop - bl f854 - nop - bl f855 - nop - bl f856 - nop - bl f857 - nop - bl f858 - nop - bl f859 - nop - bl f860 - nop - bl f861 - nop - bl f862 - nop - bl f863 - nop - bl f864 - nop - bl f865 - nop - bl f866 - nop - bl f867 - nop - bl f868 - nop - bl f869 - nop - bl f870 - nop - bl f871 - nop - bl f872 - nop - bl f873 - nop - bl f874 - nop - bl f875 - nop - bl f876 - nop - bl f877 - nop - bl f878 - nop - bl f879 - nop - bl f880 - nop - bl f881 - nop - bl f882 - nop - bl f883 - nop - bl f884 - nop - bl f885 - nop - bl f886 - nop - bl f887 - nop - bl f888 - nop - bl f889 - nop - bl f890 - nop - bl f891 - nop - bl f892 - nop - bl f893 - nop - bl f894 - nop - bl f895 - nop - bl f896 - nop - bl f897 - nop - bl f898 - nop - bl f899 - nop - bl f900 - nop - bl f901 - nop - bl f902 - nop - bl f903 - nop - bl f904 - nop - bl f905 - nop - bl f906 - nop - bl f907 - nop - bl f908 - nop - bl f909 - nop - bl f910 - nop - bl f911 - nop - bl f912 - nop - bl f913 - nop - bl f914 - nop - bl f915 - nop - bl f916 - nop - bl f917 - nop - bl f918 - nop - bl f919 - nop - bl f920 - nop - bl f921 - nop - bl f922 - nop - bl f923 - nop - bl f924 - nop - bl f925 - nop - bl f926 - nop - bl f927 - nop - bl f928 - nop - bl f929 - nop - bl f930 - nop - bl f931 - nop - bl f932 - nop - bl f933 - nop - bl f934 - nop - bl f935 - nop - bl f936 - nop - bl f937 - nop - bl f938 - nop - bl f939 - nop - bl f940 - nop - bl f941 - nop - bl f942 - nop - bl f943 - nop - bl f944 - nop - bl f945 - nop - bl f946 - nop - bl f947 - nop - bl f948 - nop - bl f949 - nop - bl f950 - nop - bl f951 - nop - bl f952 - nop - bl f953 - nop - bl f954 - nop - bl f955 - nop - bl f956 - nop - bl f957 - nop - bl f958 - nop - bl f959 - nop - bl f960 - nop - bl f961 - nop - bl f962 - nop - bl f963 - nop - bl f964 - nop - bl f965 - nop - bl f966 - nop - bl f967 - nop - bl f968 - nop - bl f969 - nop - bl f970 - nop - bl f971 - nop - bl f972 - nop - bl f973 - nop - bl f974 - nop - bl f975 - nop - bl f976 - nop - bl f977 - nop - bl f978 - nop - bl f979 - nop - bl f980 - nop - bl f981 - nop - bl f982 - nop - bl f983 - nop - bl f984 - nop - bl f985 - nop - bl f986 - nop - bl f987 - nop - bl f988 - nop - bl f989 - nop - bl f990 - nop - bl f991 - nop - bl f992 - nop - bl f993 - nop - bl f994 - nop - bl f995 - nop - bl f996 - nop - bl f997 - nop - bl f998 - nop - bl f999 - nop - bl f1000 - nop - bl f1001 - nop - bl f1002 - nop - bl f1003 - nop - bl f1004 - nop - bl f1005 - nop - bl f1006 - nop - bl f1007 - nop - bl f1008 - nop - bl f1009 - nop - bl f1010 - nop - bl f1011 - nop - bl f1012 - nop - bl f1013 - nop - bl f1014 - nop - bl f1015 - nop - bl f1016 - nop - bl f1017 - nop - bl f1018 - nop - bl f1019 - nop - bl f1020 - nop - bl f1021 - nop - bl f1022 - nop - bl f1023 - nop - bl f1024 - nop - bl f1025 - nop - bl f1026 - nop - bl f1027 - nop - bl f1028 - nop - bl f1029 - nop - bl f1030 - nop - bl f1031 - nop - bl f1032 - nop - bl f1033 - nop - bl f1034 - nop - bl f1035 - nop - bl f1036 - nop - bl f1037 - nop - bl f1038 - nop - bl f1039 - nop - bl f1040 - nop - bl f1041 - nop - bl f1042 - nop - bl f1043 - nop - bl f1044 - nop - bl f1045 - nop - bl f1046 - nop - bl f1047 - nop - bl f1048 - nop - bl f1049 - nop - bl f1050 - nop - bl f1051 - nop - bl f1052 - nop - bl f1053 - nop - bl f1054 - nop - bl f1055 - nop - bl f1056 - nop - bl f1057 - nop - bl f1058 - nop - bl f1059 - nop - bl f1060 - nop - bl f1061 - nop - bl f1062 - nop - bl f1063 - nop - bl f1064 - nop - bl f1065 - nop - bl f1066 - nop - bl f1067 - nop - bl f1068 - nop - bl f1069 - nop - bl f1070 - nop - bl f1071 - nop - bl f1072 - nop - bl f1073 - nop - bl f1074 - nop - bl f1075 - nop - bl f1076 - nop - bl f1077 - nop - bl f1078 - nop - bl f1079 - nop - bl f1080 - nop - bl f1081 - nop - bl f1082 - nop - bl f1083 - nop - bl f1084 - nop - bl f1085 - nop - bl f1086 - nop - bl f1087 - nop - bl f1088 - nop - bl f1089 - nop - bl f1090 - nop - bl f1091 - nop - bl f1092 - nop - bl f1093 - nop - bl f1094 - nop - bl f1095 - nop - bl f1096 - nop - bl f1097 - nop - bl f1098 - nop - bl f1099 - nop - bl f1100 - nop - bl f1101 - nop - bl f1102 - nop - bl f1103 - nop - bl f1104 - nop - bl f1105 - nop - bl f1106 - nop - bl f1107 - nop - bl f1108 - nop - bl f1109 - nop - bl f1110 - nop - bl f1111 - nop - bl f1112 - nop - bl f1113 - nop - bl f1114 - nop - bl f1115 - nop - bl f1116 - nop - bl f1117 - nop - bl f1118 - nop - bl f1119 - nop - bl f1120 - nop - bl f1121 - nop - bl f1122 - nop - bl f1123 - nop - bl f1124 - nop - bl f1125 - nop - bl f1126 - nop - bl f1127 - nop - bl f1128 - nop - bl f1129 - nop - bl f1130 - nop - bl f1131 - nop - bl f1132 - nop - bl f1133 - nop - bl f1134 - nop - bl f1135 - nop - bl f1136 - nop - bl f1137 - nop - bl f1138 - nop - bl f1139 - nop - bl f1140 - nop - bl f1141 - nop - bl f1142 - nop - bl f1143 - nop - bl f1144 - nop - bl f1145 - nop - bl f1146 - nop - bl f1147 - nop - bl f1148 - nop - bl f1149 - nop - bl f1150 - nop - bl f1151 - nop - bl f1152 - nop - bl f1153 - nop - bl f1154 - nop - bl f1155 - nop - bl f1156 - nop - bl f1157 - nop - bl f1158 - nop - bl f1159 - nop - bl f1160 - nop - bl f1161 - nop - bl f1162 - nop - bl f1163 - nop - bl f1164 - nop - bl f1165 - nop - bl f1166 - nop - bl f1167 - nop - bl f1168 - nop - bl f1169 - nop - bl f1170 - nop - bl f1171 - nop - bl f1172 - nop - bl f1173 - nop - bl f1174 - nop - bl f1175 - nop - bl f1176 - nop - bl f1177 - nop - bl f1178 - nop - bl f1179 - nop - bl f1180 - nop - bl f1181 - nop - bl f1182 - nop - bl f1183 - nop - bl f1184 - nop - bl f1185 - nop - bl f1186 - nop - bl f1187 - nop - bl f1188 - nop - bl f1189 - nop - bl f1190 - nop - bl f1191 - nop - bl f1192 - nop - bl f1193 - nop - bl f1194 - nop - bl f1195 - nop - bl f1196 - nop - bl f1197 - nop - bl f1198 - nop - bl f1199 - nop - bl f1200 - nop - bl f1201 - nop - bl f1202 - nop - bl f1203 - nop - bl f1204 - nop - bl f1205 - nop - bl f1206 - nop - bl f1207 - nop - bl f1208 - nop - bl f1209 - nop - bl f1210 - nop - bl f1211 - nop - bl f1212 - nop - bl f1213 - nop - bl f1214 - nop - bl f1215 - nop - bl f1216 - nop - bl f1217 - nop - bl f1218 - nop - bl f1219 - nop - bl f1220 - nop - bl f1221 - nop - bl f1222 - nop - bl f1223 - nop - bl f1224 - nop - bl f1225 - nop - bl f1226 - nop - bl f1227 - nop - bl f1228 - nop - bl f1229 - nop - bl f1230 - nop - bl f1231 - nop - bl f1232 - nop - bl f1233 - nop - bl f1234 - nop - bl f1235 - nop - bl f1236 - nop - bl f1237 - nop - bl f1238 - nop - bl f1239 - nop - bl f1240 - nop - bl f1241 - nop - bl f1242 - nop - bl f1243 - nop - bl f1244 - nop - bl f1245 - nop - bl f1246 - nop - bl f1247 - nop - bl f1248 - nop - bl f1249 - nop - bl f1250 - nop - bl f1251 - nop - bl f1252 - nop - bl f1253 - nop - bl f1254 - nop - bl f1255 - nop - bl f1256 - nop - bl f1257 - nop - bl f1258 - nop - bl f1259 - nop - bl f1260 - nop - bl f1261 - nop - bl f1262 - nop - bl f1263 - nop - bl f1264 - nop - bl f1265 - nop - bl f1266 - nop - bl f1267 - nop - bl f1268 - nop - bl f1269 - nop - bl f1270 - nop - bl f1271 - nop - bl f1272 - nop - bl f1273 - nop - bl f1274 - nop - bl f1275 - nop - bl f1276 - nop - bl f1277 - nop - bl f1278 - nop - bl f1279 - nop - bl f1280 - nop - bl f1281 - nop - bl f1282 - nop - bl f1283 - nop - bl f1284 - nop - bl f1285 - nop - bl f1286 - nop - bl f1287 - nop - bl f1288 - nop - bl f1289 - nop - bl f1290 - nop - bl f1291 - nop - bl f1292 - nop - bl f1293 - nop - bl f1294 - nop - bl f1295 - nop - bl f1296 - nop - bl f1297 - nop - bl f1298 - nop - bl f1299 - nop - bl f1300 - nop - bl f1301 - nop - bl f1302 - nop - bl f1303 - nop - bl f1304 - nop - bl f1305 - nop - bl f1306 - nop - bl f1307 - nop - bl f1308 - nop - bl f1309 - nop - bl f1310 - nop - bl f1311 - nop - bl f1312 - nop - bl f1313 - nop - bl f1314 - nop - bl f1315 - nop - bl f1316 - nop - bl f1317 - nop - bl f1318 - nop - bl f1319 - nop - bl f1320 - nop - bl f1321 - nop - bl f1322 - nop - bl f1323 - nop - bl f1324 - nop - bl f1325 - nop - bl f1326 - nop - bl f1327 - nop - bl f1328 - nop - bl f1329 - nop - bl f1330 - nop - bl f1331 - nop - bl f1332 - nop - bl f1333 - nop - bl f1334 - nop - bl f1335 - nop - bl f1336 - nop - bl f1337 - nop - bl f1338 - nop - bl f1339 - nop - bl f1340 - nop - bl f1341 - nop - bl f1342 - nop - bl f1343 - nop - bl f1344 - nop - bl f1345 - nop - bl f1346 - nop - bl f1347 - nop - bl f1348 - nop - bl f1349 - nop - bl f1350 - nop - bl f1351 - nop - bl f1352 - nop - bl f1353 - nop - bl f1354 - nop - bl f1355 - nop - bl f1356 - nop - bl f1357 - nop - bl f1358 - nop - bl f1359 - nop - bl f1360 - nop - bl f1361 - nop - bl f1362 - nop - bl f1363 - nop - bl f1364 - nop - bl f1365 - nop - bl f1366 - nop - bl f1367 - nop - bl f1368 - nop - bl f1369 - nop - bl f1370 - nop - bl f1371 - nop - bl f1372 - nop - bl f1373 - nop - bl f1374 - nop - bl f1375 - nop - bl f1376 - nop - bl f1377 - nop - bl f1378 - nop - bl f1379 - nop - bl f1380 - nop - bl f1381 - nop - bl f1382 - nop - bl f1383 - nop - bl f1384 - nop - bl f1385 - nop - bl f1386 - nop - bl f1387 - nop - bl f1388 - nop - bl f1389 - nop - bl f1390 - nop - bl f1391 - nop - bl f1392 - nop - bl f1393 - nop - bl f1394 - nop - bl f1395 - nop - bl f1396 - nop - bl f1397 - nop - bl f1398 - nop - bl f1399 - nop - bl f1400 - nop - bl f1401 - nop - bl f1402 - nop - bl f1403 - nop - bl f1404 - nop - bl f1405 - nop - bl f1406 - nop - bl f1407 - nop - bl f1408 - nop - bl f1409 - nop - bl f1410 - nop - bl f1411 - nop - bl f1412 - nop - bl f1413 - nop - bl f1414 - nop - bl f1415 - nop - bl f1416 - nop - bl f1417 - nop - bl f1418 - nop - bl f1419 - nop - bl f1420 - nop - bl f1421 - nop - bl f1422 - nop - bl f1423 - nop - bl f1424 - nop - bl f1425 - nop - bl f1426 - nop - bl f1427 - nop - bl f1428 - nop - bl f1429 - nop - bl f1430 - nop - bl f1431 - nop - bl f1432 - nop - bl f1433 - nop - bl f1434 - nop - bl f1435 - nop - bl f1436 - nop - bl f1437 - nop - bl f1438 - nop - bl f1439 - nop - bl f1440 - nop - bl f1441 - nop - bl f1442 - nop - bl f1443 - nop - bl f1444 - nop - bl f1445 - nop - bl f1446 - nop - bl f1447 - nop - bl f1448 - nop - bl f1449 - nop - bl f1450 - nop - bl f1451 - nop - bl f1452 - nop - bl f1453 - nop - bl f1454 - nop - bl f1455 - nop - bl f1456 - nop - bl f1457 - nop - bl f1458 - nop - bl f1459 - nop - bl f1460 - nop - bl f1461 - nop - bl f1462 - nop - bl f1463 - nop - bl f1464 - nop - bl f1465 - nop - bl f1466 - nop - bl f1467 - nop - bl f1468 - nop - bl f1469 - nop - bl f1470 - nop - bl f1471 - nop - bl f1472 - nop - bl f1473 - nop - bl f1474 - nop - bl f1475 - nop - bl f1476 - nop - bl f1477 - nop - bl f1478 - nop - bl f1479 - nop - bl f1480 - nop - bl f1481 - nop - bl f1482 - nop - bl f1483 - nop - bl f1484 - nop - bl f1485 - nop - bl f1486 - nop - bl f1487 - nop - bl f1488 - nop - bl f1489 - nop - bl f1490 - nop - bl f1491 - nop - bl f1492 - nop - bl f1493 - nop - bl f1494 - nop - bl f1495 - nop - bl f1496 - nop - bl f1497 - nop - bl f1498 - nop - bl f1499 - nop - bl f1500 - nop - bl f1501 - nop - bl f1502 - nop - bl f1503 - nop - bl f1504 - nop - bl f1505 - nop - bl f1506 - nop - bl f1507 - nop - bl f1508 - nop - bl f1509 - nop - bl f1510 - nop - bl f1511 - nop - bl f1512 - nop - bl f1513 - nop - bl f1514 - nop - bl f1515 - nop - bl f1516 - nop - bl f1517 - nop - bl f1518 - nop - bl f1519 - nop - bl f1520 - nop - bl f1521 - nop - bl f1522 - nop - bl f1523 - nop - bl f1524 - nop - bl f1525 - nop - bl f1526 - nop - bl f1527 - nop - bl f1528 - nop - bl f1529 - nop - bl f1530 - nop - bl f1531 - nop - bl f1532 - nop - bl f1533 - nop - bl f1534 - nop - bl f1535 - nop - bl f1536 - nop - bl f1537 - nop - bl f1538 - nop - bl f1539 - nop - bl f1540 - nop - bl f1541 - nop - bl f1542 - nop - bl f1543 - nop - bl f1544 - nop - bl f1545 - nop - bl f1546 - nop - bl f1547 - nop - bl f1548 - nop - bl f1549 - nop - bl f1550 - nop - bl f1551 - nop - bl f1552 - nop - bl f1553 - nop - bl f1554 - nop - bl f1555 - nop - bl f1556 - nop - bl f1557 - nop - bl f1558 - nop - bl f1559 - nop - bl f1560 - nop - bl f1561 - nop - bl f1562 - nop - bl f1563 - nop - bl f1564 - nop - bl f1565 - nop - bl f1566 - nop - bl f1567 - nop - bl f1568 - nop - bl f1569 - nop - bl f1570 - nop - bl f1571 - nop - bl f1572 - nop - bl f1573 - nop - bl f1574 - nop - bl f1575 - nop - bl f1576 - nop - bl f1577 - nop - bl f1578 - nop - bl f1579 - nop - bl f1580 - nop - bl f1581 - nop - bl f1582 - nop - bl f1583 - nop - bl f1584 - nop - bl f1585 - nop - bl f1586 - nop - bl f1587 - nop - bl f1588 - nop - bl f1589 - nop - bl f1590 - nop - bl f1591 - nop - bl f1592 - nop - bl f1593 - nop - bl f1594 - nop - bl f1595 - nop - bl f1596 - nop - bl f1597 - nop - bl f1598 - nop - bl f1599 - nop - bl f1600 - nop - bl f1601 - nop - bl f1602 - nop - bl f1603 - nop - bl f1604 - nop - bl f1605 - nop - bl f1606 - nop - bl f1607 - nop - bl f1608 - nop - bl f1609 - nop - bl f1610 - nop - bl f1611 - nop - bl f1612 - nop - bl f1613 - nop - bl f1614 - nop - bl f1615 - nop - bl f1616 - nop - bl f1617 - nop - bl f1618 - nop - bl f1619 - nop - bl f1620 - nop - bl f1621 - nop - bl f1622 - nop - bl f1623 - nop - bl f1624 - nop - bl f1625 - nop - bl f1626 - nop - bl f1627 - nop - bl f1628 - nop - bl f1629 - nop - bl f1630 - nop - bl f1631 - nop - bl f1632 - nop - bl f1633 - nop - bl f1634 - nop - bl f1635 - nop - bl f1636 - nop - bl f1637 - nop - bl f1638 - nop - bl f1639 - nop - bl f1640 - nop - bl f1641 - nop - bl f1642 - nop - bl f1643 - nop - bl f1644 - nop - bl f1645 - nop - bl f1646 - nop - bl f1647 - nop - bl f1648 - nop - bl f1649 - nop - bl f1650 - nop - bl f1651 - nop - bl f1652 - nop - bl f1653 - nop - bl f1654 - nop - bl f1655 - nop - bl f1656 - nop - bl f1657 - nop - bl f1658 - nop - bl f1659 - nop - bl f1660 - nop - bl f1661 - nop - bl f1662 - nop - bl f1663 - nop - bl f1664 - nop - bl f1665 - nop - bl f1666 - nop - bl f1667 - nop - bl f1668 - nop - bl f1669 - nop - bl f1670 - nop - bl f1671 - nop - bl f1672 - nop - bl f1673 - nop - bl f1674 - nop - bl f1675 - nop - bl f1676 - nop - bl f1677 - nop - bl f1678 - nop - bl f1679 - nop - bl f1680 - nop - bl f1681 - nop - bl f1682 - nop - bl f1683 - nop - bl f1684 - nop - bl f1685 - nop - bl f1686 - nop - bl f1687 - nop - bl f1688 - nop - bl f1689 - nop - bl f1690 - nop - bl f1691 - nop - bl f1692 - nop - bl f1693 - nop - bl f1694 - nop - bl f1695 - nop - bl f1696 - nop - bl f1697 - nop - bl f1698 - nop - bl f1699 - nop - bl f1700 - nop - bl f1701 - nop - bl f1702 - nop - bl f1703 - nop - bl f1704 - nop - bl f1705 - nop - bl f1706 - nop - bl f1707 - nop - bl f1708 - nop - bl f1709 - nop - bl f1710 - nop - bl f1711 - nop - bl f1712 - nop - bl f1713 - nop - bl f1714 - nop - bl f1715 - nop - bl f1716 - nop - bl f1717 - nop - bl f1718 - nop - bl f1719 - nop - bl f1720 - nop - bl f1721 - nop - bl f1722 - nop - bl f1723 - nop - bl f1724 - nop - bl f1725 - nop - bl f1726 - nop - bl f1727 - nop - bl f1728 - nop - bl f1729 - nop - bl f1730 - nop - bl f1731 - nop - bl f1732 - nop - bl f1733 - nop - bl f1734 - nop - bl f1735 - nop - bl f1736 - nop - bl f1737 - nop - bl f1738 - nop - bl f1739 - nop - bl f1740 - nop - bl f1741 - nop - bl f1742 - nop - bl f1743 - nop - bl f1744 - nop - bl f1745 - nop - bl f1746 - nop - bl f1747 - nop - bl f1748 - nop - bl f1749 - nop - bl f1750 - nop - bl f1751 - nop - bl f1752 - nop - bl f1753 - nop - bl f1754 - nop - bl f1755 - nop - bl f1756 - nop - bl f1757 - nop - bl f1758 - nop - bl f1759 - nop - bl f1760 - nop - bl f1761 - nop - bl f1762 - nop - bl f1763 - nop - bl f1764 - nop - bl f1765 - nop - bl f1766 - nop - bl f1767 - nop - bl f1768 - nop - bl f1769 - nop - bl f1770 - nop - bl f1771 - nop - bl f1772 - nop - bl f1773 - nop - bl f1774 - nop - bl f1775 - nop - bl f1776 - nop - bl f1777 - nop - bl f1778 - nop - bl f1779 - nop - bl f1780 - nop - bl f1781 - nop - bl f1782 - nop - bl f1783 - nop - bl f1784 - nop - bl f1785 - nop - bl f1786 - nop - bl f1787 - nop - bl f1788 - nop - bl f1789 - nop - bl f1790 - nop - bl f1791 - nop - bl f1792 - nop - bl f1793 - nop - bl f1794 - nop - bl f1795 - nop - bl f1796 - nop - bl f1797 - nop - bl f1798 - nop - bl f1799 - nop - bl f1800 - nop - bl f1801 - nop - bl f1802 - nop - bl f1803 - nop - bl f1804 - nop - bl f1805 - nop - bl f1806 - nop - bl f1807 - nop - bl f1808 - nop - bl f1809 - nop - bl f1810 - nop - bl f1811 - nop - bl f1812 - nop - bl f1813 - nop - bl f1814 - nop - bl f1815 - nop - bl f1816 - nop - bl f1817 - nop - bl f1818 - nop - bl f1819 - nop - bl f1820 - nop - bl f1821 - nop - bl f1822 - nop - bl f1823 - nop - bl f1824 - nop - bl f1825 - nop - bl f1826 - nop - bl f1827 - nop - bl f1828 - nop - bl f1829 - nop - bl f1830 - nop - bl f1831 - nop - bl f1832 - nop - bl f1833 - nop - bl f1834 - nop - bl f1835 - nop - bl f1836 - nop - bl f1837 - nop - bl f1838 - nop - bl f1839 - nop - bl f1840 - nop - bl f1841 - nop - bl f1842 - nop - bl f1843 - nop - bl f1844 - nop - bl f1845 - nop - bl f1846 - nop - bl f1847 - nop - bl f1848 - nop - bl f1849 - nop - bl f1850 - nop - bl f1851 - nop - bl f1852 - nop - bl f1853 - nop - bl f1854 - nop - bl f1855 - nop - bl f1856 - nop - bl f1857 - nop - bl f1858 - nop - bl f1859 - nop - bl f1860 - nop - bl f1861 - nop - bl f1862 - nop - bl f1863 - nop - bl f1864 - nop - bl f1865 - nop - bl f1866 - nop - bl f1867 - nop - bl f1868 - nop - bl f1869 - nop - bl f1870 - nop - bl f1871 - nop - bl f1872 - nop - bl f1873 - nop - bl f1874 - nop - bl f1875 - nop - bl f1876 - nop - bl f1877 - nop - bl f1878 - nop - bl f1879 - nop - bl f1880 - nop - bl f1881 - nop - bl f1882 - nop - bl f1883 - nop - bl f1884 - nop - bl f1885 - nop - bl f1886 - nop - bl f1887 - nop - bl f1888 - nop - bl f1889 - nop - bl f1890 - nop - bl f1891 - nop - bl f1892 - nop - bl f1893 - nop - bl f1894 - nop - bl f1895 - nop - bl f1896 - nop - bl f1897 - nop - bl f1898 - nop - bl f1899 - nop - bl f1900 - nop - bl f1901 - nop - bl f1902 - nop - bl f1903 - nop - bl f1904 - nop - bl f1905 - nop - bl f1906 - nop - bl f1907 - nop - bl f1908 - nop - bl f1909 - nop - bl f1910 - nop - bl f1911 - nop - bl f1912 - nop - bl f1913 - nop - bl f1914 - nop - bl f1915 - nop - bl f1916 - nop - bl f1917 - nop - bl f1918 - nop - bl f1919 - nop - bl f1920 - nop - bl f1921 - nop - bl f1922 - nop - bl f1923 - nop - bl f1924 - nop - bl f1925 - nop - bl f1926 - nop - bl f1927 - nop - bl f1928 - nop - bl f1929 - nop - bl f1930 - nop - bl f1931 - nop - bl f1932 - nop - bl f1933 - nop - bl f1934 - nop - bl f1935 - nop - bl f1936 - nop - bl f1937 - nop - bl f1938 - nop - bl f1939 - nop - bl f1940 - nop - bl f1941 - nop - bl f1942 - nop - bl f1943 - nop - bl f1944 - nop - bl f1945 - nop - bl f1946 - nop - bl f1947 - nop - bl f1948 - nop - bl f1949 - nop - bl f1950 - nop - bl f1951 - nop - bl f1952 - nop - bl f1953 - nop - bl f1954 - nop - bl f1955 - nop - bl f1956 - nop - bl f1957 - nop - bl f1958 - nop - bl f1959 - nop - bl f1960 - nop - bl f1961 - nop - bl f1962 - nop - bl f1963 - nop - bl f1964 - nop - bl f1965 - nop - bl f1966 - nop - bl f1967 - nop - bl f1968 - nop - bl f1969 - nop - bl f1970 - nop - bl f1971 - nop - bl f1972 - nop - bl f1973 - nop - bl f1974 - nop - bl f1975 - nop - bl f1976 - nop - bl f1977 - nop - bl f1978 - nop - bl f1979 - nop - bl f1980 - nop - bl f1981 - nop - bl f1982 - nop - bl f1983 - nop - bl f1984 - nop - bl f1985 - nop - bl f1986 - nop - bl f1987 - nop - bl f1988 - nop - bl f1989 - nop - bl f1990 - nop - bl f1991 - nop - bl f1992 - nop - bl f1993 - nop - bl f1994 - nop - bl f1995 - nop - bl f1996 - nop - bl f1997 - nop - bl f1998 - nop - bl f1999 - nop - bl f2000 - nop - bl f2001 - nop - bl f2002 - nop - bl f2003 - nop - bl f2004 - nop - bl f2005 - nop - bl f2006 - nop - bl f2007 - nop - bl f2008 - nop - bl f2009 - nop - bl f2010 - nop - bl f2011 - nop - bl f2012 - nop - bl f2013 - nop - bl f2014 - nop - bl f2015 - nop - bl f2016 - nop - bl f2017 - nop - bl f2018 - nop - bl f2019 - nop - bl f2020 - nop - bl f2021 - nop - bl f2022 - nop - bl f2023 - nop - bl f2024 - nop - bl f2025 - nop - bl f2026 - nop - bl f2027 - nop - bl f2028 - nop - bl f2029 - nop - bl f2030 - nop - bl f2031 - nop - bl f2032 - nop - bl f2033 - nop - bl f2034 - nop - bl f2035 - nop - bl f2036 - nop - bl f2037 - nop - bl f2038 - nop - bl f2039 - nop - bl f2040 - nop - bl f2041 - nop - bl f2042 - nop - bl f2043 - nop - bl f2044 - nop - bl f2045 - nop - bl f2046 - nop - bl f2047 - nop - bl f2048 - nop - bl f2049 - nop - bl f2050 - nop - bl f2051 - nop - bl f2052 - nop - bl f2053 - nop - bl f2054 - nop - bl f2055 - nop - bl f2056 - nop - bl f2057 - nop - bl f2058 - nop - bl f2059 - nop - bl f2060 - nop - bl f2061 - nop - bl f2062 - nop - bl f2063 - nop - bl f2064 - nop - bl f2065 - nop - bl f2066 - nop - bl f2067 - nop - bl f2068 - nop - bl f2069 - nop - bl f2070 - nop - bl f2071 - nop - bl f2072 - nop - bl f2073 - nop - bl f2074 - nop - bl f2075 - nop - bl f2076 - nop - bl f2077 - nop - bl f2078 - nop - bl f2079 - nop - bl f2080 - nop - bl f2081 - nop - bl f2082 - nop - bl f2083 - nop - bl f2084 - nop - bl f2085 - nop - bl f2086 - nop - bl f2087 - nop - bl f2088 - nop - bl f2089 - nop - bl f2090 - nop - bl f2091 - nop - bl f2092 - nop - bl f2093 - nop - bl f2094 - nop - bl f2095 - nop - bl f2096 - nop - bl f2097 - nop - bl f2098 - nop - bl f2099 - nop - bl f2100 - nop - bl f2101 - nop - bl f2102 - nop - bl f2103 - nop - bl f2104 - nop - bl f2105 - nop - bl f2106 - nop - bl f2107 - nop - bl f2108 - nop - bl f2109 - nop - bl f2110 - nop - bl f2111 - nop - bl f2112 - nop - bl f2113 - nop - bl f2114 - nop - bl f2115 - nop - bl f2116 - nop - bl f2117 - nop - bl f2118 - nop - bl f2119 - nop - bl f2120 - nop - bl f2121 - nop - bl f2122 - nop - bl f2123 - nop - bl f2124 - nop - bl f2125 - nop - bl f2126 - nop - bl f2127 - nop - bl f2128 - nop - bl f2129 - nop - bl f2130 - nop - bl f2131 - nop - bl f2132 - nop - bl f2133 - nop - bl f2134 - nop - bl f2135 - nop - bl f2136 - nop - bl f2137 - nop - bl f2138 - nop - bl f2139 - nop - bl f2140 - nop - bl f2141 - nop - bl f2142 - nop - bl f2143 - nop - bl f2144 - nop - bl f2145 - nop - bl f2146 - nop - bl f2147 - nop - bl f2148 - nop - bl f2149 - nop - bl f2150 - nop - bl f2151 - nop - bl f2152 - nop - bl f2153 - nop - bl f2154 - nop - bl f2155 - nop - bl f2156 - nop - bl f2157 - nop - bl f2158 - nop - bl f2159 - nop - bl f2160 - nop - bl f2161 - nop - bl f2162 - nop - bl f2163 - nop - bl f2164 - nop - bl f2165 - nop - bl f2166 - nop - bl f2167 - nop - bl f2168 - nop - bl f2169 - nop - bl f2170 - nop - bl f2171 - nop - bl f2172 - nop - bl f2173 - nop - bl f2174 - nop - bl f2175 - nop - bl f2176 - nop - bl f2177 - nop - bl f2178 - nop - bl f2179 - nop - bl f2180 - nop - bl f2181 - nop - bl f2182 - nop - bl f2183 - nop - bl f2184 - nop - bl f2185 - nop - bl f2186 - nop - bl f2187 - nop - bl f2188 - nop - bl f2189 - nop - bl f2190 - nop - bl f2191 - nop - bl f2192 - nop - bl f2193 - nop - bl f2194 - nop - bl f2195 - nop - bl f2196 - nop - bl f2197 - nop - bl f2198 - nop - bl f2199 - nop - bl f2200 - nop - bl f2201 - nop - bl f2202 - nop - bl f2203 - nop - bl f2204 - nop - bl f2205 - nop - bl f2206 - nop - bl f2207 - nop - bl f2208 - nop - bl f2209 - nop - bl f2210 - nop - bl f2211 - nop - bl f2212 - nop - bl f2213 - nop - bl f2214 - nop - bl f2215 - nop - bl f2216 - nop - bl f2217 - nop - bl f2218 - nop - bl f2219 - nop - bl f2220 - nop - bl f2221 - nop - bl f2222 - nop - bl f2223 - nop - bl f2224 - nop - bl f2225 - nop - bl f2226 - nop - bl f2227 - nop - bl f2228 - nop - bl f2229 - nop - bl f2230 - nop - bl f2231 - nop - bl f2232 - nop - bl f2233 - nop - bl f2234 - nop - bl f2235 - nop - bl f2236 - nop - bl f2237 - nop - bl f2238 - nop - bl f2239 - nop - bl f2240 - nop - bl f2241 - nop - bl f2242 - nop - bl f2243 - nop - bl f2244 - nop - bl f2245 - nop - bl f2246 - nop - bl f2247 - nop - bl f2248 - nop - bl f2249 - nop - bl f2250 - nop - bl f2251 - nop - bl f2252 - nop - bl f2253 - nop - bl f2254 - nop - bl f2255 - nop - bl f2256 - nop - bl f2257 - nop - bl f2258 - nop - bl f2259 - nop - bl f2260 - nop - bl f2261 - nop - bl f2262 - nop - bl f2263 - nop - bl f2264 - nop - bl f2265 - nop - bl f2266 - nop - bl f2267 - nop - bl f2268 - nop - bl f2269 - nop - bl f2270 - nop - bl f2271 - nop - bl f2272 - nop - bl f2273 - nop - bl f2274 - nop - bl f2275 - nop - bl f2276 - nop - bl f2277 - nop - bl f2278 - nop - bl f2279 - nop - bl f2280 - nop - bl f2281 - nop - bl f2282 - nop - bl f2283 - nop - bl f2284 - nop - bl f2285 - nop - bl f2286 - nop - bl f2287 - nop - bl f2288 - nop - bl f2289 - nop - bl f2290 - nop - bl f2291 - nop - bl f2292 - nop - bl f2293 - nop - bl f2294 - nop - bl f2295 - nop - bl f2296 - nop - bl f2297 - nop - bl f2298 - nop - bl f2299 - nop - bl f2300 - nop - bl f2301 - nop - bl f2302 - nop - bl f2303 - nop - bl f2304 - nop - bl f2305 - nop - bl f2306 - nop - bl f2307 - nop - bl f2308 - nop - bl f2309 - nop - bl f2310 - nop - bl f2311 - nop - bl f2312 - nop - bl f2313 - nop - bl f2314 - nop - bl f2315 - nop - bl f2316 - nop - bl f2317 - nop - bl f2318 - nop - bl f2319 - nop - bl f2320 - nop - bl f2321 - nop - bl f2322 - nop - bl f2323 - nop - bl f2324 - nop - bl f2325 - nop - bl f2326 - nop - bl f2327 - nop - bl f2328 - nop - bl f2329 - nop - bl f2330 - nop - bl f2331 - nop - bl f2332 - nop - bl f2333 - nop - bl f2334 - nop - bl f2335 - nop - bl f2336 - nop - bl f2337 - nop - bl f2338 - nop - bl f2339 - nop - bl f2340 - nop - bl f2341 - nop - bl f2342 - nop - bl f2343 - nop - bl f2344 - nop - bl f2345 - nop - bl f2346 - nop - bl f2347 - nop - bl f2348 - nop - bl f2349 - nop - bl f2350 - nop - bl f2351 - nop - bl f2352 - nop - bl f2353 - nop - bl f2354 - nop - bl f2355 - nop - bl f2356 - nop - bl f2357 - nop - bl f2358 - nop - bl f2359 - nop - bl f2360 - nop - bl f2361 - nop - bl f2362 - nop - bl f2363 - nop - bl f2364 - nop - bl f2365 - nop - bl f2366 - nop - bl f2367 - nop - bl f2368 - nop - bl f2369 - nop - bl f2370 - nop - bl f2371 - nop - bl f2372 - nop - bl f2373 - nop - bl f2374 - nop - bl f2375 - nop - bl f2376 - nop - bl f2377 - nop - bl f2378 - nop - bl f2379 - nop - bl f2380 - nop - bl f2381 - nop - bl f2382 - nop - bl f2383 - nop - bl f2384 - nop - bl f2385 - nop - bl f2386 - nop - bl f2387 - nop - bl f2388 - nop - bl f2389 - nop - bl f2390 - nop - bl f2391 - nop - bl f2392 - nop - bl f2393 - nop - bl f2394 - nop - bl f2395 - nop - bl f2396 - nop - bl f2397 - nop - bl f2398 - nop - bl f2399 - nop - bl f2400 - nop - bl f2401 - nop - bl f2402 - nop - bl f2403 - nop - bl f2404 - nop - bl f2405 - nop - bl f2406 - nop - bl f2407 - nop - bl f2408 - nop - bl f2409 - nop - bl f2410 - nop - bl f2411 - nop - bl f2412 - nop - bl f2413 - nop - bl f2414 - nop - bl f2415 - nop - bl f2416 - nop - bl f2417 - nop - bl f2418 - nop - bl f2419 - nop - bl f2420 - nop - bl f2421 - nop - bl f2422 - nop - bl f2423 - nop - bl f2424 - nop - bl f2425 - nop - bl f2426 - nop - bl f2427 - nop - bl f2428 - nop - bl f2429 - nop - bl f2430 - nop - bl f2431 - nop - bl f2432 - nop - bl f2433 - nop - bl f2434 - nop - bl f2435 - nop - bl f2436 - nop - bl f2437 - nop - bl f2438 - nop - bl f2439 - nop - bl f2440 - nop - bl f2441 - nop - bl f2442 - nop - bl f2443 - nop - bl f2444 - nop - bl f2445 - nop - bl f2446 - nop - bl f2447 - nop - bl f2448 - nop - bl f2449 - nop - bl f2450 - nop - bl f2451 - nop - bl f2452 - nop - bl f2453 - nop - bl f2454 - nop - bl f2455 - nop - bl f2456 - nop - bl f2457 - nop - bl f2458 - nop - bl f2459 - nop - bl f2460 - nop - bl f2461 - nop - bl f2462 - nop - bl f2463 - nop - bl f2464 - nop - bl f2465 - nop - bl f2466 - nop - bl f2467 - nop - bl f2468 - nop - bl f2469 - nop - bl f2470 - nop - bl f2471 - nop - bl f2472 - nop - bl f2473 - nop - bl f2474 - nop - bl f2475 - nop - bl f2476 - nop - bl f2477 - nop - bl f2478 - nop - bl f2479 - nop - bl f2480 - nop - bl f2481 - nop - bl f2482 - nop - bl f2483 - nop - bl f2484 - nop - bl f2485 - nop - bl f2486 - nop - bl f2487 - nop - bl f2488 - nop - bl f2489 - nop - bl f2490 - nop - bl f2491 - nop - bl f2492 - nop - bl f2493 - nop - bl f2494 - nop - bl f2495 - nop - bl f2496 - nop - bl f2497 - nop - bl f2498 - nop - bl f2499 - nop - bl f2500 - nop - bl f2501 - nop - bl f2502 - nop - bl f2503 - nop - bl f2504 - nop - bl f2505 - nop - bl f2506 - nop - bl f2507 - nop - bl f2508 - nop - bl f2509 - nop - bl f2510 - nop - bl f2511 - nop - bl f2512 - nop - bl f2513 - nop - bl f2514 - nop - bl f2515 - nop - bl f2516 - nop - bl f2517 - nop - bl f2518 - nop - bl f2519 - nop - bl f2520 - nop - bl f2521 - nop - bl f2522 - nop - bl f2523 - nop - bl f2524 - nop - bl f2525 - nop - bl f2526 - nop - bl f2527 - nop - bl f2528 - nop - bl f2529 - nop - bl f2530 - nop - bl f2531 - nop - bl f2532 - nop - bl f2533 - nop - bl f2534 - nop - bl f2535 - nop - bl f2536 - nop - bl f2537 - nop - bl f2538 - nop - bl f2539 - nop - bl f2540 - nop - bl f2541 - nop - bl f2542 - nop - bl f2543 - nop - bl f2544 - nop - bl f2545 - nop - bl f2546 - nop - bl f2547 - nop - bl f2548 - nop - bl f2549 - nop - bl f2550 - nop - bl f2551 - nop - bl f2552 - nop - bl f2553 - nop - bl f2554 - nop - bl f2555 - nop - bl f2556 - nop - bl f2557 - nop - bl f2558 - nop - bl f2559 - nop - bl f2560 - nop - bl f2561 - nop - bl f2562 - nop - bl f2563 - nop - bl f2564 - nop - bl f2565 - nop - bl f2566 - nop - bl f2567 - nop - bl f2568 - nop - bl f2569 - nop - bl f2570 - nop - bl f2571 - nop - bl f2572 - nop - bl f2573 - nop - bl f2574 - nop - bl f2575 - nop - bl f2576 - nop - bl f2577 - nop - bl f2578 - nop - bl f2579 - nop - bl f2580 - nop - bl f2581 - nop - bl f2582 - nop - bl f2583 - nop - bl f2584 - nop - bl f2585 - nop - bl f2586 - nop - bl f2587 - nop - bl f2588 - nop - bl f2589 - nop - bl f2590 - nop - bl f2591 - nop - bl f2592 - nop - bl f2593 - nop - bl f2594 - nop - bl f2595 - nop - bl f2596 - nop - bl f2597 - nop - bl f2598 - nop - bl f2599 - nop - bl f2600 - nop - bl f2601 - nop - bl f2602 - nop - bl f2603 - nop - bl f2604 - nop - bl f2605 - nop - bl f2606 - nop - bl f2607 - nop - bl f2608 - nop - bl f2609 - nop - bl f2610 - nop - bl f2611 - nop - bl f2612 - nop - bl f2613 - nop - bl f2614 - nop - bl f2615 - nop - bl f2616 - nop - bl f2617 - nop - bl f2618 - nop - bl f2619 - nop - bl f2620 - nop - bl f2621 - nop - bl f2622 - nop - bl f2623 - nop - bl f2624 - nop - bl f2625 - nop - bl f2626 - nop - bl f2627 - nop - bl f2628 - nop - bl f2629 - nop - bl f2630 - nop - bl f2631 - nop - bl f2632 - nop - bl f2633 - nop - bl f2634 - nop - bl f2635 - nop - bl f2636 - nop - bl f2637 - nop - bl f2638 - nop - bl f2639 - nop - bl f2640 - nop - bl f2641 - nop - bl f2642 - nop - bl f2643 - nop - bl f2644 - nop - bl f2645 - nop - bl f2646 - nop - bl f2647 - nop - bl f2648 - nop - bl f2649 - nop - bl f2650 - nop - bl f2651 - nop - bl f2652 - nop - bl f2653 - nop - bl f2654 - nop - bl f2655 - nop - bl f2656 - nop - bl f2657 - nop - bl f2658 - nop - bl f2659 - nop - bl f2660 - nop - bl f2661 - nop - bl f2662 - nop - bl f2663 - nop - bl f2664 - nop - bl f2665 - nop - bl f2666 - nop - bl f2667 - nop - bl f2668 - nop - bl f2669 - nop - bl f2670 - nop - bl f2671 - nop - bl f2672 - nop - bl f2673 - nop - bl f2674 - nop - bl f2675 - nop - bl f2676 - nop - bl f2677 - nop - bl f2678 - nop - bl f2679 - nop - bl f2680 - nop - bl f2681 - nop - bl f2682 - nop - bl f2683 - nop - bl f2684 - nop - bl f2685 - nop - bl f2686 - nop - bl f2687 - nop - bl f2688 - nop - bl f2689 - nop - bl f2690 - nop - bl f2691 - nop - bl f2692 - nop - bl f2693 - nop - bl f2694 - nop - bl f2695 - nop - bl f2696 - nop - bl f2697 - nop - bl f2698 - nop - bl f2699 - nop - bl f2700 - nop - bl f2701 - nop - bl f2702 - nop - bl f2703 - nop - bl f2704 - nop - bl f2705 - nop - bl f2706 - nop - bl f2707 - nop - bl f2708 - nop - bl f2709 - nop - bl f2710 - nop - bl f2711 - nop - bl f2712 - nop - bl f2713 - nop - bl f2714 - nop - bl f2715 - nop - bl f2716 - nop - bl f2717 - nop - bl f2718 - nop - bl f2719 - nop - bl f2720 - nop - bl f2721 - nop - bl f2722 - nop - bl f2723 - nop - bl f2724 - nop - bl f2725 - nop - bl f2726 - nop - bl f2727 - nop - bl f2728 - nop - bl f2729 - nop - bl f2730 - nop - bl f2731 - nop - bl f2732 - nop - bl f2733 - nop - bl f2734 - nop - bl f2735 - nop - bl f2736 - nop - bl f2737 - nop - bl f2738 - nop - bl f2739 - nop - bl f2740 - nop - bl f2741 - nop - bl f2742 - nop - bl f2743 - nop - bl f2744 - nop - bl f2745 - nop - bl f2746 - nop - bl f2747 - nop - bl f2748 - nop - bl f2749 - nop - bl f2750 - nop - bl f2751 - nop - bl f2752 - nop - bl f2753 - nop - bl f2754 - nop - bl f2755 - nop - bl f2756 - nop - bl f2757 - nop - bl f2758 - nop - bl f2759 - nop - bl f2760 - nop - bl f2761 - nop - bl f2762 - nop - bl f2763 - nop - bl f2764 - nop - bl f2765 - nop - bl f2766 - nop - bl f2767 - nop - bl f2768 - nop - bl f2769 - nop - bl f2770 - nop - bl f2771 - nop - bl f2772 - nop - bl f2773 - nop - bl f2774 - nop - bl f2775 - nop - bl f2776 - nop - bl f2777 - nop - bl f2778 - nop - bl f2779 - nop - bl f2780 - nop - bl f2781 - nop - bl f2782 - nop - bl f2783 - nop - bl f2784 - nop - bl f2785 - nop - bl f2786 - nop - bl f2787 - nop - bl f2788 - nop - bl f2789 - nop - bl f2790 - nop - bl f2791 - nop - bl f2792 - nop - bl f2793 - nop - bl f2794 - nop - bl f2795 - nop - bl f2796 - nop - bl f2797 - nop - bl f2798 - nop - bl f2799 - nop - bl f2800 - nop - bl f2801 - nop - bl f2802 - nop - bl f2803 - nop - bl f2804 - nop - bl f2805 - nop - bl f2806 - nop - bl f2807 - nop - bl f2808 - nop - bl f2809 - nop - bl f2810 - nop - bl f2811 - nop - bl f2812 - nop - bl f2813 - nop - bl f2814 - nop - bl f2815 - nop - bl f2816 - nop - bl f2817 - nop - bl f2818 - nop - bl f2819 - nop - bl f2820 - nop - bl f2821 - nop - bl f2822 - nop - bl f2823 - nop - bl f2824 - nop - bl f2825 - nop - bl f2826 - nop - bl f2827 - nop - bl f2828 - nop - bl f2829 - nop - bl f2830 - nop - bl f2831 - nop - bl f2832 - nop - bl f2833 - nop - bl f2834 - nop - bl f2835 - nop - bl f2836 - nop - bl f2837 - nop - bl f2838 - nop - bl f2839 - nop - bl f2840 - nop - bl f2841 - nop - bl f2842 - nop - bl f2843 - nop - bl f2844 - nop - bl f2845 - nop - bl f2846 - nop - bl f2847 - nop - bl f2848 - nop - bl f2849 - nop - bl f2850 - nop - bl f2851 - nop - bl f2852 - nop - bl f2853 - nop - bl f2854 - nop - bl f2855 - nop - bl f2856 - nop - bl f2857 - nop - bl f2858 - nop - bl f2859 - nop - bl f2860 - nop - bl f2861 - nop - bl f2862 - nop - bl f2863 - nop - bl f2864 - nop - bl f2865 - nop - bl f2866 - nop - bl f2867 - nop - bl f2868 - nop - bl f2869 - nop - bl f2870 - nop - bl f2871 - nop - bl f2872 - nop - bl f2873 - nop - bl f2874 - nop - bl f2875 - nop - bl f2876 - nop - bl f2877 - nop - bl f2878 - nop - bl f2879 - nop - bl f2880 - nop - bl f2881 - nop - bl f2882 - nop - bl f2883 - nop - bl f2884 - nop - bl f2885 - nop - bl f2886 - nop - bl f2887 - nop - bl f2888 - nop - bl f2889 - nop - bl f2890 - nop - bl f2891 - nop - bl f2892 - nop - bl f2893 - nop - bl f2894 - nop - bl f2895 - nop - bl f2896 - nop - bl f2897 - nop - bl f2898 - nop - bl f2899 - nop - bl f2900 - nop - bl f2901 - nop - bl f2902 - nop - bl f2903 - nop - bl f2904 - nop - bl f2905 - nop - bl f2906 - nop - bl f2907 - nop - bl f2908 - nop - bl f2909 - nop - bl f2910 - nop - bl f2911 - nop - bl f2912 - nop - bl f2913 - nop - bl f2914 - nop - bl f2915 - nop - bl f2916 - nop - bl f2917 - nop - bl f2918 - nop - bl f2919 - nop - bl f2920 - nop - bl f2921 - nop - bl f2922 - nop - bl f2923 - nop - bl f2924 - nop - bl f2925 - nop - bl f2926 - nop - bl f2927 - nop - bl f2928 - nop - bl f2929 - nop - bl f2930 - nop - bl f2931 - nop - bl f2932 - nop - bl f2933 - nop - bl f2934 - nop - bl f2935 - nop - bl f2936 - nop - bl f2937 - nop - bl f2938 - nop - bl f2939 - nop - bl f2940 - nop - bl f2941 - nop - bl f2942 - nop - bl f2943 - nop - bl f2944 - nop - bl f2945 - nop - bl f2946 - nop - bl f2947 - nop - bl f2948 - nop - bl f2949 - nop - bl f2950 - nop - bl f2951 - nop - bl f2952 - nop - bl f2953 - nop - bl f2954 - nop - bl f2955 - nop - bl f2956 - nop - bl f2957 - nop - bl f2958 - nop - bl f2959 - nop - bl f2960 - nop - bl f2961 - nop - bl f2962 - nop - bl f2963 - nop - bl f2964 - nop - bl f2965 - nop - bl f2966 - nop - bl f2967 - nop - bl f2968 - nop - bl f2969 - nop - bl f2970 - nop - bl f2971 - nop - bl f2972 - nop - bl f2973 - nop - bl f2974 - nop - bl f2975 - nop - bl f2976 - nop - bl f2977 - nop - bl f2978 - nop - bl f2979 - nop - bl f2980 - nop - bl f2981 - nop - bl f2982 - nop - bl f2983 - nop - bl f2984 - nop - bl f2985 - nop - bl f2986 - nop - bl f2987 - nop - bl f2988 - nop - bl f2989 - nop - bl f2990 - nop - bl f2991 - nop - bl f2992 - nop - bl f2993 - nop - bl f2994 - nop - bl f2995 - nop - bl f2996 - nop - bl f2997 - nop - bl f2998 - nop - bl f2999 - nop + + .macro call f + bl \f + nop + .endm + +# 3000 plt calls, giving over 64k in .plt size. With a small .got +# this guarantees some plt call stubs can use a 16-bit signed offset +# from .TOC. while others need a 32-bit signed offset (and are larger). + + .irpc t4,012 + .irpc t3,0123456789 + .irpc t2,0123456789 + .irpc t1,0123456789 + .if \t4 + call f\t4\t3\t2\t1 + .elseif \t3 + call f\t3\t2\t1 + .elseif \t2 + call f\t2\t1 + .else + call f\t1 + .endif + .endr + .endr + .endr + .endr + addi 1,1,32 .cfi_def_cfa_offset 0 ld 0,16(1) @@ -6021,808 +49,35 @@ _start: .cfi_endproc .size _start,.-_start -# Padding, anything from 49672 to 50220 results in a stub sizing error -# with HJ's relro changes. -# The PR avoided a sizing error due to the default stub alignment, -# instead failing an assertion when stubs overlapped each other. +# Padding to trigger a stub sizing error with commit 2f83249c13 and +# c804c6f98d (relro changes). This particular testcase gives a decrease +# in .got to .plt gap after .eh_frame editing, resulting in some plt +# call stubs being smaller. If the very last one is smaller the size +# error triggers. Arguably, the ppc64 backend should not report an +# error for shrinkage. However, the actual PR object files showed an +# *increase* in .got to .plt gap after .eh_frame editing, resulting in +# some plt call stubs being larger. That hit an assertion failure +# when a long branch stub followed the larger plt call stub and +# overwrote the end of the plt call stub. +# With enough fiddling of this testcase it likely would be possible to +# find the right padding here and .eh_frame sizing to trigger an +# increase in .got to .plt gap. The point of this testcase is to show +# that the .got to .plt gap should not change after sizing. .space 50000 - .section .text.dummy0,"ax",@progbits - .type dummy0,@function -dummy0: - .cfi_startproc - blr - .cfi_endproc - .size dummy0,.-dummy0 - - .section .text.dummy1,"ax",@progbits - .type dummy1,@function -dummy1: - .cfi_startproc - blr - .cfi_endproc - .size dummy1,.-dummy1 - - .section .text.dummy2,"ax",@progbits - .type dummy2,@function -dummy2: - .cfi_startproc - blr - .cfi_endproc - .size dummy2,.-dummy2 - - .section .text.dummy3,"ax",@progbits - .type dummy3,@function -dummy3: - .cfi_startproc - blr - .cfi_endproc - .size dummy3,.-dummy3 - - .section .text.dummy4,"ax",@progbits - .type dummy4,@function -dummy4: - .cfi_startproc - blr - .cfi_endproc - .size dummy4,.-dummy4 - - .section .text.dummy5,"ax",@progbits - .type dummy5,@function -dummy5: - .cfi_startproc - blr - .cfi_endproc - .size dummy5,.-dummy5 - - .section .text.dummy6,"ax",@progbits - .type dummy6,@function -dummy6: - .cfi_startproc - blr - .cfi_endproc - .size dummy6,.-dummy6 - - .section .text.dummy7,"ax",@progbits - .type dummy7,@function -dummy7: - .cfi_startproc - blr - .cfi_endproc - .size dummy7,.-dummy7 - - .section .text.dummy8,"ax",@progbits - .type dummy8,@function -dummy8: - .cfi_startproc - blr - .cfi_endproc - .size dummy8,.-dummy8 - - .section .text.dummy9,"ax",@progbits - .type dummy9,@function -dummy9: - .cfi_startproc - blr - .cfi_endproc - .size dummy9,.-dummy9 - - .section .text.dummy10,"ax",@progbits - .type dummy10,@function -dummy10: - .cfi_startproc - blr - .cfi_endproc - .size dummy10,.-dummy10 - - .section .text.dummy11,"ax",@progbits - .type dummy11,@function -dummy11: - .cfi_startproc - blr - .cfi_endproc - .size dummy11,.-dummy11 - - .section .text.dummy12,"ax",@progbits - .type dummy12,@function -dummy12: - .cfi_startproc - blr - .cfi_endproc - .size dummy12,.-dummy12 - - .section .text.dummy13,"ax",@progbits - .type dummy13,@function -dummy13: - .cfi_startproc - blr - .cfi_endproc - .size dummy13,.-dummy13 - - .section .text.dummy14,"ax",@progbits - .type dummy14,@function -dummy14: - .cfi_startproc - blr - .cfi_endproc - .size dummy14,.-dummy14 - - .section .text.dummy15,"ax",@progbits - .type dummy15,@function -dummy15: - .cfi_startproc - blr - .cfi_endproc - .size dummy15,.-dummy15 - - .section .text.dummy16,"ax",@progbits - .type dummy16,@function -dummy16: - .cfi_startproc - blr - .cfi_endproc - .size dummy16,.-dummy16 - - .section .text.dummy17,"ax",@progbits - .type dummy17,@function -dummy17: - .cfi_startproc - blr - .cfi_endproc - .size dummy17,.-dummy17 - - .section .text.dummy18,"ax",@progbits - .type dummy18,@function -dummy18: - .cfi_startproc - blr - .cfi_endproc - .size dummy18,.-dummy18 - - .section .text.dummy19,"ax",@progbits - .type dummy19,@function -dummy19: - .cfi_startproc - blr - .cfi_endproc - .size dummy19,.-dummy19 - - .section .text.dummy20,"ax",@progbits - .type dummy20,@function -dummy20: - .cfi_startproc - blr - .cfi_endproc - .size dummy20,.-dummy20 - - .section .text.dummy21,"ax",@progbits - .type dummy21,@function -dummy21: - .cfi_startproc - blr - .cfi_endproc - .size dummy21,.-dummy21 - - .section .text.dummy22,"ax",@progbits - .type dummy22,@function -dummy22: - .cfi_startproc - blr - .cfi_endproc - .size dummy22,.-dummy22 - - .section .text.dummy23,"ax",@progbits - .type dummy23,@function -dummy23: - .cfi_startproc - blr - .cfi_endproc - .size dummy23,.-dummy23 - - .section .text.dummy24,"ax",@progbits - .type dummy24,@function -dummy24: - .cfi_startproc - blr - .cfi_endproc - .size dummy24,.-dummy24 - - .section .text.dummy25,"ax",@progbits - .type dummy25,@function -dummy25: - .cfi_startproc - blr - .cfi_endproc - .size dummy25,.-dummy25 - - .section .text.dummy26,"ax",@progbits - .type dummy26,@function -dummy26: - .cfi_startproc - blr - .cfi_endproc - .size dummy26,.-dummy26 - - .section .text.dummy27,"ax",@progbits - .type dummy27,@function -dummy27: - .cfi_startproc - blr - .cfi_endproc - .size dummy27,.-dummy27 - - .section .text.dummy28,"ax",@progbits - .type dummy28,@function -dummy28: - .cfi_startproc - blr - .cfi_endproc - .size dummy28,.-dummy28 - - .section .text.dummy29,"ax",@progbits - .type dummy29,@function -dummy29: - .cfi_startproc - blr - .cfi_endproc - .size dummy29,.-dummy29 - - .section .text.dummy30,"ax",@progbits - .type dummy30,@function -dummy30: - .cfi_startproc - blr - .cfi_endproc - .size dummy30,.-dummy30 - - .section .text.dummy31,"ax",@progbits - .type dummy31,@function -dummy31: - .cfi_startproc - blr - .cfi_endproc - .size dummy31,.-dummy31 - - .section .text.dummy32,"ax",@progbits - .type dummy32,@function -dummy32: - .cfi_startproc - blr - .cfi_endproc - .size dummy32,.-dummy32 - - .section .text.dummy33,"ax",@progbits - .type dummy33,@function -dummy33: - .cfi_startproc - blr - .cfi_endproc - .size dummy33,.-dummy33 - - .section .text.dummy34,"ax",@progbits - .type dummy34,@function -dummy34: - .cfi_startproc - blr - .cfi_endproc - .size dummy34,.-dummy34 - - .section .text.dummy35,"ax",@progbits - .type dummy35,@function -dummy35: - .cfi_startproc - blr - .cfi_endproc - .size dummy35,.-dummy35 - - .section .text.dummy36,"ax",@progbits - .type dummy36,@function -dummy36: - .cfi_startproc - blr - .cfi_endproc - .size dummy36,.-dummy36 - - .section .text.dummy37,"ax",@progbits - .type dummy37,@function -dummy37: - .cfi_startproc - blr - .cfi_endproc - .size dummy37,.-dummy37 - - .section .text.dummy38,"ax",@progbits - .type dummy38,@function -dummy38: - .cfi_startproc - blr - .cfi_endproc - .size dummy38,.-dummy38 - - .section .text.dummy39,"ax",@progbits - .type dummy39,@function -dummy39: - .cfi_startproc - blr - .cfi_endproc - .size dummy39,.-dummy39 - - .section .text.dummy40,"ax",@progbits - .type dummy40,@function -dummy40: - .cfi_startproc - blr - .cfi_endproc - .size dummy40,.-dummy40 - - .section .text.dummy41,"ax",@progbits - .type dummy41,@function -dummy41: - .cfi_startproc - blr - .cfi_endproc - .size dummy41,.-dummy41 - - .section .text.dummy42,"ax",@progbits - .type dummy42,@function -dummy42: - .cfi_startproc - blr - .cfi_endproc - .size dummy42,.-dummy42 - - .section .text.dummy43,"ax",@progbits - .type dummy43,@function -dummy43: - .cfi_startproc - blr - .cfi_endproc - .size dummy43,.-dummy43 - - .section .text.dummy44,"ax",@progbits - .type dummy44,@function -dummy44: - .cfi_startproc - blr - .cfi_endproc - .size dummy44,.-dummy44 - - .section .text.dummy45,"ax",@progbits - .type dummy45,@function -dummy45: - .cfi_startproc - blr - .cfi_endproc - .size dummy45,.-dummy45 - - .section .text.dummy46,"ax",@progbits - .type dummy46,@function -dummy46: - .cfi_startproc - blr - .cfi_endproc - .size dummy46,.-dummy46 - - .section .text.dummy47,"ax",@progbits - .type dummy47,@function -dummy47: - .cfi_startproc - blr - .cfi_endproc - .size dummy47,.-dummy47 - - .section .text.dummy48,"ax",@progbits - .type dummy48,@function -dummy48: - .cfi_startproc - blr - .cfi_endproc - .size dummy48,.-dummy48 - - .section .text.dummy49,"ax",@progbits - .type dummy49,@function -dummy49: - .cfi_startproc - blr - .cfi_endproc - .size dummy49,.-dummy49 - - .section .text.dummy50,"ax",@progbits - .type dummy50,@function -dummy50: - .cfi_startproc - blr - .cfi_endproc - .size dummy50,.-dummy50 - - .section .text.dummy51,"ax",@progbits - .type dummy51,@function -dummy51: - .cfi_startproc - blr - .cfi_endproc - .size dummy51,.-dummy51 - - .section .text.dummy52,"ax",@progbits - .type dummy52,@function -dummy52: - .cfi_startproc - blr - .cfi_endproc - .size dummy52,.-dummy52 - - .section .text.dummy53,"ax",@progbits - .type dummy53,@function -dummy53: - .cfi_startproc - blr - .cfi_endproc - .size dummy53,.-dummy53 - - .section .text.dummy54,"ax",@progbits - .type dummy54,@function -dummy54: - .cfi_startproc - blr - .cfi_endproc - .size dummy54,.-dummy54 - - .section .text.dummy55,"ax",@progbits - .type dummy55,@function -dummy55: - .cfi_startproc - blr - .cfi_endproc - .size dummy55,.-dummy55 - - .section .text.dummy56,"ax",@progbits - .type dummy56,@function -dummy56: - .cfi_startproc - blr - .cfi_endproc - .size dummy56,.-dummy56 - - .section .text.dummy57,"ax",@progbits - .type dummy57,@function -dummy57: - .cfi_startproc - blr - .cfi_endproc - .size dummy57,.-dummy57 - - .section .text.dummy58,"ax",@progbits - .type dummy58,@function -dummy58: - .cfi_startproc - blr - .cfi_endproc - .size dummy58,.-dummy58 - - .section .text.dummy59,"ax",@progbits - .type dummy59,@function -dummy59: - .cfi_startproc - blr - .cfi_endproc - .size dummy59,.-dummy59 - - .section .text.dummy60,"ax",@progbits - .type dummy60,@function -dummy60: - .cfi_startproc - blr - .cfi_endproc - .size dummy60,.-dummy60 - - .section .text.dummy61,"ax",@progbits - .type dummy61,@function -dummy61: - .cfi_startproc - blr - .cfi_endproc - .size dummy61,.-dummy61 - - .section .text.dummy62,"ax",@progbits - .type dummy62,@function -dummy62: - .cfi_startproc - blr - .cfi_endproc - .size dummy62,.-dummy62 - - .section .text.dummy63,"ax",@progbits - .type dummy63,@function -dummy63: - .cfi_startproc - blr - .cfi_endproc - .size dummy63,.-dummy63 - - .section .text.dummy64,"ax",@progbits - .type dummy64,@function -dummy64: - .cfi_startproc - blr - .cfi_endproc - .size dummy64,.-dummy64 - - .section .text.dummy65,"ax",@progbits - .type dummy65,@function -dummy65: - .cfi_startproc - blr - .cfi_endproc - .size dummy65,.-dummy65 - - .section .text.dummy66,"ax",@progbits - .type dummy66,@function -dummy66: - .cfi_startproc - blr - .cfi_endproc - .size dummy66,.-dummy66 - - .section .text.dummy67,"ax",@progbits - .type dummy67,@function -dummy67: - .cfi_startproc - blr - .cfi_endproc - .size dummy67,.-dummy67 - - .section .text.dummy68,"ax",@progbits - .type dummy68,@function -dummy68: - .cfi_startproc - blr - .cfi_endproc - .size dummy68,.-dummy68 - - .section .text.dummy69,"ax",@progbits - .type dummy69,@function -dummy69: - .cfi_startproc - blr - .cfi_endproc - .size dummy69,.-dummy69 - - .section .text.dummy70,"ax",@progbits - .type dummy70,@function -dummy70: - .cfi_startproc - blr - .cfi_endproc - .size dummy70,.-dummy70 - - .section .text.dummy71,"ax",@progbits - .type dummy71,@function -dummy71: - .cfi_startproc - blr - .cfi_endproc - .size dummy71,.-dummy71 - - .section .text.dummy72,"ax",@progbits - .type dummy72,@function -dummy72: - .cfi_startproc - blr - .cfi_endproc - .size dummy72,.-dummy72 - - .section .text.dummy73,"ax",@progbits - .type dummy73,@function -dummy73: - .cfi_startproc - blr - .cfi_endproc - .size dummy73,.-dummy73 - - .section .text.dummy74,"ax",@progbits - .type dummy74,@function -dummy74: - .cfi_startproc - blr - .cfi_endproc - .size dummy74,.-dummy74 - - .section .text.dummy75,"ax",@progbits - .type dummy75,@function -dummy75: - .cfi_startproc - blr - .cfi_endproc - .size dummy75,.-dummy75 - - .section .text.dummy76,"ax",@progbits - .type dummy76,@function -dummy76: - .cfi_startproc - blr - .cfi_endproc - .size dummy76,.-dummy76 - - .section .text.dummy77,"ax",@progbits - .type dummy77,@function -dummy77: - .cfi_startproc - blr - .cfi_endproc - .size dummy77,.-dummy77 - - .section .text.dummy78,"ax",@progbits - .type dummy78,@function -dummy78: - .cfi_startproc - blr - .cfi_endproc - .size dummy78,.-dummy78 - - .section .text.dummy79,"ax",@progbits - .type dummy79,@function -dummy79: - .cfi_startproc - blr - .cfi_endproc - .size dummy79,.-dummy79 - - .section .text.dummy80,"ax",@progbits - .type dummy80,@function -dummy80: - .cfi_startproc - blr - .cfi_endproc - .size dummy80,.-dummy80 - - .section .text.dummy81,"ax",@progbits - .type dummy81,@function -dummy81: - .cfi_startproc - blr - .cfi_endproc - .size dummy81,.-dummy81 - - .section .text.dummy82,"ax",@progbits - .type dummy82,@function -dummy82: - .cfi_startproc - blr - .cfi_endproc - .size dummy82,.-dummy82 - - .section .text.dummy83,"ax",@progbits - .type dummy83,@function -dummy83: - .cfi_startproc - blr - .cfi_endproc - .size dummy83,.-dummy83 - - .section .text.dummy84,"ax",@progbits - .type dummy84,@function -dummy84: - .cfi_startproc - blr - .cfi_endproc - .size dummy84,.-dummy84 - - .section .text.dummy85,"ax",@progbits - .type dummy85,@function -dummy85: - .cfi_startproc - blr - .cfi_endproc - .size dummy85,.-dummy85 - - .section .text.dummy86,"ax",@progbits - .type dummy86,@function -dummy86: - .cfi_startproc - blr - .cfi_endproc - .size dummy86,.-dummy86 - - .section .text.dummy87,"ax",@progbits - .type dummy87,@function -dummy87: - .cfi_startproc - blr - .cfi_endproc - .size dummy87,.-dummy87 - - .section .text.dummy88,"ax",@progbits - .type dummy88,@function -dummy88: - .cfi_startproc - blr - .cfi_endproc - .size dummy88,.-dummy88 - - .section .text.dummy89,"ax",@progbits - .type dummy89,@function -dummy89: +# Generate some .eh_frame info that -gc-sections will trim + .macro fundef f + .section .text.\f,"ax",@progbits + .type \f,@function +\f: .cfi_startproc blr .cfi_endproc - .size dummy89,.-dummy89 + .size \f,.-\f + .endm - .section .text.dummy90,"ax",@progbits - .type dummy90,@function -dummy90: - .cfi_startproc - blr - .cfi_endproc - .size dummy90,.-dummy90 - - .section .text.dummy91,"ax",@progbits - .type dummy91,@function -dummy91: - .cfi_startproc - blr - .cfi_endproc - .size dummy91,.-dummy91 - - .section .text.dummy92,"ax",@progbits - .type dummy92,@function -dummy92: - .cfi_startproc - blr - .cfi_endproc - .size dummy92,.-dummy92 - - .section .text.dummy93,"ax",@progbits - .type dummy93,@function -dummy93: - .cfi_startproc - blr - .cfi_endproc - .size dummy93,.-dummy93 - - .section .text.dummy94,"ax",@progbits - .type dummy94,@function -dummy94: - .cfi_startproc - blr - .cfi_endproc - .size dummy94,.-dummy94 - - .section .text.dummy95,"ax",@progbits - .type dummy95,@function -dummy95: - .cfi_startproc - blr - .cfi_endproc - .size dummy95,.-dummy95 - - .section .text.dummy96,"ax",@progbits - .type dummy96,@function -dummy96: - .cfi_startproc - blr - .cfi_endproc - .size dummy96,.-dummy96 - - .section .text.dummy97,"ax",@progbits - .type dummy97,@function -dummy97: - .cfi_startproc - blr - .cfi_endproc - .size dummy97,.-dummy97 - - .section .text.dummy98,"ax",@progbits - .type dummy98,@function -dummy98: - .cfi_startproc - blr - .cfi_endproc - .size dummy98,.-dummy98 - - .section .text.dummy99,"ax",@progbits - .type dummy99,@function -dummy99: - .cfi_startproc - blr - .cfi_endproc - .size dummy99,.-dummy99 + .irpc t2,0123456789 + .irpc t1,0123456789 + fundef dummy\t2\t1 + .endr + .endr -- Alan Modra Australia Development Lab, IBM