1/* 2 * Copyright (C) 2017 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17class A {} 18class B1 extends A {} 19class B2 extends A {} 20class C1 extends B1 {} 21class C2 extends B1 {} 22class D1 extends C1 {} 23class D2 extends C2 {} 24class E1 extends D2 {} 25class E2 extends D1 {} 26class E3 extends D2 {} 27class E4 extends D1 {} 28class E5 extends D2 {} 29class E6 extends D1 {} 30class E7 extends D2 {} 31class E8 extends D1 {} 32class E9 extends D2 {} 33class E10 extends D1 {} 34class E11 extends D2 {} 35class E12 extends D1 {} 36class E13 extends D2 {} 37class E14 extends D1 {} 38class E15 extends D2 {} 39class E16 extends D1 {} 40class E17 extends D2 {} 41class E18 extends D1 {} 42class E19 extends D2 {} 43class E20 extends D1 {} 44class E21 extends D2 {} 45class E22 extends D1 {} 46class E23 extends D2 {} 47class E24 extends D1 {} 48class E25 extends D2 {} 49class E26 extends D1 {} 50class E27 extends D2 {} 51class E28 extends D1 {} 52class E29 extends D2 {} 53class E30 extends D1 {} 54class E31 extends D2 {} 55class E32 extends D1 {} 56class E33 extends D2 {} 57class E34 extends D1 {} 58class E35 extends D2 {} 59class E36 extends D1 {} 60class E37 extends D2 {} 61class E38 extends D1 {} 62class E39 extends D2 {} 63class E40 extends D1 {} 64class E41 extends D2 {} 65class E42 extends D1 {} 66class E43 extends D2 {} 67class E44 extends D1 {} 68class E45 extends D2 {} 69class E46 extends D1 {} 70class E47 extends D2 {} 71class E48 extends D1 {} 72class E49 extends D2 {} 73class E50 extends D1 {} 74class E51 extends D2 {} 75class E52 extends D1 {} 76class E53 extends D2 {} 77class E54 extends D1 {} 78class E55 extends D2 {} 79class E56 extends D1 {} 80class E57 extends D2 {} 81class E58 extends D1 {} 82class E59 extends D2 {} 83class E60 extends D1 {} 84class E61 extends D2 {} 85class E62 extends D1 {} 86class E63 extends D2 {} 87class E64 extends D1 {} 88class E65 extends D2 {} 89class E66 extends D1 {} 90class E67 extends D2 {} 91class E68 extends D1 {} 92class E69 extends D2 {} 93class E70 extends D1 {} 94class E71 extends D2 {} 95class E72 extends D1 {} 96class E73 extends D2 {} 97class E74 extends D1 {} 98class E75 extends D2 {} 99class E76 extends D1 {} 100class E77 extends D2 {} 101class E78 extends D1 {} 102class E79 extends D2 {} 103class E80 extends D1 {} 104class E81 extends D2 {} 105class E82 extends D1 {} 106class E83 extends D2 {} 107class E84 extends D1 {} 108class E85 extends D2 {} 109class E86 extends D1 {} 110class E87 extends D2 {} 111class E88 extends D1 {} 112class E89 extends D2 {} 113class E90 extends D1 {} 114class E91 extends D2 {} 115class E92 extends D1 {} 116class E93 extends D2 {} 117class E94 extends D1 {} 118class E95 extends D2 {} 119class E96 extends D1 {} 120class E97 extends D2 {} 121class E98 extends D1 {} 122class E99 extends D2 {} 123class E100 extends D1 {} 124class E101 extends D2 {} 125class E102 extends D1 {} 126class E103 extends D2 {} 127class E104 extends D1 {} 128class E105 extends D2 {} 129class E106 extends D1 {} 130class E107 extends D2 {} 131class E108 extends D1 {} 132class E109 extends D2 {} 133class E110 extends D1 {} 134class E111 extends D2 {} 135class E112 extends D1 {} 136class E113 extends D2 {} 137class E114 extends D1 {} 138class E115 extends D2 {} 139class E116 extends D1 {} 140class E117 extends D2 {} 141class E118 extends D1 {} 142class E119 extends D2 {} 143class E120 extends D1 {} 144class E121 extends D2 {} 145class E122 extends D1 {} 146class E123 extends D2 {} 147class E124 extends D1 {} 148class E125 extends D2 {} 149class E126 extends D1 {} 150class E127 extends D2 {} 151class E128 extends D1 {} 152class E129 extends D2 {} 153class E130 extends D1 {} 154class E131 extends D2 {} 155class E132 extends D1 {} 156class E133 extends D2 {} 157class E134 extends D1 {} 158class E135 extends D2 {} 159class E136 extends D1 {} 160class E137 extends D2 {} 161class E138 extends D1 {} 162class E139 extends D2 {} 163class E140 extends D1 {} 164class E141 extends D2 {} 165class E142 extends D1 {} 166class E143 extends D2 {} 167class E144 extends D1 {} 168class E145 extends D2 {} 169class E146 extends D1 {} 170class E147 extends D2 {} 171class E148 extends D1 {} 172class E149 extends D2 {} 173class E150 extends D1 {} 174class E151 extends D2 {} 175class E152 extends D1 {} 176class E153 extends D2 {} 177class E154 extends D1 {} 178class E155 extends D2 {} 179class E156 extends D1 {} 180class E157 extends D2 {} 181class E158 extends D1 {} 182class E159 extends D2 {} 183class E160 extends D1 {} 184class E161 extends D2 {} 185class E162 extends D1 {} 186class E163 extends D2 {} 187class E164 extends D1 {} 188class E165 extends D2 {} 189class E166 extends D1 {} 190class E167 extends D2 {} 191class E168 extends D1 {} 192class E169 extends D2 {} 193class E170 extends D1 {} 194class E171 extends D2 {} 195class E172 extends D1 {} 196class E173 extends D2 {} 197class E174 extends D1 {} 198class E175 extends D2 {} 199class E176 extends D1 {} 200class E177 extends D2 {} 201class E178 extends D1 {} 202class E179 extends D2 {} 203class E180 extends D1 {} 204class E181 extends D2 {} 205class E182 extends D1 {} 206class E183 extends D2 {} 207class E184 extends D1 {} 208class E185 extends D2 {} 209class E186 extends D1 {} 210class E187 extends D2 {} 211class E188 extends D1 {} 212class E189 extends D2 {} 213class E190 extends D1 {} 214class E191 extends D2 {} 215class E192 extends D1 {} 216class E193 extends D2 {} 217class E194 extends D1 {} 218class E195 extends D2 {} 219class E196 extends D1 {} 220class E197 extends D2 {} 221class E198 extends D1 {} 222class E199 extends D2 {} 223class E200 extends D1 {} 224class E201 extends D2 {} 225class E202 extends D1 {} 226class E203 extends D2 {} 227class E204 extends D1 {} 228class E205 extends D2 {} 229class E206 extends D1 {} 230class E207 extends D2 {} 231class E208 extends D1 {} 232class E209 extends D2 {} 233class E210 extends D1 {} 234class E211 extends D2 {} 235class E212 extends D1 {} 236class E213 extends D2 {} 237class E214 extends D1 {} 238class E215 extends D2 {} 239class E216 extends D1 {} 240class E217 extends D2 {} 241class E218 extends D1 {} 242class E219 extends D2 {} 243class E220 extends D1 {} 244class E221 extends D2 {} 245class E222 extends D1 {} 246class E223 extends D2 {} 247class E224 extends D1 {} 248class E225 extends D2 {} 249class E226 extends D1 {} 250class E227 extends D2 {} 251class E228 extends D1 {} 252class E229 extends D2 {} 253class E230 extends D1 {} 254class E231 extends D2 {} 255class E232 extends D1 {} 256class E233 extends D2 {} 257class E234 extends D1 {} 258class E235 extends D2 {} 259class E236 extends D1 {} 260class E237 extends D2 {} 261class E238 extends D1 {} 262class E239 extends D2 {} 263class E240 extends D1 {} 264class E241 extends D2 {} 265class E242 extends D1 {} 266class E243 extends D2 {} 267class E244 extends D1 {} 268class E245 extends D2 {} 269class E246 extends D1 {} 270class E247 extends D2 {} 271class E248 extends D1 {} 272class E249 extends D2 {} 273class E250 extends D1 {} 274class E251 extends D2 {} 275class E252 extends D1 {} 276class E253 extends D2 {} 277class E254 extends D1 {} 278class E255 extends D2 {} 279class E256 extends D1 {} 280class E257 extends D2 {} 281class E258 extends D1 {} 282class E259 extends D2 {} 283class E260 extends D1 {} 284class E261 extends D2 {} 285class E262 extends D1 {} 286class E263 extends D2 {} 287class E264 extends D1 {} 288class E265 extends D2 {} 289class E266 extends D1 {} 290class E267 extends D2 {} 291class E268 extends D1 {} 292class E269 extends D2 {} 293class E270 extends D1 {} 294class E271 extends D2 {} 295class E272 extends D1 {} 296class E273 extends D2 {} 297class E274 extends D1 {} 298class E275 extends D2 {} 299class E276 extends D1 {} 300class E277 extends D2 {} 301class E278 extends D1 {} 302class E279 extends D2 {} 303class E280 extends D1 {} 304class E281 extends D2 {} 305class E282 extends D1 {} 306class E283 extends D2 {} 307class E284 extends D1 {} 308class E285 extends D2 {} 309class E286 extends D1 {} 310class E287 extends D2 {} 311class E288 extends D1 {} 312class E289 extends D2 {} 313class E290 extends D1 {} 314class E291 extends D2 {} 315class E292 extends D1 {} 316class E293 extends D2 {} 317class E294 extends D1 {} 318class E295 extends D2 {} 319class E296 extends D1 {} 320class E297 extends D2 {} 321class E298 extends D1 {} 322class E299 extends D2 {} 323class E300 extends D1 {} 324class E301 extends D2 {} 325class E302 extends D1 {} 326class E303 extends D2 {} 327class E304 extends D1 {} 328class E305 extends D2 {} 329class E306 extends D1 {} 330class E307 extends D2 {} 331class E308 extends D1 {} 332class E309 extends D2 {} 333class E310 extends D1 {} 334class E311 extends D2 {} 335class E312 extends D1 {} 336class E313 extends D2 {} 337class E314 extends D1 {} 338class E315 extends D2 {} 339class E316 extends D1 {} 340class E317 extends D2 {} 341class E318 extends D1 {} 342class E319 extends D2 {} 343class E320 extends D1 {} 344class E321 extends D2 {} 345class E322 extends D1 {} 346class E323 extends D2 {} 347class E324 extends D1 {} 348class E325 extends D2 {} 349class E326 extends D1 {} 350class E327 extends D2 {} 351class E328 extends D1 {} 352class E329 extends D2 {} 353class E330 extends D1 {} 354class E331 extends D2 {} 355class E332 extends D1 {} 356class E333 extends D2 {} 357class E334 extends D1 {} 358class E335 extends D2 {} 359class E336 extends D1 {} 360class E337 extends D2 {} 361class E338 extends D1 {} 362class E339 extends D2 {} 363class E340 extends D1 {} 364class E341 extends D2 {} 365class E342 extends D1 {} 366class E343 extends D2 {} 367class E344 extends D1 {} 368class E345 extends D2 {} 369class E346 extends D1 {} 370class E347 extends D2 {} 371class E348 extends D1 {} 372class E349 extends D2 {} 373class E350 extends D1 {} 374class E351 extends D2 {} 375class E352 extends D1 {} 376class E353 extends D2 {} 377class E354 extends D1 {} 378class E355 extends D2 {} 379class E356 extends D1 {} 380class E357 extends D2 {} 381class E358 extends D1 {} 382class E359 extends D2 {} 383class E360 extends D1 {} 384class E361 extends D2 {} 385class E362 extends D1 {} 386class E363 extends D2 {} 387class E364 extends D1 {} 388class E365 extends D2 {} 389class E366 extends D1 {} 390class E367 extends D2 {} 391class E368 extends D1 {} 392class E369 extends D2 {} 393class E370 extends D1 {} 394class E371 extends D2 {} 395class E372 extends D1 {} 396class E373 extends D2 {} 397class E374 extends D1 {} 398class E375 extends D2 {} 399class E376 extends D1 {} 400class E377 extends D2 {} 401class E378 extends D1 {} 402class E379 extends D2 {} 403class E380 extends D1 {} 404class E381 extends D2 {} 405class E382 extends D1 {} 406class E383 extends D2 {} 407class E384 extends D1 {} 408class E385 extends D2 {} 409class E386 extends D1 {} 410class E387 extends D2 {} 411class E388 extends D1 {} 412class E389 extends D2 {} 413class E390 extends D1 {} 414class E391 extends D2 {} 415class E392 extends D1 {} 416class E393 extends D2 {} 417class E394 extends D1 {} 418class E395 extends D2 {} 419class E396 extends D1 {} 420class E397 extends D2 {} 421class E398 extends D1 {} 422class E399 extends D2 {} 423class E400 extends D1 {} 424class E401 extends D2 {} 425class E402 extends D1 {} 426class E403 extends D2 {} 427class E404 extends D1 {} 428class E405 extends D2 {} 429class E406 extends D1 {} 430class E407 extends D2 {} 431class E408 extends D1 {} 432class E409 extends D2 {} 433class E410 extends D1 {} 434class E411 extends D2 {} 435class E412 extends D1 {} 436class E413 extends D2 {} 437class E414 extends D1 {} 438class E415 extends D2 {} 439class E416 extends D1 {} 440class E417 extends D2 {} 441class E418 extends D1 {} 442class E419 extends D2 {} 443class E420 extends D1 {} 444class E421 extends D2 {} 445class E422 extends D1 {} 446class E423 extends D2 {} 447class E424 extends D1 {} 448class E425 extends D2 {} 449class E426 extends D1 {} 450class E427 extends D2 {} 451class E428 extends D1 {} 452class E429 extends D2 {} 453class E430 extends D1 {} 454class E431 extends D2 {} 455class E432 extends D1 {} 456class E433 extends D2 {} 457class E434 extends D1 {} 458class E435 extends D2 {} 459class E436 extends D1 {} 460class E437 extends D2 {} 461class E438 extends D1 {} 462class E439 extends D2 {} 463class E440 extends D1 {} 464class E441 extends D2 {} 465class E442 extends D1 {} 466class E443 extends D2 {} 467class E444 extends D1 {} 468class E445 extends D2 {} 469class E446 extends D1 {} 470class E447 extends D2 {} 471class E448 extends D1 {} 472class E449 extends D2 {} 473class E450 extends D1 {} 474class E451 extends D2 {} 475class E452 extends D1 {} 476class E453 extends D2 {} 477class E454 extends D1 {} 478class E455 extends D2 {} 479class E456 extends D1 {} 480class E457 extends D2 {} 481class E458 extends D1 {} 482class E459 extends D2 {} 483class E460 extends D1 {} 484class E461 extends D2 {} 485class E462 extends D1 {} 486class E463 extends D2 {} 487class E464 extends D1 {} 488class E465 extends D2 {} 489class E466 extends D1 {} 490class E467 extends D2 {} 491class E468 extends D1 {} 492class E469 extends D2 {} 493class E470 extends D1 {} 494class E471 extends D2 {} 495class E472 extends D1 {} 496class E473 extends D2 {} 497class E474 extends D1 {} 498class E475 extends D2 {} 499class E476 extends D1 {} 500class E477 extends D2 {} 501class E478 extends D1 {} 502class E479 extends D2 {} 503class E480 extends D1 {} 504class E481 extends D2 {} 505class E482 extends D1 {} 506class E483 extends D2 {} 507class E484 extends D1 {} 508class E485 extends D2 {} 509class E486 extends D1 {} 510class E487 extends D2 {} 511class E488 extends D1 {} 512class E489 extends D2 {} 513class E490 extends D1 {} 514class E491 extends D2 {} 515class E492 extends D1 {} 516class E493 extends D2 {} 517class E494 extends D1 {} 518class E495 extends D2 {} 519class E496 extends D1 {} 520class E497 extends D2 {} 521class E498 extends D1 {} 522class E499 extends D2 {} 523class E500 extends D1 {} 524class E501 extends D2 {} 525class E502 extends D1 {} 526class E503 extends D2 {} 527class E504 extends D1 {} 528class E505 extends D2 {} 529class E506 extends D1 {} 530class E507 extends D2 {} 531class E508 extends D1 {} 532class E509 extends D2 {} 533class E510 extends D1 {} 534class E511 extends D2 {} 535class E512 extends D1 {} 536class E513 extends D2 {} 537class E514 extends D1 {} 538class E515 extends D2 {} 539class E516 extends D1 {} 540class E517 extends D2 {} 541class E518 extends D1 {} 542class E519 extends D2 {} 543class E520 extends D1 {} 544class E521 extends D2 {} 545class E522 extends D1 {} 546class E523 extends D2 {} 547class E524 extends D1 {} 548class E525 extends D2 {} 549class E526 extends D1 {} 550class E527 extends D2 {} 551class E528 extends D1 {} 552class E529 extends D2 {} 553class E530 extends D1 {} 554class E531 extends D2 {} 555class E532 extends D1 {} 556class E533 extends D2 {} 557class E534 extends D1 {} 558class E535 extends D2 {} 559class E536 extends D1 {} 560class E537 extends D2 {} 561class E538 extends D1 {} 562class E539 extends D2 {} 563class E540 extends D1 {} 564class E541 extends D2 {} 565class E542 extends D1 {} 566class E543 extends D2 {} 567class E544 extends D1 {} 568class E545 extends D2 {} 569class E546 extends D1 {} 570class E547 extends D2 {} 571class E548 extends D1 {} 572class E549 extends D2 {} 573class E550 extends D1 {} 574class E551 extends D2 {} 575class E552 extends D1 {} 576class E553 extends D2 {} 577class E554 extends D1 {} 578class E555 extends D2 {} 579class E556 extends D1 {} 580class E557 extends D2 {} 581class E558 extends D1 {} 582class E559 extends D2 {} 583class E560 extends D1 {} 584class E561 extends D2 {} 585class E562 extends D1 {} 586class E563 extends D2 {} 587class E564 extends D1 {} 588class E565 extends D2 {} 589class E566 extends D1 {} 590class E567 extends D2 {} 591class E568 extends D1 {} 592class E569 extends D2 {} 593class E570 extends D1 {} 594class E571 extends D2 {} 595class E572 extends D1 {} 596class E573 extends D2 {} 597class E574 extends D1 {} 598class E575 extends D2 {} 599class E576 extends D1 {} 600class E577 extends D2 {} 601class E578 extends D1 {} 602class E579 extends D2 {} 603class E580 extends D1 {} 604class E581 extends D2 {} 605class E582 extends D1 {} 606class E583 extends D2 {} 607class E584 extends D1 {} 608class E585 extends D2 {} 609class E586 extends D1 {} 610class E587 extends D2 {} 611class E588 extends D1 {} 612class E589 extends D2 {} 613class E590 extends D1 {} 614class E591 extends D2 {} 615class E592 extends D1 {} 616class E593 extends D2 {} 617class E594 extends D1 {} 618class E595 extends D2 {} 619class E596 extends D1 {} 620class E597 extends D2 {} 621class E598 extends D1 {} 622class E599 extends D2 {} 623class E600 extends D1 {} 624class E601 extends D2 {} 625class E602 extends D1 {} 626class E603 extends D2 {} 627class E604 extends D1 {} 628class E605 extends D2 {} 629class E606 extends D1 {} 630class E607 extends D2 {} 631class E608 extends D1 {} 632class E609 extends D2 {} 633class E610 extends D1 {} 634class E611 extends D2 {} 635class E612 extends D1 {} 636class E613 extends D2 {} 637class E614 extends D1 {} 638class E615 extends D2 {} 639class E616 extends D1 {} 640class E617 extends D2 {} 641class E618 extends D1 {} 642class E619 extends D2 {} 643class E620 extends D1 {} 644class E621 extends D2 {} 645class E622 extends D1 {} 646class E623 extends D2 {} 647class E624 extends D1 {} 648class E625 extends D2 {} 649class E626 extends D1 {} 650class E627 extends D2 {} 651class E628 extends D1 {} 652class E629 extends D2 {} 653class E630 extends D1 {} 654class E631 extends D2 {} 655class E632 extends D1 {} 656class E633 extends D2 {} 657class E634 extends D1 {} 658class E635 extends D2 {} 659class E636 extends D1 {} 660class E637 extends D2 {} 661class E638 extends D1 {} 662class E639 extends D2 {} 663class E640 extends D1 {} 664class E641 extends D2 {} 665class E642 extends D1 {} 666class E643 extends D2 {} 667class E644 extends D1 {} 668class E645 extends D2 {} 669class E646 extends D1 {} 670class E647 extends D2 {} 671class E648 extends D1 {} 672class E649 extends D2 {} 673class E650 extends D1 {} 674class E651 extends D2 {} 675class E652 extends D1 {} 676class E653 extends D2 {} 677class E654 extends D1 {} 678class E655 extends D2 {} 679class E656 extends D1 {} 680class E657 extends D2 {} 681class E658 extends D1 {} 682class E659 extends D2 {} 683class E660 extends D1 {} 684class E661 extends D2 {} 685class E662 extends D1 {} 686class E663 extends D2 {} 687class E664 extends D1 {} 688class E665 extends D2 {} 689class E666 extends D1 {} 690class E667 extends D2 {} 691class E668 extends D1 {} 692class E669 extends D2 {} 693class E670 extends D1 {} 694class E671 extends D2 {} 695class E672 extends D1 {} 696class E673 extends D2 {} 697class E674 extends D1 {} 698class E675 extends D2 {} 699class E676 extends D1 {} 700class E677 extends D2 {} 701class E678 extends D1 {} 702class E679 extends D2 {} 703class E680 extends D1 {} 704class E681 extends D2 {} 705class E682 extends D1 {} 706class E683 extends D2 {} 707class E684 extends D1 {} 708class E685 extends D2 {} 709class E686 extends D1 {} 710class E687 extends D2 {} 711class E688 extends D1 {} 712class E689 extends D2 {} 713class E690 extends D1 {} 714class E691 extends D2 {} 715class E692 extends D1 {} 716class E693 extends D2 {} 717class E694 extends D1 {} 718class E695 extends D2 {} 719class E696 extends D1 {} 720class E697 extends D2 {} 721class E698 extends D1 {} 722class E699 extends D2 {} 723class E700 extends D1 {} 724class E701 extends D2 {} 725class E702 extends D1 {} 726class E703 extends D2 {} 727class E704 extends D1 {} 728class E705 extends D2 {} 729class E706 extends D1 {} 730class E707 extends D2 {} 731class E708 extends D1 {} 732class E709 extends D2 {} 733class E710 extends D1 {} 734class E711 extends D2 {} 735class E712 extends D1 {} 736class E713 extends D2 {} 737class E714 extends D1 {} 738class E715 extends D2 {} 739class E716 extends D1 {} 740class E717 extends D2 {} 741class E718 extends D1 {} 742class E719 extends D2 {} 743class E720 extends D1 {} 744class E721 extends D2 {} 745class E722 extends D1 {} 746class E723 extends D2 {} 747class E724 extends D1 {} 748class E725 extends D2 {} 749class E726 extends D1 {} 750class E727 extends D2 {} 751class E728 extends D1 {} 752class E729 extends D2 {} 753class E730 extends D1 {} 754class E731 extends D2 {} 755class E732 extends D1 {} 756class E733 extends D2 {} 757class E734 extends D1 {} 758class E735 extends D2 {} 759class E736 extends D1 {} 760class E737 extends D2 {} 761class E738 extends D1 {} 762class E739 extends D2 {} 763class E740 extends D1 {} 764class E741 extends D2 {} 765class E742 extends D1 {} 766class E743 extends D2 {} 767class E744 extends D1 {} 768class E745 extends D2 {} 769class E746 extends D1 {} 770class E747 extends D2 {} 771class E748 extends D1 {} 772class E749 extends D2 {} 773class E750 extends D1 {} 774class E751 extends D2 {} 775class E752 extends D1 {} 776class E753 extends D2 {} 777class E754 extends D1 {} 778class E755 extends D2 {} 779class E756 extends D1 {} 780class E757 extends D2 {} 781class E758 extends D1 {} 782class E759 extends D2 {} 783class E760 extends D1 {} 784class E761 extends D2 {} 785class E762 extends D1 {} 786class E763 extends D2 {} 787class E764 extends D1 {} 788class E765 extends D2 {} 789class E766 extends D1 {} 790class E767 extends D2 {} 791class E768 extends D1 {} 792class E769 extends D2 {} 793class E770 extends D1 {} 794class E771 extends D2 {} 795class E772 extends D1 {} 796class E773 extends D2 {} 797class E774 extends D1 {} 798class E775 extends D2 {} 799class E776 extends D1 {} 800class E777 extends D2 {} 801class E778 extends D1 {} 802class E779 extends D2 {} 803class E780 extends D1 {} 804class E781 extends D2 {} 805class E782 extends D1 {} 806class E783 extends D2 {} 807class E784 extends D1 {} 808class E785 extends D2 {} 809class E786 extends D1 {} 810class E787 extends D2 {} 811class E788 extends D1 {} 812class E789 extends D2 {} 813class E790 extends D1 {} 814class E791 extends D2 {} 815class E792 extends D1 {} 816class E793 extends D2 {} 817class E794 extends D1 {} 818class E795 extends D2 {} 819class E796 extends D1 {} 820class E797 extends D2 {} 821class E798 extends D1 {} 822class E799 extends D2 {} 823class E800 extends D1 {} 824class E801 extends D2 {} 825class E802 extends D1 {} 826class E803 extends D2 {} 827class E804 extends D1 {} 828class E805 extends D2 {} 829class E806 extends D1 {} 830class E807 extends D2 {} 831class E808 extends D1 {} 832class E809 extends D2 {} 833class E810 extends D1 {} 834class E811 extends D2 {} 835class E812 extends D1 {} 836class E813 extends D2 {} 837class E814 extends D1 {} 838class E815 extends D2 {} 839class E816 extends D1 {} 840class E817 extends D2 {} 841class E818 extends D1 {} 842class E819 extends D2 {} 843class E820 extends D1 {} 844class E821 extends D2 {} 845class E822 extends D1 {} 846class E823 extends D2 {} 847class E824 extends D1 {} 848class E825 extends D2 {} 849class E826 extends D1 {} 850class E827 extends D2 {} 851class E828 extends D1 {} 852class E829 extends D2 {} 853class E830 extends D1 {} 854class E831 extends D2 {} 855class E832 extends D1 {} 856class E833 extends D2 {} 857class E834 extends D1 {} 858class E835 extends D2 {} 859class E836 extends D1 {} 860class E837 extends D2 {} 861class E838 extends D1 {} 862class E839 extends D2 {} 863class E840 extends D1 {} 864class E841 extends D2 {} 865class E842 extends D1 {} 866class E843 extends D2 {} 867class E844 extends D1 {} 868class E845 extends D2 {} 869class E846 extends D1 {} 870class E847 extends D2 {} 871class E848 extends D1 {} 872class E849 extends D2 {} 873class E850 extends D1 {} 874class E851 extends D2 {} 875class E852 extends D1 {} 876class E853 extends D2 {} 877class E854 extends D1 {} 878class E855 extends D2 {} 879class E856 extends D1 {} 880class E857 extends D2 {} 881class E858 extends D1 {} 882class E859 extends D2 {} 883class E860 extends D1 {} 884class E861 extends D2 {} 885class E862 extends D1 {} 886class E863 extends D2 {} 887class E864 extends D1 {} 888class E865 extends D2 {} 889class E866 extends D1 {} 890class E867 extends D2 {} 891class E868 extends D1 {} 892class E869 extends D2 {} 893class E870 extends D1 {} 894class E871 extends D2 {} 895class E872 extends D1 {} 896class E873 extends D2 {} 897class E874 extends D1 {} 898class E875 extends D2 {} 899class E876 extends D1 {} 900class E877 extends D2 {} 901class E878 extends D1 {} 902class E879 extends D2 {} 903class E880 extends D1 {} 904class E881 extends D2 {} 905class E882 extends D1 {} 906class E883 extends D2 {} 907class E884 extends D1 {} 908class E885 extends D2 {} 909class E886 extends D1 {} 910class E887 extends D2 {} 911class E888 extends D1 {} 912class E889 extends D2 {} 913class E890 extends D1 {} 914class E891 extends D2 {} 915class E892 extends D1 {} 916class E893 extends D2 {} 917class E894 extends D1 {} 918class E895 extends D2 {} 919class E896 extends D1 {} 920class E897 extends D2 {} 921class E898 extends D1 {} 922class E899 extends D2 {} 923class E900 extends D1 {} 924class E901 extends D2 {} 925class E902 extends D1 {} 926class E903 extends D2 {} 927class E904 extends D1 {} 928class E905 extends D2 {} 929class E906 extends D1 {} 930class E907 extends D2 {} 931class E908 extends D1 {} 932class E909 extends D2 {} 933class E910 extends D1 {} 934class E911 extends D2 {} 935class E912 extends D1 {} 936class E913 extends D2 {} 937class E914 extends D1 {} 938class E915 extends D2 {} 939class E916 extends D1 {} 940class E917 extends D2 {} 941class E918 extends D1 {} 942class E919 extends D2 {} 943class E920 extends D1 {} 944class E921 extends D2 {} 945class E922 extends D1 {} 946class E923 extends D2 {} 947class E924 extends D1 {} 948class E925 extends D2 {} 949class E926 extends D1 {} 950class E927 extends D2 {} 951class E928 extends D1 {} 952class E929 extends D2 {} 953class E930 extends D1 {} 954class E931 extends D2 {} 955class E932 extends D1 {} 956class E933 extends D2 {} 957class E934 extends D1 {} 958class E935 extends D2 {} 959class E936 extends D1 {} 960class E937 extends D2 {} 961class E938 extends D1 {} 962class E939 extends D2 {} 963class E940 extends D1 {} 964class E941 extends D2 {} 965class E942 extends D1 {} 966class E943 extends D2 {} 967class E944 extends D1 {} 968class E945 extends D2 {} 969class E946 extends D1 {} 970class E947 extends D2 {} 971class E948 extends D1 {} 972class E949 extends D2 {} 973class E950 extends D1 {} 974class E951 extends D2 {} 975class E952 extends D1 {} 976class E953 extends D2 {} 977class E954 extends D1 {} 978class E955 extends D2 {} 979class E956 extends D1 {} 980class E957 extends D2 {} 981class E958 extends D1 {} 982class E959 extends D2 {} 983class E960 extends D1 {} 984class E961 extends D2 {} 985class E962 extends D1 {} 986class E963 extends D2 {} 987class E964 extends D1 {} 988class E965 extends D2 {} 989class E966 extends D1 {} 990class E967 extends D2 {} 991class E968 extends D1 {} 992class E969 extends D2 {} 993class E970 extends D1 {} 994class E971 extends D2 {} 995class E972 extends D1 {} 996class E973 extends D2 {} 997class E974 extends D1 {} 998class E975 extends D2 {} 999class E976 extends D1 {} 1000class E977 extends D2 {} 1001class E978 extends D1 {} 1002class E979 extends D2 {} 1003class E980 extends D1 {} 1004class E981 extends D2 {} 1005class E982 extends D1 {} 1006class E983 extends D2 {} 1007class E984 extends D1 {} 1008class E985 extends D2 {} 1009class E986 extends D1 {} 1010class E987 extends D2 {} 1011class E988 extends D1 {} 1012class E989 extends D2 {} 1013class E990 extends D1 {} 1014class E991 extends D2 {} 1015class E992 extends D1 {} 1016class E993 extends D2 {} 1017class E994 extends D1 {} 1018class E995 extends D2 {} 1019class E996 extends D1 {} 1020class E997 extends D2 {} 1021class E998 extends D1 {} 1022class E999 extends D2 {} 1023class E1000 extends D1 {} 1024class E1001 extends D2 {} 1025class E1002 extends D1 {} 1026class E1003 extends D2 {} 1027class E1004 extends D1 {} 1028class E1005 extends D2 {} 1029class E1006 extends D1 {} 1030class E1007 extends D2 {} 1031class E1008 extends D1 {} 1032class E1009 extends D2 {} 1033class E1010 extends D1 {} 1034class E1011 extends D2 {} 1035class E1012 extends D1 {} 1036class E1013 extends D2 {} 1037class E1014 extends D1 {} 1038class E1015 extends D2 {} 1039class E1016 extends D1 {} 1040class E1017 extends D2 {} 1041class E1018 extends D1 {} 1042class E1019 extends D2 {} 1043class E1020 extends D1 {} 1044class E1021 extends D2 {} 1045class E1022 extends D1 {} 1046class E1023 extends D2 {} 1047class E1024 extends D1 {} 1048class E1025 extends D2 {} 1049class E1026 extends D1 {} 1050class E1027 extends D2 {} 1051class E1028 extends D1 {} 1052class E1029 extends D2 {} 1053class E1030 extends D1 {} 1054class E1031 extends D2 {} 1055class E1032 extends D1 {} 1056class E1033 extends D2 {} 1057class E1034 extends D1 {} 1058class E1035 extends D2 {} 1059class E1036 extends D1 {} 1060class E1037 extends D2 {} 1061class E1038 extends D1 {} 1062class E1039 extends D2 {} 1063class E1040 extends D1 {} 1064class E1041 extends D2 {} 1065class E1042 extends D1 {} 1066class E1043 extends D2 {} 1067class E1044 extends D1 {} 1068class E1045 extends D2 {} 1069class E1046 extends D1 {} 1070class E1047 extends D2 {} 1071class E1048 extends D1 {} 1072class E1049 extends D2 {} 1073class E1050 extends D1 {} 1074class E1051 extends D2 {} 1075class E1052 extends D1 {} 1076class E1053 extends D2 {} 1077class E1054 extends D1 {} 1078class E1055 extends D2 {} 1079class E1056 extends D1 {} 1080class E1057 extends D2 {} 1081class E1058 extends D1 {} 1082class E1059 extends D2 {} 1083class E1060 extends D1 {} 1084class E1061 extends D2 {} 1085class E1062 extends D1 {} 1086class E1063 extends D2 {} 1087class E1064 extends D1 {} 1088class E1065 extends D2 {} 1089class E1066 extends D1 {} 1090class E1067 extends D2 {} 1091class E1068 extends D1 {} 1092class E1069 extends D2 {} 1093class E1070 extends D1 {} 1094class E1071 extends D2 {} 1095class E1072 extends D1 {} 1096class E1073 extends D2 {} 1097class E1074 extends D1 {} 1098class E1075 extends D2 {} 1099class E1076 extends D1 {} 1100class E1077 extends D2 {} 1101class E1078 extends D1 {} 1102class E1079 extends D2 {} 1103class E1080 extends D1 {} 1104class E1081 extends D2 {} 1105class E1082 extends D1 {} 1106class E1083 extends D2 {} 1107class E1084 extends D1 {} 1108class E1085 extends D2 {} 1109class E1086 extends D1 {} 1110class E1087 extends D2 {} 1111class E1088 extends D1 {} 1112class E1089 extends D2 {} 1113class E1090 extends D1 {} 1114class E1091 extends D2 {} 1115class E1092 extends D1 {} 1116class E1093 extends D2 {} 1117class E1094 extends D1 {} 1118class E1095 extends D2 {} 1119class E1096 extends D1 {} 1120class E1097 extends D2 {} 1121class E1098 extends D1 {} 1122class E1099 extends D2 {} 1123class E1100 extends D1 {} 1124class E1101 extends D2 {} 1125class E1102 extends D1 {} 1126class E1103 extends D2 {} 1127class E1104 extends D1 {} 1128class E1105 extends D2 {} 1129class E1106 extends D1 {} 1130class E1107 extends D2 {} 1131class E1108 extends D1 {} 1132class E1109 extends D2 {} 1133class E1110 extends D1 {} 1134class E1111 extends D2 {} 1135class E1112 extends D1 {} 1136class E1113 extends D2 {} 1137class E1114 extends D1 {} 1138class E1115 extends D2 {} 1139class E1116 extends D1 {} 1140class E1117 extends D2 {} 1141class E1118 extends D1 {} 1142class E1119 extends D2 {} 1143class E1120 extends D1 {} 1144class E1121 extends D2 {} 1145class E1122 extends D1 {} 1146class E1123 extends D2 {} 1147class E1124 extends D1 {} 1148class E1125 extends D2 {} 1149class E1126 extends D1 {} 1150class E1127 extends D2 {} 1151class E1128 extends D1 {} 1152class E1129 extends D2 {} 1153class E1130 extends D1 {} 1154class E1131 extends D2 {} 1155class E1132 extends D1 {} 1156class E1133 extends D2 {} 1157class E1134 extends D1 {} 1158class E1135 extends D2 {} 1159class E1136 extends D1 {} 1160class E1137 extends D2 {} 1161class E1138 extends D1 {} 1162class E1139 extends D2 {} 1163class E1140 extends D1 {} 1164class E1141 extends D2 {} 1165class E1142 extends D1 {} 1166class E1143 extends D2 {} 1167class E1144 extends D1 {} 1168class E1145 extends D2 {} 1169class E1146 extends D1 {} 1170class E1147 extends D2 {} 1171class E1148 extends D1 {} 1172class E1149 extends D2 {} 1173class E1150 extends D1 {} 1174class E1151 extends D2 {} 1175class E1152 extends D1 {} 1176class E1153 extends D2 {} 1177class E1154 extends D1 {} 1178class E1155 extends D2 {} 1179class E1156 extends D1 {} 1180class E1157 extends D2 {} 1181class E1158 extends D1 {} 1182class E1159 extends D2 {} 1183class E1160 extends D1 {} 1184class E1161 extends D2 {} 1185class E1162 extends D1 {} 1186class E1163 extends D2 {} 1187class E1164 extends D1 {} 1188class E1165 extends D2 {} 1189class E1166 extends D1 {} 1190class E1167 extends D2 {} 1191class E1168 extends D1 {} 1192class E1169 extends D2 {} 1193class E1170 extends D1 {} 1194class E1171 extends D2 {} 1195class E1172 extends D1 {} 1196class E1173 extends D2 {} 1197class E1174 extends D1 {} 1198class E1175 extends D2 {} 1199class E1176 extends D1 {} 1200class E1177 extends D2 {} 1201class E1178 extends D1 {} 1202class E1179 extends D2 {} 1203class E1180 extends D1 {} 1204class E1181 extends D2 {} 1205class E1182 extends D1 {} 1206class E1183 extends D2 {} 1207class E1184 extends D1 {} 1208class E1185 extends D2 {} 1209class E1186 extends D1 {} 1210class E1187 extends D2 {} 1211class E1188 extends D1 {} 1212class E1189 extends D2 {} 1213class E1190 extends D1 {} 1214class E1191 extends D2 {} 1215class E1192 extends D1 {} 1216class E1193 extends D2 {} 1217class E1194 extends D1 {} 1218class E1195 extends D2 {} 1219class E1196 extends D1 {} 1220class E1197 extends D2 {} 1221class E1198 extends D1 {} 1222class E1199 extends D2 {} 1223class E1200 extends D1 {} 1224class F1 extends E1199 {} 1225class F2 extends E1199 {} 1226class F3 extends E1200 {} 1227 1228// Classes that are not referenced directly are required in order 1229// to force their parent's class SubtypeCheck status into Assigned|Overflowed. 1230// 1231// TODO: manually initialize every (leaf) class to ensure SubtypeCheck are Assigned. 1232 1233public class Main { 1234 public static void main(String[] args) { 1235 String yes = "Yes"; 1236 String no = "No"; 1237 1238 A a = new A(); 1239 A c1 = new C1(); 1240 A c2 = new C2(); 1241 A e1 = new E1199(); 1242 A e2 = new E1200(); 1243 A f1 = new F1(); 1244 A f2 = new F3(); 1245 1246 expectTrue(f1 instanceof E1199); 1247 expectFalse(f1 instanceof E1200); 1248 expectFalse(f2 instanceof E1199); 1249 expectTrue(f2 instanceof E1200); 1250 1251 expectFalse(e1 instanceof F1); 1252 expectFalse(e1 instanceof F3); 1253 expectFalse(e2 instanceof F1); 1254 expectFalse(e2 instanceof F3); 1255 1256 expectFalse(e1 instanceof C1); 1257 expectTrue(e2 instanceof C1); 1258 expectTrue(e1 instanceof C2); 1259 expectFalse(e2 instanceof C2); 1260 1261 expectFalse(c1 instanceof F1); 1262 expectFalse(c1 instanceof F3); 1263 expectFalse(c2 instanceof F1); 1264 expectFalse(c2 instanceof F3); 1265 1266 System.out.println("passed"); 1267 } 1268 1269 private static void expectTrue(boolean value) { 1270 if (!value) { 1271 throw new Error("Expected True"); 1272 } 1273 } 1274 1275 private static void expectFalse(boolean value) { 1276 if (value) { 1277 throw new Error("Expected False"); 1278 } 1279 } 1280} 1281